diff options
author | Richard MacGregor <rmacgregor@cyngn.com> | 2016-05-13 10:55:32 -0700 |
---|---|---|
committer | Richard MacGregor <rmacgregor@cyngn.com> | 2016-05-13 13:33:38 -0700 |
commit | 6eceee2febd5f09fd8c1e648042d8268e5e1fb1e (patch) | |
tree | be70ea9d731af59c2b2f51725bb2a5946877fd14 /src | |
parent | 79a94cb29863922e6c1dcf319c2ab6b28459ccef (diff) | |
download | android_packages_apps_Dialer-6eceee2febd5f09fd8c1e648042d8268e5e1fb1e.tar.gz android_packages_apps_Dialer-6eceee2febd5f09fd8c1e648042d8268e5e1fb1e.tar.bz2 android_packages_apps_Dialer-6eceee2febd5f09fd8c1e648042d8268e5e1fb1e.zip |
InCallApi plugin strings not updated on locale change
Ticket CD-639
Change-Id: If1df0906ec2bdd786df274dae881a8bbd873d88f
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/dialer/DialerApplication.java | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/com/android/dialer/DialerApplication.java b/src/com/android/dialer/DialerApplication.java index a5d2e33ec..af9226c03 100644 --- a/src/com/android/dialer/DialerApplication.java +++ b/src/com/android/dialer/DialerApplication.java @@ -17,8 +17,13 @@ package com.android.dialer; import android.app.Application; +import android.content.SharedPreferences; +import android.content.res.Configuration; import android.os.Trace; +import android.preference.PreferenceManager; +import android.text.TextUtils; +import android.util.Log; import com.android.contacts.common.extensions.ExtensionsFactory; import com.android.contacts.commonbind.analytics.AnalyticsUtil; import com.android.dialer.discovery.WifiCallStatusNudgeListener; @@ -30,6 +35,9 @@ import com.android.dialer.deeplink.DeepLinkIntegrationManager; public class DialerApplication extends Application { private static final String TAG = "DialerApplication"; + private static final boolean DEBUG = false; + + private static final String PREF_LAST_GLOBAL_LOCALE = "last_global_locale"; @Override public void onCreate() { @@ -49,7 +57,30 @@ public class DialerApplication extends Application { WifiCallStatusNudgeListener.init(this); InCallMetricsHelper.init(this); DeepLinkIntegrationManager.getInstance().setUp(this); + + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); + prefs.edit().putString(PREF_LAST_GLOBAL_LOCALE, + getResources().getConfiguration().locale.toString()).apply(); Trace.endSection(); + } + + @Override + public void onConfigurationChanged(Configuration newConfig) { + super.onConfigurationChanged(newConfig); + + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); + String previousLocale = prefs.getString(PREF_LAST_GLOBAL_LOCALE, null); + String newLocale = newConfig.locale.toString(); + if (DEBUG) { + Log.d(TAG, "onConfigurationChanged: previous locale=" + previousLocale + + ", new locale=" + newLocale); + } + + // If locale changed, update incall api plugins + if (!TextUtils.isEmpty(newLocale) && !TextUtils.equals(previousLocale, newLocale)) { + prefs.edit().putString(PREF_LAST_GLOBAL_LOCALE, newLocale).apply(); + DialerDataSubscription.get(this).refresh(); + } } } |