Prompt user to set device lock before deleting private space from Reset options

New flow: http://shortn/_qLrrqpdfJc

Flag: EXEMPT Bugfix in a low risk scenario
Bug: 363050220
Test: atest ResetOptionsDeletePrivateSpaceControllerTest
Change-Id: I93f55cd94ed2f42d5c19e2686d3edb3920bf750d
diff --git a/src/com/android/settings/privatespace/delete/ResetOptionsDeletePrivateSpaceController.java b/src/com/android/settings/privatespace/delete/ResetOptionsDeletePrivateSpaceController.java
index 09d2955..abca061 100644
--- a/src/com/android/settings/privatespace/delete/ResetOptionsDeletePrivateSpaceController.java
+++ b/src/com/android/settings/privatespace/delete/ResetOptionsDeletePrivateSpaceController.java
@@ -16,10 +16,12 @@
 
 package com.android.settings.privatespace.delete;
 
+import static com.android.internal.app.SetScreenLockDialogActivity.LAUNCH_REASON_RESET_PRIVATE_SPACE_SETTINGS_ACCESS;
 import static com.android.settings.system.ResetDashboardFragment.PRIVATE_SPACE_DELETE_CREDENTIAL_REQUEST;
 
 import android.app.Activity;
 import android.app.Dialog;
+import android.app.KeyguardManager;
 import android.app.settings.SettingsEnums;
 import android.content.Context;
 import android.content.DialogInterface;
@@ -35,6 +37,7 @@
 import androidx.preference.Preference;
 
 import com.android.internal.annotations.Initializer;
+import com.android.internal.app.SetScreenLockDialogActivity;
 import com.android.settings.R;
 import com.android.settings.core.BasePreferenceController;
 import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
@@ -46,6 +49,7 @@
 public class ResetOptionsDeletePrivateSpaceController extends BasePreferenceController {
     private static final String TAG = "PrivateSpaceResetCtrl";
     private ResetDashboardFragment mHostFragment;
+    private KeyguardManager mKeyguardManager;
 
     public ResetOptionsDeletePrivateSpaceController(
             @NonNull Context context, @NonNull String preferenceKey) {
@@ -77,9 +81,13 @@
 
     @VisibleForTesting
     boolean startAuthenticationForDelete() {
-        final ChooseLockSettingsHelper.Builder builder =
-                new ChooseLockSettingsHelper.Builder(mHostFragment.getActivity(), mHostFragment);
-        builder.setRequestCode(PRIVATE_SPACE_DELETE_CREDENTIAL_REQUEST).show();
+        if (getKeyguardManager().isDeviceSecure()) {
+            final ChooseLockSettingsHelper.Builder builder = new ChooseLockSettingsHelper.Builder(
+                    mHostFragment.getActivity(), mHostFragment);
+            builder.setRequestCode(PRIVATE_SPACE_DELETE_CREDENTIAL_REQUEST).show();
+        } else {
+            promptToSetDeviceLock();
+        }
         return true;
     }
 
@@ -147,4 +155,17 @@
                     .create();
         }
     }
+
+    private KeyguardManager getKeyguardManager() {
+        if (mKeyguardManager == null) {
+            mKeyguardManager = mContext.getSystemService(KeyguardManager.class);
+        }
+        return mKeyguardManager;
+    }
+
+    private void promptToSetDeviceLock() {
+        Intent setScreenLockPromptIntent = SetScreenLockDialogActivity.createBaseIntent(
+                LAUNCH_REASON_RESET_PRIVATE_SPACE_SETTINGS_ACCESS);
+        mContext.startActivity(setScreenLockPromptIntent);
+    }
 }