Loading libs/WindowManager/Shell/src/com/android/wm/shell/ShellInitImpl.java +5 −5 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import com.android.wm.shell.common.annotations.ExternalThread; import com.android.wm.shell.draganddrop.DragAndDropController; import com.android.wm.shell.freeform.FreeformTaskListener; import com.android.wm.shell.fullscreen.FullscreenTaskListener; import com.android.wm.shell.fullscreen.FullscreenUnfoldController; import com.android.wm.shell.kidsmode.KidsModeTaskOrganizer; import com.android.wm.shell.pip.phone.PipTouchHandler; import com.android.wm.shell.recents.RecentTasksController; Loading @@ -34,7 +35,6 @@ import com.android.wm.shell.splitscreen.SplitScreenController; import com.android.wm.shell.startingsurface.StartingWindowController; import com.android.wm.shell.transition.DefaultMixedHandler; import com.android.wm.shell.transition.Transitions; import com.android.wm.shell.unfold.UnfoldAnimationController; import com.android.wm.shell.unfold.UnfoldTransitionHandler; import java.util.Optional; Loading @@ -55,7 +55,7 @@ public class ShellInitImpl { private final Optional<SplitScreenController> mSplitScreenOptional; private final Optional<PipTouchHandler> mPipTouchHandlerOptional; private final FullscreenTaskListener mFullscreenTaskListener; private final Optional<UnfoldAnimationController> mUnfoldController; private final Optional<FullscreenUnfoldController> mFullscreenUnfoldController; private final Optional<UnfoldTransitionHandler> mUnfoldTransitionHandler; private final Optional<FreeformTaskListener> mFreeformTaskListenerOptional; private final ShellExecutor mMainExecutor; Loading @@ -76,7 +76,7 @@ public class ShellInitImpl { Optional<SplitScreenController> splitScreenOptional, Optional<PipTouchHandler> pipTouchHandlerOptional, FullscreenTaskListener fullscreenTaskListener, Optional<UnfoldAnimationController> unfoldAnimationController, Optional<FullscreenUnfoldController> fullscreenUnfoldTransitionController, Optional<UnfoldTransitionHandler> unfoldTransitionHandler, Optional<FreeformTaskListener> freeformTaskListenerOptional, Optional<RecentTasksController> recentTasks, Loading @@ -93,7 +93,7 @@ public class ShellInitImpl { mSplitScreenOptional = splitScreenOptional; mFullscreenTaskListener = fullscreenTaskListener; mPipTouchHandlerOptional = pipTouchHandlerOptional; mUnfoldController = unfoldAnimationController; mFullscreenUnfoldController = fullscreenUnfoldTransitionController; mUnfoldTransitionHandler = unfoldTransitionHandler; mFreeformTaskListenerOptional = freeformTaskListenerOptional; mRecentTasks = recentTasks; Loading Loading @@ -146,7 +146,7 @@ public class ShellInitImpl { mShellTaskOrganizer.addListenerForType( f, ShellTaskOrganizer.TASK_LISTENER_TYPE_FREEFORM)); mUnfoldController.ifPresent(UnfoldAnimationController::init); mFullscreenUnfoldController.ifPresent(FullscreenUnfoldController::init); mRecentTasks.ifPresent(RecentTasksController::init); // Initialize kids mode task organizer Loading libs/WindowManager/Shell/src/com/android/wm/shell/ShellTaskOrganizer.java +1 −22 Original line number Diff line number Diff line Loading @@ -55,7 +55,6 @@ import com.android.wm.shell.common.ShellExecutor; import com.android.wm.shell.compatui.CompatUIController; import com.android.wm.shell.recents.RecentTasksController; import com.android.wm.shell.startingsurface.StartingWindowController; import com.android.wm.shell.unfold.UnfoldAnimationController; import java.io.PrintWriter; import java.util.ArrayList; Loading Loading @@ -179,42 +178,34 @@ public class ShellTaskOrganizer extends TaskOrganizer implements @Nullable private final Optional<RecentTasksController> mRecentTasks; @Nullable private final UnfoldAnimationController mUnfoldAnimationController; @Nullable private RunningTaskInfo mLastFocusedTaskInfo; public ShellTaskOrganizer(ShellExecutor mainExecutor, Context context) { this(null /* taskOrganizerController */, mainExecutor, context, null /* compatUI */, Optional.empty() /* unfoldAnimationController */, Optional.empty() /* recentTasksController */); } public ShellTaskOrganizer(ShellExecutor mainExecutor, Context context, @Nullable CompatUIController compatUI) { this(null /* taskOrganizerController */, mainExecutor, context, compatUI, Optional.empty() /* unfoldAnimationController */, Optional.empty() /* recentTasksController */); } public ShellTaskOrganizer(ShellExecutor mainExecutor, Context context, @Nullable CompatUIController compatUI, Optional<UnfoldAnimationController> unfoldAnimationController, Optional<RecentTasksController> recentTasks) { this(null /* taskOrganizerController */, mainExecutor, context, compatUI, unfoldAnimationController, recentTasks); recentTasks); } @VisibleForTesting protected ShellTaskOrganizer(ITaskOrganizerController taskOrganizerController, ShellExecutor mainExecutor, Context context, @Nullable CompatUIController compatUI, Optional<UnfoldAnimationController> unfoldAnimationController, Optional<RecentTasksController> recentTasks) { super(taskOrganizerController, mainExecutor); mCompatUI = compatUI; mRecentTasks = recentTasks; mUnfoldAnimationController = unfoldAnimationController.orElse(null); if (compatUI != null) { compatUI.setCompatUICallback(this); } Loading Loading @@ -446,9 +437,6 @@ public class ShellTaskOrganizer extends TaskOrganizer implements if (listener != null) { listener.onTaskAppeared(info.getTaskInfo(), info.getLeash()); } if (mUnfoldAnimationController != null) { mUnfoldAnimationController.onTaskAppeared(info.getTaskInfo(), info.getLeash()); } notifyLocusVisibilityIfNeeded(info.getTaskInfo()); notifyCompatUI(info.getTaskInfo(), listener); } Loading @@ -470,11 +458,6 @@ public class ShellTaskOrganizer extends TaskOrganizer implements public void onTaskInfoChanged(RunningTaskInfo taskInfo) { synchronized (mLock) { ProtoLog.v(WM_SHELL_TASK_ORG, "Task info changed taskId=%d", taskInfo.taskId); if (mUnfoldAnimationController != null) { mUnfoldAnimationController.onTaskInfoChanged(taskInfo); } final TaskAppearedInfo data = mTasks.get(taskInfo.taskId); final TaskListener oldListener = getTaskListener(data.getTaskInfo()); final TaskListener newListener = getTaskListener(taskInfo); Loading Loading @@ -524,10 +507,6 @@ public class ShellTaskOrganizer extends TaskOrganizer implements public void onTaskVanished(RunningTaskInfo taskInfo) { synchronized (mLock) { ProtoLog.v(WM_SHELL_TASK_ORG, "Task vanished taskId=%d", taskInfo.taskId); if (mUnfoldAnimationController != null) { mUnfoldAnimationController.onTaskVanished(taskInfo); } final int taskId = taskInfo.taskId; final TaskListener listener = getTaskListener(mTasks.get(taskId).getTaskInfo()); mTasks.remove(taskId); Loading libs/WindowManager/Shell/src/com/android/wm/shell/common/split/SplitLayout.java +0 −5 Original line number Diff line number Diff line Loading @@ -178,11 +178,6 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange return outBounds; } /** Gets root bounds of the whole split layout */ public Rect getRootBounds() { return new Rect(mRootBounds); } /** Gets bounds of divider window with screen based coordinate. */ public Rect getDividerBounds() { return new Rect(mDividerBounds); Loading libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java +11 −14 Original line number Diff line number Diff line Loading @@ -64,6 +64,7 @@ import com.android.wm.shell.draganddrop.DragAndDrop; import com.android.wm.shell.draganddrop.DragAndDropController; import com.android.wm.shell.freeform.FreeformTaskListener; import com.android.wm.shell.fullscreen.FullscreenTaskListener; import com.android.wm.shell.fullscreen.FullscreenUnfoldController; import com.android.wm.shell.hidedisplaycutout.HideDisplayCutout; import com.android.wm.shell.hidedisplaycutout.HideDisplayCutoutController; import com.android.wm.shell.kidsmode.KidsModeTaskOrganizer; Loading @@ -87,7 +88,6 @@ import com.android.wm.shell.tasksurfacehelper.TaskSurfaceHelperController; import com.android.wm.shell.transition.ShellTransitions; import com.android.wm.shell.transition.Transitions; import com.android.wm.shell.unfold.ShellUnfoldProgressProvider; import com.android.wm.shell.unfold.UnfoldAnimationController; import com.android.wm.shell.unfold.UnfoldTransitionHandler; import java.util.Optional; Loading Loading @@ -176,11 +176,9 @@ public abstract class WMShellBaseModule { static ShellTaskOrganizer provideShellTaskOrganizer(@ShellMainThread ShellExecutor mainExecutor, Context context, CompatUIController compatUI, Optional<UnfoldAnimationController> unfoldAnimationController, Optional<RecentTasksController> recentTasksOptional ) { return new ShellTaskOrganizer(mainExecutor, context, compatUI, unfoldAnimationController, recentTasksOptional); return new ShellTaskOrganizer(mainExecutor, context, compatUI, recentTasksOptional); } @WMSingleton Loading @@ -192,12 +190,10 @@ public abstract class WMShellBaseModule { SyncTransactionQueue syncTransactionQueue, DisplayController displayController, DisplayInsetsController displayInsetsController, Optional<UnfoldAnimationController> unfoldAnimationController, Optional<RecentTasksController> recentTasksOptional ) { return new KidsModeTaskOrganizer(mainExecutor, mainHandler, context, syncTransactionQueue, displayController, displayInsetsController, unfoldAnimationController, recentTasksOptional); displayController, displayInsetsController, recentTasksOptional); } @WMSingleton Loading Loading @@ -294,11 +290,13 @@ public abstract class WMShellBaseModule { static FullscreenTaskListener provideFullscreenTaskListener( @DynamicOverride Optional<FullscreenTaskListener> fullscreenTaskListener, SyncTransactionQueue syncQueue, Optional<FullscreenUnfoldController> optionalFullscreenUnfoldController, Optional<RecentTasksController> recentTasksOptional) { if (fullscreenTaskListener.isPresent()) { return fullscreenTaskListener.get(); } else { return new FullscreenTaskListener(syncQueue, recentTasksOptional); return new FullscreenTaskListener(syncQueue, optionalFullscreenUnfoldController, recentTasksOptional); } } Loading @@ -312,13 +310,12 @@ public abstract class WMShellBaseModule { // Workaround for dynamic overriding with a default implementation, see {@link DynamicOverride} @BindsOptionalOf @DynamicOverride abstract UnfoldAnimationController optionalUnfoldController(); abstract FullscreenUnfoldController optionalFullscreenUnfoldController(); @WMSingleton @Provides static Optional<UnfoldAnimationController> provideUnfoldController( @DynamicOverride Lazy<Optional<UnfoldAnimationController>> fullscreenUnfoldController, static Optional<FullscreenUnfoldController> provideFullscreenUnfoldController( @DynamicOverride Lazy<Optional<FullscreenUnfoldController>> fullscreenUnfoldController, Optional<ShellUnfoldProgressProvider> progressProvider) { if (progressProvider.isPresent() && progressProvider.get() != ShellUnfoldProgressProvider.NO_PROVIDER) { Loading Loading @@ -643,7 +640,7 @@ public abstract class WMShellBaseModule { Optional<SplitScreenController> splitScreenOptional, Optional<PipTouchHandler> pipTouchHandlerOptional, FullscreenTaskListener fullscreenTaskListener, Optional<UnfoldAnimationController> unfoldAnimationController, Optional<FullscreenUnfoldController> appUnfoldTransitionController, Optional<UnfoldTransitionHandler> unfoldTransitionHandler, Optional<FreeformTaskListener> freeformTaskListener, Optional<RecentTasksController> recentTasksOptional, Loading @@ -660,7 +657,7 @@ public abstract class WMShellBaseModule { splitScreenOptional, pipTouchHandlerOptional, fullscreenTaskListener, unfoldAnimationController, appUnfoldTransitionController, unfoldTransitionHandler, freeformTaskListener, recentTasksOptional, Loading libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java +39 −57 Original line number Diff line number Diff line Loading @@ -45,6 +45,7 @@ import com.android.wm.shell.common.annotations.ShellBackgroundThread; import com.android.wm.shell.common.annotations.ShellMainThread; import com.android.wm.shell.draganddrop.DragAndDropController; import com.android.wm.shell.freeform.FreeformTaskListener; import com.android.wm.shell.fullscreen.FullscreenUnfoldController; import com.android.wm.shell.onehanded.OneHandedController; import com.android.wm.shell.pip.Pip; import com.android.wm.shell.pip.PipAnimationController; Loading @@ -67,22 +68,17 @@ import com.android.wm.shell.pip.phone.PipMotionHelper; import com.android.wm.shell.pip.phone.PipTouchHandler; import com.android.wm.shell.recents.RecentTasksController; import com.android.wm.shell.splitscreen.SplitScreenController; import com.android.wm.shell.splitscreen.StageTaskUnfoldController; import com.android.wm.shell.transition.Transitions; import com.android.wm.shell.unfold.UnfoldAnimationController; import com.android.wm.shell.unfold.ShellUnfoldProgressProvider; import com.android.wm.shell.unfold.UnfoldBackgroundController; import com.android.wm.shell.unfold.UnfoldTransitionHandler; import com.android.wm.shell.unfold.animation.FullscreenUnfoldTaskAnimator; import com.android.wm.shell.unfold.animation.SplitTaskUnfoldAnimator; import com.android.wm.shell.unfold.animation.UnfoldTaskAnimator; import com.android.wm.shell.unfold.qualifier.UnfoldTransition; import com.android.wm.shell.unfold.qualifier.UnfoldShellTransition; import java.util.ArrayList; import java.util.List; import java.util.Optional; import dagger.Binds; import javax.inject.Provider; import dagger.Lazy; import dagger.Module; import dagger.Provides; Loading @@ -96,7 +92,7 @@ import dagger.Provides; * dependencies should go into {@link WMShellBaseModule}. */ @Module(includes = WMShellBaseModule.class) public abstract class WMShellModule { public class WMShellModule { // // Bubbles Loading Loading @@ -177,11 +173,12 @@ public abstract class WMShellModule { DisplayImeController displayImeController, DisplayInsetsController displayInsetsController, Transitions transitions, TransactionPool transactionPool, IconProvider iconProvider, Optional<RecentTasksController> recentTasks) { Optional<RecentTasksController> recentTasks, Provider<Optional<StageTaskUnfoldController>> stageTaskUnfoldControllerProvider) { return new SplitScreenController(shellTaskOrganizer, syncQueue, context, rootTaskDisplayAreaOrganizer, mainExecutor, displayController, displayImeController, displayInsetsController, transitions, transactionPool, iconProvider, recentTasks); recentTasks, stageTaskUnfoldControllerProvider); } // Loading Loading @@ -336,77 +333,62 @@ public abstract class WMShellModule { // // Unfold transition // @WMSingleton @Provides @DynamicOverride static UnfoldAnimationController provideUnfoldAnimationController( static FullscreenUnfoldController provideFullscreenUnfoldController( Optional<ShellUnfoldProgressProvider> progressProvider, TransactionPool transactionPool, @UnfoldTransition SplitTaskUnfoldAnimator splitAnimator, FullscreenUnfoldTaskAnimator fullscreenAnimator, Lazy<Optional<UnfoldTransitionHandler>> unfoldTransitionHandler, Optional<UnfoldTransitionHandler> unfoldTransitionHandler, FullscreenUnfoldTaskAnimator fullscreenUnfoldTaskAnimator, UnfoldBackgroundController unfoldBackgroundController, @ShellMainThread ShellExecutor mainExecutor ) { final List<UnfoldTaskAnimator> animators = new ArrayList<>(); animators.add(splitAnimator); animators.add(fullscreenAnimator); return new UnfoldAnimationController( transactionPool, progressProvider.get(), animators, unfoldTransitionHandler, mainExecutor ); return new FullscreenUnfoldController(mainExecutor, unfoldBackgroundController, progressProvider.get(), unfoldTransitionHandler.get(), fullscreenUnfoldTaskAnimator); } @Provides static FullscreenUnfoldTaskAnimator provideFullscreenUnfoldTaskAnimator( Context context, UnfoldBackgroundController unfoldBackgroundController, DisplayInsetsController displayInsetsController ) { return new FullscreenUnfoldTaskAnimator(context, unfoldBackgroundController, displayInsetsController); } @Provides static SplitTaskUnfoldAnimator provideSplitTaskUnfoldAnimatorBase( Context context, UnfoldBackgroundController backgroundController, @ShellMainThread ShellExecutor executor, Lazy<Optional<SplitScreenController>> splitScreenOptional, DisplayInsetsController displayInsetsController ) { return new SplitTaskUnfoldAnimator(context, executor, splitScreenOptional, backgroundController, displayInsetsController); return new FullscreenUnfoldTaskAnimator(context, displayInsetsController); } @WMSingleton @UnfoldShellTransition @Binds abstract SplitTaskUnfoldAnimator provideShellSplitTaskUnfoldAnimator( SplitTaskUnfoldAnimator splitTaskUnfoldAnimator); @WMSingleton @UnfoldTransition @Binds abstract SplitTaskUnfoldAnimator provideSplitTaskUnfoldAnimator( SplitTaskUnfoldAnimator splitTaskUnfoldAnimator); @WMSingleton @Provides @DynamicOverride static UnfoldTransitionHandler provideUnfoldTransitionHandler( Optional<ShellUnfoldProgressProvider> progressProvider, FullscreenUnfoldTaskAnimator animator, @UnfoldShellTransition SplitTaskUnfoldAnimator unfoldAnimator, UnfoldBackgroundController backgroundController, TransactionPool transactionPool, Transitions transitions, @ShellMainThread ShellExecutor executor) { return new UnfoldTransitionHandler(progressProvider.get(), animator, unfoldAnimator, transactionPool, executor, transitions); transactionPool, backgroundController, executor, transitions); } @Provides static Optional<StageTaskUnfoldController> provideStageTaskUnfoldController( Optional<ShellUnfoldProgressProvider> progressProvider, Context context, TransactionPool transactionPool, Lazy<UnfoldBackgroundController> unfoldBackgroundController, DisplayInsetsController displayInsetsController, @ShellMainThread ShellExecutor mainExecutor ) { return progressProvider.map(shellUnfoldTransitionProgressProvider -> new StageTaskUnfoldController( context, transactionPool, shellUnfoldTransitionProgressProvider, displayInsetsController, unfoldBackgroundController.get(), mainExecutor )); } @WMSingleton Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/ShellInitImpl.java +5 −5 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ import com.android.wm.shell.common.annotations.ExternalThread; import com.android.wm.shell.draganddrop.DragAndDropController; import com.android.wm.shell.freeform.FreeformTaskListener; import com.android.wm.shell.fullscreen.FullscreenTaskListener; import com.android.wm.shell.fullscreen.FullscreenUnfoldController; import com.android.wm.shell.kidsmode.KidsModeTaskOrganizer; import com.android.wm.shell.pip.phone.PipTouchHandler; import com.android.wm.shell.recents.RecentTasksController; Loading @@ -34,7 +35,6 @@ import com.android.wm.shell.splitscreen.SplitScreenController; import com.android.wm.shell.startingsurface.StartingWindowController; import com.android.wm.shell.transition.DefaultMixedHandler; import com.android.wm.shell.transition.Transitions; import com.android.wm.shell.unfold.UnfoldAnimationController; import com.android.wm.shell.unfold.UnfoldTransitionHandler; import java.util.Optional; Loading @@ -55,7 +55,7 @@ public class ShellInitImpl { private final Optional<SplitScreenController> mSplitScreenOptional; private final Optional<PipTouchHandler> mPipTouchHandlerOptional; private final FullscreenTaskListener mFullscreenTaskListener; private final Optional<UnfoldAnimationController> mUnfoldController; private final Optional<FullscreenUnfoldController> mFullscreenUnfoldController; private final Optional<UnfoldTransitionHandler> mUnfoldTransitionHandler; private final Optional<FreeformTaskListener> mFreeformTaskListenerOptional; private final ShellExecutor mMainExecutor; Loading @@ -76,7 +76,7 @@ public class ShellInitImpl { Optional<SplitScreenController> splitScreenOptional, Optional<PipTouchHandler> pipTouchHandlerOptional, FullscreenTaskListener fullscreenTaskListener, Optional<UnfoldAnimationController> unfoldAnimationController, Optional<FullscreenUnfoldController> fullscreenUnfoldTransitionController, Optional<UnfoldTransitionHandler> unfoldTransitionHandler, Optional<FreeformTaskListener> freeformTaskListenerOptional, Optional<RecentTasksController> recentTasks, Loading @@ -93,7 +93,7 @@ public class ShellInitImpl { mSplitScreenOptional = splitScreenOptional; mFullscreenTaskListener = fullscreenTaskListener; mPipTouchHandlerOptional = pipTouchHandlerOptional; mUnfoldController = unfoldAnimationController; mFullscreenUnfoldController = fullscreenUnfoldTransitionController; mUnfoldTransitionHandler = unfoldTransitionHandler; mFreeformTaskListenerOptional = freeformTaskListenerOptional; mRecentTasks = recentTasks; Loading Loading @@ -146,7 +146,7 @@ public class ShellInitImpl { mShellTaskOrganizer.addListenerForType( f, ShellTaskOrganizer.TASK_LISTENER_TYPE_FREEFORM)); mUnfoldController.ifPresent(UnfoldAnimationController::init); mFullscreenUnfoldController.ifPresent(FullscreenUnfoldController::init); mRecentTasks.ifPresent(RecentTasksController::init); // Initialize kids mode task organizer Loading
libs/WindowManager/Shell/src/com/android/wm/shell/ShellTaskOrganizer.java +1 −22 Original line number Diff line number Diff line Loading @@ -55,7 +55,6 @@ import com.android.wm.shell.common.ShellExecutor; import com.android.wm.shell.compatui.CompatUIController; import com.android.wm.shell.recents.RecentTasksController; import com.android.wm.shell.startingsurface.StartingWindowController; import com.android.wm.shell.unfold.UnfoldAnimationController; import java.io.PrintWriter; import java.util.ArrayList; Loading Loading @@ -179,42 +178,34 @@ public class ShellTaskOrganizer extends TaskOrganizer implements @Nullable private final Optional<RecentTasksController> mRecentTasks; @Nullable private final UnfoldAnimationController mUnfoldAnimationController; @Nullable private RunningTaskInfo mLastFocusedTaskInfo; public ShellTaskOrganizer(ShellExecutor mainExecutor, Context context) { this(null /* taskOrganizerController */, mainExecutor, context, null /* compatUI */, Optional.empty() /* unfoldAnimationController */, Optional.empty() /* recentTasksController */); } public ShellTaskOrganizer(ShellExecutor mainExecutor, Context context, @Nullable CompatUIController compatUI) { this(null /* taskOrganizerController */, mainExecutor, context, compatUI, Optional.empty() /* unfoldAnimationController */, Optional.empty() /* recentTasksController */); } public ShellTaskOrganizer(ShellExecutor mainExecutor, Context context, @Nullable CompatUIController compatUI, Optional<UnfoldAnimationController> unfoldAnimationController, Optional<RecentTasksController> recentTasks) { this(null /* taskOrganizerController */, mainExecutor, context, compatUI, unfoldAnimationController, recentTasks); recentTasks); } @VisibleForTesting protected ShellTaskOrganizer(ITaskOrganizerController taskOrganizerController, ShellExecutor mainExecutor, Context context, @Nullable CompatUIController compatUI, Optional<UnfoldAnimationController> unfoldAnimationController, Optional<RecentTasksController> recentTasks) { super(taskOrganizerController, mainExecutor); mCompatUI = compatUI; mRecentTasks = recentTasks; mUnfoldAnimationController = unfoldAnimationController.orElse(null); if (compatUI != null) { compatUI.setCompatUICallback(this); } Loading Loading @@ -446,9 +437,6 @@ public class ShellTaskOrganizer extends TaskOrganizer implements if (listener != null) { listener.onTaskAppeared(info.getTaskInfo(), info.getLeash()); } if (mUnfoldAnimationController != null) { mUnfoldAnimationController.onTaskAppeared(info.getTaskInfo(), info.getLeash()); } notifyLocusVisibilityIfNeeded(info.getTaskInfo()); notifyCompatUI(info.getTaskInfo(), listener); } Loading @@ -470,11 +458,6 @@ public class ShellTaskOrganizer extends TaskOrganizer implements public void onTaskInfoChanged(RunningTaskInfo taskInfo) { synchronized (mLock) { ProtoLog.v(WM_SHELL_TASK_ORG, "Task info changed taskId=%d", taskInfo.taskId); if (mUnfoldAnimationController != null) { mUnfoldAnimationController.onTaskInfoChanged(taskInfo); } final TaskAppearedInfo data = mTasks.get(taskInfo.taskId); final TaskListener oldListener = getTaskListener(data.getTaskInfo()); final TaskListener newListener = getTaskListener(taskInfo); Loading Loading @@ -524,10 +507,6 @@ public class ShellTaskOrganizer extends TaskOrganizer implements public void onTaskVanished(RunningTaskInfo taskInfo) { synchronized (mLock) { ProtoLog.v(WM_SHELL_TASK_ORG, "Task vanished taskId=%d", taskInfo.taskId); if (mUnfoldAnimationController != null) { mUnfoldAnimationController.onTaskVanished(taskInfo); } final int taskId = taskInfo.taskId; final TaskListener listener = getTaskListener(mTasks.get(taskId).getTaskInfo()); mTasks.remove(taskId); Loading
libs/WindowManager/Shell/src/com/android/wm/shell/common/split/SplitLayout.java +0 −5 Original line number Diff line number Diff line Loading @@ -178,11 +178,6 @@ public final class SplitLayout implements DisplayInsetsController.OnInsetsChange return outBounds; } /** Gets root bounds of the whole split layout */ public Rect getRootBounds() { return new Rect(mRootBounds); } /** Gets bounds of divider window with screen based coordinate. */ public Rect getDividerBounds() { return new Rect(mDividerBounds); Loading
libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java +11 −14 Original line number Diff line number Diff line Loading @@ -64,6 +64,7 @@ import com.android.wm.shell.draganddrop.DragAndDrop; import com.android.wm.shell.draganddrop.DragAndDropController; import com.android.wm.shell.freeform.FreeformTaskListener; import com.android.wm.shell.fullscreen.FullscreenTaskListener; import com.android.wm.shell.fullscreen.FullscreenUnfoldController; import com.android.wm.shell.hidedisplaycutout.HideDisplayCutout; import com.android.wm.shell.hidedisplaycutout.HideDisplayCutoutController; import com.android.wm.shell.kidsmode.KidsModeTaskOrganizer; Loading @@ -87,7 +88,6 @@ import com.android.wm.shell.tasksurfacehelper.TaskSurfaceHelperController; import com.android.wm.shell.transition.ShellTransitions; import com.android.wm.shell.transition.Transitions; import com.android.wm.shell.unfold.ShellUnfoldProgressProvider; import com.android.wm.shell.unfold.UnfoldAnimationController; import com.android.wm.shell.unfold.UnfoldTransitionHandler; import java.util.Optional; Loading Loading @@ -176,11 +176,9 @@ public abstract class WMShellBaseModule { static ShellTaskOrganizer provideShellTaskOrganizer(@ShellMainThread ShellExecutor mainExecutor, Context context, CompatUIController compatUI, Optional<UnfoldAnimationController> unfoldAnimationController, Optional<RecentTasksController> recentTasksOptional ) { return new ShellTaskOrganizer(mainExecutor, context, compatUI, unfoldAnimationController, recentTasksOptional); return new ShellTaskOrganizer(mainExecutor, context, compatUI, recentTasksOptional); } @WMSingleton Loading @@ -192,12 +190,10 @@ public abstract class WMShellBaseModule { SyncTransactionQueue syncTransactionQueue, DisplayController displayController, DisplayInsetsController displayInsetsController, Optional<UnfoldAnimationController> unfoldAnimationController, Optional<RecentTasksController> recentTasksOptional ) { return new KidsModeTaskOrganizer(mainExecutor, mainHandler, context, syncTransactionQueue, displayController, displayInsetsController, unfoldAnimationController, recentTasksOptional); displayController, displayInsetsController, recentTasksOptional); } @WMSingleton Loading Loading @@ -294,11 +290,13 @@ public abstract class WMShellBaseModule { static FullscreenTaskListener provideFullscreenTaskListener( @DynamicOverride Optional<FullscreenTaskListener> fullscreenTaskListener, SyncTransactionQueue syncQueue, Optional<FullscreenUnfoldController> optionalFullscreenUnfoldController, Optional<RecentTasksController> recentTasksOptional) { if (fullscreenTaskListener.isPresent()) { return fullscreenTaskListener.get(); } else { return new FullscreenTaskListener(syncQueue, recentTasksOptional); return new FullscreenTaskListener(syncQueue, optionalFullscreenUnfoldController, recentTasksOptional); } } Loading @@ -312,13 +310,12 @@ public abstract class WMShellBaseModule { // Workaround for dynamic overriding with a default implementation, see {@link DynamicOverride} @BindsOptionalOf @DynamicOverride abstract UnfoldAnimationController optionalUnfoldController(); abstract FullscreenUnfoldController optionalFullscreenUnfoldController(); @WMSingleton @Provides static Optional<UnfoldAnimationController> provideUnfoldController( @DynamicOverride Lazy<Optional<UnfoldAnimationController>> fullscreenUnfoldController, static Optional<FullscreenUnfoldController> provideFullscreenUnfoldController( @DynamicOverride Lazy<Optional<FullscreenUnfoldController>> fullscreenUnfoldController, Optional<ShellUnfoldProgressProvider> progressProvider) { if (progressProvider.isPresent() && progressProvider.get() != ShellUnfoldProgressProvider.NO_PROVIDER) { Loading Loading @@ -643,7 +640,7 @@ public abstract class WMShellBaseModule { Optional<SplitScreenController> splitScreenOptional, Optional<PipTouchHandler> pipTouchHandlerOptional, FullscreenTaskListener fullscreenTaskListener, Optional<UnfoldAnimationController> unfoldAnimationController, Optional<FullscreenUnfoldController> appUnfoldTransitionController, Optional<UnfoldTransitionHandler> unfoldTransitionHandler, Optional<FreeformTaskListener> freeformTaskListener, Optional<RecentTasksController> recentTasksOptional, Loading @@ -660,7 +657,7 @@ public abstract class WMShellBaseModule { splitScreenOptional, pipTouchHandlerOptional, fullscreenTaskListener, unfoldAnimationController, appUnfoldTransitionController, unfoldTransitionHandler, freeformTaskListener, recentTasksOptional, Loading
libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java +39 −57 Original line number Diff line number Diff line Loading @@ -45,6 +45,7 @@ import com.android.wm.shell.common.annotations.ShellBackgroundThread; import com.android.wm.shell.common.annotations.ShellMainThread; import com.android.wm.shell.draganddrop.DragAndDropController; import com.android.wm.shell.freeform.FreeformTaskListener; import com.android.wm.shell.fullscreen.FullscreenUnfoldController; import com.android.wm.shell.onehanded.OneHandedController; import com.android.wm.shell.pip.Pip; import com.android.wm.shell.pip.PipAnimationController; Loading @@ -67,22 +68,17 @@ import com.android.wm.shell.pip.phone.PipMotionHelper; import com.android.wm.shell.pip.phone.PipTouchHandler; import com.android.wm.shell.recents.RecentTasksController; import com.android.wm.shell.splitscreen.SplitScreenController; import com.android.wm.shell.splitscreen.StageTaskUnfoldController; import com.android.wm.shell.transition.Transitions; import com.android.wm.shell.unfold.UnfoldAnimationController; import com.android.wm.shell.unfold.ShellUnfoldProgressProvider; import com.android.wm.shell.unfold.UnfoldBackgroundController; import com.android.wm.shell.unfold.UnfoldTransitionHandler; import com.android.wm.shell.unfold.animation.FullscreenUnfoldTaskAnimator; import com.android.wm.shell.unfold.animation.SplitTaskUnfoldAnimator; import com.android.wm.shell.unfold.animation.UnfoldTaskAnimator; import com.android.wm.shell.unfold.qualifier.UnfoldTransition; import com.android.wm.shell.unfold.qualifier.UnfoldShellTransition; import java.util.ArrayList; import java.util.List; import java.util.Optional; import dagger.Binds; import javax.inject.Provider; import dagger.Lazy; import dagger.Module; import dagger.Provides; Loading @@ -96,7 +92,7 @@ import dagger.Provides; * dependencies should go into {@link WMShellBaseModule}. */ @Module(includes = WMShellBaseModule.class) public abstract class WMShellModule { public class WMShellModule { // // Bubbles Loading Loading @@ -177,11 +173,12 @@ public abstract class WMShellModule { DisplayImeController displayImeController, DisplayInsetsController displayInsetsController, Transitions transitions, TransactionPool transactionPool, IconProvider iconProvider, Optional<RecentTasksController> recentTasks) { Optional<RecentTasksController> recentTasks, Provider<Optional<StageTaskUnfoldController>> stageTaskUnfoldControllerProvider) { return new SplitScreenController(shellTaskOrganizer, syncQueue, context, rootTaskDisplayAreaOrganizer, mainExecutor, displayController, displayImeController, displayInsetsController, transitions, transactionPool, iconProvider, recentTasks); recentTasks, stageTaskUnfoldControllerProvider); } // Loading Loading @@ -336,77 +333,62 @@ public abstract class WMShellModule { // // Unfold transition // @WMSingleton @Provides @DynamicOverride static UnfoldAnimationController provideUnfoldAnimationController( static FullscreenUnfoldController provideFullscreenUnfoldController( Optional<ShellUnfoldProgressProvider> progressProvider, TransactionPool transactionPool, @UnfoldTransition SplitTaskUnfoldAnimator splitAnimator, FullscreenUnfoldTaskAnimator fullscreenAnimator, Lazy<Optional<UnfoldTransitionHandler>> unfoldTransitionHandler, Optional<UnfoldTransitionHandler> unfoldTransitionHandler, FullscreenUnfoldTaskAnimator fullscreenUnfoldTaskAnimator, UnfoldBackgroundController unfoldBackgroundController, @ShellMainThread ShellExecutor mainExecutor ) { final List<UnfoldTaskAnimator> animators = new ArrayList<>(); animators.add(splitAnimator); animators.add(fullscreenAnimator); return new UnfoldAnimationController( transactionPool, progressProvider.get(), animators, unfoldTransitionHandler, mainExecutor ); return new FullscreenUnfoldController(mainExecutor, unfoldBackgroundController, progressProvider.get(), unfoldTransitionHandler.get(), fullscreenUnfoldTaskAnimator); } @Provides static FullscreenUnfoldTaskAnimator provideFullscreenUnfoldTaskAnimator( Context context, UnfoldBackgroundController unfoldBackgroundController, DisplayInsetsController displayInsetsController ) { return new FullscreenUnfoldTaskAnimator(context, unfoldBackgroundController, displayInsetsController); } @Provides static SplitTaskUnfoldAnimator provideSplitTaskUnfoldAnimatorBase( Context context, UnfoldBackgroundController backgroundController, @ShellMainThread ShellExecutor executor, Lazy<Optional<SplitScreenController>> splitScreenOptional, DisplayInsetsController displayInsetsController ) { return new SplitTaskUnfoldAnimator(context, executor, splitScreenOptional, backgroundController, displayInsetsController); return new FullscreenUnfoldTaskAnimator(context, displayInsetsController); } @WMSingleton @UnfoldShellTransition @Binds abstract SplitTaskUnfoldAnimator provideShellSplitTaskUnfoldAnimator( SplitTaskUnfoldAnimator splitTaskUnfoldAnimator); @WMSingleton @UnfoldTransition @Binds abstract SplitTaskUnfoldAnimator provideSplitTaskUnfoldAnimator( SplitTaskUnfoldAnimator splitTaskUnfoldAnimator); @WMSingleton @Provides @DynamicOverride static UnfoldTransitionHandler provideUnfoldTransitionHandler( Optional<ShellUnfoldProgressProvider> progressProvider, FullscreenUnfoldTaskAnimator animator, @UnfoldShellTransition SplitTaskUnfoldAnimator unfoldAnimator, UnfoldBackgroundController backgroundController, TransactionPool transactionPool, Transitions transitions, @ShellMainThread ShellExecutor executor) { return new UnfoldTransitionHandler(progressProvider.get(), animator, unfoldAnimator, transactionPool, executor, transitions); transactionPool, backgroundController, executor, transitions); } @Provides static Optional<StageTaskUnfoldController> provideStageTaskUnfoldController( Optional<ShellUnfoldProgressProvider> progressProvider, Context context, TransactionPool transactionPool, Lazy<UnfoldBackgroundController> unfoldBackgroundController, DisplayInsetsController displayInsetsController, @ShellMainThread ShellExecutor mainExecutor ) { return progressProvider.map(shellUnfoldTransitionProgressProvider -> new StageTaskUnfoldController( context, transactionPool, shellUnfoldTransitionProgressProvider, displayInsetsController, unfoldBackgroundController.get(), mainExecutor )); } @WMSingleton Loading