Update print jobs appropriately in the print settings.

- Always use a fresh print job as once the print job goes away it cannot
  be read. Before we were stuck with the last state which might not been
  the last state
- make loaders relative to fragment to avoid loader id duplications with
  other ids of the activity.

Fixes: 28315242
Change-Id: I57eeb64b44b5d77b2092c22b175407131f7baf97
This commit is contained in:
Philip P. Moltmann
2016-04-21 15:15:37 -07:00
parent 1624f69ac9
commit eb01628ba8
3 changed files with 19 additions and 21 deletions

View File

@@ -63,7 +63,6 @@ public class PrintJobSettingsFragment extends SettingsPreferenceFragment {
private Preference mMessagePreference;
private PrintJobId mPrintJobId;
private PrintJob mPrintJob;
@Override
protected int getMetricsCategory() {
@@ -134,17 +133,21 @@ public class PrintJobSettingsFragment extends SettingsPreferenceFragment {
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case MENU_ITEM_ID_CANCEL: {
getPrintJob().cancel();
finish();
return true;
}
PrintJob printJob = getPrintJob();
case MENU_ITEM_ID_RESTART: {
getPrintJob().restart();
finish();
return true;
if (printJob != null) {
switch (item.getItemId()) {
case MENU_ITEM_ID_CANCEL: {
printJob.cancel();
finish();
return true;
}
case MENU_ITEM_ID_RESTART: {
printJob.restart();
finish();
return true;
}
}
}
@@ -161,10 +164,7 @@ public class PrintJobSettingsFragment extends SettingsPreferenceFragment {
}
private PrintJob getPrintJob() {
if (mPrintJob == null) {
mPrintJob = mPrintManager.getPrintJob(mPrintJobId);
}
return mPrintJob;
return mPrintManager.getPrintJob(mPrintJobId);
}
private void updateUi() {