Fix user starts by using startProfile

We used ActivityManager.startUserInBackground earlier to start the clone
user. As per the changes done recently (b/267800984),
UserVisibilityMediator now marks all the profiles/users started usign
startUserInBackground as startedInvisible. This results in the apps not
being able to launch on clone profile without a device restart. To fix
this, in this change we move to using ActivityManager.startProfile to
start the clone-user.

Test: Tested on device by creating clone profile through settings app
Bug: 268011720
Change-Id: I4a594cd4d10cfbd7459b04baa45719885decf87e
This commit is contained in:
Jigar Thakkar
2023-03-23 15:14:53 +00:00
parent 53a2145d73
commit ee0c837117

View File

@@ -104,7 +104,7 @@ public class CloneBackend {
new HashSet<>()); new HashSet<>());
} catch (Exception e) { } catch (Exception e) {
if (ManageApplications.DEBUG) { if (ManageApplications.DEBUG) {
Log.e("ankita", "Error occurred creating clone user" + e.getMessage()); Log.e(TAG, "Error occurred creating clone user" + e.getMessage());
} }
return ERROR_CREATING_CLONE_USER; return ERROR_CREATING_CLONE_USER;
} }
@@ -125,7 +125,7 @@ public class CloneBackend {
if (newlyCreated) { if (newlyCreated) {
IActivityManager am = ActivityManagerNative.getDefault(); IActivityManager am = ActivityManagerNative.getDefault();
try { try {
am.startUserInBackground(mCloneUserId); am.startProfile(mCloneUserId);
} catch (RemoteException e) { } catch (RemoteException e) {
if (ManageApplications.DEBUG) { if (ManageApplications.DEBUG) {
Log.e(TAG, "Error starting clone user " + e.getMessage()); Log.e(TAG, "Error starting clone user " + e.getMessage());