Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5e4fad8a authored by Olivier Nshimiye's avatar Olivier Nshimiye
Browse files

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
parent db89eaa0
Loading
Loading
Loading
Loading
+24 −3
Original line number Diff line number Diff line
@@ -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.fragment.app.FragmentManager;
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 @@ import com.android.settings.system.ResetDashboardFragment;
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 @@ public class ResetOptionsDeletePrivateSpaceController extends BasePreferenceCont

    @VisibleForTesting
    boolean startAuthenticationForDelete() {
        final ChooseLockSettingsHelper.Builder builder =
                new ChooseLockSettingsHelper.Builder(mHostFragment.getActivity(), mHostFragment);
        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 @@ public class ResetOptionsDeletePrivateSpaceController extends BasePreferenceCont
                    .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);
    }
}