Loading libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java +5 −0 Original line number Diff line number Diff line Loading @@ -82,6 +82,7 @@ import com.android.wm.shell.pip.PipUiEventLogger; import com.android.wm.shell.pip.phone.PipTouchHandler; import com.android.wm.shell.recents.RecentTasks; import com.android.wm.shell.recents.RecentTasksController; import com.android.wm.shell.recents.RecentsTransitionHandler; import com.android.wm.shell.splitscreen.SplitScreen; import com.android.wm.shell.splitscreen.SplitScreenController; import com.android.wm.shell.startingsurface.StartingSurface; Loading Loading @@ -520,6 +521,9 @@ public abstract class WMShellBaseModule { desktopModeTaskRepository, mainExecutor)); } @BindsOptionalOf abstract RecentsTransitionHandler optionalRecentsTransitionHandler(); // // Shell transitions // Loading Loading @@ -803,6 +807,7 @@ public abstract class WMShellBaseModule { Optional<UnfoldTransitionHandler> unfoldTransitionHandler, Optional<FreeformComponents> freeformComponents, Optional<RecentTasksController> recentTasksOptional, Optional<RecentsTransitionHandler> recentsTransitionHandlerOptional, Optional<OneHandedController> oneHandedControllerOptional, Optional<HideDisplayCutoutController> hideDisplayCutoutControllerOptional, Optional<ActivityEmbeddingController> activityEmbeddingOptional, Loading libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java +13 −1 Original line number Diff line number Diff line Loading @@ -83,6 +83,7 @@ import com.android.wm.shell.pip.phone.PipMotionHelper; import com.android.wm.shell.pip.phone.PipSizeSpecHandler; import com.android.wm.shell.pip.phone.PipTouchHandler; import com.android.wm.shell.recents.RecentTasksController; import com.android.wm.shell.recents.RecentsTransitionHandler; import com.android.wm.shell.splitscreen.SplitScreenController; import com.android.wm.shell.sysui.ShellCommandHandler; import com.android.wm.shell.sysui.ShellController; Loading Loading @@ -528,9 +529,20 @@ public abstract class WMShellModule { ShellInit shellInit, Optional<SplitScreenController> splitScreenOptional, Optional<PipTouchHandler> pipTouchHandlerOptional, Optional<RecentsTransitionHandler> recentsTransitionHandler, Transitions transitions) { return new DefaultMixedHandler(shellInit, transitions, splitScreenOptional, pipTouchHandlerOptional); pipTouchHandlerOptional, recentsTransitionHandler); } @WMSingleton @Provides static RecentsTransitionHandler provideRecentsTransitionHandler( ShellInit shellInit, Transitions transitions, Optional<RecentTasksController> recentTasksController) { return new RecentsTransitionHandler(shellInit, transitions, recentTasksController.orElse(null)); } // Loading libs/WindowManager/Shell/src/com/android/wm/shell/recents/IRecentTasks.aidl +11 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,11 @@ package com.android.wm.shell.recents; import android.app.ActivityManager.RunningTaskInfo; import android.app.IApplicationThread; import android.app.PendingIntent; import android.content.Intent; import android.os.Bundle; import android.view.IRecentsAnimationRunner; import com.android.wm.shell.recents.IRecentTasksListener; import com.android.wm.shell.util.GroupedRecentTaskInfo; Loading Loading @@ -45,4 +50,10 @@ interface IRecentTasks { * Gets the set of running tasks. */ RunningTaskInfo[] getRunningTasks(int maxNum) = 4; /** * Starts a recents transition. */ oneway void startRecentsTransition(in PendingIntent intent, in Intent fillIn, in Bundle options, IApplicationThread appThread, IRecentsAnimationRunner listener) = 5; } libs/WindowManager/Shell/src/com/android/wm/shell/recents/RecentTasksController.java +24 −1 Original line number Diff line number Diff line Loading @@ -24,13 +24,18 @@ import static com.android.wm.shell.sysui.ShellSharedConstants.KEY_EXTRA_SHELL_RE import android.app.ActivityManager; import android.app.ActivityTaskManager; import android.app.IApplicationThread; import android.app.PendingIntent; import android.app.TaskInfo; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.os.RemoteException; import android.util.Slog; import android.util.SparseArray; import android.util.SparseIntArray; import android.view.IRecentsAnimationRunner; import androidx.annotation.BinderThread; import androidx.annotation.NonNull; Loading Loading @@ -79,6 +84,7 @@ public class RecentTasksController implements TaskStackListenerCallback, private final TaskStackListenerImpl mTaskStackListener; private final RecentTasksImpl mImpl = new RecentTasksImpl(); private final ActivityTaskManager mActivityTaskManager; private RecentsTransitionHandler mTransitionHandler = null; private IRecentTasksListener mListener; private final boolean mIsDesktopMode; Loading Loading @@ -150,6 +156,10 @@ public class RecentTasksController implements TaskStackListenerCallback, mDesktopModeTaskRepository.ifPresent(it -> it.addActiveTaskListener(this)); } void setTransitionHandler(RecentsTransitionHandler handler) { mTransitionHandler = handler; } /** * Adds a split pair. This call does not validate the taskIds, only that they are not the same. */ Loading Loading @@ -492,5 +502,18 @@ public class RecentTasksController implements TaskStackListenerCallback, true /* blocking */); return tasks[0]; } @Override public void startRecentsTransition(PendingIntent intent, Intent fillIn, Bundle options, IApplicationThread appThread, IRecentsAnimationRunner listener) { if (mController.mTransitionHandler == null) { Slog.e(TAG, "Used shell-transitions startRecentsTransition without" + " shell-transitions"); return; } executeRemoteCallWithTaskPermission(mController, "startRecentsTransition", (controller) -> controller.mTransitionHandler.startRecentsTransition( intent, fillIn, options, appThread, listener)); } } } libs/WindowManager/Shell/src/com/android/wm/shell/recents/RecentsTransitionHandler.java 0 → 100644 +759 −0 File added.Preview size limit exceeded, changes collapsed. Show changes Loading
libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellBaseModule.java +5 −0 Original line number Diff line number Diff line Loading @@ -82,6 +82,7 @@ import com.android.wm.shell.pip.PipUiEventLogger; import com.android.wm.shell.pip.phone.PipTouchHandler; import com.android.wm.shell.recents.RecentTasks; import com.android.wm.shell.recents.RecentTasksController; import com.android.wm.shell.recents.RecentsTransitionHandler; import com.android.wm.shell.splitscreen.SplitScreen; import com.android.wm.shell.splitscreen.SplitScreenController; import com.android.wm.shell.startingsurface.StartingSurface; Loading Loading @@ -520,6 +521,9 @@ public abstract class WMShellBaseModule { desktopModeTaskRepository, mainExecutor)); } @BindsOptionalOf abstract RecentsTransitionHandler optionalRecentsTransitionHandler(); // // Shell transitions // Loading Loading @@ -803,6 +807,7 @@ public abstract class WMShellBaseModule { Optional<UnfoldTransitionHandler> unfoldTransitionHandler, Optional<FreeformComponents> freeformComponents, Optional<RecentTasksController> recentTasksOptional, Optional<RecentsTransitionHandler> recentsTransitionHandlerOptional, Optional<OneHandedController> oneHandedControllerOptional, Optional<HideDisplayCutoutController> hideDisplayCutoutControllerOptional, Optional<ActivityEmbeddingController> activityEmbeddingOptional, Loading
libs/WindowManager/Shell/src/com/android/wm/shell/dagger/WMShellModule.java +13 −1 Original line number Diff line number Diff line Loading @@ -83,6 +83,7 @@ import com.android.wm.shell.pip.phone.PipMotionHelper; import com.android.wm.shell.pip.phone.PipSizeSpecHandler; import com.android.wm.shell.pip.phone.PipTouchHandler; import com.android.wm.shell.recents.RecentTasksController; import com.android.wm.shell.recents.RecentsTransitionHandler; import com.android.wm.shell.splitscreen.SplitScreenController; import com.android.wm.shell.sysui.ShellCommandHandler; import com.android.wm.shell.sysui.ShellController; Loading Loading @@ -528,9 +529,20 @@ public abstract class WMShellModule { ShellInit shellInit, Optional<SplitScreenController> splitScreenOptional, Optional<PipTouchHandler> pipTouchHandlerOptional, Optional<RecentsTransitionHandler> recentsTransitionHandler, Transitions transitions) { return new DefaultMixedHandler(shellInit, transitions, splitScreenOptional, pipTouchHandlerOptional); pipTouchHandlerOptional, recentsTransitionHandler); } @WMSingleton @Provides static RecentsTransitionHandler provideRecentsTransitionHandler( ShellInit shellInit, Transitions transitions, Optional<RecentTasksController> recentTasksController) { return new RecentsTransitionHandler(shellInit, transitions, recentTasksController.orElse(null)); } // Loading
libs/WindowManager/Shell/src/com/android/wm/shell/recents/IRecentTasks.aidl +11 −0 Original line number Diff line number Diff line Loading @@ -17,6 +17,11 @@ package com.android.wm.shell.recents; import android.app.ActivityManager.RunningTaskInfo; import android.app.IApplicationThread; import android.app.PendingIntent; import android.content.Intent; import android.os.Bundle; import android.view.IRecentsAnimationRunner; import com.android.wm.shell.recents.IRecentTasksListener; import com.android.wm.shell.util.GroupedRecentTaskInfo; Loading Loading @@ -45,4 +50,10 @@ interface IRecentTasks { * Gets the set of running tasks. */ RunningTaskInfo[] getRunningTasks(int maxNum) = 4; /** * Starts a recents transition. */ oneway void startRecentsTransition(in PendingIntent intent, in Intent fillIn, in Bundle options, IApplicationThread appThread, IRecentsAnimationRunner listener) = 5; }
libs/WindowManager/Shell/src/com/android/wm/shell/recents/RecentTasksController.java +24 −1 Original line number Diff line number Diff line Loading @@ -24,13 +24,18 @@ import static com.android.wm.shell.sysui.ShellSharedConstants.KEY_EXTRA_SHELL_RE import android.app.ActivityManager; import android.app.ActivityTaskManager; import android.app.IApplicationThread; import android.app.PendingIntent; import android.app.TaskInfo; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.os.RemoteException; import android.util.Slog; import android.util.SparseArray; import android.util.SparseIntArray; import android.view.IRecentsAnimationRunner; import androidx.annotation.BinderThread; import androidx.annotation.NonNull; Loading Loading @@ -79,6 +84,7 @@ public class RecentTasksController implements TaskStackListenerCallback, private final TaskStackListenerImpl mTaskStackListener; private final RecentTasksImpl mImpl = new RecentTasksImpl(); private final ActivityTaskManager mActivityTaskManager; private RecentsTransitionHandler mTransitionHandler = null; private IRecentTasksListener mListener; private final boolean mIsDesktopMode; Loading Loading @@ -150,6 +156,10 @@ public class RecentTasksController implements TaskStackListenerCallback, mDesktopModeTaskRepository.ifPresent(it -> it.addActiveTaskListener(this)); } void setTransitionHandler(RecentsTransitionHandler handler) { mTransitionHandler = handler; } /** * Adds a split pair. This call does not validate the taskIds, only that they are not the same. */ Loading Loading @@ -492,5 +502,18 @@ public class RecentTasksController implements TaskStackListenerCallback, true /* blocking */); return tasks[0]; } @Override public void startRecentsTransition(PendingIntent intent, Intent fillIn, Bundle options, IApplicationThread appThread, IRecentsAnimationRunner listener) { if (mController.mTransitionHandler == null) { Slog.e(TAG, "Used shell-transitions startRecentsTransition without" + " shell-transitions"); return; } executeRemoteCallWithTaskPermission(mController, "startRecentsTransition", (controller) -> controller.mTransitionHandler.startRecentsTransition( intent, fillIn, options, appThread, listener)); } } }
libs/WindowManager/Shell/src/com/android/wm/shell/recents/RecentsTransitionHandler.java 0 → 100644 +759 −0 File added.Preview size limit exceeded, changes collapsed. Show changes