summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoremancebo <emancebo@cyngn.com>2015-01-05 16:12:37 -0800
committerEd Mancebo <emancebo@cyngn.com>2015-01-06 21:41:10 +0000
commit1f62ee2c3335c501c42aa5060b56efdbd9681534 (patch)
tree2dd76e7c756691be55d9d040c993d8e3c65ab11f
parentfe57f36d843b3c973aa44621602a57d0b1e208a7 (diff)
downloadandroid_packages_apps_Dialer-1f62ee2c3335c501c42aa5060b56efdbd9681534.tar.gz
android_packages_apps_Dialer-1f62ee2c3335c501c42aa5060b56efdbd9681534.tar.bz2
android_packages_apps_Dialer-1f62ee2c3335c501c42aa5060b56efdbd9681534.zip
Add setting for t9 search input locale
Change-Id: I410b4e20afa85302a9ef3174c2f219e33b1b7987
-rw-r--r--res/values/cm_strings.xml5
-rw-r--r--res/xml/general_settings.xml13
-rw-r--r--src/com/android/dialer/settings/GeneralSettingsFragment.java55
3 files changed, 73 insertions, 0 deletions
diff --git a/res/values/cm_strings.xml b/res/values/cm_strings.xml
index 71011f3e0..ab512e74e 100644
--- a/res/values/cm_strings.xml
+++ b/res/values/cm_strings.xml
@@ -37,6 +37,11 @@
<string name="cyngn_reverse_lookup_provider_name">Cyngn Chinese (CN)</string>
<string name="cyngn_reverse_lookup_provider_value" translatable="false">CyngnChinese</string>
+ <!-- dialpad t9 search -->
+ <string name="preference_category_t9_dialpad_search">Dialpad T9 search</string>
+ <string name="t9_search_input_locale">T9 search input</string>
+ <string name="t9_search_input_locale_default">Default</string>
+
<!-- Description for incoming calls that were blacklisted -->
<string name="type_blacklist">Blacklisted call</string>
<string name="call_log_stats_title">Statistics</string>
diff --git a/res/xml/general_settings.xml b/res/xml/general_settings.xml
index acf29e836..9acde2338 100644
--- a/res/xml/general_settings.xml
+++ b/res/xml/general_settings.xml
@@ -81,6 +81,19 @@
</PreferenceCategory>
<PreferenceCategory
+ android:key="button_dialpad_t9_search_category_key"
+ android:title="@string/preference_category_t9_dialpad_search"
+ android:persistent="false">
+
+ <ListPreference
+ android:key="button_t9_search_input"
+ android:title="@string/t9_search_input_locale"
+ android:summary="%s"
+ android:defaultValue=""
+ android:persistent="false" />
+ </PreferenceCategory>
+
+ <PreferenceCategory
android:key="dialer_general_other_settings_category_key"
android:title="@string/other_settings_title"
android:persistent="false" >
diff --git a/src/com/android/dialer/settings/GeneralSettingsFragment.java b/src/com/android/dialer/settings/GeneralSettingsFragment.java
index a5763a85f..46aa2007b 100644
--- a/src/com/android/dialer/settings/GeneralSettingsFragment.java
+++ b/src/com/android/dialer/settings/GeneralSettingsFragment.java
@@ -23,12 +23,14 @@ import android.os.Handler;
import android.os.Message;
import android.os.Vibrator;
import android.preference.CheckBoxPreference;
+import android.preference.ListPreference;
import android.preference.Preference;
import android.preference.PreferenceCategory;
import android.preference.PreferenceFragment;
import android.preference.PreferenceScreen;
import android.provider.Settings;
+import android.text.TextUtils;
import com.android.dialer.R;
import com.android.phone.common.util.SettingsUtil;
@@ -39,6 +41,7 @@ import java.lang.Override;
import java.lang.Runnable;
import java.lang.String;
import java.lang.Thread;
+import java.util.Locale;
public class GeneralSettingsFragment extends PreferenceFragment
implements Preference.OnPreferenceChangeListener {
@@ -50,6 +53,7 @@ public class GeneralSettingsFragment extends PreferenceFragment
private static final String BUTTON_PLAY_DTMF_TONE = "button_play_dtmf_tone";
private static final String BUTTON_RESPOND_VIA_SMS_KEY = "button_respond_via_sms_key";
private static final String BUTTON_SPEED_DIAL_KEY = "speed_dial_settings";
+ private static final String BUTTON_T9_SEARCH_INPUT_LOCALE = "button_t9_search_input";
private static final int MSG_UPDATE_RINGTONE_SUMMARY = 1;
@@ -60,6 +64,13 @@ public class GeneralSettingsFragment extends PreferenceFragment
private CheckBoxPreference mPlayDtmfTone;
private Preference mRespondViaSms;
private Preference mSpeedDialSettings;
+ private ListPreference mT9SearchInputLocale;
+
+ // t9 search input locales that we have a custom overlay for
+ private static final Locale[] T9_SEARCH_INPUT_LOCALES = new Locale[] {
+ new Locale("ko"), new Locale("el"), new Locale("ru"),
+ new Locale("he"), new Locale("zh")
+ };
private Runnable mRingtoneLookupRunnable;
private final Handler mRingtoneLookupComplete = new Handler() {
@@ -86,6 +97,7 @@ public class GeneralSettingsFragment extends PreferenceFragment
mPlayDtmfTone = (CheckBoxPreference) findPreference(BUTTON_PLAY_DTMF_TONE);
mRespondViaSms = findPreference(BUTTON_RESPOND_VIA_SMS_KEY);
mSpeedDialSettings = findPreference(BUTTON_SPEED_DIAL_KEY);
+ mT9SearchInputLocale = (ListPreference) findPreference(BUTTON_T9_SEARCH_INPUT_LOCALE);
PreferenceCategory soundCategory = (PreferenceCategory) findPreference(CATEGORY_SOUNDS_KEY);
Vibrator vibrator = (Vibrator) mContext.getSystemService(Context.VIBRATOR_SERVICE);
@@ -109,6 +121,11 @@ public class GeneralSettingsFragment extends PreferenceFragment
Settings.System.DTMF_TONE_WHEN_DIALING, 1) != 0);
}
+ if (mT9SearchInputLocale != null) {
+ initT9SearchInputPreferenceList();
+ mT9SearchInputLocale.setOnPreferenceChangeListener(this);
+ }
+
mRingtoneLookupRunnable = new Runnable() {
@Override
public void run() {
@@ -136,6 +153,8 @@ public class GeneralSettingsFragment extends PreferenceFragment
boolean doVibrate = (Boolean) objValue;
Settings.System.putInt(mContext.getContentResolver(),
Settings.System.VIBRATE_WHEN_RINGING, doVibrate ? 1 : 0);
+ } else if (preference == mT9SearchInputLocale) {
+ saveT9SearchInputLocale(preference, (String) objValue);
}
return true;
}
@@ -166,4 +185,40 @@ public class GeneralSettingsFragment extends PreferenceFragment
// Lookup the ringtone name asynchronously.
new Thread(mRingtoneLookupRunnable).start();
}
+
+ private void saveT9SearchInputLocale(Preference preference, String newT9Locale) {
+ String lastT9Locale = Settings.System.getString(mContext.getContentResolver(),
+ Settings.System.T9_SEARCH_INPUT_LOCALE);
+
+ if (!TextUtils.equals(lastT9Locale, newT9Locale)) {
+ Settings.System.putString(mContext.getContentResolver(),
+ Settings.System.T9_SEARCH_INPUT_LOCALE, newT9Locale);
+ }
+ }
+
+ private void initT9SearchInputPreferenceList() {
+ int len = T9_SEARCH_INPUT_LOCALES.length + 1;
+ String[] entries = new String[len];
+ String[] values = new String[len];
+
+ entries[0] = getString(R.string.t9_search_input_locale_default);
+ values[0] = "";
+
+ // add locales programatically so we can use locale.getDisplayName
+ for (int i = 0; i < T9_SEARCH_INPUT_LOCALES.length; i++) {
+ Locale locale = T9_SEARCH_INPUT_LOCALES[i];
+ entries[i + 1] = locale.getDisplayName();
+ values[i + 1] = locale.toString();
+ }
+
+ // Set current entry from global system setting
+ String settingsT9Locale = Settings.System.getString(mContext.getContentResolver(),
+ Settings.System.T9_SEARCH_INPUT_LOCALE);
+ if (settingsT9Locale != null) {
+ mT9SearchInputLocale.setValue(settingsT9Locale);
+ }
+
+ mT9SearchInputLocale.setEntries(entries);
+ mT9SearchInputLocale.setEntryValues(values);
+ }
}