diff --git a/src/com/android/settings/network/ApnSettings.java b/src/com/android/settings/network/ApnSettings.java index bbbcdbcbb63..fb662ef177f 100755 --- a/src/com/android/settings/network/ApnSettings.java +++ b/src/com/android/settings/network/ApnSettings.java @@ -109,7 +109,7 @@ public class ApnSettings extends RestrictedSettingsFragment implements private String mSelectedKey; - private IntentFilter mMobileStateFilter; + private IntentFilter mIntentFilter; private boolean mUnavailable; @@ -120,7 +120,7 @@ public class ApnSettings extends RestrictedSettingsFragment implements super(UserManager.DISALLOW_CONFIG_MOBILE_NETWORKS); } - private final BroadcastReceiver mMobileStateReceiver = new BroadcastReceiver() { + private final BroadcastReceiver mReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals( @@ -135,6 +135,11 @@ public class ApnSettings extends RestrictedSettingsFragment implements } break; } + } else if(intent.getAction().equals( + TelephonyManager.ACTION_SUBSCRIPTION_CARRIER_IDENTITY_CHANGED)) { + if (!mRestoreDefaultApnMode) { + fillList(); + } } } }; @@ -160,8 +165,9 @@ public class ApnSettings extends RestrictedSettingsFragment implements final int subId = activity.getIntent().getIntExtra(SUB_ID, SubscriptionManager.INVALID_SUBSCRIPTION_ID); - mMobileStateFilter = new IntentFilter( + mIntentFilter = new IntentFilter( TelephonyIntents.ACTION_ANY_DATA_CONNECTION_STATE_CHANGED); + mIntentFilter.addAction(TelephonyManager.ACTION_SUBSCRIPTION_CARRIER_IDENTITY_CHANGED); setIfOnlyAvailableForAdmins(true); @@ -208,7 +214,7 @@ public class ApnSettings extends RestrictedSettingsFragment implements return; } - getActivity().registerReceiver(mMobileStateReceiver, mMobileStateFilter); + getActivity().registerReceiver(mReceiver, mIntentFilter); if (!mRestoreDefaultApnMode) { fillList(); @@ -223,7 +229,7 @@ public class ApnSettings extends RestrictedSettingsFragment implements return; } - getActivity().unregisterReceiver(mMobileStateReceiver); + getActivity().unregisterReceiver(mReceiver); } @Override