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

Commit 06f7a26c authored by Yifei Zhang's avatar Yifei Zhang
Browse files

wmshell: make CompatUIController injection Optional<>

- Add a configuration config_enableCompatUIController to skip the
  injection.

Test: build & validate
Bug: 311023764
Change-Id: I9417191d1e9c89a01d4958dc32ebf12cc99fdc98
parent 09d69656
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -141,4 +141,7 @@
        window. If false, the splash screen will be a solid color splash screen whenever the
        app has not provided a windowSplashScreenAnimatedIcon. -->
    <bool name="config_canUseAppIconForSplashScreen">true</bool>

    <!-- Whether CompatUIController is enabled -->
    <bool name="config_enableCompatUIController">true</bool>
</resources>
+37 −14
Original line number Diff line number Diff line
@@ -221,34 +221,57 @@ public abstract class WMShellBaseModule {
            Context context,
            ShellInit shellInit,
            ShellCommandHandler shellCommandHandler,
            CompatUIController compatUI,
            Optional<CompatUIController> compatUI,
            Optional<UnfoldAnimationController> unfoldAnimationController,
            Optional<RecentTasksController> recentTasksOptional,
            @ShellMainThread ShellExecutor mainExecutor
    ) {
            @ShellMainThread ShellExecutor mainExecutor) {
        if (!context.getResources().getBoolean(R.bool.config_registerShellTaskOrganizerOnInit)) {
            // TODO(b/238217847): Force override shell init if registration is disabled
            shellInit = new ShellInit(mainExecutor);
        }
        return new ShellTaskOrganizer(shellInit, shellCommandHandler, compatUI,
                unfoldAnimationController, recentTasksOptional, mainExecutor);
        return new ShellTaskOrganizer(
                shellInit,
                shellCommandHandler,
                compatUI.orElse(null),
                unfoldAnimationController,
                recentTasksOptional,
                mainExecutor);
    }

    @WMSingleton
    @Provides
    static CompatUIController provideCompatUIController(Context context,
    static Optional<CompatUIController> provideCompatUIController(
            Context context,
            ShellInit shellInit,
            ShellController shellController,
            DisplayController displayController, DisplayInsetsController displayInsetsController,
            DisplayImeController imeController, SyncTransactionQueue syncQueue,
            @ShellMainThread ShellExecutor mainExecutor, Lazy<Transitions> transitionsLazy,
            DockStateReader dockStateReader, CompatUIConfiguration compatUIConfiguration,
            DisplayController displayController,
            DisplayInsetsController displayInsetsController,
            DisplayImeController imeController,
            SyncTransactionQueue syncQueue,
            @ShellMainThread ShellExecutor mainExecutor,
            Lazy<Transitions> transitionsLazy,
            DockStateReader dockStateReader,
            CompatUIConfiguration compatUIConfiguration,
            CompatUIShellCommandHandler compatUIShellCommandHandler,
            AccessibilityManager accessibilityManager) {
        return new CompatUIController(context, shellInit, shellController, displayController,
                displayInsetsController, imeController, syncQueue, mainExecutor, transitionsLazy,
                dockStateReader, compatUIConfiguration, compatUIShellCommandHandler,
                accessibilityManager);
        if (!context.getResources().getBoolean(R.bool.config_enableCompatUIController)) {
            return Optional.empty();
        }
        return Optional.of(
                new CompatUIController(
                        context,
                        shellInit,
                        shellController,
                        displayController,
                        displayInsetsController,
                        imeController,
                        syncQueue,
                        mainExecutor,
                        transitionsLazy,
                        dockStateReader,
                        compatUIConfiguration,
                        compatUIShellCommandHandler,
                        accessibilityManager));
    }

    @WMSingleton