diff --git a/core/java/android/print/PrintJobInfo.java b/core/java/android/print/PrintJobInfo.java index 4693556492e5d..e571986beae05 100644 --- a/core/java/android/print/PrintJobInfo.java +++ b/core/java/android/print/PrintJobInfo.java @@ -47,6 +47,14 @@ public final class PrintJobInfo implements Parcelable { */ public static final int STATE_ANY_ACTIVE = -3; + /** + * Constant for matching any scheduled, i.e. delivered to a print + * service, print job state. + * + * @hide + */ + public static final int STATE_ANY_SCHEDULED = -4; + /** * Print job state: The print job is being created but not yet * ready to be printed. diff --git a/packages/PrintSpooler/src/com/android/printspooler/PrintSpoolerService.java b/packages/PrintSpooler/src/com/android/printspooler/PrintSpoolerService.java index a4d557f92e661..04b50b3f47142 100644 --- a/packages/PrintSpooler/src/com/android/printspooler/PrintSpoolerService.java +++ b/packages/PrintSpooler/src/com/android/printspooler/PrintSpoolerService.java @@ -268,7 +268,9 @@ public final class PrintSpoolerService extends Service { || (state == PrintJobInfo.STATE_ANY_VISIBLE_TO_CLIENTS && isStateVisibleToUser(printJob.getState())) || (state == PrintJobInfo.STATE_ANY_ACTIVE - && isActiveState(printJob.getState())); + && isActiveState(printJob.getState())) + || (state == PrintJobInfo.STATE_ANY_SCHEDULED + && isScheduledState(printJob.getState())); if (sameComponent && sameAppId && sameState) { if (foundPrintJobs == null) { foundPrintJobs = new ArrayList(); @@ -554,6 +556,12 @@ public final class PrintSpoolerService extends Service { || printJobState == PrintJobInfo.STATE_QUEUED); } + private boolean isScheduledState(int printJobState) { + return printJobState == PrintJobInfo.STATE_QUEUED + || printJobState == PrintJobInfo.STATE_STARTED + || printJobState == PrintJobInfo.STATE_BLOCKED; + } + private boolean isActiveState(int printJobState) { return printJobState == PrintJobInfo.STATE_CREATED || printJobState == PrintJobInfo.STATE_QUEUED diff --git a/services/java/com/android/server/print/UserState.java b/services/java/com/android/server/print/UserState.java index 1b373edf5d54f..b894855d6fe32 100644 --- a/services/java/com/android/server/print/UserState.java +++ b/services/java/com/android/server/print/UserState.java @@ -798,17 +798,17 @@ final class UserState implements PrintSpoolerCallbacks, PrintServiceCallbacks { BackgroundThread.getHandler().post(new Runnable() { @Override public void run() { - failActivePrintJobsForServiceInternal(serviceName); + failScheduledPrintJobsForServiceInternal(serviceName); } }); } else { - failActivePrintJobsForServiceInternal(serviceName); + failScheduledPrintJobsForServiceInternal(serviceName); } } - private void failActivePrintJobsForServiceInternal(ComponentName serviceName) { + private void failScheduledPrintJobsForServiceInternal(ComponentName serviceName) { List printJobs = mSpooler.getPrintJobInfos(serviceName, - PrintJobInfo.STATE_ANY_ACTIVE, PrintManager.APP_ID_ANY); + PrintJobInfo.STATE_ANY_SCHEDULED, PrintManager.APP_ID_ANY); if (printJobs == null) { return; }