Passing activity token for identify sourceTask
System will launch activity into taskDisplayArea if can not
identify the sourceTask. This CL passing the activity token
from CrossProfileApps#mContext as the calling activity and
add the new_task flag. That will make activity launches into
split with different tasks when switching profile.
Bug: 223405562
Test: split (A|B),switch the work/personal profile from split.
atest CrossProfileAppsTest
Change-Id: I3bc713aa72985b93b42c288e23bec7f12dd6a01d
This commit is contained in:
@@ -27,6 +27,7 @@ import android.annotation.SystemApi;
|
||||
import android.annotation.TestApi;
|
||||
import android.annotation.UserHandleAware;
|
||||
import android.app.Activity;
|
||||
import android.app.ActivityOptions;
|
||||
import android.app.AppOpsManager.Mode;
|
||||
import android.app.admin.DevicePolicyManager;
|
||||
import android.content.ComponentName;
|
||||
@@ -110,8 +111,8 @@ public class CrossProfileApps {
|
||||
component,
|
||||
targetUser.getIdentifier(),
|
||||
true,
|
||||
null,
|
||||
null);
|
||||
mContext.getActivityToken(),
|
||||
ActivityOptions.makeBasic().toBundle());
|
||||
} catch (RemoteException ex) {
|
||||
throw ex.rethrowFromSystemServer();
|
||||
}
|
||||
|
||||
@@ -147,7 +147,7 @@ public class CrossProfileAppsServiceImpl extends ICrossProfileApps.Stub {
|
||||
if (launchMainActivity) {
|
||||
launchIntent.setAction(Intent.ACTION_MAIN);
|
||||
launchIntent.addCategory(Intent.CATEGORY_LAUNCHER);
|
||||
if (targetTask == null) {
|
||||
if (targetTask == null || options != null) {
|
||||
launchIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK
|
||||
| Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user