Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9a40a32a authored by Philip P. Moltmann's avatar Philip P. Moltmann
Browse files

Clear state when ProgressMessageCtrl. is canceled

Otherwise the following can happen:
- The progressController is _not_ running and we are running through
  an update.
- Then onUpdateCompleted is called which cancels the not running
  progressController. This then reset whatever state was previously
  stored as mPreviousState leaving the PrintActivity in a weird state.

Fixes: 27945565
Change-Id: Id46b8853ba634634198a74921c8a1790c435678c
parent 808f2c36
Loading
Loading
Loading
Loading
+21 −4
Original line number Diff line number Diff line
@@ -683,6 +683,10 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat
                }
            });
        } else if (resultCode == RESULT_CANCELED) {
            if (DEBUG) {
                Log.i(LOG_TAG, "[state]" + STATE_CONFIGURING);
            }

            mState = STATE_CONFIGURING;

            // The previous update might have been canceled
@@ -898,9 +902,15 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat
    private void setState(int state) {
        if (isFinalState(mState)) {
            if (isFinalState(state)) {
                if (DEBUG) {
                    Log.i(LOG_TAG, "[state]" + state);
                }
                mState = state;
            }
        } else {
            if (DEBUG) {
                Log.i(LOG_TAG, "[state]" + state);
            }
            mState = state;
        }
    }
@@ -2896,13 +2906,20 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat
        }

        public int cancel() {
            int state;

            if (!mPosted) {
                return getStateAfterCancel();
            }
                state = getStateAfterCancel();
            } else {
                mPosted = false;
                mHandler.removeCallbacks(this);

            return getStateAfterCancel();
                state = getStateAfterCancel();
            }

            mPreviousState = -1;

            return state;
        }

        @Override