Merge "Scale all StatusBarIconView status icons to 17dp" into qt-dev

am: 0d74728638

Change-Id: I3ff4621746cf80c812a20a77b6e2e1d921890488
This commit is contained in:
Fabian Kozynski
2019-05-08 08:15:03 -07:00
committed by android-build-merger
2 changed files with 29 additions and 6 deletions

View File

@@ -40,6 +40,7 @@ import android.os.UserHandle;
import android.service.notification.StatusBarNotification;
import android.text.TextUtils;
import android.util.AttributeSet;
import android.util.DisplayMetrics;
import android.util.FloatProperty;
import android.util.Log;
import android.util.Property;
@@ -73,7 +74,10 @@ public class StatusBarIconView extends AnimatedImageView implements StatusIconDi
* want to scale them (in a way that doesn't require an asset dump) down 2dp. So
* 17dp * (15 / 17) = 15dp, the new height.
*/
private static final float SYSTEM_ICON_SCALE = 15.f / 17.f;
private static final float SYSTEM_ICON_DESIRED_HEIGHT = 15f;
private static final float SYSTEM_ICON_INTRINSIC_HEIGHT = 17f;
private static final float SYSTEM_ICON_SCALE =
SYSTEM_ICON_DESIRED_HEIGHT / SYSTEM_ICON_INTRINSIC_HEIGHT;
private final int ANIMATION_DURATION_FAST = 100;
public static final int STATE_ICON = 0;
@@ -202,8 +206,25 @@ public class StatusBarIconView extends AnimatedImageView implements StatusIconDi
updatePivot();
}
// Makes sure that all icons are scaled to the same height (15dp). If we cannot get a height
// for the icon, it uses the default SCALE (15f / 17f) which is the old behavior
private void updateIconScaleForSystemIcons() {
mIconScale = SYSTEM_ICON_SCALE;
float iconHeight = getIconHeightInDps();
if (iconHeight != 0) {
mIconScale = SYSTEM_ICON_DESIRED_HEIGHT / iconHeight;
} else {
mIconScale = SYSTEM_ICON_SCALE;
}
}
private float getIconHeightInDps() {
Drawable d = getDrawable();
if (d != null) {
return ((float) getDrawable().getIntrinsicHeight() * DisplayMetrics.DENSITY_DEFAULT)
/ mDensity;
} else {
return SYSTEM_ICON_INTRINSIC_HEIGHT;
}
}
public float getIconScaleFullyDark() {
@@ -221,8 +242,8 @@ public class StatusBarIconView extends AnimatedImageView implements StatusIconDi
if (density != mDensity) {
mDensity = density;
reloadDimens();
maybeUpdateIconScaleDimens();
updateDrawable();
maybeUpdateIconScaleDimens();
}
boolean nightMode = (newConfig.uiMode & Configuration.UI_MODE_NIGHT_MASK)
== Configuration.UI_MODE_NIGHT_YES;
@@ -305,6 +326,8 @@ public class StatusBarIconView extends AnimatedImageView implements StatusIconDi
if (!updateDrawable(false /* no clear */)) return false;
// we have to clear the grayscale tag since it may have changed
setTag(R.id.icon_is_grayscale, null);
// Maybe set scale based on icon height
maybeUpdateIconScaleDimens();
}
if (!levelEquals) {
setImageLevel(icon.iconLevel);

View File

@@ -86,7 +86,7 @@ public class PhoneStatusBarPolicy
private static final String TAG = "PhoneStatusBarPolicy";
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
public static final int LOCATION_STATUS_ICON_ID = R.drawable.stat_sys_location;
public static final int LOCATION_STATUS_ICON_ID = PrivacyType.TYPE_LOCATION.getIconId();
private final String mSlotCast;
private final String mSlotHotspot;
@@ -230,10 +230,10 @@ public class PhoneStatusBarPolicy
mIconController.setIconVisibility(mSlotDataSaver, false);
// privacy items
mIconController.setIcon(mSlotMicrophone, R.drawable.stat_sys_mic_none,
mIconController.setIcon(mSlotMicrophone, PrivacyType.TYPE_MICROPHONE.getIconId(),
PrivacyType.TYPE_MICROPHONE.getName(mContext));
mIconController.setIconVisibility(mSlotMicrophone, false);
mIconController.setIcon(mSlotCamera, R.drawable.stat_sys_camera,
mIconController.setIcon(mSlotCamera, PrivacyType.TYPE_CAMERA.getIconId(),
PrivacyType.TYPE_CAMERA.getName(mContext));
mIconController.setIconVisibility(mSlotCamera, false);
mIconController.setIcon(mSlotLocation, LOCATION_STATUS_ICON_ID,