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
This commit is contained in:
Olivier Nshimiye
2024-09-04 15:23:49 +00:00
parent db89eaa0a2
commit 5e4fad8a4a

View File

@@ -16,10 +16,12 @@
package com.android.settings.privatespace.delete; 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 static com.android.settings.system.ResetDashboardFragment.PRIVATE_SPACE_DELETE_CREDENTIAL_REQUEST;
import android.app.Activity; import android.app.Activity;
import android.app.Dialog; import android.app.Dialog;
import android.app.KeyguardManager;
import android.app.settings.SettingsEnums; import android.app.settings.SettingsEnums;
import android.content.Context; import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
@@ -35,6 +37,7 @@ import androidx.fragment.app.FragmentManager;
import androidx.preference.Preference; import androidx.preference.Preference;
import com.android.internal.annotations.Initializer; import com.android.internal.annotations.Initializer;
import com.android.internal.app.SetScreenLockDialogActivity;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.BasePreferenceController; import com.android.settings.core.BasePreferenceController;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
@@ -46,6 +49,7 @@ import com.android.settings.system.ResetDashboardFragment;
public class ResetOptionsDeletePrivateSpaceController extends BasePreferenceController { public class ResetOptionsDeletePrivateSpaceController extends BasePreferenceController {
private static final String TAG = "PrivateSpaceResetCtrl"; private static final String TAG = "PrivateSpaceResetCtrl";
private ResetDashboardFragment mHostFragment; private ResetDashboardFragment mHostFragment;
private KeyguardManager mKeyguardManager;
public ResetOptionsDeletePrivateSpaceController( public ResetOptionsDeletePrivateSpaceController(
@NonNull Context context, @NonNull String preferenceKey) { @NonNull Context context, @NonNull String preferenceKey) {
@@ -77,9 +81,13 @@ public class ResetOptionsDeletePrivateSpaceController extends BasePreferenceCont
@VisibleForTesting @VisibleForTesting
boolean startAuthenticationForDelete() { boolean startAuthenticationForDelete() {
final ChooseLockSettingsHelper.Builder builder = if (getKeyguardManager().isDeviceSecure()) {
new ChooseLockSettingsHelper.Builder(mHostFragment.getActivity(), mHostFragment); final ChooseLockSettingsHelper.Builder builder = new ChooseLockSettingsHelper.Builder(
builder.setRequestCode(PRIVATE_SPACE_DELETE_CREDENTIAL_REQUEST).show(); mHostFragment.getActivity(), mHostFragment);
builder.setRequestCode(PRIVATE_SPACE_DELETE_CREDENTIAL_REQUEST).show();
} else {
promptToSetDeviceLock();
}
return true; return true;
} }
@@ -147,4 +155,17 @@ public class ResetOptionsDeletePrivateSpaceController extends BasePreferenceCont
.create(); .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);
}
} }