diff options
author | Richard MacGregor <rmacgregor@cyngn.com> | 2016-05-13 22:31:27 -0700 |
---|---|---|
committer | Richard MacGregor <rmacgregor@cyngn.com> | 2016-05-18 09:04:33 -0700 |
commit | faec370f2d9797188d6dce96d31d24c7744cb12d (patch) | |
tree | 942479468b1ac3c8197ccb195daf37de6c517458 | |
parent | c9ec0e37a3004c5517e133f7a9e44285cc49f57a (diff) | |
download | packages_apps_Dialer-faec370f2d9797188d6dce96d31d24c7744cb12d.tar.gz packages_apps_Dialer-faec370f2d9797188d6dce96d31d24c7744cb12d.tar.bz2 packages_apps_Dialer-faec370f2d9797188d6dce96d31d24c7744cb12d.zip |
Protecting against null locales
Ticket CD-639
Change-Id: Ifd64b8cd108d0a2b6f4b8172bcb96568de2abfdb
-rw-r--r-- | src/com/android/dialer/DialerApplication.java | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/com/android/dialer/DialerApplication.java b/src/com/android/dialer/DialerApplication.java index af9226c03..90f466762 100644 --- a/src/com/android/dialer/DialerApplication.java +++ b/src/com/android/dialer/DialerApplication.java @@ -32,6 +32,8 @@ import com.android.phone.common.incall.DialerDataSubscription; import com.android.dialer.util.MetricsHelper; import com.android.dialer.deeplink.DeepLinkIntegrationManager; +import java.util.Locale; + public class DialerApplication extends Application { private static final String TAG = "DialerApplication"; @@ -59,8 +61,9 @@ public class DialerApplication extends Application { DeepLinkIntegrationManager.getInstance().setUp(this); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); - prefs.edit().putString(PREF_LAST_GLOBAL_LOCALE, - getResources().getConfiguration().locale.toString()).apply(); + Locale locale = getResources().getConfiguration().locale; + String currentLocale = locale != null ? locale.toString() : ""; + prefs.edit().putString(PREF_LAST_GLOBAL_LOCALE, currentLocale).apply(); Trace.endSection(); } @@ -69,15 +72,16 @@ public class DialerApplication extends Application { super.onConfigurationChanged(newConfig); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); - String previousLocale = prefs.getString(PREF_LAST_GLOBAL_LOCALE, null); - String newLocale = newConfig.locale.toString(); + String previousLocale = prefs.getString(PREF_LAST_GLOBAL_LOCALE, ""); + String newLocale = (newConfig != null && newConfig.locale != null) ? + 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)) { + if (!TextUtils.equals(previousLocale, newLocale)) { prefs.edit().putString(PREF_LAST_GLOBAL_LOCALE, newLocale).apply(); DialerDataSubscription.get(this).refresh(); } |