summaryrefslogtreecommitdiffstats
path: root/packages/PrintSpooler/src/com/android/printspooler/PrintSpoolerService.java
diff options
context:
space:
mode:
authorSvetoslav <svetoslavganov@google.com>2013-11-14 17:59:14 -0800
committerSvetoslav <svetoslavganov@google.com>2013-11-14 18:02:31 -0800
commit885810de69d75979df4299d21fa236490767eae4 (patch)
tree2e50214fe4201ac9921eab65e57b8a01b1e00701 /packages/PrintSpooler/src/com/android/printspooler/PrintSpoolerService.java
parent39af5a78c073d01539625a9fbbb8511747e2f048 (diff)
downloadframeworks_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/printspooler/PrintSpoolerService.java')
-rw-r--r--packages/PrintSpooler/src/com/android/printspooler/PrintSpoolerService.java10
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());