Merge "Refresh subscription info when subid changes" into pi-dev

This commit is contained in:
TreeHugger Robot
2018-09-28 19:00:35 +00:00
committed by Android (Google) Code Review

View File

@@ -103,6 +103,7 @@ public class ApnSettings extends RestrictedSettingsFragment implements
private RestoreApnProcessHandler mRestoreApnProcessHandler;
private HandlerThread mRestoreDefaultApnThread;
private SubscriptionInfo mSubscriptionInfo;
private int mSubId;
private UiccController mUiccController;
private String mMvnoType;
private String mMvnoMatchData;
@@ -135,6 +136,18 @@ public class ApnSettings extends RestrictedSettingsFragment implements
}
break;
}
} else if(intent.getAction().equals(
TelephonyManager.ACTION_SUBSCRIPTION_CARRIER_IDENTITY_CHANGED)) {
if (!mRestoreDefaultApnMode) {
int extraSubId = intent.getIntExtra(TelephonyManager.EXTRA_SUBSCRIPTION_ID,
SubscriptionManager.INVALID_SUBSCRIPTION_ID);
if (extraSubId != mSubId) {
// subscription has changed
mSubId = extraSubId;
mSubscriptionInfo = getSubscriptionInfo(mSubId);
}
fillList();
}
}
}
};
@@ -157,7 +170,7 @@ public class ApnSettings extends RestrictedSettingsFragment implements
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
final Activity activity = getActivity();
final int subId = activity.getIntent().getIntExtra(SUB_ID,
mSubId = activity.getIntent().getIntExtra(SUB_ID,
SubscriptionManager.INVALID_SUBSCRIPTION_ID);
mMobileStateFilter = new IntentFilter(
@@ -165,7 +178,7 @@ public class ApnSettings extends RestrictedSettingsFragment implements
setIfOnlyAvailableForAdmins(true);
mSubscriptionInfo = SubscriptionManager.from(activity).getActiveSubscriptionInfo(subId);
mSubscriptionInfo = getSubscriptionInfo(mSubId);
mUiccController = UiccController.getInstance();
CarrierConfigManager configManager = (CarrierConfigManager)
@@ -246,6 +259,10 @@ public class ApnSettings extends RestrictedSettingsFragment implements
return null;
}
private SubscriptionInfo getSubscriptionInfo(int subId) {
return SubscriptionManager.from(getActivity()).getActiveSubscriptionInfo(subId);
}
private void fillList() {
final TelephonyManager tm = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
final int subId = mSubscriptionInfo != null ? mSubscriptionInfo.getSubscriptionId()