From 9f4a65c893060ca04179dfb0d2b5ed158da0236a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=97=E8=8B=97=20=28Miao=20Miao=29?= Date: Tue, 17 Sep 2019 09:14:08 +0800 Subject: [PATCH] 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. --- src/com/android/settings/network/ApnSettings.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/network/ApnSettings.java b/src/com/android/settings/network/ApnSettings.java index f0603bb3886..137abadfbbd 100755 --- a/src/com/android/settings/network/ApnSettings.java +++ b/src/com/android/settings/network/ApnSettings.java @@ -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);