PrintSpooler crash if printer is reported to have only one color mode.

bug:11993304

Change-Id: I4932cf1b5b9b89f0cbf97011782ede037e7d814c
This commit is contained in:
Svetoslav
2014-01-02 11:23:44 -08:00
parent 23ab74de5e
commit b0d97b87ba

View File

@@ -2206,12 +2206,16 @@ public class PrintJobConfigActivity extends Activity {
// Select the old color mode - nothing really changed.
setColorModeSpinnerSelectionNoCallback(oldColorModeNewIndex);
} else {
final int selectedColorModeIndex = Integer.numberOfTrailingZeros(
(colorModes & defaultAttributes.getColorMode()));
setColorModeSpinnerSelectionNoCallback(selectedColorModeIndex);
mCurrPrintAttributes.setColorMode(mColorModeSpinnerAdapter
.getItem(selectedColorModeIndex).value);
someAttributeSelectionChanged = true;
final int selectedColorMode = colorModes & defaultAttributes.getColorMode();
final int itemCount = mColorModeSpinnerAdapter.getCount();
for (int i = 0; i < itemCount; i++) {
SpinnerItem<Integer> item = mColorModeSpinnerAdapter.getItem(i);
if (selectedColorMode == item.value) {
setColorModeSpinnerSelectionNoCallback(i);
mCurrPrintAttributes.setColorMode(selectedColorMode);
someAttributeSelectionChanged = true;
}
}
}
}
mColorModeSpinner.setEnabled(true);