diff --git a/src/com/android/settings/network/ActiveSubscriptionsListener.java b/src/com/android/settings/network/ActiveSubscriptionsListener.java index 49675388b14..284cbb35b70 100644 --- a/src/com/android/settings/network/ActiveSubscriptionsListener.java +++ b/src/com/android/settings/network/ActiveSubscriptionsListener.java @@ -174,7 +174,8 @@ public abstract class ActiveSubscriptionsListener */ public SubscriptionManager getSubscriptionManager() { if (mSubscriptionManager == null) { - mSubscriptionManager = mContext.getSystemService(SubscriptionManager.class); + mSubscriptionManager = mContext.getSystemService(SubscriptionManager.class) + .createForAllUserProfiles(); } return mSubscriptionManager; } diff --git a/src/com/android/settings/network/SubscriptionsPreferenceController.java b/src/com/android/settings/network/SubscriptionsPreferenceController.java index 6601828cd18..09ce02ee194 100644 --- a/src/com/android/settings/network/SubscriptionsPreferenceController.java +++ b/src/com/android/settings/network/SubscriptionsPreferenceController.java @@ -153,7 +153,8 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl mPreferenceGroupKey = preferenceGroupKey; mStartOrder = startOrder; mTelephonyManager = context.getSystemService(TelephonyManager.class); - mSubscriptionManager = context.getSystemService(SubscriptionManager.class); + mSubscriptionManager = context.getSystemService(SubscriptionManager.class) + .createForAllUserProfiles(); mWifiManager = context.getSystemService(WifiManager.class); mSubscriptionPreferences = new ArrayMap<>(); mSubscriptionsListener = new SubscriptionsChangeListener(context, this); diff --git a/src/com/android/settings/network/SwitchToEuiccSubscriptionSidecar.java b/src/com/android/settings/network/SwitchToEuiccSubscriptionSidecar.java index 0c3d61a2573..a26aa8a0ab1 100644 --- a/src/com/android/settings/network/SwitchToEuiccSubscriptionSidecar.java +++ b/src/com/android/settings/network/SwitchToEuiccSubscriptionSidecar.java @@ -101,7 +101,7 @@ public class SwitchToEuiccSubscriptionSidecar extends EuiccOperationSidecar { } SubscriptionManager subscriptionManager = getContext().getSystemService( - SubscriptionManager.class); + SubscriptionManager.class).createForAllUserProfiles(); mActiveSubInfos = SubscriptionUtil.getActiveSubscriptions(subscriptionManager); // To check whether the esim slot's port is active. If yes, skip setSlotMapping. If no, diff --git a/src/com/android/settings/network/SwitchToRemovableSlotSidecar.java b/src/com/android/settings/network/SwitchToRemovableSlotSidecar.java index a870f3bf9fc..4cf797f92b6 100644 --- a/src/com/android/settings/network/SwitchToRemovableSlotSidecar.java +++ b/src/com/android/settings/network/SwitchToRemovableSlotSidecar.java @@ -92,7 +92,7 @@ public class SwitchToRemovableSlotSidecar extends EuiccOperationSidecar mPhysicalSlotId = physicalSlotId; mRemovedSubInfo = removedSubInfo; SubscriptionManager subscriptionManager = - getContext().getSystemService(SubscriptionManager.class); + getContext().getSystemService(SubscriptionManager.class).createForAllUserProfiles(); if (!mTelephonyManager.isMultiSimEnabled() && SubscriptionUtil.getActiveSubscriptions(subscriptionManager).stream().anyMatch( SubscriptionInfo::isEmbedded)) { diff --git a/src/com/android/settings/network/UiccSlotUtil.java b/src/com/android/settings/network/UiccSlotUtil.java index f7737aa15f4..5175c233cb5 100644 --- a/src/com/android/settings/network/UiccSlotUtil.java +++ b/src/com/android/settings/network/UiccSlotUtil.java @@ -162,7 +162,7 @@ public class UiccSlotUtil { Log.d(TAG, "The SimSlotMapping: " + uiccSlotMappings); SubscriptionManager subscriptionManager = context.getSystemService( - SubscriptionManager.class); + SubscriptionManager.class).createForAllUserProfiles(); int excludedLogicalSlotIndex = getExcludedLogicalSlotIndex(uiccSlotMappings, SubscriptionUtil.getActiveSubscriptions(subscriptionManager), removedSubInfo, telMgr.isMultiSimEnabled()); @@ -203,7 +203,7 @@ public class UiccSlotUtil { } SubscriptionManager subscriptionManager = context.getSystemService( - SubscriptionManager.class); + SubscriptionManager.class).createForAllUserProfiles(); int excludedLogicalSlotIndex = getExcludedLogicalSlotIndex(uiccSlotMappings, SubscriptionUtil.getActiveSubscriptions(subscriptionManager), removedSubInfo, telMgr.isMultiSimEnabled()); @@ -222,7 +222,7 @@ public class UiccSlotUtil { List uiccCardInfos = telMgr.getUiccCardsInfo(); ImmutableList slotInfos = UiccSlotUtil.getSlotInfos(telMgr); SubscriptionManager subscriptionManager = context.getSystemService( - SubscriptionManager.class); + SubscriptionManager.class).createForAllUserProfiles(); SubscriptionInfo subInfo = SubscriptionUtil.getSubById(subscriptionManager, subId); // checking whether this is the removable esim. If it is, then return the removable slot id. diff --git a/src/com/android/settings/network/helper/SelectableSubscriptions.java b/src/com/android/settings/network/helper/SelectableSubscriptions.java index 8e8f405e1fb..b4a3b577575 100644 --- a/src/com/android/settings/network/helper/SelectableSubscriptions.java +++ b/src/com/android/settings/network/helper/SelectableSubscriptions.java @@ -146,7 +146,7 @@ public class SelectableSubscriptions implements Callable getAvailableSubInfoList(Context context) { diff --git a/src/com/android/settings/network/telephony/MobileNetworkUtils.java b/src/com/android/settings/network/telephony/MobileNetworkUtils.java index c1a05f1c062..cce12ec3cb0 100644 --- a/src/com/android/settings/network/telephony/MobileNetworkUtils.java +++ b/src/com/android/settings/network/telephony/MobileNetworkUtils.java @@ -357,7 +357,7 @@ public class MobileNetworkUtils { final TelephonyManager telephonyManager = context.getSystemService(TelephonyManager.class) .createForSubscriptionId(subId); final SubscriptionManager subscriptionManager = context.getSystemService( - SubscriptionManager.class); + SubscriptionManager.class).createForAllUserProfiles(); telephonyManager.setDataEnabled(enabled); if (disableOtherSubscriptions) { @@ -666,39 +666,26 @@ public class MobileNetworkUtils { * 2. Similar design which aligned with operator name displayed in status bar */ public static CharSequence getCurrentCarrierNameForDisplay(Context context, int subId) { - final SubscriptionManager sm = context.getSystemService(SubscriptionManager.class); - if (sm != null) { - final SubscriptionInfo subInfo = getSubscriptionInfo(sm, subId); - if (subInfo != null) { - return subInfo.getCarrierName(); - } + final SubscriptionInfo subInfo = getSubscriptionInfo(context, subId); + if (subInfo != null) { + return subInfo.getCarrierName(); } return getOperatorNameFromTelephonyManager(context); } public static CharSequence getCurrentCarrierNameForDisplay(Context context) { - final SubscriptionManager sm = context.getSystemService(SubscriptionManager.class); - if (sm != null) { - final int subId = sm.getDefaultSubscriptionId(); - final SubscriptionInfo subInfo = getSubscriptionInfo(sm, subId); - if (subInfo != null) { - return subInfo.getCarrierName(); - } + final SubscriptionInfo subInfo = getSubscriptionInfo(context, + SubscriptionManager.getDefaultSubscriptionId()); + if (subInfo != null) { + return subInfo.getCarrierName(); } return getOperatorNameFromTelephonyManager(context); } - private static SubscriptionInfo getSubscriptionInfo(SubscriptionManager subManager, int subId) { - List subInfos = subManager.getActiveSubscriptionInfoList(); - if (subInfos == null) { - return null; - } - for (SubscriptionInfo subInfo : subInfos) { - if (subInfo.getSubscriptionId() == subId) { - return subInfo; - } - } - return null; + private static @Nullable SubscriptionInfo getSubscriptionInfo(Context context, int subId) { + SubscriptionManager sm = context.getSystemService(SubscriptionManager.class); + if (sm == null) return null; + return sm.createForAllUserProfiles().getActiveSubscriptionInfo(subId); } private static String getOperatorNameFromTelephonyManager(Context context) { @@ -712,7 +699,7 @@ public class MobileNetworkUtils { private static int[] getActiveSubscriptionIdList(Context context) { final SubscriptionManager subscriptionManager = context.getSystemService( - SubscriptionManager.class); + SubscriptionManager.class).createForAllUserProfiles(); final List subInfoList = subscriptionManager.getActiveSubscriptionInfoList(); if (subInfoList == null) { diff --git a/src/com/android/settings/network/telephony/NetworkProviderWifiCallingGroup.java b/src/com/android/settings/network/telephony/NetworkProviderWifiCallingGroup.java index cc0f22db495..c5879eef826 100644 --- a/src/com/android/settings/network/telephony/NetworkProviderWifiCallingGroup.java +++ b/src/com/android/settings/network/telephony/NetworkProviderWifiCallingGroup.java @@ -79,7 +79,8 @@ public class NetworkProviderWifiCallingGroup extends String preferenceGroupKey) { super(context); mCarrierConfigManager = context.getSystemService(CarrierConfigManager.class); - mSubscriptionManager = context.getSystemService(SubscriptionManager.class); + mSubscriptionManager = context.getSystemService(SubscriptionManager.class) + .createForAllUserProfiles(); mPreferenceGroupKey = preferenceGroupKey; mWifiCallingForSubPreferences = new ArrayMap<>(); setSubscriptionInfoList(context); diff --git a/src/com/android/settings/network/telephony/SubscriptionActionDialogActivity.java b/src/com/android/settings/network/telephony/SubscriptionActionDialogActivity.java index 391158f065b..10f887529da 100644 --- a/src/com/android/settings/network/telephony/SubscriptionActionDialogActivity.java +++ b/src/com/android/settings/network/telephony/SubscriptionActionDialogActivity.java @@ -43,7 +43,8 @@ public class SubscriptionActionDialogActivity extends FragmentActivity { protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - mSubscriptionManager = getSystemService(SubscriptionManager.class); + mSubscriptionManager = getSystemService(SubscriptionManager.class) + .createForAllUserProfiles(); setProgressState(PROGRESS_IS_NOT_SHOWING); } diff --git a/tests/spa_unit/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceControllerTest.kt b/tests/spa_unit/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceControllerTest.kt index 0deeafbf9da..466a5d1476b 100644 --- a/tests/spa_unit/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceControllerTest.kt +++ b/tests/spa_unit/src/com/android/settings/network/telephony/gsm/OpenNetworkSelectPagePreferenceControllerTest.kt @@ -49,7 +49,8 @@ class OpenNetworkSelectPagePreferenceControllerTest { } private val mockSubscriptionManager = mock { - on { activeSubscriptionInfoList } doAnswer { listOf(subscriptionInfo) } + on { createForAllUserProfiles() } doReturn mock + on { getActiveSubscriptionInfo(SUB_ID) } doReturn subscriptionInfo } private val context: Context = spy(ApplicationProvider.getApplicationContext()) { diff --git a/tests/unit/src/com/android/settings/network/ActiveSubscriptionsListenerTest.java b/tests/unit/src/com/android/settings/network/ActiveSubscriptionsListenerTest.java index 27bc40c4847..40649a98ffd 100644 --- a/tests/unit/src/com/android/settings/network/ActiveSubscriptionsListenerTest.java +++ b/tests/unit/src/com/android/settings/network/ActiveSubscriptionsListenerTest.java @@ -77,6 +77,7 @@ public class ActiveSubscriptionsListenerTest { mContext = spy(ApplicationProvider.getApplicationContext()); when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager); + doReturn(mSubscriptionManager).when(mSubscriptionManager).createForAllUserProfiles(); mActiveSubscriptions = new ArrayList(); addMockSubscription(SUB_ID1); diff --git a/tests/unit/src/com/android/settings/network/UiccSlotUtilTest.java b/tests/unit/src/com/android/settings/network/UiccSlotUtilTest.java index 5261b3ec445..75c49b35016 100644 --- a/tests/unit/src/com/android/settings/network/UiccSlotUtilTest.java +++ b/tests/unit/src/com/android/settings/network/UiccSlotUtilTest.java @@ -77,6 +77,7 @@ public class UiccSlotUtilTest { when(mTelephonyManager.getUiccCardsInfo()).thenReturn(mUiccCardInfo); when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager); + when(mSubscriptionManager.createForAllUserProfiles()).thenReturn(mSubscriptionManager); when(mSubscriptionManager.getAllSubscriptionInfoList()).thenReturn(mSubscriptionInfoList); } diff --git a/tests/unit/src/com/android/settings/network/telephony/MobileNetworkUtilsTest.java b/tests/unit/src/com/android/settings/network/telephony/MobileNetworkUtilsTest.java index 1043fdfcd59..c23b53ed35a 100644 --- a/tests/unit/src/com/android/settings/network/telephony/MobileNetworkUtilsTest.java +++ b/tests/unit/src/com/android/settings/network/telephony/MobileNetworkUtilsTest.java @@ -113,6 +113,7 @@ public class MobileNetworkUtilsTest { mContext = spy(ApplicationProvider.getApplicationContext()); when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager); + when(mSubscriptionManager.createForAllUserProfiles()).thenReturn(mSubscriptionManager); when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager); when(mTelephonyManager.createForSubscriptionId(SUB_ID_1)).thenReturn(mTelephonyManager); when(mTelephonyManager.createForSubscriptionId(SUB_ID_2)).thenReturn(mTelephonyManager2); diff --git a/tests/unit/src/com/android/settings/network/telephony/NetworkProviderWifiCallingGroupTest.java b/tests/unit/src/com/android/settings/network/telephony/NetworkProviderWifiCallingGroupTest.java index 9cd12fe09cf..95f83900574 100644 --- a/tests/unit/src/com/android/settings/network/telephony/NetworkProviderWifiCallingGroupTest.java +++ b/tests/unit/src/com/android/settings/network/telephony/NetworkProviderWifiCallingGroupTest.java @@ -37,7 +37,6 @@ import android.telephony.CarrierConfigManager; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; -import android.util.FeatureFlagUtils; import androidx.preference.PreferenceCategory; import androidx.preference.PreferenceManager; @@ -100,6 +99,7 @@ public class NetworkProviderWifiCallingGroupTest { when(mContext.getSystemService(CarrierConfigManager.class)).thenReturn( mCarrierConfigManager); when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager); + when(mSubscriptionManager.createForAllUserProfiles()).thenReturn(mSubscriptionManager); when(mContext.getSystemService(TelecomManager.class)).thenReturn(mTelecomManager); when(mContext.getSystemService(TelephonyManager.class)).thenReturn(mTelephonyManager); when(mTelephonyManager.createForSubscriptionId(SUB_ID)).thenReturn(mTelephonyManager); diff --git a/tests/unit/src/com/android/settings/network/telephony/TelephonyBasePreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/telephony/TelephonyBasePreferenceControllerTest.java index 4fb31f20cf2..3588d38d2f4 100644 --- a/tests/unit/src/com/android/settings/network/telephony/TelephonyBasePreferenceControllerTest.java +++ b/tests/unit/src/com/android/settings/network/telephony/TelephonyBasePreferenceControllerTest.java @@ -55,6 +55,7 @@ public class TelephonyBasePreferenceControllerTest { mContext = spy(ApplicationProvider.getApplicationContext()); when(mContext.getSystemService(SubscriptionManager.class)) .thenReturn(mSubscriptionManager); + when(mSubscriptionManager.createForAllUserProfiles()).thenReturn(mSubscriptionManager); when(mSubscriptionInfo.getSubscriptionId()).thenReturn(VALID_SUB_ID); mPreferenceController = new TestPreferenceController(mContext, "prefKey"); }