OSDN Git Service

Adding timeout if the current printer or its capabilities disappear.
authorSvetoslav <svetoslavganov@google.com>
Fri, 11 Oct 2013 20:56:08 +0000 (13:56 -0700)
committerSvetoslav <svetoslavganov@google.com>
Fri, 11 Oct 2013 21:02:49 +0000 (14:02 -0700)
If the current printer becomes unavailable or its capabilities
go away we are scheduling a timeout to declare the printer as
unavailable.

bug:10983508

Change-Id: Iab85cfd35fc0cecc3dd4abac6232347f9da18fb0

packages/PrintSpooler/src/com/android/printspooler/PrintJobConfigActivity.java

index a8c4f07..3ee1a64 100644 (file)
@@ -1247,6 +1247,21 @@ public class PrintJobConfigActivity extends Activity {
                                     return;
                                 }
 
+                                // If the current printer became unavailable or its
+                                // capabilities go away, we update the UI and add a
+                                // timeout to declare the printer as unavailable.
+                                if ((mCurrentPrinter.getStatus() != PrinterInfo.STATUS_UNAVAILABLE
+                                        && printer.getStatus() == PrinterInfo.STATUS_UNAVAILABLE)
+                                    || (mCurrentPrinter.getCapabilities() != null
+                                        && printer.getCapabilities() == null)) {
+                                    if (!mCapabilitiesTimeout.isPosted()) {
+                                        mCapabilitiesTimeout.post();
+                                        mCurrentPrinter.copyFrom(printer);
+                                        updateUi();
+                                        return;
+                                    }
+                                }
+
                                 // We just refreshed the current printer.
                                 if (printer.getCapabilities() != null
                                         && mCapabilitiesTimeout.isPosted()) {