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

Commit 884719cd authored by Wale Ogunwale's avatar Wale Ogunwale
Browse files

Make new split-screen module optiional

So we don't initialize it on devices that don't support
multi-window mode.

Fixes: 177446604
Test: builds
Change-Id: Ib9b69a1b2e89a19574d97dd86d423225b3ab3e82
parent ba2eb648
Loading
Loading
Loading
Loading
+14 −2
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.systemui.wmshell;
import static android.os.Process.THREAD_PRIORITY_DISPLAY;

import android.animation.AnimationHandler;
import android.app.ActivityTaskManager;
import android.app.IActivityManager;
import android.content.Context;
import android.content.pm.LauncherApps;
@@ -71,6 +72,7 @@ import com.android.wm.shell.pip.PipUiEventLogger;
import com.android.wm.shell.pip.phone.PipAppOpsListener;
import com.android.wm.shell.pip.phone.PipTouchHandler;
import com.android.wm.shell.splitscreen.SplitScreen;
import com.android.wm.shell.splitscreen.SplitScreenController;
import com.android.wm.shell.transition.Transitions;

import java.util.Optional;
@@ -310,8 +312,18 @@ public abstract class WMShellBaseModule {
    @BindsOptionalOf
    abstract LegacySplitScreen optionalLegacySplitScreen();

    @BindsOptionalOf
    abstract SplitScreen optionalSplitScreen();
    @WMSingleton
    @Provides
    static Optional<SplitScreen> provideSplitScreen(ShellTaskOrganizer shellTaskOrganizer,
            SyncTransactionQueue syncQueue, Context context,
            RootTaskDisplayAreaOrganizer rootTaskDisplayAreaOrganizer) {
        if (ActivityTaskManager.supportsSplitScreenMultiWindow(context)) {
            return Optional.of(new SplitScreenController(shellTaskOrganizer, syncQueue, context,
                    rootTaskDisplayAreaOrganizer));
        } else {
            return Optional.empty();
        }
    }

    @BindsOptionalOf
    abstract AppPairs optionalAppPairs();
+1 −9
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.systemui.wmshell;

import android.animation.AnimationHandler;
import android.app.ActivityTaskManager;
import android.content.Context;
import android.view.IWindowManager;

@@ -87,15 +88,6 @@ public class WMShellModule {
                taskStackListener, transitions, mainExecutor, sfVsyncAnimationHandler);
    }

    @WMSingleton
    @Provides
    static SplitScreen provideSplitScreen(ShellTaskOrganizer shellTaskOrganizer,
            SyncTransactionQueue syncQueue, Context context,
            RootTaskDisplayAreaOrganizer rootTaskDisplayAreaOrganizer) {
        return new SplitScreenController(shellTaskOrganizer, syncQueue, context,
                rootTaskDisplayAreaOrganizer);
    }

    @WMSingleton
    @Provides
    static AppPairs provideAppPairs(ShellTaskOrganizer shellTaskOrganizer,