diff options
Diffstat (limited to 'packages/PrintSpooler/src/com/android/printspooler/FusedPrintersProvider.java')
-rw-r--r-- | packages/PrintSpooler/src/com/android/printspooler/FusedPrintersProvider.java | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/packages/PrintSpooler/src/com/android/printspooler/FusedPrintersProvider.java b/packages/PrintSpooler/src/com/android/printspooler/FusedPrintersProvider.java index 28fd0e0..ad8d95a 100644 --- a/packages/PrintSpooler/src/com/android/printspooler/FusedPrintersProvider.java +++ b/packages/PrintSpooler/src/com/android/printspooler/FusedPrintersProvider.java @@ -75,6 +75,8 @@ public class FusedPrintersProvider extends Loader<List<PrinterInfo>> { private List<PrinterInfo> mFavoritePrinters; + private PrinterId mTrackedPrinter; + public FusedPrintersProvider(Context context) { super(context); mPersistenceManager = new PersistenceManager(context); @@ -166,6 +168,10 @@ public class FusedPrintersProvider extends Loader<List<PrinterInfo>> { private boolean cancelInternal() { if (mDiscoverySession != null && mDiscoverySession.isPrinterDiscoveryStarted()) { + if (mTrackedPrinter != null) { + mDiscoverySession.stopPrinterStateTracking(mTrackedPrinter); + mTrackedPrinter = null; + } mDiscoverySession.stopPrinterDiscovery(); return true; } else if (mPersistenceManager.isReadHistoryInProgress()) { @@ -195,10 +201,14 @@ public class FusedPrintersProvider extends Loader<List<PrinterInfo>> { onStopLoading(); } - public void refreshPrinter(PrinterId printerId) { + public void setTrackedPrinter(PrinterId printerId) { if (isStarted() && mDiscoverySession != null && mDiscoverySession.isPrinterDiscoveryStarted()) { - mDiscoverySession.requestPrinterUpdate(printerId); + if (mTrackedPrinter != null) { + mDiscoverySession.stopPrinterStateTracking(mTrackedPrinter); + } + mTrackedPrinter = printerId; + mDiscoverySession.startPrinterStateTracking(printerId); } } |