diff options
author | Mihai Nita <mnita@google.com> | 2016-01-12 08:55:05 -0800 |
---|---|---|
committer | Mihai Nita <mnita@google.com> | 2016-01-20 12:31:11 -0800 |
commit | d7d48fda53747a7a25e903d9ef6defa6ea590ebb (patch) | |
tree | 04a5e5cf2312c820475dfb1f9a015d02719d4be9 /src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java | |
parent | ae7e15b7304d372ec8d5a65708c91aba439e6f78 (diff) | |
download | packages_apps_Settings-d7d48fda53747a7a25e903d9ef6defa6ea590ebb.tar.gz packages_apps_Settings-d7d48fda53747a7a25e903d9ef6defa6ea590ebb.tar.bz2 packages_apps_Settings-d7d48fda53747a7a25e903d9ef6defa6ea590ebb.zip |
Implement multiple locales and sublocales in Settings
Does drag-and-drop reordering, supports adding / removing locales,
suggestions, search, removes locales already selected in the
user preferences.
Bug: 25800339
Change-Id: Iffe7b9810c77ec93a84d848ab20b2ba405249676
Diffstat (limited to 'src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java')
-rw-r--r-- | src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java | 32 |
1 files changed, 12 insertions, 20 deletions
diff --git a/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java b/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java index aa2d68a8cd..9022538c09 100644 --- a/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java +++ b/src/com/android/settings/inputmethod/InputMethodAndLanguageSettings.java @@ -43,6 +43,7 @@ import android.support.v7.preference.PreferenceCategory; import android.support.v7.preference.PreferenceManager; import android.support.v7.preference.PreferenceScreen; import android.text.TextUtils; +import android.util.LocaleList; import android.view.InputDevice; import android.view.inputmethod.InputMethodInfo; import android.view.inputmethod.InputMethodManager; @@ -50,6 +51,7 @@ import android.view.inputmethod.InputMethodSubtype; import android.view.textservice.SpellCheckerInfo; import android.view.textservice.TextServicesManager; +import com.android.internal.app.LocaleHelper; import com.android.internal.app.LocalePicker; import com.android.internal.logging.MetricsLogger; import com.android.settings.R; @@ -266,8 +268,8 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment if (!mShowsOnlyFullImeAndKeyboardList) { if (mLanguagePref != null) { - String localeName = getLocaleName(getActivity()); - mLanguagePref.setSummary(localeName); + String localeNames = getLocaleNames(getActivity()); + mLanguagePref.setSummary(localeNames); } updateUserDictionaryPreference(findPreference(KEY_USER_DICTIONARY_SETTINGS)); @@ -340,19 +342,9 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment return super.onPreferenceTreeClick(preference); } - private static String getLocaleName(Context context) { - // We want to show the same string that the LocalePicker used. - // TODO: should this method be in LocalePicker instead? - Locale currentLocale = context.getResources().getConfiguration().locale; - List<LocalePicker.LocaleInfo> locales = LocalePicker.getAllAssetLocales(context, true); - for (LocalePicker.LocaleInfo locale : locales) { - if (locale.getLocale().equals(currentLocale)) { - return locale.getLabel(); - } - } - // This can't happen as long as the locale was one set by Settings. - // Fall back in case a developer is testing an unsupported locale. - return currentLocale.getDisplayName(currentLocale); + private static String getLocaleNames(Context context) { + final LocaleList locales = LocalePicker.getLocales(); + return LocaleHelper.getDisplayLocaleList(locales, Locale.getDefault()); } private void saveInputMethodSelectorVisibility(String value) { @@ -665,8 +657,8 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment @Override public void setListening(boolean listening) { if (listening) { - String localeName = getLocaleName(mContext); - mSummaryLoader.setSummary(this, localeName); + String localeNames = getLocaleNames(mContext); + mSummaryLoader.setSummary(this, localeNames); } } } @@ -690,12 +682,12 @@ public class InputMethodAndLanguageSettings extends SettingsPreferenceFragment // Locale picker. if (context.getAssets().getLocales().length > 1) { - String localeName = getLocaleName(context); + String localeNames = getLocaleNames(context); SearchIndexableRaw indexable = new SearchIndexableRaw(context); indexable.key = KEY_PHONE_LANGUAGE; indexable.title = context.getString(R.string.phone_language); - indexable.summaryOn = localeName; - indexable.summaryOff = localeName; + indexable.summaryOn = localeNames; + indexable.summaryOff = localeNames; indexable.screenTitle = screenTitle; indexables.add(indexable); } |