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

Commit 4a05f9ca authored by Evan Laird's avatar Evan Laird
Browse files

Create a DemoMode controller

Pull Demo Mode out of StatusBar.java and create a subscription /
callback model. This reduces the number of broadcasts needed by
StatusBar and also enables for demo mode:

- clean state tracking (dumpsys DemoModeController)
- We can fix bugs like state initialization (entering demo mode on in
dev options has a different effect than entering via broadcast, etc).
- We can more easily implement it as a command line interface (available
for preorder today!)

Bug: 163393864
Test: atest SystemUITests; manual demo mode testing
Change-Id: I70535aeca3478a42b1ebb668822346e23854379f
parent 9ecdf744
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -35,6 +35,7 @@ import com.android.systemui.car.volume.CarVolumeDialogComponent;
import com.android.systemui.dagger.GlobalRootComponent;
import com.android.systemui.dagger.qualifiers.Background;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.demomode.DemoModeController;
import com.android.systemui.dock.DockManager;
import com.android.systemui.dock.DockManagerImpl;
import com.android.systemui.doze.DozeHost;
@@ -172,10 +173,11 @@ abstract class CarSystemUIModule {
    @Singleton
    static BatteryController provideBatteryController(Context context,
            EnhancedEstimates enhancedEstimates, PowerManager powerManager,
            BroadcastDispatcher broadcastDispatcher, @Main Handler mainHandler,
            BroadcastDispatcher broadcastDispatcher, DemoModeController demoModeController,
            @Main Handler mainHandler,
            @Background Handler bgHandler) {
        BatteryController bC = new BatteryControllerImpl(context, enhancedEstimates, powerManager,
                broadcastDispatcher, mainHandler, bgHandler);
                broadcastDispatcher, demoModeController, mainHandler, bgHandler);
        bC.init();
        return bC;
    }
+3 −1
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.systemui.car.volume;
import android.content.Context;

import com.android.systemui.car.CarServiceProvider;
import com.android.systemui.demomode.DemoModeController;
import com.android.systemui.keyguard.KeyguardViewMediator;
import com.android.systemui.plugins.VolumeDialog;
import com.android.systemui.volume.VolumeDialogComponent;
@@ -38,8 +39,9 @@ public class CarVolumeDialogComponent extends VolumeDialogComponent {
    @Inject
    public CarVolumeDialogComponent(Context context, KeyguardViewMediator keyguardViewMediator,
            VolumeDialogControllerImpl volumeDialogController,
            DemoModeController demoModeController,
            CarServiceProvider carServiceProvider) {
        super(context, keyguardViewMediator, volumeDialogController);
        super(context, keyguardViewMediator, volumeDialogController, demoModeController);
        mCarVolumeDialog.setCarServiceProvider(carServiceProvider);
    }

+5 −2
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ import com.android.systemui.dagger.DaggerGlobalRootComponent;
import com.android.systemui.dagger.GlobalRootComponent;
import com.android.systemui.dagger.SysUIComponent;
import com.android.systemui.dagger.WMComponent;
import com.android.systemui.demomode.DemoModeController;
import com.android.systemui.keyguard.DismissCallbackRegistry;
import com.android.systemui.plugins.FalsingManager;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
@@ -151,12 +152,14 @@ public class SystemUIFactory {
            StatusBar statusBar,
            NotificationWakeUpCoordinator wakeUpCoordinator,
            KeyguardBypassController keyguardBypassController,
            StatusBarStateController statusBarStateController) {
            StatusBarStateController statusBarStateController,
            DemoModeController demoModeController) {
        return new NotificationIconAreaController(context, statusBar, statusBarStateController,
                wakeUpCoordinator, keyguardBypassController,
                Dependency.get(NotificationMediaManager.class),
                Dependency.get(NotificationListener.class),
                Dependency.get(DozeParameters.class),
                Dependency.get(BubbleController.class));
                Dependency.get(BubbleController.class),
                demoModeController);
    }
}
+16 −5
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import com.android.keyguard.KeyguardViewController;
import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.dagger.qualifiers.Background;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.demomode.DemoModeController;
import com.android.systemui.dock.DockManager;
import com.android.systemui.dock.DockManagerImpl;
import com.android.systemui.doze.DozeHost;
@@ -99,12 +100,22 @@ public abstract class SystemUIDefaultModule {

    @Provides
    @Singleton
    static BatteryController provideBatteryController(Context context,
            EnhancedEstimates enhancedEstimates, PowerManager powerManager,
            BroadcastDispatcher broadcastDispatcher, @Main Handler mainHandler,
    static BatteryController provideBatteryController(
            Context context,
            EnhancedEstimates enhancedEstimates,
            PowerManager powerManager,
            BroadcastDispatcher broadcastDispatcher,
            DemoModeController demoModeController,
            @Main Handler mainHandler,
            @Background Handler bgHandler) {
        BatteryController bC = new BatteryControllerImpl(context, enhancedEstimates, powerManager,
                broadcastDispatcher, mainHandler, bgHandler);
        BatteryController bC = new BatteryControllerImpl(
                context,
                enhancedEstimates,
                powerManager,
                broadcastDispatcher,
                demoModeController,
                mainHandler,
                bgHandler);
        bC.init();
        return bC;
    }
+2 −0
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import com.android.keyguard.KeyguardUpdateMonitor;
import com.android.systemui.BootCompleteCache;
import com.android.systemui.BootCompleteCacheImpl;
import com.android.systemui.assist.AssistModule;
import com.android.systemui.demomode.dagger.DemoModeModule;
import com.android.systemui.doze.dagger.DozeComponent;
import com.android.systemui.dump.DumpManager;
import com.android.systemui.fragments.FragmentService;
@@ -65,6 +66,7 @@ import dagger.Provides;
@Module(includes = {
            AssistModule.class,
            ConcurrencyModule.class,
            DemoModeModule.class,
            LogModule.class,
            PeopleHubModule.class,
            SensorModule.class,
Loading