Merge "Scale all StatusBarIconView status icons to 17dp" into qt-dev am: 0d74728638
am: 63c8b74e6d
Change-Id: I0c17c851c82595dedbb448a86d3ec018c9d6e7cc
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user