Merge "Use SetScreenLockDialogActivity to power screen lock setup prompt" into main
This commit is contained in:
committed by
Android (Google) Code Review
commit
f73494e784
@@ -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() {
|
||||||
|
|||||||
@@ -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"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user