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

Commit e14f08e9 authored by Beverly's avatar Beverly Committed by Beverly Tai
Browse files

Add callbacks to StatusBarStateController

So plugins can receive this information without an IPC call

Test: manual
Bug: 133783909
Change-Id: I716ed6af78ab5a80a36fb680bc5d42758766523d
parent 3e9726c6
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -18,7 +18,6 @@ package com.android.systemui.plugins.statusbar;

import com.android.systemui.plugins.annotations.DependsOn;
import com.android.systemui.plugins.annotations.ProvidesInterface;
import com.android.systemui.plugins.statusbar.StatusBarStateController.StateListener;


/**
@@ -94,5 +93,15 @@ public interface StatusBarStateController {
         * performance regressions.
         */
        default void onDozeAmountChanged(float linear, float eased) {}

        /**
         * Callback to be notified when the sysui visibility changes
         */
        default void onSystemUiVisibilityChanged(int visibility) {}

        /**
         * Callback to be notified when the pulsing state changes
         */
        default void onPulsingChanged(boolean pulsing) {}
    }
}
+35 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.animation.ObjectAnimator;
import android.animation.ValueAnimator;
import android.text.format.DateFormat;
import android.util.FloatProperty;
import android.view.View;
import android.view.animation.Interpolator;

import com.android.internal.annotations.GuardedBy;
@@ -76,6 +77,16 @@ public class StatusBarStateControllerImpl implements SysuiStatusBarStateControll
    private int mHistoryIndex = 0;
    private HistoricalState[] mHistoricalRecords = new HistoricalState[HISTORY_SIZE];

    /**
     * Current SystemUiVisibility
     */
    private int mSystemUiVisibility = View.SYSTEM_UI_FLAG_VISIBLE;

    /**
     * If the device is currently pulsing (AOD2).
     */
    private boolean mPulsing;

    /**
     * If the device is currently dozing or not.
     */
@@ -292,6 +303,30 @@ public class StatusBarStateControllerImpl implements SysuiStatusBarStateControll
        return mKeyguardRequested;
    }

    @Override
    public void setSystemUiVisibility(int visibility) {
        if (mSystemUiVisibility != visibility) {
            mSystemUiVisibility = visibility;
            synchronized (mListeners) {
                for (RankedListener rl : new ArrayList<>(mListeners)) {
                    rl.mListener.onSystemUiVisibilityChanged(mSystemUiVisibility);
                }
            }
        }
    }

    @Override
    public void setPulsing(boolean pulsing) {
        if (mPulsing != pulsing) {
            mPulsing = pulsing;
            synchronized (mListeners) {
                for (RankedListener rl : new ArrayList<>(mListeners)) {
                    rl.mListener.onPulsingChanged(pulsing);
                }
            }
        }
    }

    /**
     * Returns String readable state of status bar from {@link StatusBarState}
     */
+10 −0
Original line number Diff line number Diff line
@@ -110,6 +110,16 @@ public interface SysuiStatusBarStateController extends StatusBarStateController
     */
    boolean isKeyguardRequested();

    /**
     * Set systemui visibility
     */
    void setSystemUiVisibility(int visibility);

    /**
     * Set pulsing
     */
    void setPulsing(boolean visibility);

    /**
     * Listener with rankings SbStateListenerRank that have dependencies so must be updated
     * in a certain order
+2 −1
Original line number Diff line number Diff line
@@ -227,7 +227,6 @@ import com.android.systemui.statusbar.policy.UserInfoController;
import com.android.systemui.statusbar.policy.UserInfoControllerImpl;
import com.android.systemui.statusbar.policy.UserSwitcherController;
import com.android.systemui.statusbar.policy.ZenModeController;
import com.android.systemui.tuner.TunerService;
import com.android.systemui.util.InjectionInflationController;
import com.android.systemui.volume.VolumeComponent;

@@ -2134,6 +2133,7 @@ public class StatusBar extends SystemUI implements DemoMode,
                checkBarModes();
                mAutoHideController.touchAutoHide();
            }
            mStatusBarStateController.setSystemUiVisibility(mSystemUiVisibility);
        }
        mLightBarController.onSystemUiVisibilityChanged(fullscreenStackVis, dockedStackVis,
                mask, fullscreenStackBounds, dockedStackBounds, sbModeChanged, mStatusBarMode,
@@ -3971,6 +3971,7 @@ public class StatusBar extends SystemUI implements DemoMode,
                }

                private void setPulsing(boolean pulsing) {
                    mStatusBarStateController.setPulsing(pulsing);
                    mStatusBarKeyguardViewManager.setPulsing(pulsing);
                    mKeyguardViewMediator.setPulsing(pulsing);
                    mNotificationPanel.setPulsing(pulsing);