<!-- Title for print service settings screen [CHAR LIMIT=25] -->
<string name="print_settings_title">Print services</string>
- <!-- Title for a warning message about security implications of enabling a print service,
- displayed as a dialog message when the user selects to enable a print service (tablet). [CHAR LIMIT=NONE] -->
- <string name="print_service_security_warning_title">Use
- <xliff:g id="service" example="My Print Service">%1$s</xliff:g>?</string>
- <!-- Summary for a warning message about security implications of enabling a print service,
- displayed as a dialog message when the user selects to enable a print service. [CHAR LIMIT=NONE] -->
- <string name="print_service_security_warning_summary">Your document may pass through
- one or more servers on its way to the printer.</string>
-
<!-- Title for the prompt shown as a placeholder if no print serivices are installed. [CHAR LIMIT=50] -->
<string name="print_no_services_installed">No services installed</string>
package com.android.settings.print;
import android.app.Activity;
-import android.app.AlertDialog;
-import android.app.Dialog;
import android.app.LoaderManager;
import android.content.ComponentName;
import android.content.ContentResolver;
import android.content.Context;
-import android.content.DialogInterface;
import android.content.Intent;
import android.content.Loader;
import android.content.pm.PackageInfo;
* Fragment with print service settings.
*/
public class PrintServiceSettingsFragment extends SettingsPreferenceFragment
- implements DialogInterface.OnClickListener, SwitchBar.OnSwitchChangeListener {
+ implements SwitchBar.OnSwitchChangeListener {
private static final int LOADER_ID_PRINTERS_LOADER = 1;
- private static final int DIALOG_ID_ENABLE_WARNING = 1;
-
private final SettingsContentObserver mSettingsContentObserver =
new SettingsContentObserver(new Handler()) {
@Override
private CharSequence mAddPrintersTitle;
private Intent mAddPrintersIntent;
- private CharSequence mEnableWarningTitle;
- private CharSequence mEnableWarningMessage;
-
private ComponentName mComponentName;
private PrintersAdapter mPrintersAdapter;
PrintSettingsUtils.writeEnabledPrintServices(getActivity(), services);
}
- @Override
- public Dialog onCreateDialog(int dialogId) {
- CharSequence title = null;
- CharSequence message = null;
- switch (dialogId) {
- case DIALOG_ID_ENABLE_WARNING:
- title = mEnableWarningTitle;
- message = mEnableWarningMessage;
- break;
- default:
- throw new IllegalArgumentException();
- }
- return new AlertDialog.Builder(getActivity())
- .setTitle(title)
- .setMessage(message)
- .setCancelable(true)
- .setPositiveButton(android.R.string.ok, this)
- .setNegativeButton(android.R.string.cancel, this)
- .create();
- }
-
- @Override
- public void onClick(DialogInterface dialog, int which) {
- final boolean checked;
- switch (which) {
- case DialogInterface.BUTTON_POSITIVE:
- checked = true;
- mSwitchBar.setCheckedInternal(checked);
- getArguments().putBoolean(PrintSettingsFragment.EXTRA_CHECKED, checked);
- onPreferenceToggled(mPreferenceKey, checked);
- break;
- case DialogInterface.BUTTON_NEGATIVE:
- checked = false;
- mSwitchBar.setCheckedInternal(checked);
- getArguments().putBoolean(PrintSettingsFragment.EXTRA_CHECKED, checked);
- onPreferenceToggled(mPreferenceKey, checked);
- break;
- default:
- throw new IllegalArgumentException();
- }
- }
-
private ListView getBackupListView() {
return (ListView) getView().findViewById(R.id.backup_list);
}
mToggleSwitch.setOnBeforeCheckedChangeListener(new ToggleSwitch.OnBeforeCheckedChangeListener() {
@Override
public boolean onBeforeCheckedChanged(ToggleSwitch toggleSwitch, boolean checked) {
- if (checked) {
- if (!TextUtils.isEmpty(mEnableWarningMessage)) {
- mSwitchBar.setCheckedInternal(false);
- getArguments().putBoolean(PrintSettingsFragment.EXTRA_CHECKED, false);
- showDialog(DIALOG_ID_ENABLE_WARNING);
- return true;
- }
- onPreferenceToggled(mPreferenceKey, true);
- } else {
- onPreferenceToggled(mPreferenceKey, false);
- }
+ onPreferenceToggled(mPreferenceKey, checked);
return false;
}
});
}
}
- // Enable warning title.
- mEnableWarningTitle = arguments.getCharSequence(
- PrintSettingsFragment.EXTRA_ENABLE_WARNING_TITLE);
-
- // Enable warning message.
- mEnableWarningMessage = arguments.getCharSequence(
- PrintSettingsFragment.EXTRA_ENABLE_WARNING_MESSAGE);
-
// Component name.
mComponentName = ComponentName.unflattenFromString(arguments
.getString(PrintSettingsFragment.EXTRA_SERVICE_COMPONENT_NAME));
static final String EXTRA_PREFERENCE_KEY = "EXTRA_PREFERENCE_KEY";
static final String EXTRA_CHECKED = "EXTRA_CHECKED";
static final String EXTRA_TITLE = "EXTRA_TITLE";
- static final String EXTRA_ENABLE_WARNING_TITLE = "EXTRA_ENABLE_WARNING_TITLE";
- static final String EXTRA_ENABLE_WARNING_MESSAGE = "EXTRA_ENABLE_WARNING_MESSAGE";
static final String EXTRA_SETTINGS_TITLE = "EXTRA_SETTINGS_TITLE";
static final String EXTRA_SETTINGS_COMPONENT_NAME = "EXTRA_SETTINGS_COMPONENT_NAME";
static final String EXTRA_ADD_PRINTERS_TITLE = "EXTRA_ADD_PRINTERS_TITLE";
PrintServiceInfo printServiceInfo = PrintServiceInfo.create(
installedService, getActivity());
- CharSequence applicationLabel = installedService.loadLabel(getPackageManager());
-
- extras.putString(EXTRA_ENABLE_WARNING_TITLE, getString(
- R.string.print_service_security_warning_title, applicationLabel));
- extras.putString(EXTRA_ENABLE_WARNING_MESSAGE, getString(
- R.string.print_service_security_warning_summary, applicationLabel));
-
String settingsClassName = printServiceInfo.getSettingsActivityName();
if (!TextUtils.isEmpty(settingsClassName)) {
extras.putString(EXTRA_SETTINGS_TITLE,