Merge "AOD: Increase shelf icon size while dark" into oc-dev
am: f852ed40a6
Change-Id: Ic9d9e0878695962e947a0f9cc25e012350f7ffba
This commit is contained in:
@@ -130,6 +130,9 @@
|
||||
<!-- size at which Notification icons will be drawn in the status bar -->
|
||||
<dimen name="status_bar_icon_drawing_size">17dp</dimen>
|
||||
|
||||
<!-- size at which Notification icons will be drawn on Ambient Display -->
|
||||
<dimen name="status_bar_icon_drawing_size_dark">@*android:dimen/notification_header_icon_size_ambient</dimen>
|
||||
|
||||
<!-- opacity at which Notification icons will be drawn in the status bar -->
|
||||
<item type="dimen" name="status_bar_icon_drawing_alpha">90%</item>
|
||||
|
||||
|
||||
@@ -89,6 +89,9 @@ public class StatusBarIconView extends AnimatedImageView {
|
||||
};
|
||||
|
||||
private boolean mAlwaysScaleIcon;
|
||||
private int mStatusBarIconDrawingSizeDark = 1;
|
||||
private int mStatusBarIconDrawingSize = 1;
|
||||
private int mStatusBarIconSize = 1;
|
||||
private StatusBarIcon mIcon;
|
||||
@ViewDebug.ExportedProperty private String mSlot;
|
||||
private Drawable mNumberBackground;
|
||||
@@ -139,7 +142,7 @@ public class StatusBarIconView extends AnimatedImageView {
|
||||
mNumberPain.setColor(context.getColor(R.drawable.notification_number_text_color));
|
||||
mNumberPain.setAntiAlias(true);
|
||||
setNotification(notification);
|
||||
maybeUpdateIconScale();
|
||||
maybeUpdateIconScaleDimens();
|
||||
setScaleType(ScaleType.CENTER);
|
||||
mDensity = context.getResources().getDisplayMetrics().densityDpi;
|
||||
if (mNotification != null) {
|
||||
@@ -149,18 +152,30 @@ public class StatusBarIconView extends AnimatedImageView {
|
||||
reloadDimens();
|
||||
}
|
||||
|
||||
private void maybeUpdateIconScale() {
|
||||
private void maybeUpdateIconScaleDimens() {
|
||||
// We do not resize and scale system icons (on the right), only notification icons (on the
|
||||
// left).
|
||||
if (mNotification != null || mAlwaysScaleIcon) {
|
||||
updateIconScale();
|
||||
updateIconScaleDimens();
|
||||
}
|
||||
}
|
||||
|
||||
private void updateIconScale() {
|
||||
private void updateIconScaleDimens() {
|
||||
Resources res = mContext.getResources();
|
||||
final int outerBounds = res.getDimensionPixelSize(R.dimen.status_bar_icon_size);
|
||||
final int imageBounds = res.getDimensionPixelSize(R.dimen.status_bar_icon_drawing_size);
|
||||
mStatusBarIconSize = res.getDimensionPixelSize(R.dimen.status_bar_icon_size);
|
||||
mStatusBarIconDrawingSizeDark =
|
||||
res.getDimensionPixelSize(R.dimen.status_bar_icon_drawing_size_dark);
|
||||
mStatusBarIconDrawingSize =
|
||||
res.getDimensionPixelSize(R.dimen.status_bar_icon_drawing_size);
|
||||
updateIconScale();
|
||||
}
|
||||
|
||||
private void updateIconScale() {
|
||||
final float imageBounds = NotificationUtils.interpolate(
|
||||
mStatusBarIconDrawingSize,
|
||||
mStatusBarIconDrawingSizeDark,
|
||||
mDarkAmount);
|
||||
final int outerBounds = mStatusBarIconSize;
|
||||
mIconScale = (float)imageBounds / (float)outerBounds;
|
||||
}
|
||||
|
||||
@@ -174,7 +189,7 @@ public class StatusBarIconView extends AnimatedImageView {
|
||||
int density = newConfig.densityDpi;
|
||||
if (density != mDensity) {
|
||||
mDensity = density;
|
||||
maybeUpdateIconScale();
|
||||
maybeUpdateIconScaleDimens();
|
||||
updateDrawable();
|
||||
reloadDimens();
|
||||
}
|
||||
@@ -198,7 +213,7 @@ public class StatusBarIconView extends AnimatedImageView {
|
||||
mDozer = new NotificationIconDozeHelper(context);
|
||||
mBlocked = false;
|
||||
mAlwaysScaleIcon = true;
|
||||
updateIconScale();
|
||||
updateIconScaleDimens();
|
||||
mDensity = context.getResources().getDisplayMetrics().densityDpi;
|
||||
}
|
||||
|
||||
@@ -681,6 +696,7 @@ public class StatusBarIconView extends AnimatedImageView {
|
||||
public void setDark(boolean dark, boolean fade, long delay) {
|
||||
mDozer.setIntensityDark(f -> {
|
||||
mDarkAmount = f;
|
||||
updateIconScale();
|
||||
updateDecorColor();
|
||||
updateIconColor();
|
||||
}, dark, fade, delay);
|
||||
|
||||
Reference in New Issue
Block a user