From 605754eff39b516c58459ab9bd2041e0b60ad6d4 Mon Sep 17 00:00:00 2001 From: Zoey Chen Date: Thu, 6 Oct 2022 11:09:58 +0000 Subject: [PATCH] [Settings] Change the way in NetworkProviderCallsSmsController for getting the subscription info from room db part2 Bug: 236919685 Test: atest NetworkProviderCallsSmsControllerTest Change-Id: Ibbfa1fed15ea4fa38cff38d78855326e3d74fe0e --- .../network/NetworkDashboardFragment.java | 2 +- .../NetworkProviderCallsSmsController.java | 98 +++++---- ...NetworkProviderCallsSmsControllerTest.java | 187 +++++++++--------- 3 files changed, 151 insertions(+), 136 deletions(-) diff --git a/src/com/android/settings/network/NetworkDashboardFragment.java b/src/com/android/settings/network/NetworkDashboardFragment.java index 0da2d506958..a94a1bf08fe 100644 --- a/src/com/android/settings/network/NetworkDashboardFragment.java +++ b/src/com/android/settings/network/NetworkDashboardFragment.java @@ -121,7 +121,7 @@ public class NetworkDashboardFragment extends DashboardFragment implements controllers.add(internetPreferenceController); } controllers.add(privateDnsPreferenceController); - controllers.add(new NetworkProviderCallsSmsController(context, lifecycle)); + controllers.add(new NetworkProviderCallsSmsController(context, lifecycle, lifecycleOwner)); return controllers; } diff --git a/src/com/android/settings/network/NetworkProviderCallsSmsController.java b/src/com/android/settings/network/NetworkProviderCallsSmsController.java index c8b1c49b7bf..bfe30f76dee 100644 --- a/src/com/android/settings/network/NetworkProviderCallsSmsController.java +++ b/src/com/android/settings/network/NetworkProviderCallsSmsController.java @@ -21,13 +21,13 @@ import static androidx.lifecycle.Lifecycle.Event; import android.content.Context; import android.os.UserManager; import android.telephony.ServiceState; -import android.telephony.SubscriptionInfo; -import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; +import android.util.Log; import android.view.View; import androidx.annotation.VisibleForTesting; import androidx.lifecycle.LifecycleObserver; +import androidx.lifecycle.LifecycleOwner; import androidx.lifecycle.OnLifecycleEvent; import androidx.preference.Preference; import androidx.preference.PreferenceScreen; @@ -37,50 +37,55 @@ import com.android.settingslib.RestrictedPreference; import com.android.settingslib.Utils; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.core.lifecycle.Lifecycle; +import com.android.settingslib.mobile.dataservice.MobileNetworkInfoEntity; +import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity; +import com.android.settingslib.mobile.dataservice.UiccInfoEntity; import java.util.List; public class NetworkProviderCallsSmsController extends AbstractPreferenceController implements - SubscriptionsChangeListener.SubscriptionsChangeListenerClient, LifecycleObserver { + LifecycleObserver, MobileNetworkRepository.MobileNetworkCallback { private static final String TAG = "NetworkProviderCallsSmsController"; private static final String KEY = "calls_and_sms"; private static final String RTL_MARK = "\u200F"; private UserManager mUserManager; - private SubscriptionManager mSubscriptionManager; - private SubscriptionsChangeListener mSubscriptionsChangeListener; private TelephonyManager mTelephonyManager; private RestrictedPreference mPreference; private boolean mIsRtlMode; + private LifecycleOwner mLifecycleOwner; + private MobileNetworkRepository mMobileNetworkRepository; + private List mSubInfoEntityList; /** * The summary text and click behavior of the "Calls & SMS" item on the * Network & internet page. */ - public NetworkProviderCallsSmsController(Context context, Lifecycle lifecycle) { + public NetworkProviderCallsSmsController(Context context, Lifecycle lifecycle, + LifecycleOwner lifecycleOwner) { super(context); mUserManager = context.getSystemService(UserManager.class); - mSubscriptionManager = context.getSystemService(SubscriptionManager.class); mTelephonyManager = mContext.getSystemService(TelephonyManager.class); mIsRtlMode = context.getResources().getConfiguration().getLayoutDirection() == View.LAYOUT_DIRECTION_RTL; + mLifecycleOwner = lifecycleOwner; + mMobileNetworkRepository = new MobileNetworkRepository(context, this); if (lifecycle != null) { - mSubscriptionsChangeListener = new SubscriptionsChangeListener(context, this); lifecycle.addObserver(this); } } @OnLifecycleEvent(Event.ON_RESUME) public void onResume() { - mSubscriptionsChangeListener.start(); + mMobileNetworkRepository.addRegister(mLifecycleOwner); update(); } @OnLifecycleEvent(Event.ON_PAUSE) public void onPause() { - mSubscriptionsChangeListener.stop(); + mMobileNetworkRepository.removeRegister(); } @Override @@ -91,27 +96,24 @@ public class NetworkProviderCallsSmsController extends AbstractPreferenceControl @Override public CharSequence getSummary() { - final List subs = SubscriptionUtil.getActiveSubscriptions( - mSubscriptionManager); - - if (subs.isEmpty()) { + List list = getSubscriptionInfoList(); + if (list == null || list .isEmpty()) { return setSummaryResId(R.string.calls_sms_no_sim); } else { final StringBuilder summary = new StringBuilder(); - for (SubscriptionInfo subInfo : subs) { - int subsSize = subs.size(); - int subId = subInfo.getSubscriptionId(); - final CharSequence displayName = SubscriptionUtil.getUniqueSubscriptionDisplayName( - subInfo, mContext); + for (SubscriptionInfoEntity subInfo : list) { + int subsSize = list.size(); + int subId = Integer.parseInt(subInfo.subId); + final CharSequence displayName = subInfo.uniqueName; // Set displayName as summary if there is only one valid SIM. if (subsSize == 1 - && SubscriptionManager.isValidSubscriptionId(subId) + && list.get(0).isValidSubscription && isInService(subId)) { return displayName; } - CharSequence status = getPreferredStatus(subsSize, subId); + CharSequence status = getPreferredStatus(subInfo, subsSize, subId); if (status.toString().isEmpty()) { // If there are 2 or more SIMs and one of these has no preferred status, // set only its displayName as summary. @@ -123,7 +125,7 @@ public class NetworkProviderCallsSmsController extends AbstractPreferenceControl .append(")"); } // Do not add ", " for the last subscription. - if (subInfo != subs.get(subs.size() - 1)) { + if (!subInfo.equals(list.get(list.size() - 1))) { summary.append(", "); } @@ -136,12 +138,13 @@ public class NetworkProviderCallsSmsController extends AbstractPreferenceControl } @VisibleForTesting - protected CharSequence getPreferredStatus(int subsSize, int subId) { + protected CharSequence getPreferredStatus(SubscriptionInfoEntity subInfo, int subsSize, + int subId) { String status = ""; - boolean isDataPreferred = subId == getDefaultVoiceSubscriptionId(); - boolean isSmsPreferred = subId == getDefaultSmsSubscriptionId(); + boolean isDataPreferred = subInfo.isDefaultVoiceSubscription; + boolean isSmsPreferred = subInfo.isDefaultSmsSubscription; - if (!SubscriptionManager.isValidSubscriptionId(subId) || !isInService(subId)) { + if (!subInfo.isValidSubscription || !isInService(subId)) { status = setSummaryResId(subsSize > 1 ? R.string.calls_sms_unavailable : R.string.calls_sms_temp_unavailable); } else { @@ -161,13 +164,8 @@ public class NetworkProviderCallsSmsController extends AbstractPreferenceControl } @VisibleForTesting - protected int getDefaultVoiceSubscriptionId() { - return SubscriptionManager.getDefaultVoiceSubscriptionId(); - } - - @VisibleForTesting - protected int getDefaultSmsSubscriptionId() { - return SubscriptionManager.getDefaultSmsSubscriptionId(); + protected List getSubscriptionInfoList() { + return mSubInfoEntityList; } private void update() { @@ -178,9 +176,7 @@ public class NetworkProviderCallsSmsController extends AbstractPreferenceControl mPreference.setOnPreferenceClickListener(null); mPreference.setFragment(null); - final List subs = SubscriptionUtil.getActiveSubscriptions( - mSubscriptionManager); - if (subs.isEmpty()) { + if (mSubInfoEntityList == null || mSubInfoEntityList.isEmpty()) { mPreference.setEnabled(false); } else { mPreference.setEnabled(true); @@ -213,16 +209,34 @@ public class NetworkProviderCallsSmsController extends AbstractPreferenceControl update(); } - @Override - public void onSubscriptionsChanged() { - refreshSummary(mPreference); - update(); - } - @VisibleForTesting protected boolean isInService(int subId) { ServiceState serviceState = mTelephonyManager.createForSubscriptionId(subId).getServiceState(); return Utils.isInService(serviceState); } + + @Override + public void onAvailableSubInfoChanged(List subInfoEntityList) { + } + + @Override + public void onActiveSubInfoChanged(List activeSubInfoList) { + if ((mSubInfoEntityList != null && + (activeSubInfoList.isEmpty() || !activeSubInfoList.equals(mSubInfoEntityList))) + || (!activeSubInfoList.isEmpty() && mSubInfoEntityList == null)) { + Log.d(TAG, "subInfo list from framework is changed, update the subInfo entity list."); + mSubInfoEntityList = activeSubInfoList; + update(); + } + } + + @Override + public void onAllUiccInfoChanged(List uiccInfoEntityList) { + } + + @Override + public void onAllMobileNetworkInfoChanged( + List mobileNetworkInfoEntityList) { + } } diff --git a/tests/unit/src/com/android/settings/network/NetworkProviderCallsSmsControllerTest.java b/tests/unit/src/com/android/settings/network/NetworkProviderCallsSmsControllerTest.java index eba45d4ffbb..88cf775a64e 100644 --- a/tests/unit/src/com/android/settings/network/NetworkProviderCallsSmsControllerTest.java +++ b/tests/unit/src/com/android/settings/network/NetworkProviderCallsSmsControllerTest.java @@ -21,7 +21,6 @@ import static androidx.lifecycle.Lifecycle.Event; import static com.google.common.truth.Truth.assertThat; import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.when; @@ -29,6 +28,7 @@ import android.content.Context; import android.os.Looper; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; +import android.telephony.TelephonyManager; import android.text.TextUtils; import androidx.lifecycle.LifecycleOwner; @@ -42,6 +42,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4; import com.android.settings.testutils.ResourcesUtils; import com.android.settingslib.RestrictedPreference; import com.android.settingslib.core.lifecycle.Lifecycle; +import com.android.settingslib.mobile.dataservice.SubscriptionInfoEntity; import org.junit.Before; import org.junit.Test; @@ -50,58 +51,63 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import java.util.ArrayList; -import java.util.Arrays; +import java.util.List; @RunWith(AndroidJUnit4.class) public class NetworkProviderCallsSmsControllerTest { - private static final int SUB_ID_1 = 1; - private static final int SUB_ID_2 = 2; + private static final String SUB_ID_1 = "1"; + private static final String SUB_ID_2 = "2"; + private static final String INVALID_SUB_ID = "-1"; private static final String KEY_PREFERENCE_CALLS_SMS = "calls_and_sms"; private static final String DISPLAY_NAME_1 = "Sub 1"; private static final String DISPLAY_NAME_2 = "Sub 2"; + private static final String SUB_MCC_1 = "123"; + private static final String SUB_MNC_1 = "456"; + private static final String SUB_MCC_2 = "223"; + private static final String SUB_MNC_2 = "456"; + private static final String SUB_COUNTRY_ISO_1 = "Sub 1"; + private static final String SUB_COUNTRY_ISO_2 = "Sub 2"; @Mock - private SubscriptionManager mSubscriptionManager; + private SubscriptionInfoEntity mSubInfo1; @Mock - private SubscriptionInfo mSubscriptionInfo1; - @Mock - private SubscriptionInfo mSubscriptionInfo2; + private SubscriptionInfoEntity mSubInfo2; @Mock private Lifecycle mLifecycle; @Mock private LifecycleOwner mLifecycleOwner; - private LifecycleRegistry mLifecycleRegistry; + private LifecycleRegistry mLifecycleRegistry; private MockNetworkProviderCallsSmsController mController; private PreferenceManager mPreferenceManager; private PreferenceScreen mPreferenceScreen; private RestrictedPreference mPreference; - private Context mContext; + private List mSubscriptionInfoEntityList = new ArrayList<>(); /** - * Mock the NetworkProviderCallsSmsController that allows allows one to set a default voice + * Mock the NetworkProviderCallsSmsController that allows one to set a default voice * and SMS subscription ID. */ private class MockNetworkProviderCallsSmsController extends com.android.settings.network.NetworkProviderCallsSmsController { - public MockNetworkProviderCallsSmsController(Context context, Lifecycle lifecycle) { - super(context, lifecycle); + public MockNetworkProviderCallsSmsController(Context context, Lifecycle lifecycle, + LifecycleOwner lifecycleOwner) { + super(context, lifecycle, lifecycleOwner); } - private int mDefaultVoiceSubscriptionId; - private int mDefaultSmsSubscriptionId; + private List mSubscriptionInfoEntity; private boolean mIsInService; - @Override - protected int getDefaultVoiceSubscriptionId() { - return mDefaultVoiceSubscriptionId; - } @Override - protected int getDefaultSmsSubscriptionId() { - return mDefaultSmsSubscriptionId; + protected List getSubscriptionInfoList() { + return mSubscriptionInfoEntity; + } + + public void setSubscriptionInfoList(List list) { + mSubscriptionInfoEntity = list; } @Override @@ -109,14 +115,6 @@ public class NetworkProviderCallsSmsControllerTest { return mIsInService; } - public void setDefaultVoiceSubscriptionId(int subscriptionId) { - mDefaultVoiceSubscriptionId = subscriptionId; - } - - public void setDefaultSmsSubscriptionId(int subscriptionId) { - mDefaultSmsSubscriptionId = subscriptionId; - } - public void setInService(boolean inService) { mIsInService = inService; } @@ -126,7 +124,6 @@ public class NetworkProviderCallsSmsControllerTest { public void setUp() { MockitoAnnotations.initMocks(this); mContext = spy(ApplicationProvider.getApplicationContext()); - when(mContext.getSystemService(SubscriptionManager.class)).thenReturn(mSubscriptionManager); if (Looper.myLooper() == null) { Looper.prepare(); @@ -136,7 +133,8 @@ public class NetworkProviderCallsSmsControllerTest { mPreferenceScreen = mPreferenceManager.createPreferenceScreen(mContext); mPreference = new RestrictedPreference(mContext); mPreference.setKey(KEY_PREFERENCE_CALLS_SMS); - mController = new MockNetworkProviderCallsSmsController(mContext, mLifecycle); + mController = new MockNetworkProviderCallsSmsController(mContext, mLifecycle, + mLifecycleOwner); mController.setInService(true); mLifecycleRegistry = new LifecycleRegistry(mLifecycleOwner); when(mLifecycleOwner.getLifecycle()).thenReturn(mLifecycleRegistry); @@ -149,13 +147,6 @@ public class NetworkProviderCallsSmsControllerTest { mLifecycleRegistry.handleLifecycleEvent(Event.ON_RESUME); } - private void setupSubscriptionInfoList(int subId, String displayName, - SubscriptionInfo subscriptionInfo) { - when(subscriptionInfo.getSubscriptionId()).thenReturn(subId); - doReturn(subscriptionInfo).when(mSubscriptionManager).getActiveSubscriptionInfo(subId); - when(subscriptionInfo.getDisplayName()).thenReturn(displayName); - } - private String setSummaryResId(String resName) { return ResourcesUtils.getResourcesString(mContext, resName); } @@ -163,23 +154,36 @@ public class NetworkProviderCallsSmsControllerTest { @Test @UiThreadTest public void getSummary_noSim_returnNoSim() { - when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(new ArrayList<>()); - when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn(new ArrayList<>()); + mController.setSubscriptionInfoList(mSubscriptionInfoEntityList); displayPreferenceWithLifecycle(); assertTrue(TextUtils.equals(mController.getSummary(), setSummaryResId("calls_sms_no_sim"))); } + private SubscriptionInfoEntity setupSubscriptionInfoEntity(String subId, int slotId, + int carrierId, String displayName, String mcc, String mnc, String countryIso, + int cardId, boolean isValid, boolean isActive, boolean isAvailable, + boolean isDefaultCall, boolean isDefaultSms) { + return new SubscriptionInfoEntity(subId, slotId, carrierId, + displayName, displayName, 0, mcc, mnc, countryIso, false, cardId, + TelephonyManager.DEFAULT_PORT_INDEX, false, null, + SubscriptionManager.SUBSCRIPTION_TYPE_LOCAL_SIM, displayName, false, + "1234567890", true, "default", false, isValid, + true, isActive, isAvailable, isDefaultCall, + isDefaultSms, false, false); + } + @Test @UiThreadTest public void getSummary_invalidSubId_returnUnavailable() { - setupSubscriptionInfoList(SubscriptionManager.INVALID_SUBSCRIPTION_ID, DISPLAY_NAME_1, - mSubscriptionInfo1); - when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn( - Arrays.asList(mSubscriptionInfo1)); - when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn( - Arrays.asList(mSubscriptionInfo1)); + + mSubInfo1 = setupSubscriptionInfoEntity(INVALID_SUB_ID, + SubscriptionManager.INVALID_SIM_SLOT_INDEX, TelephonyManager.UNKNOWN_CARRIER_ID, + DISPLAY_NAME_1, SUB_MCC_1, SUB_MNC_1, SUB_COUNTRY_ISO_1, + TelephonyManager.UNINITIALIZED_CARD_ID, false, true, true, false, false); + mSubscriptionInfoEntityList.add(mSubInfo1); + mController.setSubscriptionInfoList(mSubscriptionInfoEntityList); displayPreferenceWithLifecycle(); final StringBuilder summary = new StringBuilder(); @@ -194,13 +198,16 @@ public class NetworkProviderCallsSmsControllerTest { @Test @UiThreadTest public void getSummary_oneIsInvalidSubIdTwoIsValidSubId_returnOneIsUnavailable() { - setupSubscriptionInfoList(SubscriptionManager.INVALID_SUBSCRIPTION_ID, DISPLAY_NAME_1, - mSubscriptionInfo1); - setupSubscriptionInfoList(SUB_ID_2, DISPLAY_NAME_2, mSubscriptionInfo2); - when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn( - Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2)); - when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn( - Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2)); + + mSubInfo1 = setupSubscriptionInfoEntity(INVALID_SUB_ID, + SubscriptionManager.INVALID_SIM_SLOT_INDEX, TelephonyManager.UNKNOWN_CARRIER_ID, + DISPLAY_NAME_1, SUB_MCC_1, SUB_MNC_1, SUB_COUNTRY_ISO_1, + TelephonyManager.UNINITIALIZED_CARD_ID, false, true, true, false, false); + mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, 1, 1, DISPLAY_NAME_2, SUB_MCC_2, + SUB_MNC_2, SUB_COUNTRY_ISO_2, 1, true, true, true, false, false); + mSubscriptionInfoEntityList.add(mSubInfo1); + mSubscriptionInfoEntityList.add(mSubInfo2); + mController.setSubscriptionInfoList(mSubscriptionInfoEntityList); displayPreferenceWithLifecycle(); final StringBuilder summary = new StringBuilder(); @@ -214,16 +221,14 @@ public class NetworkProviderCallsSmsControllerTest { assertTrue(TextUtils.equals(mController.getSummary(), summary)); } - - @Test @UiThreadTest public void getSummary_oneSubscription_returnDisplayName() { - setupSubscriptionInfoList(SUB_ID_1, DISPLAY_NAME_1, mSubscriptionInfo1); - when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn( - Arrays.asList(mSubscriptionInfo1)); - when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn( - Arrays.asList(mSubscriptionInfo1)); + + mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1, + SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true, false, false); + mSubscriptionInfoEntityList.add(mSubInfo1); + mController.setSubscriptionInfoList(mSubscriptionInfoEntityList); displayPreferenceWithLifecycle(); assertThat(mPreference.getSummary()).isEqualTo(DISPLAY_NAME_1); @@ -232,12 +237,14 @@ public class NetworkProviderCallsSmsControllerTest { @Test @UiThreadTest public void getSummary_allSubscriptionsHaveNoPreferredStatus_returnDisplayName() { - setupSubscriptionInfoList(SUB_ID_1, DISPLAY_NAME_1, mSubscriptionInfo1); - setupSubscriptionInfoList(SUB_ID_2, DISPLAY_NAME_2, mSubscriptionInfo2); - when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn( - Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2)); - when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn( - Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2)); + + mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1, + SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true, false, false); + mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, 1, 1, DISPLAY_NAME_2, SUB_MCC_2, + SUB_MNC_2, SUB_COUNTRY_ISO_2, 1, true, true, true, false, false); + mSubscriptionInfoEntityList.add(mSubInfo1); + mSubscriptionInfoEntityList.add(mSubInfo2); + mController.setSubscriptionInfoList(mSubscriptionInfoEntityList); displayPreferenceWithLifecycle(); final StringBuilder summary = new StringBuilder(); @@ -250,15 +257,13 @@ public class NetworkProviderCallsSmsControllerTest { @UiThreadTest public void getSummary_oneSubscriptionsIsCallPreferredTwoIsSmsPreferred_returnStatus() { - mController.setDefaultVoiceSubscriptionId(SUB_ID_1); - mController.setDefaultSmsSubscriptionId(SUB_ID_2); - - setupSubscriptionInfoList(SUB_ID_1, DISPLAY_NAME_1, mSubscriptionInfo1); - setupSubscriptionInfoList(SUB_ID_2, DISPLAY_NAME_2, mSubscriptionInfo2); - when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn( - Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2)); - when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn( - Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2)); + mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1, + SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true, true, false); + mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, 1, 1, DISPLAY_NAME_2, SUB_MCC_2, + SUB_MNC_2, SUB_COUNTRY_ISO_2, 1, true, true, true, false, true); + mSubscriptionInfoEntityList.add(mSubInfo1); + mSubscriptionInfoEntityList.add(mSubInfo2); + mController.setSubscriptionInfoList(mSubscriptionInfoEntityList); displayPreferenceWithLifecycle(); final StringBuilder summary = new StringBuilder(); @@ -279,15 +284,13 @@ public class NetworkProviderCallsSmsControllerTest { @UiThreadTest public void getSummary_oneSubscriptionsIsSmsPreferredTwoIsCallPreferred_returnStatus() { - mController.setDefaultVoiceSubscriptionId(SUB_ID_2); - mController.setDefaultSmsSubscriptionId(SUB_ID_1); - - setupSubscriptionInfoList(SUB_ID_1, DISPLAY_NAME_1, mSubscriptionInfo1); - setupSubscriptionInfoList(SUB_ID_2, DISPLAY_NAME_2, mSubscriptionInfo2); - when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn( - Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2)); - when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn( - Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2)); + mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1, + SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true, false, true); + mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, 1, 1, DISPLAY_NAME_2, SUB_MCC_2, + SUB_MNC_2, SUB_COUNTRY_ISO_2, 1, true, true, true, true, false); + mSubscriptionInfoEntityList.add(mSubInfo1); + mSubscriptionInfoEntityList.add(mSubInfo2); + mController.setSubscriptionInfoList(mSubscriptionInfoEntityList); displayPreferenceWithLifecycle(); final StringBuilder summary = new StringBuilder(); @@ -308,15 +311,13 @@ public class NetworkProviderCallsSmsControllerTest { @UiThreadTest public void getSummary_oneSubscriptionsIsSmsPreferredAndIsCallPreferred_returnStatus() { - mController.setDefaultVoiceSubscriptionId(SUB_ID_1); - mController.setDefaultSmsSubscriptionId(SUB_ID_1); - - setupSubscriptionInfoList(SUB_ID_1, DISPLAY_NAME_1, mSubscriptionInfo1); - setupSubscriptionInfoList(SUB_ID_2, DISPLAY_NAME_2, mSubscriptionInfo2); - when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn( - Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2)); - when(mSubscriptionManager.getAvailableSubscriptionInfoList()).thenReturn( - Arrays.asList(mSubscriptionInfo1, mSubscriptionInfo2)); + mSubInfo1 = setupSubscriptionInfoEntity(SUB_ID_1, 1, 1, DISPLAY_NAME_1, SUB_MCC_1, + SUB_MNC_1, SUB_COUNTRY_ISO_1, 1, true, true, true, true, true); + mSubInfo2 = setupSubscriptionInfoEntity(SUB_ID_2, 1, 1, DISPLAY_NAME_2, SUB_MCC_2, + SUB_MNC_2, SUB_COUNTRY_ISO_2, 1, true, true, true, false, false); + mSubscriptionInfoEntityList.add(mSubInfo1); + mSubscriptionInfoEntityList.add(mSubInfo2); + mController.setSubscriptionInfoList(mSubscriptionInfoEntityList); displayPreferenceWithLifecycle(); final StringBuilder summary = new StringBuilder();