From 1cb44532d737cf50a092c3e99a26087c7e201f38 Mon Sep 17 00:00:00 2001 From: Caitlin Shkuratov Date: Fri, 23 Sep 2022 14:19:18 +0000 Subject: [PATCH] [SB Refactor] Add an annotation for the visibility states. Also updates the starting visibility state values to HIDDEN for mobile and wifi. Bug: 238425913 Test: manual: Verified icons still work Test: StatusBarIconViewTest Change-Id: Icd9c2b14f46a148acc2113ac1e20f85924f19e75 --- .../systemui/statusbar/StatusBarIconView.java | 15 ++++++++++++--- .../systemui/statusbar/StatusBarMobileView.java | 6 ++++-- .../systemui/statusbar/StatusBarWifiView.java | 6 ++++-- .../statusbar/StatusIconDisplayable.java | 16 +++++++++++++--- .../wifi/ui/view/ModernStatusBarWifiView.kt | 4 +++- 5 files changed, 36 insertions(+), 11 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java index 039a3625c70cc..0c3a3c5d03acf 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarIconView.java @@ -22,6 +22,7 @@ import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.ObjectAnimator; import android.animation.ValueAnimator; +import android.annotation.IntDef; import android.app.ActivityManager; import android.app.Notification; import android.content.Context; @@ -36,7 +37,6 @@ import android.graphics.Paint; import android.graphics.Rect; import android.graphics.drawable.Drawable; import android.graphics.drawable.Icon; -import android.os.Parcelable; import android.os.Trace; import android.os.UserHandle; import android.service.notification.StatusBarNotification; @@ -60,6 +60,8 @@ import com.android.systemui.statusbar.notification.NotificationIconDozeHelper; import com.android.systemui.statusbar.notification.NotificationUtils; import com.android.systemui.util.drawable.DrawableSize; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; import java.text.NumberFormat; import java.util.ArrayList; import java.util.Arrays; @@ -87,6 +89,10 @@ public class StatusBarIconView extends AnimatedImageView implements StatusIconDi public static final int STATE_DOT = 1; public static final int STATE_HIDDEN = 2; + @Retention(RetentionPolicy.SOURCE) + @IntDef({STATE_ICON, STATE_DOT, STATE_HIDDEN}) + public @interface VisibleState { } + private static final String TAG = "StatusBarIconView"; private static final Property ICON_APPEAR_AMOUNT = new FloatProperty("iconAppearAmount") { @@ -134,6 +140,7 @@ public class StatusBarIconView extends AnimatedImageView implements StatusIconDi private final Paint mDotPaint = new Paint(Paint.ANTI_ALIAS_FLAG); private float mDotRadius; private int mStaticDotRadius; + @StatusBarIconView.VisibleState private int mVisibleState = STATE_ICON; private float mIconAppearAmount = 1.0f; private ObjectAnimator mIconAppearAnimator; @@ -744,11 +751,12 @@ public class StatusBarIconView extends AnimatedImageView implements StatusIconDi } @Override - public void setVisibleState(int state) { + public void setVisibleState(@StatusBarIconView.VisibleState int state) { setVisibleState(state, true /* animate */, null /* endRunnable */); } - public void setVisibleState(int state, boolean animate) { + @Override + public void setVisibleState(@StatusBarIconView.VisibleState int state, boolean animate) { setVisibleState(state, animate, null); } @@ -860,6 +868,7 @@ public class StatusBarIconView extends AnimatedImageView implements StatusIconDi return mIconAppearAmount; } + @StatusBarIconView.VisibleState public int getVisibleState() { return mVisibleState; } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarMobileView.java b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarMobileView.java index 25c6dce96b5c8..48c6e273bbb4e 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarMobileView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarMobileView.java @@ -59,7 +59,8 @@ public class StatusBarMobileView extends FrameLayout implements DarkReceiver, private ImageView mOut; private ImageView mMobile, mMobileType, mMobileRoaming; private View mMobileRoamingSpace; - private int mVisibleState = -1; + @StatusBarIconView.VisibleState + private int mVisibleState = STATE_HIDDEN; private DualToneHandler mDualToneHandler; private boolean mForceHidden; @@ -271,7 +272,7 @@ public class StatusBarMobileView extends FrameLayout implements DarkReceiver, } @Override - public void setVisibleState(int state, boolean animate) { + public void setVisibleState(@StatusBarIconView.VisibleState int state, boolean animate) { if (state == mVisibleState) { return; } @@ -312,6 +313,7 @@ public class StatusBarMobileView extends FrameLayout implements DarkReceiver, } @Override + @StatusBarIconView.VisibleState public int getVisibleState() { return mVisibleState; } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarWifiView.java b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarWifiView.java index 5aee62e3e89fc..f3e74d92fc8a1 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarWifiView.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/StatusBarWifiView.java @@ -55,7 +55,8 @@ public class StatusBarWifiView extends BaseStatusBarWifiView implements DarkRece private View mAirplaneSpacer; private WifiIconState mState; private String mSlot; - private int mVisibleState = -1; + @StatusBarIconView.VisibleState + private int mVisibleState = STATE_HIDDEN; public static StatusBarWifiView fromContext(Context context, String slot) { LayoutInflater inflater = LayoutInflater.from(context); @@ -107,7 +108,7 @@ public class StatusBarWifiView extends BaseStatusBarWifiView implements DarkRece } @Override - public void setVisibleState(int state, boolean animate) { + public void setVisibleState(@StatusBarIconView.VisibleState int state, boolean animate) { if (state == mVisibleState) { return; } @@ -131,6 +132,7 @@ public class StatusBarWifiView extends BaseStatusBarWifiView implements DarkRece } @Override + @StatusBarIconView.VisibleState public int getVisibleState() { return mVisibleState; } diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/StatusIconDisplayable.java b/packages/SystemUI/src/com/android/systemui/statusbar/StatusIconDisplayable.java index d541fae4ed332..cf7283c6442e7 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/StatusIconDisplayable.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/StatusIconDisplayable.java @@ -22,14 +22,24 @@ public interface StatusIconDisplayable extends DarkReceiver { String getSlot(); void setStaticDrawableColor(int color); void setDecorColor(int color); - default void setVisibleState(int state) { + + /** Sets the visible state that this displayable should be. */ + default void setVisibleState(@StatusBarIconView.VisibleState int state) { setVisibleState(state, false); } - void setVisibleState(int state, boolean animate); + + /** + * Sets the visible state that this displayable should be, and whether the change should + * animate. + */ + void setVisibleState(@StatusBarIconView.VisibleState int state, boolean animate); + + /** Returns the current visible state of this displayable. */ + @StatusBarIconView.VisibleState int getVisibleState(); + boolean isIconVisible(); default boolean isIconBlocked() { return false; } } - diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/ui/view/ModernStatusBarWifiView.kt b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/ui/view/ModernStatusBarWifiView.kt index f225b65179ed1..b874fb10fd1d1 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/ui/view/ModernStatusBarWifiView.kt +++ b/packages/SystemUI/src/com/android/systemui/statusbar/pipeline/wifi/ui/view/ModernStatusBarWifiView.kt @@ -22,6 +22,7 @@ import android.util.AttributeSet import android.view.LayoutInflater import com.android.systemui.R import com.android.systemui.statusbar.BaseStatusBarWifiView +import com.android.systemui.statusbar.StatusBarIconView import com.android.systemui.statusbar.StatusBarIconView.STATE_ICON import com.android.systemui.statusbar.phone.StatusBarLocation import com.android.systemui.statusbar.pipeline.wifi.ui.binder.WifiViewBinder @@ -52,10 +53,11 @@ class ModernStatusBarWifiView( // TODO(b/238425913) } - override fun setVisibleState(state: Int, animate: Boolean) { + override fun setVisibleState(@StatusBarIconView.VisibleState state: Int, animate: Boolean) { // TODO(b/238425913) } + @StatusBarIconView.VisibleState override fun getVisibleState(): Int { // TODO(b/238425913) return STATE_ICON