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

Commit b86129e4 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Disable more options while in progress"

parents 9eb7a69e 31865597
Loading
Loading
Loading
Loading
+32 −1
Original line number Diff line number Diff line
@@ -137,6 +137,9 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat

    private static final String FRAGMENT_TAG = "FRAGMENT_TAG";

    private static final String MORE_OPTIONS_ACTIVITY_IN_PROGRESS_KEY =
            PrintActivity.class.getName() + ".MORE_OPTIONS_ACTIVITY_IN_PROGRESS";

    private static final String HAS_PRINTED_PREF = "has_printed";

    private static final int LOADER_ID_ENABLED_PRINT_SERVICES = 1;
@@ -226,6 +229,12 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat

    private Button mMoreOptionsButton;

    /**
     * The {@link #mMoreOptionsButton} was pressed and we started the
     * @link #mAdvancedPrintOptionsActivity} and it has not yet {@link #onActivityResult returned}.
     */
    private boolean mIsMoreOptionsActivityInProgress;

    private ImageView mPrintButton;

    private ProgressMessageController mProgressMessageController;
@@ -268,6 +277,11 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat

        Bundle extras = getIntent().getExtras();

        if (savedInstanceState != null) {
            mIsMoreOptionsActivityInProgress =
                    savedInstanceState.getBoolean(MORE_OPTIONS_ACTIVITY_IN_PROGRESS_KEY);
        }

        mPrintJob = extras.getParcelable(PrintManager.EXTRA_PRINT_JOB);
        if (mPrintJob == null) {
            throw new IllegalArgumentException(PrintManager.EXTRA_PRINT_JOB
@@ -423,6 +437,14 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat
        super.onPause();
    }

    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);

        outState.putBoolean(MORE_OPTIONS_ACTIVITY_IN_PROGRESS_KEY,
                mIsMoreOptionsActivityInProgress);
    }

    @Override
    protected void onStop() {
        mPrinterAvailabilityDetector.cancel();
@@ -799,16 +821,24 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat
            intent.putExtra(PrintService.EXTRA_PRINT_DOCUMENT_INFO,
                    mPrintedDocument.getDocumentInfo().info);

            mIsMoreOptionsActivityInProgress = true;

            // This is external activity and may not be there.
            try {
                startActivityForResult(intent, ACTIVITY_REQUEST_POPULATE_ADVANCED_PRINT_OPTIONS);
            } catch (ActivityNotFoundException anfe) {
                mIsMoreOptionsActivityInProgress = false;
                Log.e(LOG_TAG, "Error starting activity for intent: " + intent, anfe);
            }

            mMoreOptionsButton.setEnabled(!mIsMoreOptionsActivityInProgress);
        }
    }

    private void onAdvancedPrintOptionsActivityResult(int resultCode, Intent data) {
        mIsMoreOptionsActivityInProgress = false;
        mMoreOptionsButton.setEnabled(true);

        if (resultCode != RESULT_OK || data == null) {
            return;
        }
@@ -1903,7 +1933,8 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat
        // Advanced print options
        if (mAdvancedPrintOptionsActivity != null) {
            mMoreOptionsButton.setVisibility(View.VISIBLE);
            mMoreOptionsButton.setEnabled(true);

            mMoreOptionsButton.setEnabled(!mIsMoreOptionsActivityInProgress);
        } else {
            mMoreOptionsButton.setVisibility(View.GONE);
            mMoreOptionsButton.setEnabled(false);