Merge "Launch split task with correct UserHandle" into tm-qpr-dev
diff --git a/quickstep/src/com/android/launcher3/popup/QuickstepSystemShortcut.java b/quickstep/src/com/android/launcher3/popup/QuickstepSystemShortcut.java
index 4e59790..89c07f2 100644
--- a/quickstep/src/com/android/launcher3/popup/QuickstepSystemShortcut.java
+++ b/quickstep/src/com/android/launcher3/popup/QuickstepSystemShortcut.java
@@ -19,6 +19,7 @@
 import android.graphics.Bitmap;
 import android.graphics.drawable.BitmapDrawable;
 import android.graphics.drawable.Drawable;
+import android.os.UserHandle;
 import android.util.Log;
 import android.view.View;
 
@@ -71,7 +72,7 @@
             RecentsView recentsView = mTarget.getOverviewPanel();
             recentsView.initiateSplitSelect(
                     new SplitSelectSource(mOriginalView, new BitmapDrawable(bitmap), intent,
-                            mPosition));
+                            mPosition, mItemInfo.user));
         }
     }
 
@@ -81,13 +82,15 @@
         public final Drawable drawable;
         public final Intent intent;
         public final SplitPositionOption position;
+        public final UserHandle user;
 
         public SplitSelectSource(View view, Drawable drawable, Intent intent,
-                SplitPositionOption position) {
+                SplitPositionOption position, UserHandle user) {
             this.view = view;
             this.drawable = drawable;
             this.intent = intent;
             this.position = position;
+            this.user = user;
         }
     }
 }
diff --git a/quickstep/src/com/android/quickstep/util/SplitSelectStateController.java b/quickstep/src/com/android/quickstep/util/SplitSelectStateController.java
index 0ca5574..8f32214 100644
--- a/quickstep/src/com/android/quickstep/util/SplitSelectStateController.java
+++ b/quickstep/src/com/android/quickstep/util/SplitSelectStateController.java
@@ -33,6 +33,7 @@
 import android.content.Intent;
 import android.os.Handler;
 import android.os.IBinder;
+import android.os.UserHandle;
 import android.text.TextUtils;
 import android.view.RemoteAnimationAdapter;
 import android.view.SurfaceControl;
@@ -77,6 +78,8 @@
     private int mSecondTaskId = INVALID_TASK_ID;
     private String mSecondTaskPackageName;
     private boolean mRecentsAnimationRunning;
+    @Nullable
+    private UserHandle mUser;
     /** If not null, this is the TaskView we want to launch from */
     @Nullable
     private GroupedTaskView mLaunchingTaskView;
@@ -97,12 +100,15 @@
         mInitialTaskId = taskId;
         mStagePosition = stagePosition;
         mInitialTaskIntent = null;
+        mUser = null;
     }
 
-    public void setInitialTaskSelect(Intent intent, @StagePosition int stagePosition) {
+    public void setInitialTaskSelect(Intent intent, @StagePosition int stagePosition,
+            @Nullable UserHandle user) {
         mInitialTaskIntent = intent;
         mStagePosition = stagePosition;
         mInitialTaskId = INVALID_TASK_ID;
+        mUser = user;
     }
 
     /**
@@ -120,9 +126,12 @@
         } else {
             fillInIntent = null;
         }
-        final PendingIntent pendingIntent =
-                mInitialTaskIntent == null ? null : PendingIntent.getActivity(mContext, 0,
-                        mInitialTaskIntent, FLAG_MUTABLE);
+
+        final PendingIntent pendingIntent = mInitialTaskIntent == null ? null : (mUser != null
+                ? PendingIntent.getActivityAsUser(mContext, 0, mInitialTaskIntent,
+                FLAG_MUTABLE, null /* options */, mUser)
+                : PendingIntent.getActivity(mContext, 0, mInitialTaskIntent, FLAG_MUTABLE));
+
         launchTasks(mInitialTaskId, pendingIntent, fillInIntent, mSecondTaskId, mStagePosition,
                 callback, false /* freezeTaskList */, DEFAULT_SPLIT_RATIO);
     }
diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java
index 64068ad..31c1bfc 100644
--- a/quickstep/src/com/android/quickstep/views/RecentsView.java
+++ b/quickstep/src/com/android/quickstep/views/RecentsView.java
@@ -4098,7 +4098,7 @@
     public void initiateSplitSelect(QuickstepSystemShortcut.SplitSelectSource splitSelectSource) {
         mSplitSelectSource = splitSelectSource;
         mSplitSelectStateController.setInitialTaskSelect(splitSelectSource.intent,
-                splitSelectSource.position.stagePosition);
+                splitSelectSource.position.stagePosition, splitSelectSource.user);
     }
 
     public PendingAnimation createSplitSelectInitAnimation(int duration) {