summaryrefslogtreecommitdiffstats
path: root/src/com/android/settings/print
diff options
context:
space:
mode:
authorSvetoslav <svetoslavganov@google.com>2014-09-04 19:54:15 -0700
committerSvetoslav <svetoslavganov@google.com>2014-09-04 19:54:21 -0700
commit4a361df54b0c00dfe730b29b879abcd836a5d85a (patch)
tree93949bd6b973b5d1a4ac5cb6f1d497ccb9c39ce5 /src/com/android/settings/print
parent0535ed559eca51cce107309d05a3858ae48f5f20 (diff)
downloadpackages_apps_Settings-4a361df54b0c00dfe730b29b879abcd836a5d85a.zip
packages_apps_Settings-4a361df54b0c00dfe730b29b879abcd836a5d85a.tar.gz
packages_apps_Settings-4a361df54b0c00dfe730b29b879abcd836a5d85a.tar.bz2
Fix an occasional crash in print job state fragment in Settings.
There is a NPE in the print settings if the following occurs: We open the print job state UI in settings for an ongoing print job (now we have action bar buttons for cancel and restart); now the print job gets completed and we update the UI and since the print job is not longer present we nullify the current job reference and finish the activity. But since activity is not finished immediately there is an opportunity for the user to click on the action bar options which results in NPE. The fix is to not update the print job instance in the update UI method if the job is not available, i.e. the update method does not mutate state if the job is no longer present, as we are finishing and performing an operation on a finished job will have no effect. bug:17387134 Change-Id: I501ed1e05b8b70584b3299a16e93ead5ab7f155f
Diffstat (limited to 'src/com/android/settings/print')
-rw-r--r--src/com/android/settings/print/PrintJobSettingsFragment.java7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/com/android/settings/print/PrintJobSettingsFragment.java b/src/com/android/settings/print/PrintJobSettingsFragment.java
index cbe70ae..5af7f9d 100644
--- a/src/com/android/settings/print/PrintJobSettingsFragment.java
+++ b/src/com/android/settings/print/PrintJobSettingsFragment.java
@@ -153,18 +153,19 @@ public class PrintJobSettingsFragment extends SettingsPreferenceFragment {
}
private void updateUi() {
- mPrintJob = mPrintManager.getPrintJob(mPrintJobId);
+ PrintJob printJob = mPrintManager.getPrintJob(mPrintJobId);
- if (mPrintJob == null) {
+ if (printJob == null) {
finish();
return;
}
- if (mPrintJob.isCancelled() || mPrintJob.isCompleted()) {
+ if (printJob.isCancelled() || printJob.isCompleted()) {
finish();
return;
}
+ mPrintJob = printJob;
PrintJobInfo info = mPrintJob.getInfo();
switch (info.getState()) {