Handle startProfile failure during creation of private space

This includes to verify return value of startProfile to check if profile
is started successfully. If startProfile failed for any reason then
delete the created profile and return false for createPrivateProfile().

Bug: 313926659
Test: atest PrivateSpaceMaintainerTest
Change-Id: I493cb3a41cef8bdc1be42fe328c4f7bd04944b94
This commit is contained in:
josephpv
2024-03-22 19:25:57 +00:00
parent c55cd9526e
commit a7603d2b43

View File

@@ -112,11 +112,10 @@ public class PrivateSpaceMaintainer {
registerBroadcastReceiver();
try {
//TODO(b/313926659): To check and handle failure of startProfile
mActivityManager.startProfile(mUserHandle);
} catch (IllegalArgumentException e) {
Log.e(TAG, "Unexpected that " + mUserHandle.getIdentifier() + " is not a profile");
if (!startProfile()) {
// TODO(b/333884792): Add test to mock when startProfile fails.
Log.e(TAG, "profile not started, created profile is deleted");
deletePrivateSpace();
return false;
}
@@ -314,6 +313,16 @@ public class PrivateSpaceMaintainer {
return false;
}
@GuardedBy("this")
private boolean startProfile() {
try {
return mActivityManager.startProfile(mUserHandle);
} catch (IllegalArgumentException e) {
Log.e(TAG, "Unexpected that " + mUserHandle.getIdentifier() + " is not a profile");
}
return false;
}
@GuardedBy("this")
private void resetPrivateSpaceSettings() {
setHidePrivateSpaceEntryPointSetting(HIDE_PRIVATE_SPACE_ENTRY_POINT_DISABLED_VAL);