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

Commit 59b114e6 authored by Vinit Nayak's avatar Vinit Nayak
Browse files

Extract SysUi state management out of OverviewProxyService

Move all sysUi state flag handling into a
separate class.

fixes: 138601608
Test: atest SysUiStateFlagsContainerTest
Checked that callbacks were being sent in
OPS, EdgeHandler and in Launcher codebase via
debugger.

Change-Id: Ie8f7ef2e647db88d244af1062eb95dbb69a46919
parent ae04682d
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -41,6 +41,7 @@ import com.android.systemui.dock.DockManager;
import com.android.systemui.fragments.FragmentService;
import com.android.systemui.keyguard.ScreenLifecycle;
import com.android.systemui.keyguard.WakefulnessLifecycle;
import com.android.systemui.model.SysUiState;
import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.plugins.DarkIconDispatcher;
import com.android.systemui.plugins.FalsingManager;
@@ -304,6 +305,7 @@ public class Dependency extends SystemUI {
    @Inject Lazy<ChannelEditorDialogController> mChannelEditorDialogController;
    @Inject Lazy<INotificationManager> mINotificationManager;
    @Inject Lazy<FalsingManager> mFalsingManager;
    @Inject Lazy<SysUiState> mSysUiStateFlagsContainer;

    @Inject
    public Dependency() {
@@ -482,6 +484,7 @@ public class Dependency extends SystemUI {
        mProviders.put(ChannelEditorDialogController.class, mChannelEditorDialogController::get);
        mProviders.put(INotificationManager.class, mINotificationManager::get);
        mProviders.put(FalsingManager.class, mFalsingManager::get);
        mProviders.put(SysUiState.class, mSysUiStateFlagsContainer::get);

        // TODO(b/118592525): to support multi-display , we start to add something which is
        //                    per-display, while others may be global. I think it's time to add
+1 −0
Original line number Diff line number Diff line
@@ -30,6 +30,7 @@ import com.android.internal.widget.LockPatternUtils;
import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.keyguard.ViewMediatorCallback;
import com.android.systemui.keyguard.DismissCallbackRegistry;
import com.android.systemui.model.SysUiState;
import com.android.systemui.plugins.FalsingManager;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.statusbar.KeyguardIndicationController;
+8 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.annotation.Nullable;
import android.content.Context;
import android.content.pm.PackageManager;

import com.android.systemui.model.SysUiState;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.statusbar.phone.KeyguardLiftController;
import com.android.systemui.util.AsyncSensorManager;
@@ -47,4 +48,11 @@ public abstract class SystemUIModule {
        }
        return new KeyguardLiftController(context, statusBarStateController, asyncSensorManager);
    }


    @Singleton
    @Provides
    static SysUiState provideSysUiState() {
        return new SysUiState();
    }
}
+8 −12
Original line number Diff line number Diff line
@@ -22,8 +22,8 @@ import androidx.annotation.Nullable;

import com.android.systemui.Dependency;
import com.android.systemui.assist.AssistHandleBehaviorController.BehaviorController;
import com.android.systemui.model.SysUiState;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.recents.OverviewProxyService;
import com.android.systemui.shared.system.QuickStepContract;

import java.io.PrintWriter;
@@ -41,15 +41,11 @@ final class AssistHandleLikeHomeBehavior implements BehaviorController {
                    handleDozingChanged(isDozing);
                }
            };
    private final OverviewProxyService.OverviewProxyListener mOverviewProxyListener =
            new OverviewProxyService.OverviewProxyListener() {
        @Override
        public void onSystemUiStateChanged(int sysuiStateFlags) {
            handleSystemUiStateChange(sysuiStateFlags);
        }
    };

    private final SysUiState.SysUiStateCallback mSysUiStateCallback =
            this::handleSystemUiStateChange;
    private final StatusBarStateController mStatusBarStateController;
    private final OverviewProxyService mOverviewProxyService;
    private final SysUiState mSysUiFlagContainer;

    private boolean mIsDozing;
    private boolean mIsHomeHandleHiding;
@@ -58,7 +54,7 @@ final class AssistHandleLikeHomeBehavior implements BehaviorController {

    AssistHandleLikeHomeBehavior() {
        mStatusBarStateController = Dependency.get(StatusBarStateController.class);
        mOverviewProxyService = Dependency.get(OverviewProxyService.class);
        mSysUiFlagContainer = Dependency.get(SysUiState.class);
    }

    @Override
@@ -66,14 +62,14 @@ final class AssistHandleLikeHomeBehavior implements BehaviorController {
        mAssistHandleCallbacks = callbacks;
        mIsDozing = mStatusBarStateController.isDozing();
        mStatusBarStateController.addCallback(mStatusBarStateListener);
        mOverviewProxyService.addCallback(mOverviewProxyListener);
        mSysUiFlagContainer.addCallback(mSysUiStateCallback);
        callbackForCurrentState();
    }

    @Override
    public void onModeDeactivated() {
        mAssistHandleCallbacks = null;
        mOverviewProxyService.removeCallback(mOverviewProxyListener);
        mSysUiFlagContainer.removeCallback(mSysUiStateCallback);
    }

    private static boolean isHomeHandleHiding(int sysuiStateFlags) {
+8 −5
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ import androidx.annotation.Nullable;
import com.android.internal.config.sysui.SystemUiDeviceConfigFlags;
import com.android.systemui.Dependency;
import com.android.systemui.assist.AssistHandleBehaviorController.BehaviorController;
import com.android.systemui.model.SysUiState;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.recents.OverviewProxyService;
import com.android.systemui.shared.system.ActivityManagerWrapper;
@@ -107,12 +108,10 @@ final class AssistHandleReminderExpBehavior implements BehaviorController {
                public void onOverviewShown(boolean fromHome) {
                    handleOverviewShown();
                }

                @Override
                public void onSystemUiStateChanged(int sysuiStateFlags) {
                    handleSystemUiStateChanged(sysuiStateFlags);
                }
            };

    private final SysUiState.SysUiStateCallback mSysUiStateCallback =
            this::handleSystemUiStateChanged;
    private final BroadcastReceiver mDefaultHomeBroadcastReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
@@ -127,6 +126,7 @@ final class AssistHandleReminderExpBehavior implements BehaviorController {
    private final StatusBarStateController mStatusBarStateController;
    private final ActivityManagerWrapper mActivityManagerWrapper;
    private final OverviewProxyService mOverviewProxyService;
    private final SysUiState mSysUiFlagContainer;

    private boolean mOnLockscreen;
    private boolean mIsDozing;
@@ -154,6 +154,7 @@ final class AssistHandleReminderExpBehavior implements BehaviorController {
        mStatusBarStateController = Dependency.get(StatusBarStateController.class);
        mActivityManagerWrapper = ActivityManagerWrapper.getInstance();
        mOverviewProxyService = Dependency.get(OverviewProxyService.class);
        mSysUiFlagContainer = Dependency.get(SysUiState.class);
        mDefaultHomeIntentFilter = new IntentFilter();
        for (String action : DEFAULT_HOME_CHANGE_ACTIONS) {
            mDefaultHomeIntentFilter.addAction(action);
@@ -174,6 +175,7 @@ final class AssistHandleReminderExpBehavior implements BehaviorController {
        mRunningTaskId = runningTaskInfo == null ? 0 : runningTaskInfo.taskId;
        mActivityManagerWrapper.registerTaskStackListener(mTaskStackChangeListener);
        mOverviewProxyService.addCallback(mOverviewProxyListener);
        mSysUiFlagContainer.addCallback(mSysUiStateCallback);

        mLearningTimeElapsed = Settings.Secure.getLong(
                context.getContentResolver(), LEARNING_TIME_ELAPSED_KEY, /* default = */ 0);
@@ -199,6 +201,7 @@ final class AssistHandleReminderExpBehavior implements BehaviorController {
        mStatusBarStateController.removeCallback(mStatusBarStateListener);
        mActivityManagerWrapper.unregisterTaskStackListener(mTaskStackChangeListener);
        mOverviewProxyService.removeCallback(mOverviewProxyListener);
        mSysUiFlagContainer.removeCallback(mSysUiStateCallback);
    }

    @Override
Loading