From 973d8af11b11da273d54f289217c04ce39bf9200 Mon Sep 17 00:00:00 2001 From: Narayan Kamath Date: Mon, 31 Jul 2017 11:10:50 +0100 Subject: [PATCH] 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 --- .../android/server/print/PrintManagerService.java | 12 ++++++++++-- 1 file 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 6c417a9baf938..5121c29d688d9 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