Merge "Use SetScreenLockDialogActivity to power screen lock setup prompt" into main

This commit is contained in:
Jigar Thakkar
2024-02-22 00:09:16 +00:00
committed by Android (Google) Code Review
2 changed files with 36 additions and 20 deletions

View File

@@ -18,6 +18,8 @@ package com.android.settings.privatespace;
import static android.app.admin.DevicePolicyManager.ACTION_SET_NEW_PASSWORD;
import static com.android.internal.app.SetScreenLockDialogActivity.LAUNCH_REASON_PRIVATE_SPACE_SETTINGS_ACCESS;
import android.app.ActivityOptions;
import android.app.AlertDialog;
import android.app.KeyguardManager;
@@ -37,6 +39,7 @@ import androidx.annotation.Nullable;
import androidx.fragment.app.FragmentActivity;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.app.SetScreenLockDialogActivity;
import com.android.settings.R;
import com.android.settings.core.SubSettingLauncher;
import com.android.settingslib.transition.SettingsTransitionHelper;
@@ -112,23 +115,31 @@ public class PrivateSpaceAuthenticationActivity extends FragmentActivity {
private void promptToSetDeviceLock() {
Log.d(TAG, "Show prompt to set device lock before using private space feature");
new AlertDialog.Builder(this)
.setTitle(R.string.no_device_lock_title)
.setMessage(R.string.no_device_lock_summary)
.setPositiveButton(
R.string.no_device_lock_action_label,
(DialogInterface dialog, int which) -> {
Log.d(TAG, "Start activity to set new device lock");
mSetDeviceLock.launch(new Intent(ACTION_SET_NEW_PASSWORD));
})
.setNegativeButton(
R.string.no_device_lock_cancel,
(DialogInterface dialog, int which) -> finish())
.setOnCancelListener(
(DialogInterface dialog) -> {
finish();
})
.show();
if (android.multiuser.Flags.showSetScreenLockDialog()) {
Intent setScreenLockPromptIntent =
SetScreenLockDialogActivity
.createBaseIntent(LAUNCH_REASON_PRIVATE_SPACE_SETTINGS_ACCESS);
startActivity(setScreenLockPromptIntent);
finish();
} else {
new AlertDialog.Builder(this)
.setTitle(R.string.no_device_lock_title)
.setMessage(R.string.no_device_lock_summary)
.setPositiveButton(
R.string.no_device_lock_action_label,
(DialogInterface dialog, int which) -> {
Log.d(TAG, "Start activity to set new device lock");
mSetDeviceLock.launch(new Intent(ACTION_SET_NEW_PASSWORD));
})
.setNegativeButton(
R.string.no_device_lock_cancel,
(DialogInterface dialog, int which) -> finish())
.setOnCancelListener(
(DialogInterface dialog) -> {
finish();
})
.show();
}
}
private KeyguardManager getKeyguardManager() {

View File

@@ -18,9 +18,11 @@ package com.android.settings.ui.privatespace
import android.os.Flags
import android.platform.test.annotations.RequiresFlagsDisabled
import android.platform.test.annotations.RequiresFlagsEnabled
import android.platform.test.flag.junit.DeviceFlagsValueProvider
import android.provider.Settings
import android.util.Log
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.uiautomator.By
@@ -77,15 +79,18 @@ class PrivateSpaceAuthenticationActivityTest {
Thread.sleep(1000)
device.assertHasTexts(listOf(SET_LOCK_BUTTON,CANCEL_TEXT))
device.clickObject(By.text(SET_LOCK_BUTTON))
device.assertHasTexts(listOf(LOCK_SCREEN_TITLE))
Thread.sleep(1000)
device.assertHasTexts(listOf(PATTERN_TEXT, PIN_TEXT, PASSWORD_TEXT))
}
private companion object {
// Items we really want to always show
val PRIVATE_SPACE_SETTING = "Private Space"
val PRIVATE_SPACE_SETTING = "Private space"
const val SET_LOCK_BUTTON = "Set screen lock"
val CANCEL_TEXT = "Cancel"
val DIALOG_TITLE = "Set a screen lock"
val LOCK_SCREEN_TITLE = "Choose screen lock"
val PATTERN_TEXT = "Pattern"
val PIN_TEXT = "PIN"
val PASSWORD_TEXT = "Password"
}
}