Merge "Issue 128554259: Sim card name incorrect after user change system language."
diff --git a/src/com/android/services/telephony/TelecomAccountRegistry.java b/src/com/android/services/telephony/TelecomAccountRegistry.java
index 6bbcdc4..1e681e8 100644
--- a/src/com/android/services/telephony/TelecomAccountRegistry.java
+++ b/src/com/android/services/telephony/TelecomAccountRegistry.java
@@ -820,6 +820,15 @@
}
};
+ private BroadcastReceiver mLocaleChangeReceiver = new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ Log.i(this, "Locale change; re-registering phone accounts.");
+ tearDownAccounts();
+ setupAccounts();
+ }
+ };
+
private final PhoneStateListener mPhoneStateListener = new PhoneStateListener() {
@Override
public void onServiceStateChanged(ServiceState serviceState) {
@@ -1083,6 +1092,11 @@
filter.addAction(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED);
mContext.registerReceiver(mReceiver, filter);
+ //We also need to listen for locale changes
+ //(e.g. system language changed -> SIM card name changed)
+ mContext.registerReceiver(mLocaleChangeReceiver,
+ new IntentFilter(Intent.ACTION_LOCALE_CHANGED));
+
// Listen to the RTT system setting so that we update it when the user flips it.
ContentObserver rttUiSettingObserver = new ContentObserver(
new Handler(Looper.getMainLooper())) {