summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Rubin Xu <rubinxu@google.com> 2019-03-19 11:29:10 -0700
committer android-build-merger <android-build-merger@google.com> 2019-03-19 11:29:10 -0700
commit030f2bd0ac1a31f41a2f3412e43dd9b521a742ed (patch)
tree6a1ab27ea9d192bbbcb589b471df5cb86592af95
parent7baa232824ef5ee5d319bb010c7e51cbbd7e411e (diff)
parente7df4aa57c82aed7670c08c5b24a84b640148140 (diff)
Merge "Notify caller when unlockUser() bails out"
am: e7df4aa57c Change-Id: I095bd59c0c151fe535f66030240a2ff85b9b4bee
-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 4746e12e2838..3f48e28d5780 100644
--- a/services/core/java/com/android/server/am/UserController.java
+++ b/services/core/java/com/android/server/am/UserController.java
@@ -383,14 +383,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();
@@ -421,6 +421,7 @@ class UserController implements Handler.Callback {
mHandler.obtainMessage(SYSTEM_USER_UNLOCK_MSG, userId, 0, uss)
.sendToTarget();
});
+ return true;
}
/**
@@ -1180,7 +1181,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.