Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1cb44532 authored by Caitlin Shkuratov's avatar Caitlin Shkuratov
Browse files

[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
parent 40ddf4b8
Loading
Loading
Loading
Loading
+12 −3
Original line number Diff line number Diff line
@@ -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;
    }
+4 −2
Original line number Diff line number Diff line
@@ -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;
    }
+4 −2
Original line number Diff line number Diff line
@@ -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;
    }
+13 −3
Original line number Diff line number Diff line
@@ -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;
    }
}
+3 −1
Original line number Diff line number Diff line
@@ -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