From a947e582f1b79c2ed30d1609869ddf83832d4bd9 Mon Sep 17 00:00:00 2001 From: Jean Chalard Date: Mon, 5 Dec 2011 19:34:53 +0900 Subject: [PATCH] Populate the locale list This populates the language list. The option looks like it works, but is not implemented yet. Step 6. Bug: 5306641 Change-Id: I6ef84dea9a26e450add1d91b44238d86fe49200a --- .../UserDictionaryAddWordActivity.java | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/src/com/android/settings/inputmethod/UserDictionaryAddWordActivity.java b/src/com/android/settings/inputmethod/UserDictionaryAddWordActivity.java index c5270820ced..3a05380a667 100644 --- a/src/com/android/settings/inputmethod/UserDictionaryAddWordActivity.java +++ b/src/com/android/settings/inputmethod/UserDictionaryAddWordActivity.java @@ -20,7 +20,10 @@ import com.android.settings.R; import com.android.settings.UserDictionarySettings; import com.android.settings.Utils; +import java.util.ArrayList; +import java.util.List; import java.util.Locale; +import java.util.Set; import android.animation.LayoutTransition; import android.app.Activity; @@ -30,7 +33,9 @@ import android.provider.UserDictionary; import android.text.TextUtils; import android.view.View; import android.view.ViewGroup; +import android.widget.ArrayAdapter; import android.widget.EditText; +import android.widget.Spinner; public class UserDictionaryAddWordActivity extends Activity { public static final String EXTRA_WORD = "word"; @@ -78,12 +83,45 @@ public class UserDictionaryAddWordActivity extends Activity { finish(); } + private static void addLocaleDisplayNameToList(final List list, final String locale) { + if (null != locale) { + list.add(Utils.createLocaleFromString(locale).getDisplayName()); + } + } + public void onClickOptions(final View v) { final View moreOptionsView = findViewById(R.id.user_dict_settings_add_dialog_shortcut_interface); moreOptionsView.setVisibility(View.VISIBLE); findViewById(R.id.user_dictionary_settings_add_dialog_options).setVisibility(View.GONE); findViewById(R.id.user_dictionary_settings_add_dialog_manage).setVisibility(View.VISIBLE); + + final Set locales = UserDictionaryList.getUserDictionaryLocalesList(this); + if (null != mLocale && locales.contains(mLocale)) { + // Remove our locale if it's in, because we're always gonna put it at the top + locales.remove(mLocale); + } + final String systemLocale = Locale.getDefault().toString(); + if (null != systemLocale && locales.contains(systemLocale)) { + // The system locale should be inside. We want it at the 2nd spot. + locales.remove(systemLocale); + } + final ArrayList localesList = new ArrayList(); + // Add the passed locale, then the system locale at the top of the list. Add an + // "all languages" entry at the bottom of the list. + addLocaleDisplayNameToList(localesList, mLocale); + addLocaleDisplayNameToList(localesList, systemLocale); + for (final String l : locales) { + // TODO: sort in unicode order + addLocaleDisplayNameToList(localesList, l); + } + localesList.add(getString(R.string.user_dict_settings_all_languages)); + final Spinner localeSpinner = + (Spinner)findViewById(R.id.user_dictionary_settings_add_dialog_locale); + final ArrayAdapter adapter = + new ArrayAdapter(this, android.R.layout.simple_spinner_item, localesList); + adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + localeSpinner.setAdapter(adapter); } public void onClickManage(final View v) {