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) {