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
This commit is contained in:
Wale Ogunwale
2021-01-14 07:29:26 -08:00
parent ba2eb648db
commit 884719cd66
2 changed files with 15 additions and 11 deletions

View File

@@ -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();

View File

@@ -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,