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

Commit f3ade069 authored by Yifei Zhang's avatar Yifei Zhang Committed by Android (Google) Code Review
Browse files

Merge "wmshell: make CompatUIController injection Optional<>" into main

parents 40215866 06f7a26c
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