From 8386f4365fa45d9917eb234837bbf83d38f77c6a Mon Sep 17 00:00:00 2001 From: Garfield Tan Date: Thu, 18 Nov 2021 12:11:05 -0800 Subject: [PATCH] Make FullscreenTaskListener overridable Bug: 207005150 Test: Device boots and app launches. Change-Id: Ic95bb10cb4f2265e0fa21cd867e05975a46373c2 --- .../wm/shell/dagger/WMShellBaseModule.java | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java index d239e56bfd696..287d0fb66aa90 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java @@ -244,15 +244,24 @@ public abstract class WMShellBaseModule { // Fullscreen // + // Workaround for dynamic overriding with a default implementation, see {@link DynamicOverride} + @BindsOptionalOf + @DynamicOverride + abstract FullscreenTaskListener optionalFullscreenTaskListener(); + @WMSingleton @Provides static FullscreenTaskListener provideFullscreenTaskListener( + @DynamicOverride Optional fullscreenTaskListener, SyncTransactionQueue syncQueue, Optional optionalFullscreenUnfoldController, - Optional recentTasksOptional - ) { - return new FullscreenTaskListener(syncQueue, optionalFullscreenUnfoldController, - recentTasksOptional); + Optional recentTasksOptional) { + if (fullscreenTaskListener.isPresent()) { + return fullscreenTaskListener.get(); + } else { + return new FullscreenTaskListener(syncQueue, optionalFullscreenUnfoldController, + recentTasksOptional); + } } //