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

View File

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