summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRichard MacGregor <rmacgregor@cyngn.com>2016-05-13 10:55:32 -0700
committerRichard MacGregor <rmacgregor@cyngn.com>2016-05-13 13:33:38 -0700
commit6eceee2febd5f09fd8c1e648042d8268e5e1fb1e (patch)
treebe70ea9d731af59c2b2f51725bb2a5946877fd14 /src
parent79a94cb29863922e6c1dcf319c2ab6b28459ccef (diff)
downloadandroid_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.java31
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();
+ }
}
}