From f1413249db087509070a7a4ad67db781ef4845cf Mon Sep 17 00:00:00 2001 From: "Philip P. Moltmann" Date: Tue, 17 May 2016 14:26:13 -0700 Subject: Handle printers selected by SelectPrinter activity - Declare a printers availability when changing the removed state. - Set printJob.printerId to current printer when returning from SelectPrinter Change-Id: Ie4680be04fa614a4088f2f32a527e80928c957cc Fixes: 27643305 --- .../src/com/android/printspooler/ui/PrintActivity.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java b/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java index 241581d91d4f..be3df54e12ae 100644 --- a/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java +++ b/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java @@ -718,6 +718,9 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat SelectPrinterActivity.INTENT_EXTRA_PRINTER); if (printerInfo != null) { mCurrentPrinter = printerInfo; + mPrintJob.setPrinterId(printerInfo.getId()); + mPrintJob.setPrinterName(printerInfo.getName()); + mDestinationSpinnerAdapter.ensurePrinterInVisibleAdapterPosition(printerInfo); } } @@ -1964,7 +1967,7 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat } public void onPrinterAvailable(PrinterInfo printer) { - if (mCurrentPrinter.equals(printer)) { + if (mCurrentPrinter != null && mCurrentPrinter.equals(printer)) { setState(STATE_CONFIGURING); if (canUpdateDocument()) { updateDocument(false); @@ -2459,12 +2462,15 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat PrinterHolder printerHolder = mPrinterHolders.get(i); PrinterId oldPrinterId = printerHolder.printer.getId(); PrinterInfo updatedPrinter = newPrintersMap.remove(oldPrinterId); + if (updatedPrinter != null) { printerHolder.printer = updatedPrinter; printerHolder.removed = false; + onPrinterAvailable(printerHolder.printer); newPrinterHolders.add(printerHolder); } else if (mCurrentPrinter != null && mCurrentPrinter.getId().equals(oldPrinterId)){ printerHolder.removed = true; + onPrinterUnavailable(printerHolder.printer); newPrinterHolders.add(printerHolder); } } -- cgit v1.2.3-59-g8ed1b