Merge "Clearing obsolete cloneUserId from CloneBackend." into udc-dev am: 4740720948 am: af793d86f2

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/23262239

Change-Id: Id0c01cecf1b24afea3f07a7395217b656a91a512
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Himanshu Gupta
2023-05-19 21:54:28 +00:00
committed by Automerger Merge Worker
3 changed files with 21 additions and 2 deletions

View File

@@ -58,6 +58,11 @@ public class AppStateClonedAppsBridge extends AppStateBaseBridge{
mCloneProfileApps = mContext.getPackageManager()
.getInstalledPackagesAsUser(GET_ACTIVITIES,
mCloneUserId).stream().map(x -> x.packageName).toList();
} else if (!mCloneProfileApps.isEmpty()) {
// In case we remove clone profile (mCloneUserId becomes -1), the bridge state should
// reflect the same by setting cloneProfileApps as empty, without building the entire
// page.
mCloneProfileApps = new ArrayList<>();
}
final List<ApplicationsState.AppEntry> allApps = mAppSession.getAllApps();

View File

@@ -165,4 +165,13 @@ public class CloneBackend {
public int getCloneUserId() {
return mCloneUserId;
}
/**
* Resets {@link #mCloneUserId} to -1.
* Typically called after the cloneUser is removed, so that the obsolete clonedUserId present
* with the CloneBackend instance can be cleared.
*/
public void resetCloneUserId() {
mCloneUserId = -1;
}
}

View File

@@ -923,10 +923,15 @@ public class ManageApplications extends InstrumentedFragment
}
IUserManager um = IUserManager.Stub.asInterface(
ServiceManager.getService(Context.USER_SERVICE));
CloneBackend cloneBackend = CloneBackend.getInstance(getContext());
try {
// Warning: This removes all the data, media & images present in cloned user.
um.removeUser(clonedUserId);
if (um.removeUser(clonedUserId)) {
cloneBackend.resetCloneUserId();
mApplications.rebuild();
} else if (ManageApplications.DEBUG) {
Log.e(TAG, "Failed to remove cloned user");
}
} catch (RemoteException e) {
Log.e(TAG, "Failed to remove cloned apps", e);
Toast.makeText(getContext(),