Loading packages/SystemUI/src/com/android/systemui/statusbar/StatusBarMobileView.java +1 −1 Original line number Diff line number Diff line Loading @@ -243,7 +243,7 @@ public class StatusBarMobileView extends FrameLayout implements DarkReceiver, } @Override public void setVisibleState(int state) { public void setVisibleState(int state, boolean animate) { if (state == mVisibleState) { return; } Loading packages/SystemUI/src/com/android/systemui/statusbar/StatusBarWifiView.java +1 −1 Original line number Diff line number Diff line Loading @@ -124,7 +124,7 @@ public class StatusBarWifiView extends FrameLayout implements DarkReceiver, } @Override public void setVisibleState(int state) { public void setVisibleState(int state, boolean animate) { if (state == mVisibleState) { return; } Loading packages/SystemUI/src/com/android/systemui/statusbar/StatusIconDisplayable.java +4 −1 Original line number Diff line number Diff line Loading @@ -22,7 +22,10 @@ public interface StatusIconDisplayable extends DarkReceiver { String getSlot(); void setStaticDrawableColor(int color); void setDecorColor(int color); void setVisibleState(int state); default void setVisibleState(int state) { setVisibleState(state, false); } void setVisibleState(int state, boolean animate); int getVisibleState(); boolean isIconVisible(); default boolean isIconBlocked() { Loading packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusIconContainer.java +31 −14 Original line number Diff line number Diff line Loading @@ -301,13 +301,9 @@ public class StatusIconContainer extends AlphaOptimizedLinearLayout { vs.initFrom(child); vs.alpha = 1.0f; if (child instanceof StatusIconDisplayable) { vs.hidden = !((StatusIconDisplayable)child).isIconVisible(); } else { vs.hidden = false; } } } private static @Nullable StatusIconState getViewStateFromChild(View child) { return (StatusIconState) child.getTag(R.id.status_bar_view_state_tag); Loading @@ -333,22 +329,33 @@ public class StatusIconContainer extends AlphaOptimizedLinearLayout { } StatusIconDisplayable icon = (StatusIconDisplayable) view; AnimationProperties animationProperties = null; boolean animate = false; boolean animateVisibility = true; if (justAdded) { // Figure out which properties of the state transition (if any) we need to animate if (justAdded || icon.getVisibleState() == STATE_HIDDEN && visibleState == STATE_ICON) { // Icon is appearing, fade it in by putting it where it will be and animating alpha super.applyToView(view); view.setAlpha(0.f); icon.setVisibleState(STATE_HIDDEN); animationProperties = ADD_ICON_PROPERTIES; animate = true; } else if (icon.getVisibleState() != visibleState) { animationProperties = DOT_ANIMATION_PROPERTIES; animate = true; if (icon.getVisibleState() == STATE_ICON && visibleState == STATE_HIDDEN) { // Disappearing, don't do anything fancy animateVisibility = false; } else { // all other transitions (to/from dot, etc) animationProperties = ANIMATE_ALL_PROPERTIES; } } else if (visibleState != STATE_HIDDEN && xTranslation != view.getTranslationX()) { // Visibility isn't changing, just animate position animationProperties = X_ANIMATION_PROPERTIES; } if (animate) { icon.setVisibleState(visibleState, animateVisibility); if (animationProperties != null) { animateTo(view, animationProperties); icon.setVisibleState(visibleState); } else { icon.setVisibleState(visibleState); super.applyToView(view); } Loading @@ -365,7 +372,7 @@ public class StatusIconContainer extends AlphaOptimizedLinearLayout { } }.setDuration(200).setDelay(50); private static final AnimationProperties DOT_ANIMATION_PROPERTIES = new AnimationProperties() { private static final AnimationProperties X_ANIMATION_PROPERTIES = new AnimationProperties() { private AnimationFilter mAnimationFilter = new AnimationFilter().animateX(); @Override Loading @@ -373,4 +380,14 @@ public class StatusIconContainer extends AlphaOptimizedLinearLayout { return mAnimationFilter; } }.setDuration(200); private static final AnimationProperties ANIMATE_ALL_PROPERTIES = new AnimationProperties() { private AnimationFilter mAnimationFilter = new AnimationFilter().animateX().animateY() .animateAlpha().animateScale(); @Override public AnimationFilter getAnimationFilter() { return mAnimationFilter; } }.setDuration(200); } Loading
packages/SystemUI/src/com/android/systemui/statusbar/StatusBarMobileView.java +1 −1 Original line number Diff line number Diff line Loading @@ -243,7 +243,7 @@ public class StatusBarMobileView extends FrameLayout implements DarkReceiver, } @Override public void setVisibleState(int state) { public void setVisibleState(int state, boolean animate) { if (state == mVisibleState) { return; } Loading
packages/SystemUI/src/com/android/systemui/statusbar/StatusBarWifiView.java +1 −1 Original line number Diff line number Diff line Loading @@ -124,7 +124,7 @@ public class StatusBarWifiView extends FrameLayout implements DarkReceiver, } @Override public void setVisibleState(int state) { public void setVisibleState(int state, boolean animate) { if (state == mVisibleState) { return; } Loading
packages/SystemUI/src/com/android/systemui/statusbar/StatusIconDisplayable.java +4 −1 Original line number Diff line number Diff line Loading @@ -22,7 +22,10 @@ public interface StatusIconDisplayable extends DarkReceiver { String getSlot(); void setStaticDrawableColor(int color); void setDecorColor(int color); void setVisibleState(int state); default void setVisibleState(int state) { setVisibleState(state, false); } void setVisibleState(int state, boolean animate); int getVisibleState(); boolean isIconVisible(); default boolean isIconBlocked() { Loading
packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusIconContainer.java +31 −14 Original line number Diff line number Diff line Loading @@ -301,13 +301,9 @@ public class StatusIconContainer extends AlphaOptimizedLinearLayout { vs.initFrom(child); vs.alpha = 1.0f; if (child instanceof StatusIconDisplayable) { vs.hidden = !((StatusIconDisplayable)child).isIconVisible(); } else { vs.hidden = false; } } } private static @Nullable StatusIconState getViewStateFromChild(View child) { return (StatusIconState) child.getTag(R.id.status_bar_view_state_tag); Loading @@ -333,22 +329,33 @@ public class StatusIconContainer extends AlphaOptimizedLinearLayout { } StatusIconDisplayable icon = (StatusIconDisplayable) view; AnimationProperties animationProperties = null; boolean animate = false; boolean animateVisibility = true; if (justAdded) { // Figure out which properties of the state transition (if any) we need to animate if (justAdded || icon.getVisibleState() == STATE_HIDDEN && visibleState == STATE_ICON) { // Icon is appearing, fade it in by putting it where it will be and animating alpha super.applyToView(view); view.setAlpha(0.f); icon.setVisibleState(STATE_HIDDEN); animationProperties = ADD_ICON_PROPERTIES; animate = true; } else if (icon.getVisibleState() != visibleState) { animationProperties = DOT_ANIMATION_PROPERTIES; animate = true; if (icon.getVisibleState() == STATE_ICON && visibleState == STATE_HIDDEN) { // Disappearing, don't do anything fancy animateVisibility = false; } else { // all other transitions (to/from dot, etc) animationProperties = ANIMATE_ALL_PROPERTIES; } } else if (visibleState != STATE_HIDDEN && xTranslation != view.getTranslationX()) { // Visibility isn't changing, just animate position animationProperties = X_ANIMATION_PROPERTIES; } if (animate) { icon.setVisibleState(visibleState, animateVisibility); if (animationProperties != null) { animateTo(view, animationProperties); icon.setVisibleState(visibleState); } else { icon.setVisibleState(visibleState); super.applyToView(view); } Loading @@ -365,7 +372,7 @@ public class StatusIconContainer extends AlphaOptimizedLinearLayout { } }.setDuration(200).setDelay(50); private static final AnimationProperties DOT_ANIMATION_PROPERTIES = new AnimationProperties() { private static final AnimationProperties X_ANIMATION_PROPERTIES = new AnimationProperties() { private AnimationFilter mAnimationFilter = new AnimationFilter().animateX(); @Override Loading @@ -373,4 +380,14 @@ public class StatusIconContainer extends AlphaOptimizedLinearLayout { return mAnimationFilter; } }.setDuration(200); private static final AnimationProperties ANIMATE_ALL_PROPERTIES = new AnimationProperties() { private AnimationFilter mAnimationFilter = new AnimationFilter().animateX().animateY() .animateAlpha().animateScale(); @Override public AnimationFilter getAnimationFilter() { return mAnimationFilter; } }.setDuration(200); }