12d531653595344ed7e61c093dca308b9ba7ec185Svetoslav/* 22d531653595344ed7e61c093dca308b9ba7ec185Svetoslav * Copyright (C) 2013 The Android Open Source Project 32d531653595344ed7e61c093dca308b9ba7ec185Svetoslav * 42d531653595344ed7e61c093dca308b9ba7ec185Svetoslav * Licensed under the Apache License, Version 2.0 (the "License"); 52d531653595344ed7e61c093dca308b9ba7ec185Svetoslav * you may not use this file except in compliance with the License. 62d531653595344ed7e61c093dca308b9ba7ec185Svetoslav * You may obtain a copy of the License at 72d531653595344ed7e61c093dca308b9ba7ec185Svetoslav * 82d531653595344ed7e61c093dca308b9ba7ec185Svetoslav * http://www.apache.org/licenses/LICENSE-2.0 92d531653595344ed7e61c093dca308b9ba7ec185Svetoslav * 102d531653595344ed7e61c093dca308b9ba7ec185Svetoslav * Unless required by applicable law or agreed to in writing, software 112d531653595344ed7e61c093dca308b9ba7ec185Svetoslav * distributed under the License is distributed on an "AS IS" BASIS, 122d531653595344ed7e61c093dca308b9ba7ec185Svetoslav * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 132d531653595344ed7e61c093dca308b9ba7ec185Svetoslav * See the License for the specific language governing permissions and 142d531653595344ed7e61c093dca308b9ba7ec185Svetoslav * limitations under the License. 152d531653595344ed7e61c093dca308b9ba7ec185Svetoslav */ 162d531653595344ed7e61c093dca308b9ba7ec185Svetoslav 172d531653595344ed7e61c093dca308b9ba7ec185Svetoslavpackage com.android.settings.print; 182d531653595344ed7e61c093dca308b9ba7ec185Svetoslav 192d531653595344ed7e61c093dca308b9ba7ec185Svetoslavimport android.content.ComponentName; 202d531653595344ed7e61c093dca308b9ba7ec185Svetoslavimport android.content.Context; 212d531653595344ed7e61c093dca308b9ba7ec185Svetoslavimport android.provider.Settings; 222d531653595344ed7e61c093dca308b9ba7ec185Svetoslavimport android.text.TextUtils.SimpleStringSplitter; 232d531653595344ed7e61c093dca308b9ba7ec185Svetoslav 242d531653595344ed7e61c093dca308b9ba7ec185Svetoslavimport java.util.ArrayList;import java.util.List; 252d531653595344ed7e61c093dca308b9ba7ec185Svetoslav 262d531653595344ed7e61c093dca308b9ba7ec185Svetoslav/** 272d531653595344ed7e61c093dca308b9ba7ec185Svetoslav * Helper methods for reading and writing to print settings. 282d531653595344ed7e61c093dca308b9ba7ec185Svetoslav */ 292d531653595344ed7e61c093dca308b9ba7ec185Svetoslavpublic class SettingsUtils { 302d531653595344ed7e61c093dca308b9ba7ec185Svetoslav 312d531653595344ed7e61c093dca308b9ba7ec185Svetoslav private static final char ENABLED_PRINT_SERVICES_SEPARATOR = ':'; 322d531653595344ed7e61c093dca308b9ba7ec185Svetoslav 332d531653595344ed7e61c093dca308b9ba7ec185Svetoslav private SettingsUtils() { 342d531653595344ed7e61c093dca308b9ba7ec185Svetoslav /* do nothing */ 352d531653595344ed7e61c093dca308b9ba7ec185Svetoslav } 362d531653595344ed7e61c093dca308b9ba7ec185Svetoslav 372d531653595344ed7e61c093dca308b9ba7ec185Svetoslav public static List<ComponentName> readEnabledPrintServices(Context context) { 382d531653595344ed7e61c093dca308b9ba7ec185Svetoslav List<ComponentName> enabledServices = new ArrayList<ComponentName>(); 392d531653595344ed7e61c093dca308b9ba7ec185Svetoslav 402d531653595344ed7e61c093dca308b9ba7ec185Svetoslav String enabledServicesSetting = Settings.Secure.getString(context 412d531653595344ed7e61c093dca308b9ba7ec185Svetoslav .getContentResolver(), Settings.Secure.ENABLED_PRINT_SERVICES); 422d531653595344ed7e61c093dca308b9ba7ec185Svetoslav if (enabledServicesSetting == null) { 432d531653595344ed7e61c093dca308b9ba7ec185Svetoslav return enabledServices; 442d531653595344ed7e61c093dca308b9ba7ec185Svetoslav } 452d531653595344ed7e61c093dca308b9ba7ec185Svetoslav 462d531653595344ed7e61c093dca308b9ba7ec185Svetoslav SimpleStringSplitter colonSplitter = new SimpleStringSplitter( 472d531653595344ed7e61c093dca308b9ba7ec185Svetoslav ENABLED_PRINT_SERVICES_SEPARATOR); 482d531653595344ed7e61c093dca308b9ba7ec185Svetoslav colonSplitter.setString(enabledServicesSetting); 492d531653595344ed7e61c093dca308b9ba7ec185Svetoslav 502d531653595344ed7e61c093dca308b9ba7ec185Svetoslav while (colonSplitter.hasNext()) { 512d531653595344ed7e61c093dca308b9ba7ec185Svetoslav String componentNameString = colonSplitter.next(); 522d531653595344ed7e61c093dca308b9ba7ec185Svetoslav ComponentName enabledService = ComponentName.unflattenFromString( 532d531653595344ed7e61c093dca308b9ba7ec185Svetoslav componentNameString); 542d531653595344ed7e61c093dca308b9ba7ec185Svetoslav enabledServices.add(enabledService); 552d531653595344ed7e61c093dca308b9ba7ec185Svetoslav } 562d531653595344ed7e61c093dca308b9ba7ec185Svetoslav 572d531653595344ed7e61c093dca308b9ba7ec185Svetoslav return enabledServices; 582d531653595344ed7e61c093dca308b9ba7ec185Svetoslav } 592d531653595344ed7e61c093dca308b9ba7ec185Svetoslav 602d531653595344ed7e61c093dca308b9ba7ec185Svetoslav public static void writeEnabledPrintServices(Context context, 612d531653595344ed7e61c093dca308b9ba7ec185Svetoslav List<ComponentName> services) { 622d531653595344ed7e61c093dca308b9ba7ec185Svetoslav StringBuilder builder = new StringBuilder(); 632d531653595344ed7e61c093dca308b9ba7ec185Svetoslav final int serviceCount = services.size(); 642d531653595344ed7e61c093dca308b9ba7ec185Svetoslav for (int i = 0; i < serviceCount; i++) { 652d531653595344ed7e61c093dca308b9ba7ec185Svetoslav ComponentName service = services.get(i); 662d531653595344ed7e61c093dca308b9ba7ec185Svetoslav if (builder.length() > 0) { 672d531653595344ed7e61c093dca308b9ba7ec185Svetoslav builder.append(ENABLED_PRINT_SERVICES_SEPARATOR); 682d531653595344ed7e61c093dca308b9ba7ec185Svetoslav } 692d531653595344ed7e61c093dca308b9ba7ec185Svetoslav builder.append(service.flattenToString()); 702d531653595344ed7e61c093dca308b9ba7ec185Svetoslav } 712d531653595344ed7e61c093dca308b9ba7ec185Svetoslav Settings.Secure.putString(context.getContentResolver(), 722d531653595344ed7e61c093dca308b9ba7ec185Svetoslav Settings.Secure.ENABLED_PRINT_SERVICES, 732d531653595344ed7e61c093dca308b9ba7ec185Svetoslav builder.toString()); 742d531653595344ed7e61c093dca308b9ba7ec185Svetoslav } 752d531653595344ed7e61c093dca308b9ba7ec185Svetoslav} 76