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

Commit 3ef8e203 authored by Svetoslav's avatar Svetoslav
Browse files

Fix a crash in print spooler.

1. Leftover code was setting the state to configuring
   before initialization is complete.

2. We were not cancelling the print job if cancelled
   when initializing.

3. The remote print document was cancelled even if
   doing nothing.

bug:17451600

Change-Id: I79a80b723af8537da260012470748b4e8831fd9e
parent 9127e458
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -219,8 +219,6 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setState(STATE_CONFIGURING);

        Bundle extras = getIntent().getExtras();

        mPrintJob = extras.getParcelable(PrintManager.EXTRA_PRINT_JOB);
@@ -311,13 +309,17 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat

    @Override
    public void onPause() {
        PrintSpoolerService spooler = mSpoolerProvider.getSpooler();

        if (mState == STATE_INITIALIZING) {
            if (isFinishing()) {
                spooler.setPrintJobState(mPrintJob.getId(), PrintJobInfo.STATE_CANCELED, null);
            }
            super.onPause();
            return;
        }

        if (isFinishing()) {
            PrintSpoolerService spooler = mSpoolerProvider.getSpooler();
            spooler.updatePrintJobUserConfigurableOptionsNoPersistence(mPrintJob);

            switch (mState) {
@@ -343,6 +345,10 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat
            mPrinterRegistry.setTrackedPrinter(null);
            mPrintPreviewController.destroy();
            mSpoolerProvider.destroy();

            if (mPrintedDocument.isUpdating()) {
                mPrintedDocument.cancel();
            }
            mPrintedDocument.finish();
            mPrintedDocument.destroy();
        }
@@ -364,7 +370,8 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat
    @Override
    public boolean onKeyUp(int keyCode, KeyEvent event) {
        if (mState == STATE_INITIALIZING) {
            return super.onKeyUp(keyCode, event);
            finish();
            return true;
        }

        if (keyCode == KeyEvent.KEYCODE_BACK