diff options
Diffstat (limited to 'quickstep/src/com/android/quickstep/util/SplitSelectDataHolder.kt')
-rw-r--r-- | quickstep/src/com/android/quickstep/util/SplitSelectDataHolder.kt | 36 |
1 files changed, 26 insertions, 10 deletions
diff --git a/quickstep/src/com/android/quickstep/util/SplitSelectDataHolder.kt b/quickstep/src/com/android/quickstep/util/SplitSelectDataHolder.kt index 3ff461adf3..69c4197d36 100644 --- a/quickstep/src/com/android/quickstep/util/SplitSelectDataHolder.kt +++ b/quickstep/src/com/android/quickstep/util/SplitSelectDataHolder.kt @@ -45,7 +45,11 @@ import java.io.PrintWriter * * After setting the correct fields for initial/second.* variables, this converts them into the * correct [PendingIntent] and [ShortcutInfo] objects where applicable and sends the necessary - * data back via [getSplitLaunchData]. + * data back via [getSplitLaunchData]. Note: there should be only one "initial" field and one + * "second" field set, with the rest remaining null. (Exception: [Intent] and [UserHandle] are + * always passed in together as a set, and are converted to a single [PendingIntent] or + * [ShortcutInfo]+[PendingIntent] before launch.) + * * [SplitLaunchType] indicates the type of tasks/apps/intents being launched given the provided * state */ @@ -80,21 +84,21 @@ class SplitSelectDataHolder( const val SPLIT_SINGLE_SHORTCUT_FULLSCREEN = 8 } - @StagePosition private var initialStagePosition: Int = STAGE_POSITION_UNDEFINED + private var itemInfo: ItemInfo? = null + private var splitEvent: EventEnum? = null + private var initialTaskId: Int = INVALID_TASK_ID private var secondTaskId: Int = INVALID_TASK_ID - private var initialUser: UserHandle? = null - private var secondUser: UserHandle? = null private var initialIntent: Intent? = null private var secondIntent: Intent? = null + private var initialUser: UserHandle? = null + private var secondUser: UserHandle? = null + private var initialPendingIntent: PendingIntent? = null private var secondPendingIntent: PendingIntent? = null - private var itemInfo: ItemInfo? = null - private var splitEvent: EventEnum? = null private var initialShortcut: ShortcutInfo? = null private var secondShortcut: ShortcutInfo? = null - private var initialPendingIntent: PendingIntent? = null /** * @param alreadyRunningTask if set to [android.app.ActivityTaskManager.INVALID_TASK_ID] @@ -222,7 +226,7 @@ class SplitSelectDataHolder( * split task in fullscreen */ fun getFullscreenLaunchData() : SplitLaunchData { - // Convert all intents to shortcut infos to see if determine if we launch shortcut or intent + // Convert all intents to shortcut infos to determine if we launch shortcut or intent convertIntentsToFinalTypes() val splitLaunchType = getFullscreenLaunchType() @@ -255,7 +259,7 @@ class SplitSelectDataHolder( * convert [secondIntent] */ private fun convertIntentsToFinalTypes() { - initialShortcut = getShortcutInfo(initialIntent, checkNotNull(initialUser)) + initialShortcut = getShortcutInfo(initialIntent, initialUser) initialPendingIntent = getPendingIntent(initialIntent, initialUser) initialIntent = null @@ -269,7 +273,7 @@ class SplitSelectDataHolder( return } - secondShortcut = getShortcutInfo(secondIntent, checkNotNull(secondUser)) + secondShortcut = getShortcutInfo(secondIntent, secondUser) secondPendingIntent = getPendingIntent(secondIntent, secondUser) secondIntent = null } @@ -375,6 +379,18 @@ class SplitSelectDataHolder( return secondTaskId } + fun getSplitEvent(): EventEnum? { + return splitEvent + } + + fun getInitialStagePosition(): Int { + return initialStagePosition + } + + fun getItemInfo(): ItemInfo? { + return itemInfo + } + private fun isSecondTaskIntentSet(): Boolean { return secondTaskId != INVALID_TASK_ID || secondIntent != null || secondPendingIntent != null |