In sim1 APN settings interface and hot plug out/in sim2, APN information change to sim2's

STEPS TO REPRODUCE:
1. Insert two sim into device, sim1 is CUCC, sim2 is CMCC
2. Goto Settings-Network & Internet-sim1-MobileNetworkSettings-Access Point Names. It shows CUCC APN information
3. Hot plug out sim2
4. Hot plug in sim2, APN information changes to CMCC APN information

EXPECTED RESULTS:
When hot plug out/in sim2, sim1 APN settings interface should still keep its APN information instead of changing to sim2 APN information

Change-Id: I04c769f60ba1686b2c9bebcd07e3a04685979442
Bug: 141087659
Test:In sim1 APN settings interface, hot plug out/in sim2, it shows sim1 APN information all the time, test pass.
This commit is contained in:
苗苗 (Miao Miao)
2019-09-17 09:14:08 +08:00
parent d7a8e234e9
commit 9f4a65c893

View File

@@ -113,6 +113,7 @@ public class ApnSettings extends RestrictedSettingsFragment
private HandlerThread mRestoreDefaultApnThread;
private SubscriptionInfo mSubscriptionInfo;
private int mSubId;
private int mPhoneId;
private UiccController mUiccController;
private String mMvnoType;
private String mMvnoMatchData;
@@ -151,7 +152,9 @@ public class ApnSettings extends RestrictedSettingsFragment
if (!mRestoreDefaultApnMode) {
int extraSubId = intent.getIntExtra(TelephonyManager.EXTRA_SUBSCRIPTION_ID,
SubscriptionManager.INVALID_SUBSCRIPTION_ID);
if (extraSubId != mSubId) {
if (SubscriptionManager.isValidSubscriptionId(extraSubId) &&
mPhoneId == SubscriptionManager.getPhoneId(extraSubId) &&
extraSubId != mSubId) {
// subscription has changed
mSubId = extraSubId;
mSubscriptionInfo = getSubscriptionInfo(mSubId);
@@ -182,7 +185,7 @@ public class ApnSettings extends RestrictedSettingsFragment
final Activity activity = getActivity();
mSubId = activity.getIntent().getIntExtra(SUB_ID,
SubscriptionManager.INVALID_SUBSCRIPTION_ID);
mPhoneId = SubscriptionManager.getPhoneId(mSubId);
mIntentFilter = new IntentFilter(
TelephonyIntents.ACTION_ANY_DATA_CONNECTION_STATE_CHANGED);
mIntentFilter.addAction(TelephonyManager.ACTION_SUBSCRIPTION_CARRIER_IDENTITY_CHANGED);