Merge "Unlock non-secure users automatically (2/2)" into main am: fcaf0aceeb am: 3eb12fab5e
Original change: https://android-review.googlesource.com/c/platform/packages/apps/Settings/+/2661955
Change-Id: I72d1606782200e7f1b16a0617439b38c4916523e
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/src/com/android/settings/deviceinfo/StorageWizardMigrateConfirm.java b/src/com/android/settings/deviceinfo/StorageWizardMigrateConfirm.java
index f65dd24..1e0c184 100644
--- a/src/com/android/settings/deviceinfo/StorageWizardMigrateConfirm.java
+++ b/src/com/android/settings/deviceinfo/StorageWizardMigrateConfirm.java
@@ -30,6 +30,7 @@
import android.view.View;
import android.widget.Toast;
+import com.android.internal.widget.LockPatternUtils;
import com.android.settings.R;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.password.ChooseLockSettingsHelper;
@@ -97,10 +98,19 @@
@Override
public void onNavigateNext(View view) {
// Ensure that all users are unlocked so that we can move their data
+ final LockPatternUtils lpu = new LockPatternUtils(this);
if (StorageManager.isFileEncrypted()) {
for (UserInfo user : getSystemService(UserManager.class).getUsers()) {
- if (!StorageManager.isUserKeyUnlocked(user.id)) {
- Log.d(TAG, "User " + user.id + " is currently locked; requesting unlock");
+ if (StorageManager.isUserKeyUnlocked(user.id)) {
+ continue;
+ }
+ if (!lpu.isSecure(user.id)) {
+ Log.d(TAG, "Unsecured user " + user.id + " is currently locked; attempting "
+ + "automatic unlock");
+ lpu.unlockUserKeyIfUnsecured(user.id);
+ } else {
+ Log.d(TAG, "Secured user " + user.id + " is currently locked; requesting "
+ + "manual unlock");
final CharSequence description = TextUtils.expandTemplate(
getText(R.string.storage_wizard_move_unlock), user.name);
final ChooseLockSettingsHelper.Builder builder =
diff --git a/src/com/android/settings/deviceinfo/StorageWizardMoveConfirm.java b/src/com/android/settings/deviceinfo/StorageWizardMoveConfirm.java
index da96104..bf16ab0 100644
--- a/src/com/android/settings/deviceinfo/StorageWizardMoveConfirm.java
+++ b/src/com/android/settings/deviceinfo/StorageWizardMoveConfirm.java
@@ -33,6 +33,7 @@
import android.view.View;
import com.android.internal.util.Preconditions;
+import com.android.internal.widget.LockPatternUtils;
import com.android.settings.R;
import com.android.settings.password.ChooseLockSettingsHelper;
@@ -79,10 +80,19 @@
@Override
public void onNavigateNext(View view) {
// Ensure that all users are unlocked so that we can move their data
+ final LockPatternUtils lpu = new LockPatternUtils(this);
if (StorageManager.isFileEncrypted()) {
for (UserInfo user : getSystemService(UserManager.class).getUsers()) {
- if (!StorageManager.isUserKeyUnlocked(user.id)) {
- Log.d(TAG, "User " + user.id + " is currently locked; requesting unlock");
+ if (StorageManager.isUserKeyUnlocked(user.id)) {
+ continue;
+ }
+ if (!lpu.isSecure(user.id)) {
+ Log.d(TAG, "Unsecured user " + user.id + " is currently locked; attempting "
+ + "automatic unlock");
+ lpu.unlockUserKeyIfUnsecured(user.id);
+ } else {
+ Log.d(TAG, "Secured user " + user.id + " is currently locked; requesting "
+ + "manual unlock");
final CharSequence description = TextUtils.expandTemplate(
getText(R.string.storage_wizard_move_unlock), user.name);
final ChooseLockSettingsHelper.Builder builder =