[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
This commit is contained in:
Caitlin Shkuratov
2022-09-23 14:19:18 +00:00
parent 40ddf4b82b
commit 1cb44532d7
5 changed files with 36 additions and 11 deletions

View File

@@ -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<StatusBarIconView, Float> ICON_APPEAR_AMOUNT
= new FloatProperty<StatusBarIconView>("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;
}

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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;
}
}

View File

@@ -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