diff options
author | Narayan Kamath <narayan@google.com> | 2017-07-31 11:10:50 +0100 |
---|---|---|
committer | Narayan Kamath <narayan@google.com> | 2017-08-01 10:09:33 +0000 |
commit | 973d8af11b11da273d54f289217c04ce39bf9200 (patch) | |
tree | e184a9a5ffc9a3ba67fe83610b8d114fd56060d2 | |
parent | 7ef9f224e4e7c1bdca5f7b69541789dcd1d521d8 (diff) |
PrintManagerService: Don't prune services on all package change events.
We should only need to prune services if the package that changed
had a print service or has been changed to have a print service.
Bug: 63019430
Test: Manual; observed that the print spooler isn't started up.
Test: run cts -m CtsPrintTestCases
Change-Id: I32df27e4b1d11615cf6053dd3d35c2b60068d0d3
-rw-r--r-- | services/print/java/com/android/server/print/PrintManagerService.java | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/services/print/java/com/android/server/print/PrintManagerService.java b/services/print/java/com/android/server/print/PrintManagerService.java index 6c417a9baf93..5121c29d688d 100644 --- a/services/print/java/com/android/server/print/PrintManagerService.java +++ b/services/print/java/com/android/server/print/PrintManagerService.java @@ -736,14 +736,18 @@ public final class PrintManagerService extends SystemService { UserState userState = getOrCreateUserStateLocked(getChangingUserId(), false, false /* enforceUserUnlockingOrUnlocked */); + boolean prunePrintServices = false; synchronized (mLock) { if (hadPrintService(userState, packageName) || hasPrintService(packageName)) { userState.updateIfNeededLocked(); + prunePrintServices = true; } } - userState.prunePrintServices(); + if (prunePrintServices) { + userState.prunePrintServices(); + } } @Override @@ -752,13 +756,17 @@ public final class PrintManagerService extends SystemService { UserState userState = getOrCreateUserStateLocked(getChangingUserId(), false, false /* enforceUserUnlockingOrUnlocked */); + boolean prunePrintServices = false; synchronized (mLock) { if (hadPrintService(userState, packageName)) { userState.updateIfNeededLocked(); + prunePrintServices = true; } } - userState.prunePrintServices(); + if (prunePrintServices) { + userState.prunePrintServices(); + } } @Override |