Merge "Clearing obsolete cloneUserId from CloneBackend." into udc-dev am: 4740720948
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/23262239 Change-Id: Ic2794491157aaa448276e063935bb9ea10a0496e Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -58,6 +58,11 @@ public class AppStateClonedAppsBridge extends AppStateBaseBridge{
|
|||||||
mCloneProfileApps = mContext.getPackageManager()
|
mCloneProfileApps = mContext.getPackageManager()
|
||||||
.getInstalledPackagesAsUser(GET_ACTIVITIES,
|
.getInstalledPackagesAsUser(GET_ACTIVITIES,
|
||||||
mCloneUserId).stream().map(x -> x.packageName).toList();
|
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();
|
final List<ApplicationsState.AppEntry> allApps = mAppSession.getAllApps();
|
||||||
|
@@ -165,4 +165,13 @@ public class CloneBackend {
|
|||||||
public int getCloneUserId() {
|
public int getCloneUserId() {
|
||||||
return mCloneUserId;
|
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;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -923,10 +923,15 @@ public class ManageApplications extends InstrumentedFragment
|
|||||||
}
|
}
|
||||||
IUserManager um = IUserManager.Stub.asInterface(
|
IUserManager um = IUserManager.Stub.asInterface(
|
||||||
ServiceManager.getService(Context.USER_SERVICE));
|
ServiceManager.getService(Context.USER_SERVICE));
|
||||||
|
CloneBackend cloneBackend = CloneBackend.getInstance(getContext());
|
||||||
try {
|
try {
|
||||||
// Warning: This removes all the data, media & images present in cloned user.
|
// Warning: This removes all the data, media & images present in cloned user.
|
||||||
um.removeUser(clonedUserId);
|
if (um.removeUser(clonedUserId)) {
|
||||||
|
cloneBackend.resetCloneUserId();
|
||||||
mApplications.rebuild();
|
mApplications.rebuild();
|
||||||
|
} else if (ManageApplications.DEBUG) {
|
||||||
|
Log.e(TAG, "Failed to remove cloned user");
|
||||||
|
}
|
||||||
} catch (RemoteException e) {
|
} catch (RemoteException e) {
|
||||||
Log.e(TAG, "Failed to remove cloned apps", e);
|
Log.e(TAG, "Failed to remove cloned apps", e);
|
||||||
Toast.makeText(getContext(),
|
Toast.makeText(getContext(),
|
||||||
|
Reference in New Issue
Block a user