From caf6a2eb0cba4c7754aeaf74f5be11a93072dafc Mon Sep 17 00:00:00 2001 From: "Philip P. Moltmann" Date: Tue, 2 Oct 2018 12:34:40 -0700 Subject: 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 --- .../com/android/printspooler/model/RemotePrintDocument.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'packages/PrintSpooler/src') diff --git a/packages/PrintSpooler/src/com/android/printspooler/model/RemotePrintDocument.java b/packages/PrintSpooler/src/com/android/printspooler/model/RemotePrintDocument.java index 164454690d46..42c1997b41a3 100644 --- a/packages/PrintSpooler/src/com/android/printspooler/model/RemotePrintDocument.java +++ b/packages/PrintSpooler/src/com/android/printspooler/model/RemotePrintDocument.java @@ -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 -- cgit v1.2.3-59-g8ed1b