From 2a708617dfdc0b6dbf9b39baebbdc55d19aa7728 Mon Sep 17 00:00:00 2001 From: Svetoslav Date: Tue, 24 Sep 2013 15:14:41 -0700 Subject: [PATCH] User should not be able to select unavailable printers. 1. If the printer is unavailable we should not allow the user to select it. Rather, show it grayed out. 2. Some string changes requeted by translators. bug:10917222 Change-Id: I370f05f9c8e70e3f077db7eb02cf48e19a59925d --- .../res/layout/spinner_dropdown_item.xml | 1 - packages/PrintSpooler/res/values/strings.xml | 16 ++++++++-------- .../printspooler/PrintJobConfigActivity.java | 14 +++++++++++++- 3 files changed, 21 insertions(+), 10 deletions(-) diff --git a/packages/PrintSpooler/res/layout/spinner_dropdown_item.xml b/packages/PrintSpooler/res/layout/spinner_dropdown_item.xml index f00da0dee060d..65d1ee72da772 100644 --- a/packages/PrintSpooler/res/layout/spinner_dropdown_item.xml +++ b/packages/PrintSpooler/res/layout/spinner_dropdown_item.xml @@ -47,7 +47,6 @@ android:visibility="gone" android:textColor="@color/item_text_color" android:duplicateParentState="true"> - diff --git a/packages/PrintSpooler/res/values/strings.xml b/packages/PrintSpooler/res/values/strings.xml index 543c4250126a7..9fe7e00e7d098 100644 --- a/packages/PrintSpooler/res/values/strings.xml +++ b/packages/PrintSpooler/res/values/strings.xml @@ -26,24 +26,24 @@ Save - DESTIINATION + Destination - COPIES + Copies - PAPER SIZE + Paper Size - COLOR + Color - ORIENTATION + Orientation - PAGES (%1$s) + Pages (%1$s) - + e.g. 1–5, 8, 11–13 @@ -56,7 +56,7 @@ Printing app crashed - unknown + unavailable Generating print job diff --git a/packages/PrintSpooler/src/com/android/printspooler/PrintJobConfigActivity.java b/packages/PrintSpooler/src/com/android/printspooler/PrintJobConfigActivity.java index 3a6da5d41936b..05b0b6900ed02 100644 --- a/packages/PrintSpooler/src/com/android/printspooler/PrintJobConfigActivity.java +++ b/packages/PrintSpooler/src/com/android/printspooler/PrintJobConfigActivity.java @@ -1973,6 +1973,16 @@ public class PrintJobConfigActivity extends Activity { return Math.min(mPrinters.size() + 2, DEST_ADAPTER_MAX_ITEM_COUNT); } + @Override + public boolean isEnabled(int position) { + Object item = getItem(position); + if (item instanceof PrinterInfo) { + PrinterInfo printer = (PrinterInfo) item; + return printer.getStatus() != PrinterInfo.STATUS_UNAVAILABLE; + } + return true; + } + @Override public Object getItem(int position) { if (mPrinters.isEmpty()) { @@ -2016,7 +2026,9 @@ public class PrintJobConfigActivity extends Activity { @Override public View getDropDownView(int position, View convertView, ViewGroup parent) { - return getView(position, convertView, parent); + View view = getView(position, convertView, parent); + view.setEnabled(isEnabled(position)); + return view; } @Override