From ae6a21427c46d580c74ef0d3442cdaeb534a5e6b Mon Sep 17 00:00:00 2001 From: tom hsu Date: Tue, 29 Dec 2020 20:03:08 +0800 Subject: [PATCH] Avoid wrong telephonymanager with wrong sub id. When initialized SimStatusDialogController, also create TelephonyManager with sub id. Bug: 174171839 Test: Manual test passed, see b/174171839#25 Test: make RunSettingsRoboTests ROBOTEST_FILTER=SimStatusDialogControllerTest passed Change-Id: I6bd6975e39c75884252b9d0bcd9d5548dbdfe6d5 Merged-In: I6bd6975e39c75884252b9d0bcd9d5548dbdfe6d5 --- .../deviceinfo/simstatus/SimStatusDialogController.java | 3 ++- .../deviceinfo/simstatus/SimStatusDialogControllerTest.java | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java b/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java index 61f0ad6021e..9b54e3be321 100644 --- a/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java +++ b/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java @@ -228,7 +228,8 @@ public class SimStatusDialogController implements LifecycleObserver, OnResume, O if (mSubscriptionInfo == null) { return; } - + mTelephonyManager = + mTelephonyManager.createForSubscriptionId(mSubscriptionInfo.getSubscriptionId()); mPhoneStateListener = getPhoneStateListener(); updateLatestAreaInfo(); updateSubscriptionStatus(); diff --git a/tests/robotests/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogControllerTest.java index a854c04ec2b..106d2107d7c 100644 --- a/tests/robotests/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogControllerTest.java +++ b/tests/robotests/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogControllerTest.java @@ -162,6 +162,8 @@ public class SimStatusDialogControllerTest { doReturn(null).when(mSignalStrength).getCellSignalStrengths(); doReturn(mPhoneStateListener).when(mController).getPhoneStateListener(); doReturn(mSubscriptionInfo).when(mSubscriptionManager).getActiveSubscriptionInfo(anyInt()); + when(mSubscriptionInfo.getSubscriptionId()) + .thenReturn(SubscriptionManager.DEFAULT_SUBSCRIPTION_ID); ReflectionHelpers.setField(mController, "mTelephonyManager", mTelephonyManager); ReflectionHelpers.setField(mController, "mCarrierConfigManager", mCarrierConfigManager);