summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/print/java/com/android/server/print/PrintManagerService.java15
1 files changed, 12 insertions, 3 deletions
diff --git a/services/print/java/com/android/server/print/PrintManagerService.java b/services/print/java/com/android/server/print/PrintManagerService.java
index 66524edf61ed..35b9bc3b1e06 100644
--- a/services/print/java/com/android/server/print/PrintManagerService.java
+++ b/services/print/java/com/android/server/print/PrintManagerService.java
@@ -984,6 +984,7 @@ public final class PrintManagerService extends SystemService {
monitor.register(mContext, BackgroundThread.getHandler().getLooper(),
UserHandle.ALL, true);
}
+
private UserState getOrCreateUserStateLocked(int userId, boolean lowPriority) {
return getOrCreateUserStateLocked(userId, lowPriority,
true /* enforceUserUnlockingOrUnlocked */);
@@ -991,6 +992,12 @@ public final class PrintManagerService extends SystemService {
private UserState getOrCreateUserStateLocked(int userId, boolean lowPriority,
boolean enforceUserUnlockingOrUnlocked) {
+ return getOrCreateUserStateLocked(userId, lowPriority,
+ enforceUserUnlockingOrUnlocked, false /* shouldUpdateState */);
+ }
+
+ private UserState getOrCreateUserStateLocked(int userId, boolean lowPriority,
+ boolean enforceUserUnlockingOrUnlocked, boolean shouldUpdateState) {
if (enforceUserUnlockingOrUnlocked && !mUserManager.isUserUnlockingOrUnlocked(userId)) {
throw new IllegalStateException(
"User " + userId + " must be unlocked for printing to be available");
@@ -1000,6 +1007,8 @@ public final class PrintManagerService extends SystemService {
if (userState == null) {
userState = new UserState(mContext, userId, mLock, lowPriority);
mUserStates.put(userId, userState);
+ } else if (shouldUpdateState) {
+ userState.updateIfNeededLocked();
}
if (!lowPriority) {
@@ -1019,9 +1028,9 @@ public final class PrintManagerService extends SystemService {
UserState userState;
synchronized (mLock) {
- userState = getOrCreateUserStateLocked(userId, true,
- false /*enforceUserUnlockingOrUnlocked */);
- userState.updateIfNeededLocked();
+ userState = getOrCreateUserStateLocked(userId, /* lowPriority */ true,
+ /* enforceUserUnlockingOrUnlocked */ false,
+ /* shouldUpdateState */ true);
}
// This is the first time we switch to this user after boot, so
// now is the time to remove obsolete print jobs since they