Offer to enable a print service after it is installed (Settings).
The user has to explicitly enable a print service from the settings UI before using it. Usually, users very rarely if at all interact with print services, therefore all print service management task are performed from the print settings. We also have to get user consent warning that the user's data is about to be given to a third-party app. We now post a notification allowing the user to go directly to the settings screen to turn the service on. bug:10447510 Change-Id: Ibfb5368a09b1e012dd6dd0f3d33a5ad10e5ee00e
This commit is contained in:
@@ -65,6 +65,9 @@ public class PrintSettingsFragment extends SettingsPreferenceFragment implements
|
||||
static final String EXTRA_ADD_PRINTERS_COMPONENT_NAME = "add_printers_component_name";
|
||||
static final String EXTRA_SERVICE_COMPONENT_NAME = "service_component_name";
|
||||
|
||||
private static final String EXTRA_PRINT_SERVICE_COMPONENT_NAME =
|
||||
"EXTRA_PRINT_SERVICE_COMPONENT_NAME";
|
||||
|
||||
private final PackageMonitor mSettingsPackageMonitor = new SettingsPackageMonitor();
|
||||
|
||||
private final Handler mHandler = new Handler() {
|
||||
@@ -97,6 +100,7 @@ public class PrintSettingsFragment extends SettingsPreferenceFragment implements
|
||||
mSettingsPackageMonitor.register(getActivity(), getActivity().getMainLooper(), false);
|
||||
mSettingsContentObserver.register(getContentResolver());
|
||||
updateServicesPreferences();
|
||||
startPrintServiceSettingsIfNeeded();
|
||||
setHasOptionsMenu(true);
|
||||
}
|
||||
|
||||
@@ -213,6 +217,20 @@ public class PrintSettingsFragment extends SettingsPreferenceFragment implements
|
||||
}
|
||||
}
|
||||
|
||||
private void startPrintServiceSettingsIfNeeded() {
|
||||
if (getArguments() == null) {
|
||||
return;
|
||||
}
|
||||
String componentName = getArguments().getString(EXTRA_PRINT_SERVICE_COMPONENT_NAME);
|
||||
if (componentName != null) {
|
||||
getArguments().remove(EXTRA_PRINT_SERVICE_COMPONENT_NAME);
|
||||
Preference prereference = findPreference(componentName);
|
||||
if (prereference != null) {
|
||||
prereference.performClick(getPreferenceScreen());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private class SettingsPackageMonitor extends PackageMonitor {
|
||||
@Override
|
||||
public void onPackageAdded(String packageName, int uid) {
|
||||
|
Reference in New Issue
Block a user