From ceac4a0543e5f72339a8091404eacd203d2e20e8 Mon Sep 17 00:00:00 2001 From: Adrian Roos Date: Tue, 30 May 2017 20:25:52 -0700 Subject: [PATCH] AOD: Scale icon padding with the drawing size Fixes an issue where the icon placement algorithm would not take into account the drawingScale of the icon. Change-Id: Ia6b7e7d32ce584b04035b45d2abc61e0e4590ee8 Test: Trigger AOD1, observe that icons are correctly spaced, also test transition to lockscreen and observe there's no jank Fixes: 62205097 --- .../com/android/systemui/statusbar/StatusBarIconView.java | 4 ++++ .../systemui/statusbar/phone/NotificationIconContainer.java | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java index c7fbbf956c68c..85475b60902ff 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java @@ -179,6 +179,10 @@ public class StatusBarIconView extends AnimatedImageView { mIconScale = (float)imageBounds / (float)outerBounds; } + public float getIconScaleFullyDark() { + return (float) mStatusBarIconDrawingSizeDark / mStatusBarIconDrawingSize; + } + public float getIconScale() { return mIconScale; } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationIconContainer.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationIconContainer.java index 9000eb4655d1f..f94bb0cdd4f7e 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationIconContainer.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationIconContainer.java @@ -267,6 +267,9 @@ public class NotificationIconContainer extends AlphaOptimizedFrameLayout { boolean forceOverflow = mSpeedBumpIndex != -1 && i >= mSpeedBumpIndex && iconState.iconAppearAmount > 0.0f || i >= maxVisibleIcons; boolean noOverflowAfter = i == childCount - 1; + float drawingScale = mDark && view instanceof StatusBarIconView + ? ((StatusBarIconView) view).getIconScaleFullyDark() + : 1f; if (mOpenedAmount != 0.0f) { noOverflowAfter = noOverflowAfter && !hasAmbient && !forceOverflow; } @@ -303,7 +306,7 @@ public class NotificationIconContainer extends AlphaOptimizedFrameLayout { visualOverflowStart += mVisualOverflowAdaption * (1f - mOpenedAmount); } } - translationX += iconState.iconAppearAmount * view.getWidth(); + translationX += iconState.iconAppearAmount * view.getWidth() * drawingScale; } if (firstOverflowIndex != -1) { int numDots = 1;