Loading packages/PrintSpooler/res/values/strings.xml +3 −0 Original line number Diff line number Diff line Loading @@ -109,6 +109,9 @@ <!-- Label for an unknown reason for failed or blocked print job. [CHAR LIMIT=25] --> <string name="reason_unknown">unknown</string> <!-- Label for a printer that is not available. [CHAR LIMIT=25] --> <string name="printer_unavailable"><xliff:g id="print_job_name" example="Canon-123GHT">%1$s</xliff:g> – unavailable</string> <!-- Arrays --> <!-- Color mode labels. --> Loading packages/PrintSpooler/src/com/android/printspooler/PrintJobConfigActivity.java +46 −9 Original line number Diff line number Diff line Loading @@ -819,8 +819,6 @@ public class PrintJobConfigActivity extends Activity { private PrinterInfo mCurrentPrinter; private boolean mRequestedCurrentPrinterRefresh; private final OnItemSelectedListener mOnItemSelectedListener = new AdapterView.OnItemSelectedListener() { @Override Loading @@ -840,7 +838,7 @@ public class PrintJobConfigActivity extends Activity { return; } mRequestedCurrentPrinterRefresh = false; mCapabilitiesTimeout.remove(); mCurrentPrinter = (PrinterInfo) mDestinationSpinnerAdapter .getItem(position); Loading @@ -855,8 +853,7 @@ public class PrintJobConfigActivity extends Activity { PrinterCapabilitiesInfo capabilities = mCurrentPrinter.getCapabilities(); if (capabilities == null) { // TODO: We need a timeout for the update. mRequestedCurrentPrinterRefresh = true; mCapabilitiesTimeout.post(); updateUi(); refreshCurrentPrinter(); } else { Loading Loading @@ -1129,6 +1126,9 @@ public class PrintJobConfigActivity extends Activity { } }; private final WaitForPrinterCapabilitiesTimeout mCapabilitiesTimeout = new WaitForPrinterCapabilitiesTimeout(); private int mEditorState; private boolean mIgnoreNextDestinationChange; Loading Loading @@ -1174,16 +1174,16 @@ public class PrintJobConfigActivity extends Activity { if (mCurrentPrinter.getStatus() == PrinterInfo.STATUS_UNAVAILABLE && printer.getStatus() != PrinterInfo.STATUS_UNAVAILABLE && printer.getCapabilities() == null && !mRequestedCurrentPrinterRefresh) { mRequestedCurrentPrinterRefresh = true; && !mCapabilitiesTimeout.isPosted()) { mCapabilitiesTimeout.post(); refreshCurrentPrinter(); return; } // We just refreshed the current printer. if (printer.getCapabilities() != null && mRequestedCurrentPrinterRefresh) { mRequestedCurrentPrinterRefresh = false; && mCapabilitiesTimeout.isPosted()) { mCapabilitiesTimeout.remove(); updatePrintAttributes(printer.getCapabilities()); updateUi(); mController.update(); Loading Loading @@ -1972,6 +1972,43 @@ public class PrintJobConfigActivity extends Activity { } } private final class WaitForPrinterCapabilitiesTimeout implements Runnable { private static final long GET_CAPABILITIES_TIMEOUT_MILLIS = 10000; // 10sec private boolean mIsPosted; public void post() { if (!mIsPosted) { mDestinationSpinner.postDelayed(this, GET_CAPABILITIES_TIMEOUT_MILLIS); mIsPosted = true; } } public void remove() { if (mIsPosted) { mIsPosted = false; mDestinationSpinner.removeCallbacks(this); } } public boolean isPosted() { return mIsPosted; } @Override public void run() { mIsPosted = false; if (mDestinationSpinner.getSelectedItemPosition() >= 0) { View itemView = mDestinationSpinner.getSelectedView(); TextView titleView = (TextView) itemView.findViewById(R.id.title); String title = getString(R.string.printer_unavailable, mCurrentPrinter.getName()); titleView.setText(title); } } } private final class DestinationAdapter extends BaseAdapter implements LoaderManager.LoaderCallbacks<List<PrinterInfo>>{ private final List<PrinterInfo> mPrinters = new ArrayList<PrinterInfo>(); Loading Loading
packages/PrintSpooler/res/values/strings.xml +3 −0 Original line number Diff line number Diff line Loading @@ -109,6 +109,9 @@ <!-- Label for an unknown reason for failed or blocked print job. [CHAR LIMIT=25] --> <string name="reason_unknown">unknown</string> <!-- Label for a printer that is not available. [CHAR LIMIT=25] --> <string name="printer_unavailable"><xliff:g id="print_job_name" example="Canon-123GHT">%1$s</xliff:g> – unavailable</string> <!-- Arrays --> <!-- Color mode labels. --> Loading
packages/PrintSpooler/src/com/android/printspooler/PrintJobConfigActivity.java +46 −9 Original line number Diff line number Diff line Loading @@ -819,8 +819,6 @@ public class PrintJobConfigActivity extends Activity { private PrinterInfo mCurrentPrinter; private boolean mRequestedCurrentPrinterRefresh; private final OnItemSelectedListener mOnItemSelectedListener = new AdapterView.OnItemSelectedListener() { @Override Loading @@ -840,7 +838,7 @@ public class PrintJobConfigActivity extends Activity { return; } mRequestedCurrentPrinterRefresh = false; mCapabilitiesTimeout.remove(); mCurrentPrinter = (PrinterInfo) mDestinationSpinnerAdapter .getItem(position); Loading @@ -855,8 +853,7 @@ public class PrintJobConfigActivity extends Activity { PrinterCapabilitiesInfo capabilities = mCurrentPrinter.getCapabilities(); if (capabilities == null) { // TODO: We need a timeout for the update. mRequestedCurrentPrinterRefresh = true; mCapabilitiesTimeout.post(); updateUi(); refreshCurrentPrinter(); } else { Loading Loading @@ -1129,6 +1126,9 @@ public class PrintJobConfigActivity extends Activity { } }; private final WaitForPrinterCapabilitiesTimeout mCapabilitiesTimeout = new WaitForPrinterCapabilitiesTimeout(); private int mEditorState; private boolean mIgnoreNextDestinationChange; Loading Loading @@ -1174,16 +1174,16 @@ public class PrintJobConfigActivity extends Activity { if (mCurrentPrinter.getStatus() == PrinterInfo.STATUS_UNAVAILABLE && printer.getStatus() != PrinterInfo.STATUS_UNAVAILABLE && printer.getCapabilities() == null && !mRequestedCurrentPrinterRefresh) { mRequestedCurrentPrinterRefresh = true; && !mCapabilitiesTimeout.isPosted()) { mCapabilitiesTimeout.post(); refreshCurrentPrinter(); return; } // We just refreshed the current printer. if (printer.getCapabilities() != null && mRequestedCurrentPrinterRefresh) { mRequestedCurrentPrinterRefresh = false; && mCapabilitiesTimeout.isPosted()) { mCapabilitiesTimeout.remove(); updatePrintAttributes(printer.getCapabilities()); updateUi(); mController.update(); Loading Loading @@ -1972,6 +1972,43 @@ public class PrintJobConfigActivity extends Activity { } } private final class WaitForPrinterCapabilitiesTimeout implements Runnable { private static final long GET_CAPABILITIES_TIMEOUT_MILLIS = 10000; // 10sec private boolean mIsPosted; public void post() { if (!mIsPosted) { mDestinationSpinner.postDelayed(this, GET_CAPABILITIES_TIMEOUT_MILLIS); mIsPosted = true; } } public void remove() { if (mIsPosted) { mIsPosted = false; mDestinationSpinner.removeCallbacks(this); } } public boolean isPosted() { return mIsPosted; } @Override public void run() { mIsPosted = false; if (mDestinationSpinner.getSelectedItemPosition() >= 0) { View itemView = mDestinationSpinner.getSelectedView(); TextView titleView = (TextView) itemView.findViewById(R.id.title); String title = getString(R.string.printer_unavailable, mCurrentPrinter.getName()); titleView.setText(title); } } } private final class DestinationAdapter extends BaseAdapter implements LoaderManager.LoaderCallbacks<List<PrinterInfo>>{ private final List<PrinterInfo> mPrinters = new ArrayList<PrinterInfo>(); Loading