diff options
Diffstat (limited to 'src/com/android/settings/accessibility/AccessibilityUtils.java')
-rw-r--r-- | src/com/android/settings/accessibility/AccessibilityUtils.java | 62 |
1 files changed, 51 insertions, 11 deletions
diff --git a/src/com/android/settings/accessibility/AccessibilityUtils.java b/src/com/android/settings/accessibility/AccessibilityUtils.java index fd4a34f..66a3ed2 100644 --- a/src/com/android/settings/accessibility/AccessibilityUtils.java +++ b/src/com/android/settings/accessibility/AccessibilityUtils.java @@ -1,37 +1,77 @@ +/* + * Copyright (C) 2013 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package com.android.settings.accessibility; import android.content.ComponentName; import android.content.Context; +import android.content.res.Configuration; +import android.content.res.Resources; import android.provider.Settings; -import android.provider.Settings.Secure; import android.text.TextUtils.SimpleStringSplitter; +import java.util.Collections; import java.util.HashSet; +import java.util.Locale; import java.util.Set; /** - * TODO: Insert description here. (generated by alanv) + * Utility methods used within accessibility settings. */ -public class AccessibilityUtils { - +class AccessibilityUtils { + /** + * @return the set of enabled accessibility services + */ static Set<ComponentName> getEnabledServicesFromSettings(Context context) { - String enabledServicesSetting = Settings.Secure.getString(context.getContentResolver(), - Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES); + final String enabledServicesSetting = Settings.Secure.getString( + context.getContentResolver(), Settings.Secure.ENABLED_ACCESSIBILITY_SERVICES); if (enabledServicesSetting == null) { - enabledServicesSetting = ""; + return Collections.emptySet(); } - Set<ComponentName> enabledServices = new HashSet<ComponentName>(); - SimpleStringSplitter colonSplitter = AccessibilitySettings.sStringColonSplitter; + + final Set<ComponentName> enabledServices = new HashSet<ComponentName>(); + final SimpleStringSplitter colonSplitter = AccessibilitySettings.sStringColonSplitter; colonSplitter.setString(enabledServicesSetting); + while (colonSplitter.hasNext()) { - String componentNameString = colonSplitter.next(); - ComponentName enabledService = ComponentName.unflattenFromString( + final String componentNameString = colonSplitter.next(); + final ComponentName enabledService = ComponentName.unflattenFromString( componentNameString); if (enabledService != null) { enabledServices.add(enabledService); } } + return enabledServices; } + /** + * @return a localized version of the text resource specified by resId + */ + static CharSequence getTextForLocale(Context context, Locale locale, int resId) { + final Resources res = context.getResources(); + final Configuration config = res.getConfiguration(); + final Locale prevLocale = config.locale; + try { + config.locale = locale; + res.updateConfiguration(config, null); + return res.getText(resId); + } finally { + config.locale = prevLocale; + res.updateConfiguration(config, null); + } + } } |