Use disabled print services instead of enabled print services in print settings.
Change-Id: I32bc8a8dda86f92b180f043a98b304fe676db98c
This commit is contained in:
@@ -191,13 +191,13 @@ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment
|
||||
|
||||
private void onPreferenceToggled(String preferenceKey, boolean enabled) {
|
||||
ComponentName service = ComponentName.unflattenFromString(preferenceKey);
|
||||
List<ComponentName> services = PrintSettingsUtils.readEnabledPrintServices(getActivity());
|
||||
List<ComponentName> services = PrintSettingsUtils.readDisabledPrintServices(getActivity());
|
||||
if (enabled) {
|
||||
services.add(service);
|
||||
} else {
|
||||
services.remove(service);
|
||||
} else {
|
||||
services.add(service);
|
||||
}
|
||||
PrintSettingsUtils.writeEnabledPrintServices(getActivity(), services);
|
||||
PrintSettingsUtils.writeDisabledPrintServices(getActivity(), services);
|
||||
}
|
||||
|
||||
private ListView getBackupListView() {
|
||||
@@ -253,8 +253,9 @@ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment
|
||||
}
|
||||
|
||||
private void updateUiForServiceState() {
|
||||
List<ComponentName> services = PrintSettingsUtils.readEnabledPrintServices(getActivity());
|
||||
mServiceEnabled = services.contains(mComponentName);
|
||||
List<ComponentName> disabledServices = PrintSettingsUtils
|
||||
.readDisabledPrintServices(getActivity());
|
||||
mServiceEnabled = !disabledServices.contains(mComponentName);
|
||||
if (mServiceEnabled) {
|
||||
mSwitchBar.setCheckedInternal(true);
|
||||
mPrintersAdapter.enable();
|
||||
@@ -431,7 +432,7 @@ public class PrintServiceSettingsFragment extends SettingsPreferenceFragment
|
||||
|
||||
public void register(ContentResolver contentResolver) {
|
||||
contentResolver.registerContentObserver(android.provider.Settings.Secure.getUriFor(
|
||||
android.provider.Settings.Secure.ENABLED_PRINT_SERVICES), false, this);
|
||||
android.provider.Settings.Secure.DISABLED_PRINT_SERVICES), false, this);
|
||||
}
|
||||
|
||||
public void unregister(ContentResolver contentResolver) {
|
||||
|
@@ -207,8 +207,8 @@ public class PrintSettingsFragment extends SettingsPreferenceFragment
|
||||
mPrintServicesCategory.removeAll();
|
||||
}
|
||||
|
||||
List<ComponentName> enabledServices = PrintSettingsUtils
|
||||
.readEnabledPrintServices(getActivity());
|
||||
List<ComponentName> disabledServices = PrintSettingsUtils
|
||||
.readDisabledPrintServices(getActivity());
|
||||
|
||||
final PackageManager pm = getActivity().getPackageManager();
|
||||
|
||||
@@ -236,7 +236,7 @@ public class PrintSettingsFragment extends SettingsPreferenceFragment
|
||||
preference.setFragment(PrintServiceSettingsFragment.class.getName());
|
||||
preference.setPersistent(false);
|
||||
|
||||
final boolean serviceEnabled = enabledServices.contains(componentName);
|
||||
final boolean serviceEnabled = !disabledServices.contains(componentName);
|
||||
if (serviceEnabled) {
|
||||
preference.setSummary(getString(R.string.print_feature_state_on));
|
||||
} else {
|
||||
@@ -388,7 +388,7 @@ public class PrintSettingsFragment extends SettingsPreferenceFragment
|
||||
|
||||
public void register(ContentResolver contentResolver) {
|
||||
contentResolver.registerContentObserver(Settings.Secure.getUriFor(
|
||||
Settings.Secure.ENABLED_PRINT_SERVICES), false, this);
|
||||
Settings.Secure.DISABLED_PRINT_SERVICES), false, this);
|
||||
}
|
||||
|
||||
public void unregister(ContentResolver contentResolver) {
|
||||
|
@@ -30,50 +30,50 @@ import java.util.List;
|
||||
*/
|
||||
public class PrintSettingsUtils {
|
||||
|
||||
private static final char ENABLED_PRINT_SERVICES_SEPARATOR = ':';
|
||||
private static final char DISABLED_PRINT_SERVICES_SEPARATOR = ':';
|
||||
|
||||
private PrintSettingsUtils() {
|
||||
/* do nothing */
|
||||
}
|
||||
|
||||
public static List<ComponentName> readEnabledPrintServices(Context context) {
|
||||
List<ComponentName> enabledServices = new ArrayList<ComponentName>();
|
||||
public static List<ComponentName> readDisabledPrintServices(Context context) {
|
||||
List<ComponentName> disabledServices = new ArrayList<ComponentName>();
|
||||
|
||||
String enabledServicesSetting = Settings.Secure.getString(context
|
||||
.getContentResolver(), Settings.Secure.ENABLED_PRINT_SERVICES);
|
||||
if (TextUtils.isEmpty(enabledServicesSetting)) {
|
||||
return enabledServices;
|
||||
String disabledServicesSetting = Settings.Secure.getString(context
|
||||
.getContentResolver(), Settings.Secure.DISABLED_PRINT_SERVICES);
|
||||
if (TextUtils.isEmpty(disabledServicesSetting)) {
|
||||
return disabledServices;
|
||||
}
|
||||
|
||||
SimpleStringSplitter colonSplitter = new SimpleStringSplitter(
|
||||
ENABLED_PRINT_SERVICES_SEPARATOR);
|
||||
colonSplitter.setString(enabledServicesSetting);
|
||||
DISABLED_PRINT_SERVICES_SEPARATOR);
|
||||
colonSplitter.setString(disabledServicesSetting);
|
||||
|
||||
while (colonSplitter.hasNext()) {
|
||||
String componentNameString = colonSplitter.next();
|
||||
ComponentName enabledService = ComponentName.unflattenFromString(
|
||||
ComponentName disabledService = ComponentName.unflattenFromString(
|
||||
componentNameString);
|
||||
if (enabledService != null) {
|
||||
enabledServices.add(enabledService);
|
||||
if (disabledService != null) {
|
||||
disabledServices.add(disabledService);
|
||||
}
|
||||
}
|
||||
|
||||
return enabledServices;
|
||||
return disabledServices;
|
||||
}
|
||||
|
||||
public static void writeEnabledPrintServices(Context context,
|
||||
public static void writeDisabledPrintServices(Context context,
|
||||
List<ComponentName> services) {
|
||||
StringBuilder builder = new StringBuilder();
|
||||
final int serviceCount = services.size();
|
||||
for (int i = 0; i < serviceCount; i++) {
|
||||
ComponentName service = services.get(i);
|
||||
if (builder.length() > 0) {
|
||||
builder.append(ENABLED_PRINT_SERVICES_SEPARATOR);
|
||||
builder.append(DISABLED_PRINT_SERVICES_SEPARATOR);
|
||||
}
|
||||
builder.append(service.flattenToString());
|
||||
}
|
||||
Settings.Secure.putString(context.getContentResolver(),
|
||||
Settings.Secure.ENABLED_PRINT_SERVICES,
|
||||
Settings.Secure.DISABLED_PRINT_SERVICES,
|
||||
builder.toString());
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user