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:
@@ -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() {
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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;
|
||||
}
|
||||
|
Reference in New Issue
Block a user