From 02dded1a63bb5ae2968fb9df0c29bad115416a28 Mon Sep 17 00:00:00 2001 From: Svetoslav Date: Fri, 11 Oct 2013 13:56:08 -0700 Subject: [PATCH] Adding timeout if the current printer or its capabilities disappear. 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 --- .../printspooler/PrintJobConfigActivity.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/packages/PrintSpooler/src/com/android/printspooler/PrintJobConfigActivity.java b/packages/PrintSpooler/src/com/android/printspooler/PrintJobConfigActivity.java index a8c4f078c9d50..3ee1a640fef40 100644 --- a/packages/PrintSpooler/src/com/android/printspooler/PrintJobConfigActivity.java +++ b/packages/PrintSpooler/src/com/android/printspooler/PrintJobConfigActivity.java @@ -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()) {