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
diff --git a/src/com/android/settings/privatespace/PrivateSpaceMaintainer.java b/src/com/android/settings/privatespace/PrivateSpaceMaintainer.java
index e219c07..6d07305 100644
--- a/src/com/android/settings/privatespace/PrivateSpaceMaintainer.java
+++ b/src/com/android/settings/privatespace/PrivateSpaceMaintainer.java
@@ -112,11 +112,10 @@
 
             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;
             }
 
@@ -315,6 +314,16 @@
     }
 
     @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);
         setPrivateSpaceAutoLockSetting(PRIVATE_SPACE_AUTO_LOCK_DEFAULT_VAL);