From: Lucas Dupin Date: Thu, 14 Sep 2017 00:24:09 +0000 (-0700) Subject: Do not animate icons when leaving AoD X-Git-Tag: android-x86-8.1-r1~77^2 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=3961631e7702e3a554f6a2033aa54c697105c7d0;p=android-x86%2Fframeworks-base.git Do not animate icons when leaving AoD Change-Id: I10ff1f06f6f699c0b0ceedffa54b463fdf25593f Fixes: 37433524 Test: screenrecord # look at video frame by frame (cherry picked from commit 8274aa9f25662a24f39fe50f0512122aa89acfcb) --- 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 88a562648a63..0f246c621eb9 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationIconContainer.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationIconContainer.java @@ -25,10 +25,8 @@ import android.graphics.Color; import android.graphics.Paint; import android.graphics.drawable.Icon; import android.os.AsyncTask; -import android.os.UserHandle; import android.os.VibrationEffect; import android.os.Vibrator; -import android.provider.Settings; import android.support.v4.util.ArrayMap; import android.support.v4.util.ArraySet; import android.util.AttributeSet; @@ -39,10 +37,8 @@ import com.android.systemui.Interpolators; import com.android.systemui.R; import com.android.systemui.statusbar.AlphaOptimizedFrameLayout; import com.android.systemui.statusbar.StatusBarIconView; -import com.android.systemui.statusbar.notification.NotificationUtils; import com.android.systemui.statusbar.stack.AnimationFilter; import com.android.systemui.statusbar.stack.AnimationProperties; -import com.android.systemui.statusbar.stack.StackStateAnimator; import com.android.systemui.statusbar.stack.ViewState; import java.util.ArrayList; @@ -84,7 +80,10 @@ public class NotificationIconContainer extends AlphaOptimizedFrameLayout { }.setDuration(CANNED_ANIMATION_DURATION) .setCustomInterpolator(View.TRANSLATION_Y, Interpolators.ICON_OVERSHOT); - private static final AnimationProperties mTempProperties = new AnimationProperties() { + /** + * Temporary AnimationProperties to avoid unnecessary allocations. + */ + private static final AnimationProperties sTempProperties = new AnimationProperties() { private AnimationFilter mAnimationFilter = new AnimationFilter(); @Override @@ -102,15 +101,6 @@ public class NotificationIconContainer extends AlphaOptimizedFrameLayout { } }.setDuration(200).setDelay(50); - private static final AnimationProperties UNDARK_PROPERTIES = new AnimationProperties() { - private AnimationFilter mAnimationFilter = new AnimationFilter() - .animateX(); - - @Override - public AnimationFilter getAnimationFilter() { - return mAnimationFilter; - } - }.setDuration(StackStateAnimator.ANIMATION_DURATION_WAKEUP); public static final int MAX_VISIBLE_ICONS_WHEN_DARK = 5; private boolean mShowAllIcons = true; @@ -478,9 +468,6 @@ public class NotificationIconContainer extends AlphaOptimizedFrameLayout { View view = getChildAt(i); if (view instanceof StatusBarIconView) { ((StatusBarIconView) view).setDark(dark, fade, delay); - if (!dark && fade) { - getIconState((StatusBarIconView) view).justUndarkened = true; - } } } } @@ -551,7 +538,6 @@ public class NotificationIconContainer extends AlphaOptimizedFrameLayout { public boolean useFullTransitionAmount; public boolean useLinearTransitionAmount; public boolean translateContent; - public boolean justUndarkened; public int iconColor = StatusBarIconView.NO_COLOR; public boolean noAnimations; public boolean isLastExpandIcon; @@ -563,8 +549,7 @@ public class NotificationIconContainer extends AlphaOptimizedFrameLayout { StatusBarIconView icon = (StatusBarIconView) view; boolean animate = false; AnimationProperties animationProperties = null; - boolean animationsAllowed = (mAnimationsEnabled || justUndarkened) - && !mDisallowNextAnimation + boolean animationsAllowed = mAnimationsEnabled && !mDisallowNextAnimation && !noAnimations; if (animationsAllowed) { if (justAdded || justReplaced) { @@ -576,9 +561,6 @@ public class NotificationIconContainer extends AlphaOptimizedFrameLayout { animationProperties = ADD_ICON_PROPERTIES; animate = true; } - } else if (justUndarkened) { - animationProperties = UNDARK_PROPERTIES; - animate = true; } else if (visibleState != icon.getVisibleState()) { animationProperties = DOT_ANIMATION_PROPERTIES; animate = true; @@ -591,17 +573,17 @@ public class NotificationIconContainer extends AlphaOptimizedFrameLayout { animate = true; } if (needsCannedAnimation) { - AnimationFilter animationFilter = mTempProperties.getAnimationFilter(); + AnimationFilter animationFilter = sTempProperties.getAnimationFilter(); animationFilter.reset(); animationFilter.combineFilter( ICON_ANIMATION_PROPERTIES.getAnimationFilter()); - mTempProperties.resetCustomInterpolators(); - mTempProperties.combineCustomInterpolators(ICON_ANIMATION_PROPERTIES); + sTempProperties.resetCustomInterpolators(); + sTempProperties.combineCustomInterpolators(ICON_ANIMATION_PROPERTIES); if (animationProperties != null) { animationFilter.combineFilter(animationProperties.getAnimationFilter()); - mTempProperties.combineCustomInterpolators(animationProperties); + sTempProperties.combineCustomInterpolators(animationProperties); } - animationProperties = mTempProperties; + animationProperties = sTempProperties; animationProperties.setDuration(CANNED_ANIMATION_DURATION); animate = true; mCannedAnimationStartIndex = indexOfChild(view); @@ -610,11 +592,11 @@ public class NotificationIconContainer extends AlphaOptimizedFrameLayout { && indexOfChild(view) > mCannedAnimationStartIndex && (icon.getVisibleState() != StatusBarIconView.STATE_HIDDEN || visibleState != StatusBarIconView.STATE_HIDDEN)) { - AnimationFilter animationFilter = mTempProperties.getAnimationFilter(); + AnimationFilter animationFilter = sTempProperties.getAnimationFilter(); animationFilter.reset(); animationFilter.animateX(); - mTempProperties.resetCustomInterpolators(); - animationProperties = mTempProperties; + sTempProperties.resetCustomInterpolators(); + animationProperties = sTempProperties; animationProperties.setDuration(CANNED_ANIMATION_DURATION); animate = true; } @@ -638,7 +620,6 @@ public class NotificationIconContainer extends AlphaOptimizedFrameLayout { justAdded = false; justReplaced = false; needsCannedAnimation = false; - justUndarkened = false; } private boolean shouldVibrateChange(boolean inShelfChanged) {