Merge "PrintSpooler crash if printer is reported to have only one color mode." into klp-dev
This commit is contained in:
@@ -475,6 +475,12 @@ public final class PrinterCapabilitiesInfo implements Parcelable {
|
|||||||
* @param colorModes The color mode bit mask.
|
* @param colorModes The color mode bit mask.
|
||||||
* @param defaultColorMode The default color mode.
|
* @param defaultColorMode The default color mode.
|
||||||
* @return This builder.
|
* @return This builder.
|
||||||
|
* <p>
|
||||||
|
* <strong>Note:</strong> On platform version 19 (Kitkat) specifying
|
||||||
|
* only PrintAttributes#COLOR_MODE_MONOCHROME leads to a print spooler
|
||||||
|
* crash. Hence, you should declare either both color modes or
|
||||||
|
* PrintAttributes#COLOR_MODE_COLOR.
|
||||||
|
* </p>
|
||||||
*
|
*
|
||||||
* @throws IllegalArgumentException If color modes contains an invalid
|
* @throws IllegalArgumentException If color modes contains an invalid
|
||||||
* mode bit or if the default color mode is invalid.
|
* mode bit or if the default color mode is invalid.
|
||||||
|
|||||||
@@ -2190,12 +2190,16 @@ public class PrintJobConfigActivity extends Activity {
|
|||||||
// Select the old color mode - nothing really changed.
|
// Select the old color mode - nothing really changed.
|
||||||
setColorModeSpinnerSelectionNoCallback(oldColorModeNewIndex);
|
setColorModeSpinnerSelectionNoCallback(oldColorModeNewIndex);
|
||||||
} else {
|
} else {
|
||||||
final int selectedColorModeIndex = Integer.numberOfTrailingZeros(
|
final int selectedColorMode = colorModes & defaultAttributes.getColorMode();
|
||||||
(colorModes & defaultAttributes.getColorMode()));
|
final int itemCount = mColorModeSpinnerAdapter.getCount();
|
||||||
setColorModeSpinnerSelectionNoCallback(selectedColorModeIndex);
|
for (int i = 0; i < itemCount; i++) {
|
||||||
mCurrPrintAttributes.setColorMode(mColorModeSpinnerAdapter
|
SpinnerItem<Integer> item = mColorModeSpinnerAdapter.getItem(i);
|
||||||
.getItem(selectedColorModeIndex).value);
|
if (selectedColorMode == item.value) {
|
||||||
someAttributeSelectionChanged = true;
|
setColorModeSpinnerSelectionNoCallback(i);
|
||||||
|
mCurrPrintAttributes.setColorMode(selectedColorMode);
|
||||||
|
someAttributeSelectionChanged = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
mColorModeSpinner.setEnabled(true);
|
mColorModeSpinner.setEnabled(true);
|
||||||
|
|||||||
Reference in New Issue
Block a user