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() {

View File

@@ -606,7 +606,7 @@ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment
@Override
public Loader<List<PrinterInfo>> onCreateLoader(int id, Bundle args) {
if (id == LOADER_ID_PRINTERS_LOADER) {
return new PrintersLoader(getActivity());
return new PrintersLoader(getContext());
}
return null;
}

View File

@@ -115,12 +115,10 @@ public class PrintSettingsFragment extends ProfileSettingsPreferenceFragment
getPreferenceScreen().removePreference(mActivePrintJobsCategory);
mPrintJobsController = new PrintJobsController();
getActivity().getLoaderManager().initLoader(LOADER_ID_PRINT_JOBS_LOADER, null,
mPrintJobsController);
getLoaderManager().initLoader(LOADER_ID_PRINT_JOBS_LOADER, null, mPrintJobsController);
mPrintServicesController = new PrintServicesController();
getActivity().getLoaderManager().initLoader(LOADER_ID_PRINT_SERVICES, null,
mPrintServicesController);
getLoaderManager().initLoader(LOADER_ID_PRINT_SERVICES, null, mPrintServicesController);
}
@Override
@@ -294,7 +292,7 @@ public class PrintSettingsFragment extends ProfileSettingsPreferenceFragment
@Override
public Loader<List<PrintJobInfo>> onCreateLoader(int id, Bundle args) {
if (id == LOADER_ID_PRINT_JOBS_LOADER) {
return new PrintJobsLoader(getActivity());
return new PrintJobsLoader(getContext());
}
return null;
}