Loading java/src/com/android/inputmethod/latin/SettingsFragment.java +11 −6 Original line number Original line Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.pm.ResolveInfo; import android.content.res.Resources; import android.content.res.Resources; import android.media.AudioManager; import android.media.AudioManager; import android.os.Build; import android.os.Bundle; import android.os.Bundle; import android.preference.CheckBoxPreference; import android.preference.CheckBoxPreference; import android.preference.ListPreference; import android.preference.ListPreference; Loading @@ -51,7 +52,10 @@ import java.util.TreeSet; public final class SettingsFragment extends InputMethodSettingsFragment public final class SettingsFragment extends InputMethodSettingsFragment implements SharedPreferences.OnSharedPreferenceChangeListener { implements SharedPreferences.OnSharedPreferenceChangeListener { private static final String TAG = SettingsFragment.class.getSimpleName(); private static final String TAG = SettingsFragment.class.getSimpleName(); private static final boolean DBG_USE_INTERNAL_USER_DICTIONARY_SETTINGS = false; private static final boolean DBG_USE_INTERNAL_PERSONAL_DICTIONARY_SETTINGS = false; private static final boolean USE_INTERNAL_PERSONAL_DICTIONARY_SETTIGS = DBG_USE_INTERNAL_PERSONAL_DICTIONARY_SETTINGS || Build.VERSION.SDK_INT <= 18 /* Build.VERSION.JELLY_BEAN_MR2 */; private ListPreference mVoicePreference; private ListPreference mVoicePreference; private ListPreference mShowCorrectionSuggestionsPreference; private ListPreference mShowCorrectionSuggestionsPreference; Loading Loading @@ -212,10 +216,11 @@ public final class SettingsFragment extends InputMethodSettingsFragment final Preference editPersonalDictionary = final Preference editPersonalDictionary = findPreference(Settings.PREF_EDIT_PERSONAL_DICTIONARY); findPreference(Settings.PREF_EDIT_PERSONAL_DICTIONARY); final Intent editPersonalDictionaryIntent = editPersonalDictionary.getIntent(); final Intent editPersonalDictionaryIntent = editPersonalDictionary.getIntent(); final ResolveInfo ri = context.getPackageManager().resolveActivity( final ResolveInfo ri = USE_INTERNAL_PERSONAL_DICTIONARY_SETTIGS ? null : context.getPackageManager().resolveActivity( editPersonalDictionaryIntent, PackageManager.MATCH_DEFAULT_ONLY); editPersonalDictionaryIntent, PackageManager.MATCH_DEFAULT_ONLY); if (DBG_USE_INTERNAL_USER_DICTIONARY_SETTINGS || ri == null) { if (ri == null) { updateUserDictionaryPreference(editPersonalDictionary); overwriteUserDictionaryPreference(editPersonalDictionary); } } if (!Settings.readFromBuildConfigIfGestureInputEnabled(res)) { if (!Settings.readFromBuildConfigIfGestureInputEnabled(res)) { Loading Loading @@ -470,7 +475,7 @@ public final class SettingsFragment extends InputMethodSettingsFragment }); }); } } private void updateUserDictionaryPreference(Preference userDictionaryPreference) { private void overwriteUserDictionaryPreference(Preference userDictionaryPreference) { final Activity activity = getActivity(); final Activity activity = getActivity(); final TreeSet<String> localeList = UserDictionaryList.getUserDictionaryLocalesSet(activity); final TreeSet<String> localeList = UserDictionaryList.getUserDictionaryLocalesSet(activity); if (null == localeList) { if (null == localeList) { Loading java/src/com/android/inputmethod/latin/userdictionary/UserDictionaryList.java +33 −5 Original line number Original line Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.inputmethod.latin.userdictionary; package com.android.inputmethod.latin.userdictionary; import android.app.Activity; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.Intent; import android.database.Cursor; import android.database.Cursor; import android.os.Bundle; import android.os.Bundle; Loading @@ -25,10 +26,14 @@ import android.preference.PreferenceFragment; import android.preference.PreferenceGroup; import android.preference.PreferenceGroup; import android.provider.UserDictionary; import android.provider.UserDictionary; import android.text.TextUtils; import android.text.TextUtils; import android.view.inputmethod.InputMethodInfo; import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodSubtype; import com.android.inputmethod.latin.R; import com.android.inputmethod.latin.R; import com.android.inputmethod.latin.utils.LocaleUtils; import com.android.inputmethod.latin.utils.LocaleUtils; import java.util.List; import java.util.Locale; import java.util.Locale; import java.util.TreeSet; import java.util.TreeSet; Loading @@ -52,7 +57,7 @@ public class UserDictionaryList extends PreferenceFragment { final Cursor cursor = activity.managedQuery(UserDictionary.Words.CONTENT_URI, final Cursor cursor = activity.managedQuery(UserDictionary.Words.CONTENT_URI, new String[] { UserDictionary.Words.LOCALE }, new String[] { UserDictionary.Words.LOCALE }, null, null, null); null, null, null); final TreeSet<String> localeList = new TreeSet<String>(); final TreeSet<String> localeSet = new TreeSet<String>(); boolean addedAllLocale = false; boolean addedAllLocale = false; if (null == cursor) { if (null == cursor) { // The user dictionary service is not present or disabled. Return null. // The user dictionary service is not present or disabled. Return null. Loading @@ -62,7 +67,7 @@ public class UserDictionaryList extends PreferenceFragment { do { do { final String locale = cursor.getString(columnIndex); final String locale = cursor.getString(columnIndex); final boolean allLocale = TextUtils.isEmpty(locale); final boolean allLocale = TextUtils.isEmpty(locale); localeList.add(allLocale ? "" : locale); localeSet.add(allLocale ? "" : locale); if (allLocale) { if (allLocale) { addedAllLocale = true; addedAllLocale = true; } } Loading @@ -71,10 +76,33 @@ public class UserDictionaryList extends PreferenceFragment { if (!UserDictionarySettings.IS_SHORTCUT_API_SUPPORTED && !addedAllLocale) { if (!UserDictionarySettings.IS_SHORTCUT_API_SUPPORTED && !addedAllLocale) { // For ICS, we need to show "For all languages" in case that the keyboard locale // For ICS, we need to show "For all languages" in case that the keyboard locale // is different from the system locale // is different from the system locale localeList.add(""); localeSet.add(""); } } localeList.add(Locale.getDefault().toString()); return localeList; final InputMethodManager imm = (InputMethodManager)activity.getSystemService(Context.INPUT_METHOD_SERVICE); final List<InputMethodInfo> imis = imm.getEnabledInputMethodList(); for (final InputMethodInfo imi : imis) { final List<InputMethodSubtype> subtypes = imm.getEnabledInputMethodSubtypeList( imi, true /* allowsImplicitlySelectedSubtypes */); for (InputMethodSubtype subtype : subtypes) { final String locale = subtype.getLocale(); if (!TextUtils.isEmpty(locale)) { localeSet.add(locale); } } } // We come here after we have collected locales from existing user dictionary entries and // enabled subtypes. If we already have the locale-without-country version of the system // locale, we don't add the system locale to avoid confusion even though it's technically // correct to add it. if (!localeSet.contains(Locale.getDefault().getLanguage().toString())) { localeSet.add(Locale.getDefault().toString()); } return localeSet; } } /** /** Loading Loading
java/src/com/android/inputmethod/latin/SettingsFragment.java +11 −6 Original line number Original line Diff line number Diff line Loading @@ -25,6 +25,7 @@ import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.pm.ResolveInfo; import android.content.res.Resources; import android.content.res.Resources; import android.media.AudioManager; import android.media.AudioManager; import android.os.Build; import android.os.Bundle; import android.os.Bundle; import android.preference.CheckBoxPreference; import android.preference.CheckBoxPreference; import android.preference.ListPreference; import android.preference.ListPreference; Loading @@ -51,7 +52,10 @@ import java.util.TreeSet; public final class SettingsFragment extends InputMethodSettingsFragment public final class SettingsFragment extends InputMethodSettingsFragment implements SharedPreferences.OnSharedPreferenceChangeListener { implements SharedPreferences.OnSharedPreferenceChangeListener { private static final String TAG = SettingsFragment.class.getSimpleName(); private static final String TAG = SettingsFragment.class.getSimpleName(); private static final boolean DBG_USE_INTERNAL_USER_DICTIONARY_SETTINGS = false; private static final boolean DBG_USE_INTERNAL_PERSONAL_DICTIONARY_SETTINGS = false; private static final boolean USE_INTERNAL_PERSONAL_DICTIONARY_SETTIGS = DBG_USE_INTERNAL_PERSONAL_DICTIONARY_SETTINGS || Build.VERSION.SDK_INT <= 18 /* Build.VERSION.JELLY_BEAN_MR2 */; private ListPreference mVoicePreference; private ListPreference mVoicePreference; private ListPreference mShowCorrectionSuggestionsPreference; private ListPreference mShowCorrectionSuggestionsPreference; Loading Loading @@ -212,10 +216,11 @@ public final class SettingsFragment extends InputMethodSettingsFragment final Preference editPersonalDictionary = final Preference editPersonalDictionary = findPreference(Settings.PREF_EDIT_PERSONAL_DICTIONARY); findPreference(Settings.PREF_EDIT_PERSONAL_DICTIONARY); final Intent editPersonalDictionaryIntent = editPersonalDictionary.getIntent(); final Intent editPersonalDictionaryIntent = editPersonalDictionary.getIntent(); final ResolveInfo ri = context.getPackageManager().resolveActivity( final ResolveInfo ri = USE_INTERNAL_PERSONAL_DICTIONARY_SETTIGS ? null : context.getPackageManager().resolveActivity( editPersonalDictionaryIntent, PackageManager.MATCH_DEFAULT_ONLY); editPersonalDictionaryIntent, PackageManager.MATCH_DEFAULT_ONLY); if (DBG_USE_INTERNAL_USER_DICTIONARY_SETTINGS || ri == null) { if (ri == null) { updateUserDictionaryPreference(editPersonalDictionary); overwriteUserDictionaryPreference(editPersonalDictionary); } } if (!Settings.readFromBuildConfigIfGestureInputEnabled(res)) { if (!Settings.readFromBuildConfigIfGestureInputEnabled(res)) { Loading Loading @@ -470,7 +475,7 @@ public final class SettingsFragment extends InputMethodSettingsFragment }); }); } } private void updateUserDictionaryPreference(Preference userDictionaryPreference) { private void overwriteUserDictionaryPreference(Preference userDictionaryPreference) { final Activity activity = getActivity(); final Activity activity = getActivity(); final TreeSet<String> localeList = UserDictionaryList.getUserDictionaryLocalesSet(activity); final TreeSet<String> localeList = UserDictionaryList.getUserDictionaryLocalesSet(activity); if (null == localeList) { if (null == localeList) { Loading
java/src/com/android/inputmethod/latin/userdictionary/UserDictionaryList.java +33 −5 Original line number Original line Diff line number Diff line Loading @@ -17,6 +17,7 @@ package com.android.inputmethod.latin.userdictionary; package com.android.inputmethod.latin.userdictionary; import android.app.Activity; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.content.Intent; import android.database.Cursor; import android.database.Cursor; import android.os.Bundle; import android.os.Bundle; Loading @@ -25,10 +26,14 @@ import android.preference.PreferenceFragment; import android.preference.PreferenceGroup; import android.preference.PreferenceGroup; import android.provider.UserDictionary; import android.provider.UserDictionary; import android.text.TextUtils; import android.text.TextUtils; import android.view.inputmethod.InputMethodInfo; import android.view.inputmethod.InputMethodManager; import android.view.inputmethod.InputMethodSubtype; import com.android.inputmethod.latin.R; import com.android.inputmethod.latin.R; import com.android.inputmethod.latin.utils.LocaleUtils; import com.android.inputmethod.latin.utils.LocaleUtils; import java.util.List; import java.util.Locale; import java.util.Locale; import java.util.TreeSet; import java.util.TreeSet; Loading @@ -52,7 +57,7 @@ public class UserDictionaryList extends PreferenceFragment { final Cursor cursor = activity.managedQuery(UserDictionary.Words.CONTENT_URI, final Cursor cursor = activity.managedQuery(UserDictionary.Words.CONTENT_URI, new String[] { UserDictionary.Words.LOCALE }, new String[] { UserDictionary.Words.LOCALE }, null, null, null); null, null, null); final TreeSet<String> localeList = new TreeSet<String>(); final TreeSet<String> localeSet = new TreeSet<String>(); boolean addedAllLocale = false; boolean addedAllLocale = false; if (null == cursor) { if (null == cursor) { // The user dictionary service is not present or disabled. Return null. // The user dictionary service is not present or disabled. Return null. Loading @@ -62,7 +67,7 @@ public class UserDictionaryList extends PreferenceFragment { do { do { final String locale = cursor.getString(columnIndex); final String locale = cursor.getString(columnIndex); final boolean allLocale = TextUtils.isEmpty(locale); final boolean allLocale = TextUtils.isEmpty(locale); localeList.add(allLocale ? "" : locale); localeSet.add(allLocale ? "" : locale); if (allLocale) { if (allLocale) { addedAllLocale = true; addedAllLocale = true; } } Loading @@ -71,10 +76,33 @@ public class UserDictionaryList extends PreferenceFragment { if (!UserDictionarySettings.IS_SHORTCUT_API_SUPPORTED && !addedAllLocale) { if (!UserDictionarySettings.IS_SHORTCUT_API_SUPPORTED && !addedAllLocale) { // For ICS, we need to show "For all languages" in case that the keyboard locale // For ICS, we need to show "For all languages" in case that the keyboard locale // is different from the system locale // is different from the system locale localeList.add(""); localeSet.add(""); } } localeList.add(Locale.getDefault().toString()); return localeList; final InputMethodManager imm = (InputMethodManager)activity.getSystemService(Context.INPUT_METHOD_SERVICE); final List<InputMethodInfo> imis = imm.getEnabledInputMethodList(); for (final InputMethodInfo imi : imis) { final List<InputMethodSubtype> subtypes = imm.getEnabledInputMethodSubtypeList( imi, true /* allowsImplicitlySelectedSubtypes */); for (InputMethodSubtype subtype : subtypes) { final String locale = subtype.getLocale(); if (!TextUtils.isEmpty(locale)) { localeSet.add(locale); } } } // We come here after we have collected locales from existing user dictionary entries and // enabled subtypes. If we already have the locale-without-country version of the system // locale, we don't add the system locale to avoid confusion even though it's technically // correct to add it. if (!localeSet.contains(Locale.getDefault().getLanguage().toString())) { localeSet.add(Locale.getDefault().toString()); } return localeSet; } } /** /** Loading