am b179bed3: Merge "Fix carsh in print spooler if custom print setings return bad pages." into lmp-dev

* commit 'b179bed35302704bce809029ab424f919de351c3':
  Fix carsh in print spooler if custom print setings return bad pages.
This commit is contained in:
Svetoslav
2014-09-29 02:55:18 +00:00
committed by Android Git Automerger

View File

@@ -724,10 +724,35 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat
}
}
// Handle selected page changes making sure they are in the doc.
PrintDocumentInfo info = mPrintedDocument.getDocumentInfo().info;
final int pageCount = (info != null) ? getAdjustedPageCount(info) : 0;
PageRange[] pageRanges = printJobInfo.getPages();
updateSelectedPages(pageRanges, pageCount);
if (pageRanges != null && pageCount > 0) {
pageRanges = PageRangeUtils.normalize(pageRanges);
List<PageRange> validatedList = new ArrayList<>();
final int rangeCount = pageRanges.length;
for (int i = 0; i < rangeCount; i++) {
PageRange pageRange = pageRanges[i];
if (pageRange.getEnd() >= pageCount) {
final int rangeStart = pageRange.getStart();
final int rangeEnd = pageCount - 1;
if (rangeStart <= rangeEnd) {
pageRange = new PageRange(rangeStart, rangeEnd);
validatedList.add(pageRange);
}
break;
}
validatedList.add(pageRange);
}
if (!validatedList.isEmpty()) {
PageRange[] validatedArray = new PageRange[validatedList.size()];
validatedList.toArray(validatedArray);
updateSelectedPages(validatedArray, pageCount);
}
}
// Update the content if needed.
if (canUpdateDocument()) {