Print document generation: Schedule new layout if current command is canceling

In this case the mUpdateSpec will be marked as stale once the command
is done, hence we have to start from scratch.

Fixes: 117124112
Test: - Reproduced scenario in bug
      - atest CtsPrintTestCases

Change-Id: I98e11d28147bae638d68b2124507d04f825a392f
This commit is contained in:
Philip P. Moltmann
2018-10-02 12:34:40 -07:00
parent d72ccfff3d
commit caf6a2eb0c

View File

@@ -218,8 +218,14 @@ public final class RemotePrintDocument {
throw new IllegalStateException("Cannot update in state:" + stateToString(mState));
}
// We schedule a layout if the constraints changed.
if (!mUpdateSpec.hasSameConstraints(attributes, preview)) {
/*
* We schedule a layout in two cases:
* - if the current command is canceling. In this case the mUpdateSpec will be marked as
* stale once the command is done, hence we have to start from scratch
* - if the constraints changed we have a different document, hence start a new layout
*/
if (mCurrentCommand != null && mCurrentCommand.isCanceling()
|| !mUpdateSpec.hasSameConstraints(attributes, preview)) {
willUpdate = true;
// If there is a current command that is running we ask for a