summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Android Build Merger (Role) <noreply-android-build-merger@google.com> 2019-03-19 18:49:10 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2019-03-19 18:49:10 +0000
commit3d0a536ec8ca042ead7753e2a538a883fcfe92ed (patch)
treef7c507d06596cffdd66158a1a3cbff47a162fefa
parent9812bc26afc28f1f42f48b6139539c1ac12164f9 (diff)
parent000d88df2d3baf31088b789cccadca4d2fb17002 (diff)
Merge "Merge "Notify caller when unlockUser() bails out" am: e7df4aa57c am: 030f2bd0ac am: 96fa2e2417"
-rw-r--r--services/core/java/com/android/server/am/UserController.java12
1 files changed, 8 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/am/UserController.java b/services/core/java/com/android/server/am/UserController.java
index 029c3fbbcf42..07c9cca3f6c3 100644
--- a/services/core/java/com/android/server/am/UserController.java
+++ b/services/core/java/com/android/server/am/UserController.java
@@ -389,14 +389,14 @@ class UserController implements Handler.Callback {
* Step from {@link UserState#STATE_RUNNING_LOCKED} to
* {@link UserState#STATE_RUNNING_UNLOCKING}.
*/
- private void finishUserUnlocking(final UserState uss) {
+ private boolean finishUserUnlocking(final UserState uss) {
final int userId = uss.mHandle.getIdentifier();
// Only keep marching forward if user is actually unlocked
- if (!StorageManager.isUserKeyUnlocked(userId)) return;
+ if (!StorageManager.isUserKeyUnlocked(userId)) return false;
synchronized (mLock) {
// Do not proceed if unexpected state or a stale user
if (mStartedUsers.get(userId) != uss || uss.state != STATE_RUNNING_LOCKED) {
- return;
+ return false;
}
}
uss.mUnlockProgress.start();
@@ -427,6 +427,7 @@ class UserController implements Handler.Callback {
mHandler.obtainMessage(SYSTEM_USER_UNLOCK_MSG, userId, 0, uss)
.sendToTarget();
});
+ return true;
}
/**
@@ -1209,7 +1210,10 @@ class UserController implements Handler.Callback {
return false;
}
- finishUserUnlocking(uss);
+ if (!finishUserUnlocking(uss)) {
+ notifyFinished(userId, listener);
+ return false;
+ }
// We just unlocked a user, so let's now attempt to unlock any
// managed profiles under that user.