diff options
author | Svetoslav <svetoslavganov@google.com> | 2013-11-14 17:59:14 -0800 |
---|---|---|
committer | Svetoslav <svetoslavganov@google.com> | 2013-11-14 18:02:31 -0800 |
commit | 885810de69d75979df4299d21fa236490767eae4 (patch) | |
tree | 2e50214fe4201ac9921eab65e57b8a01b1e00701 /packages/PrintSpooler/src/com/android | |
parent | 39af5a78c073d01539625a9fbbb8511747e2f048 (diff) | |
download | frameworks_base-885810de69d75979df4299d21fa236490767eae4.zip frameworks_base-885810de69d75979df4299d21fa236490767eae4.tar.gz frameworks_base-885810de69d75979df4299d21fa236490767eae4.tar.bz2 |
Created print jobs should not be persisted until they are queued.
Print jobs in a created state should not be persisted. However,
if a print service sets the tag to a print job that is queued,
we were persisting even print jobs in a created state. This
change adds a simple check while persisting to avoid storing
created print jobs.
bug:11696785
Change-Id: Idf28f3634b91fd5bf345f376114af4ed478ed3c6
Diffstat (limited to 'packages/PrintSpooler/src/com/android')
-rw-r--r-- | packages/PrintSpooler/src/com/android/printspooler/PrintSpoolerService.java | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/packages/PrintSpooler/src/com/android/printspooler/PrintSpoolerService.java b/packages/PrintSpooler/src/com/android/printspooler/PrintSpoolerService.java index 778fb4d..615d667 100644 --- a/packages/PrintSpooler/src/com/android/printspooler/PrintSpoolerService.java +++ b/packages/PrintSpooler/src/com/android/printspooler/PrintSpoolerService.java @@ -441,6 +441,7 @@ public final class PrintSpoolerService extends Service { private void removeObsoletePrintJobs() { synchronized (mLock) { + boolean persistState = false; final int printJobCount = mPrintJobs.size(); for (int i = printJobCount - 1; i >= 0; i--) { PrintJobInfo printJob = mPrintJobs.get(i); @@ -450,9 +451,12 @@ public final class PrintSpoolerService extends Service { Slog.i(LOG_TAG, "[REMOVE] " + printJob.getId().flattenToString()); } removePrintJobFileLocked(printJob.getId()); + persistState = true; } } - mPersistanceManager.writeStateLocked(); + if (persistState) { + mPersistanceManager.writeStateLocked(); + } } } @@ -799,6 +803,10 @@ public final class PrintSpoolerService extends Service { for (int j = 0; j < printJobCount; j++) { PrintJobInfo printJob = printJobs.get(j); + if (!shouldPersistPrintJob(printJob)) { + continue; + } + serializer.startTag(null, TAG_JOB); serializer.attribute(null, ATTR_ID, printJob.getId().flattenToString()); |