diff options
author | Winson Chung <winsonc@google.com> | 2022-06-01 22:06:48 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2022-06-01 22:06:48 +0000 |
commit | 238f38085350db336f5a629047b80a13f9b16041 (patch) | |
tree | 2fedd811581a12448a6d92e854a484ab7ed33b68 /quickstep | |
parent | a6c36eb4d02f06e1410a29160ef68a13a0666a62 (diff) | |
parent | 7ca87c785abfd252c64d58478dca2d4236bd4421 (diff) | |
download | Launcher3-238f38085350db336f5a629047b80a13f9b16041.tar.gz |
Merge "Ignore pinned tasks for purposes of gesture nav" into tm-dev
Diffstat (limited to 'quickstep')
-rw-r--r-- | quickstep/src/com/android/quickstep/TopTaskTracker.java | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/quickstep/src/com/android/quickstep/TopTaskTracker.java b/quickstep/src/com/android/quickstep/TopTaskTracker.java index 39c5f2ad98..723dc721a9 100644 --- a/quickstep/src/com/android/quickstep/TopTaskTracker.java +++ b/quickstep/src/com/android/quickstep/TopTaskTracker.java @@ -15,12 +15,13 @@ */ package com.android.quickstep; +import static android.app.ActivityTaskManager.INVALID_TASK_ID; +import static android.app.WindowConfiguration.ACTIVITY_TYPE_ASSISTANT; import static android.app.WindowConfiguration.ACTIVITY_TYPE_HOME; import static android.content.Intent.ACTION_CHOOSER; import static android.content.Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS; import static com.android.launcher3.util.SplitConfigurationOptions.STAGE_POSITION_TOP_OR_LEFT; -import static com.android.systemui.shared.system.RemoteAnimationTargetCompat.ACTIVITY_TYPE_ASSISTANT; import android.app.ActivityManager.RunningTaskInfo; import android.content.Context; @@ -64,6 +65,7 @@ public class TopTaskTracker extends ISplitScreenListener.Stub implements TaskSta private final StagedSplitTaskPosition mMainStagePosition = new StagedSplitTaskPosition(); private final StagedSplitTaskPosition mSideStagePosition = new StagedSplitTaskPosition(); + private int mPinnedTaskId = INVALID_TASK_ID; private TopTaskTracker(Context context) { mMainStagePosition.stageType = SplitConfigurationOptions.STAGE_TYPE_MAIN; @@ -132,8 +134,18 @@ public class TopTaskTracker extends ISplitScreenListener.Stub implements TaskSta } } + @Override + public void onActivityPinned(String packageName, int userId, int taskId, int stackId) { + mPinnedTaskId = taskId; + } + + @Override + public void onActivityUnpinned() { + mPinnedTaskId = INVALID_TASK_ID; + } + private void resetTaskId(StagedSplitTaskPosition taskPosition) { - taskPosition.taskId = -1; + taskPosition.taskId = INVALID_TASK_ID; } /** @@ -141,7 +153,8 @@ public class TopTaskTracker extends ISplitScreenListener.Stub implements TaskSta * Will return empty array if device is not in staged split */ public int[] getRunningSplitTaskIds() { - if (mMainStagePosition.taskId == -1 || mSideStagePosition.taskId == -1) { + if (mMainStagePosition.taskId == INVALID_TASK_ID + || mSideStagePosition.taskId == INVALID_TASK_ID) { return new int[]{}; } int[] out = new int[2]; @@ -175,7 +188,11 @@ public class TopTaskTracker extends ISplitScreenListener.Stub implements TaskSta false /* filterOnlyVisibleRecents */)); Collections.addAll(mOrderedTaskList, tasks); } - return new CachedTaskInfo(new ArrayList<>(mOrderedTaskList)); + + // Strip the pinned task + ArrayList<RunningTaskInfo> tasks = new ArrayList<>(mOrderedTaskList); + tasks.removeIf(t -> t.taskId == mPinnedTaskId); + return new CachedTaskInfo(tasks); } /** @@ -194,7 +211,7 @@ public class TopTaskTracker extends ISplitScreenListener.Stub implements TaskSta } public int getTaskId() { - return mTopTask == null ? -1 : mTopTask.taskId; + return mTopTask == null ? INVALID_TASK_ID : mTopTask.taskId; } /** |