summaryrefslogtreecommitdiff
path: root/packages/PrintSpooler/src
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2017-09-01 17:12:54 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2017-09-01 17:12:54 +0000
commitb86129e4056777ab3a4bc2fe07b0637db6bd7c68 (patch)
tree0b5b08b012d72134c0fb97519d5bb229139ab318 /packages/PrintSpooler/src
parent9eb7a69e785b490be00d87ffccd4c861507fca50 (diff)
parent318655973ea7258fac04b572b96b29b685a66eec (diff)
Merge "Disable more options while in progress"
Diffstat (limited to 'packages/PrintSpooler/src')
-rw-r--r--packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java33
1 files changed, 32 insertions, 1 deletions
diff --git a/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java b/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java
index 951d196dabe1..44f68eca49a3 100644
--- a/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java
+++ b/packages/PrintSpooler/src/com/android/printspooler/ui/PrintActivity.java
@@ -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
@@ -424,6 +438,14 @@ public class PrintActivity extends Activity implements RemotePrintDocument.Updat
}
@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);