diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java index f7b3a350ddf4..085a076c5c55 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationShelf.java @@ -26,6 +26,8 @@ import android.view.View; import android.view.ViewGroup; import android.view.ViewTreeObserver; import android.view.accessibility.AccessibilityNodeInfo; +import android.view.animation.Interpolator; +import android.view.animation.PathInterpolator; import com.android.internal.annotations.VisibleForTesting; import com.android.systemui.R; @@ -53,6 +55,11 @@ public class NotificationShelf extends ActivatableNotificationView implements private static final int TAG_CONTINUOUS_CLIPPING = R.id.continuous_clipping_tag; private static final String TAG = "NotificationShelf"; + // More extreme version of SLOW_OUT_LINEAR_IN which keeps the icon nearly invisible until after + // the next icon has translated out of the way, to avoid overlapping. + private static final Interpolator ICON_ALPHA_INTERPOLATOR = + new PathInterpolator(0.6f, 0f, 0.6f, 0f); + private NotificationIconContainer mShelfIcons; private int[] mTmp = new int[2]; private boolean mHideBackground; @@ -659,7 +666,7 @@ public class NotificationShelf extends ActivatableNotificationView implements if (iconState == null) { return; } - iconState.alpha = transitionAmount; + iconState.alpha = ICON_ALPHA_INTERPOLATOR.getInterpolation(transitionAmount); boolean isAppearing = row.isDrawingAppearAnimation() && !row.isInShelf(); iconState.hidden = isAppearing || (view instanceof ExpandableNotificationRow |