summaryrefslogtreecommitdiffstats
path: root/services/java/com/android/server/print/RemotePrintSpooler.java
diff options
context:
space:
mode:
Diffstat (limited to 'services/java/com/android/server/print/RemotePrintSpooler.java')
-rw-r--r--services/java/com/android/server/print/RemotePrintSpooler.java18
1 files changed, 18 insertions, 0 deletions
diff --git a/services/java/com/android/server/print/RemotePrintSpooler.java b/services/java/com/android/server/print/RemotePrintSpooler.java
index 1bde6d7..f98a805 100644
--- a/services/java/com/android/server/print/RemotePrintSpooler.java
+++ b/services/java/com/android/server/print/RemotePrintSpooler.java
@@ -91,6 +91,7 @@ final class RemotePrintSpooler {
public static interface PrintSpoolerCallbacks {
public void onPrintJobQueued(PrintJobInfo printJob);
public void onAllPrintJobsForServiceHandled(ComponentName printService);
+ public void onPrintJobStateChanged(PrintJobId printJobId, int appId);
}
public RemotePrintSpooler(Context context, int userId,
@@ -345,6 +346,10 @@ final class RemotePrintSpooler {
}
}
+ private void onPrintJobStateChanged(PrintJobId printJobId, int appId) {
+ mCallbacks.onPrintJobStateChanged(printJobId, appId);
+ }
+
private IPrintSpooler getRemoteInstanceLazy() throws TimeoutException {
synchronized (mLock) {
if (mRemoteInstance != null) {
@@ -618,5 +623,18 @@ final class RemotePrintSpooler {
}
}
}
+
+ @Override
+ public void onPrintJobStateChanged(PrintJobId printJobId, int appId) {
+ RemotePrintSpooler spooler = mWeakSpooler.get();
+ if (spooler != null) {
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ spooler.onPrintJobStateChanged(printJobId, appId);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+ }
}
}