diff options
Diffstat (limited to 'src/com/android/dialer/DialtactsActivity.java')
| -rw-r--r-- | src/com/android/dialer/DialtactsActivity.java | 35 |
1 files changed, 32 insertions, 3 deletions
diff --git a/src/com/android/dialer/DialtactsActivity.java b/src/com/android/dialer/DialtactsActivity.java index 84dedfa8b..a62b5f0aa 100644 --- a/src/com/android/dialer/DialtactsActivity.java +++ b/src/com/android/dialer/DialtactsActivity.java @@ -22,6 +22,7 @@ import android.app.FragmentTransaction; import android.content.ActivityNotFoundException; import android.content.Context; import android.content.Intent; +import android.content.SharedPreferences; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.content.res.Configuration; @@ -30,6 +31,10 @@ import android.net.Uri; import android.os.Bundle; import android.os.Trace; import android.provider.CallLog.Calls; +import android.os.RemoteException; +import android.os.ServiceManager; +import android.preference.PreferenceManager; +import android.provider.CallLog.Calls; import android.speech.RecognizerIntent; import android.support.v4.view.ViewPager; import android.telecom.PhoneAccount; @@ -90,6 +95,7 @@ import com.android.dialer.widget.SearchEditTextLayout; import com.android.dialer.widget.SearchEditTextLayout.Callback; import com.android.dialerbind.DatabaseHelperManager; import com.android.phone.common.animation.AnimUtils; +import com.android.phone.common.util.SettingsUtil; import com.android.ims.ImsManager; import com.android.phone.common.animation.AnimationListenerAdapter; @@ -97,6 +103,7 @@ import junit.framework.Assert; import java.util.ArrayList; import java.util.List; +import java.util.Locale; /** * The dialer tab's title is 'phone', a more common name (see strings.xml). @@ -119,6 +126,7 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O public static final boolean DEBUG = false; public static final String SHARED_PREFS_NAME = "com.android.dialer_preferences"; + private static final String PREF_LAST_T9_LOCALE = "smart_dial_prefix_last_t9_locale"; /** @see #getCallOrigin() */ private static final String CALL_ORIGIN_DIALTACTS = @@ -504,12 +512,35 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O Trace.beginSection(TAG + " initialize smart dialing"); mDialerDatabaseHelper = DatabaseHelperManager.getDatabaseHelper(this); - SmartDialPrefix.initializeNanpSettings(this); Trace.endSection(); Trace.endSection(); } @Override + protected void onStart() { + super.onStart(); + + // make this call on resume in case user changed t9 locale in settings + SmartDialPrefix.initializeNanpSettings(this); + + // if locale has changed since last time, refresh the smart dial db + Locale locale = SettingsUtil.getT9SearchInputLocale(this); + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); + String prevLocale = prefs.getString(PREF_LAST_T9_LOCALE, null); + + if (!TextUtils.equals(locale.toString(), prevLocale)) { + mDialerDatabaseHelper.recreateSmartDialDatabaseInBackground(); + if (mDialpadFragment != null) + mDialpadFragment.refreshKeypad(); + + prefs.edit().putString(PREF_LAST_T9_LOCALE, locale.toString()).apply(); + } + else { + mDialerDatabaseHelper.startSmartDialUpdateThread(); + } + } + + @Override protected void onResume() { Trace.beginSection(TAG + " onResume"); super.onResume(); @@ -551,8 +582,6 @@ public class DialtactsActivity extends TransactionSafeActivity implements View.O setConferenceDialButtonImage(false); setConferenceDialButtonVisibility(true); - SmartDialPrefix.initializeNanpSettings(this); - if (getIntent().hasExtra(EXTRA_SHOW_TAB)) { int index = getIntent().getIntExtra(EXTRA_SHOW_TAB, ListsFragment.TAB_INDEX_SPEED_DIAL); if (index < mListsFragment.getTabCount()) { |
