diff options
-rw-r--r-- | service/java/com/android/server/wifi/util/TelephonyUtil.java | 9 | ||||
-rw-r--r-- | tests/wifitests/src/com/android/server/wifi/util/TelephonyUtilTest.java | 19 |
2 files changed, 19 insertions, 9 deletions
diff --git a/service/java/com/android/server/wifi/util/TelephonyUtil.java b/service/java/com/android/server/wifi/util/TelephonyUtil.java index 60921725e..e9f0a4686 100644 --- a/service/java/com/android/server/wifi/util/TelephonyUtil.java +++ b/service/java/com/android/server/wifi/util/TelephonyUtil.java @@ -34,7 +34,6 @@ import com.android.server.wifi.WifiNative; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.security.PublicKey; -import java.util.Arrays; import java.util.HashMap; import java.util.List; @@ -135,8 +134,12 @@ public class TelephonyUtil { * @return true if the subId is active, otherwise false. */ public boolean isSimPresent(int subId) { - return Arrays.stream(mSubscriptionManager.getActiveSubscriptionIdList()) - .anyMatch(id -> id == subId); + List<SubscriptionInfo> subInfoList = mSubscriptionManager.getActiveSubscriptionInfoList(); + if (subInfoList == null || subInfoList.isEmpty()) { + return false; + } + return subInfoList.stream() + .anyMatch(info -> info.getSubscriptionId() == subId); } /** * Get the identity for the current SIM or null if the SIM is not available diff --git a/tests/wifitests/src/com/android/server/wifi/util/TelephonyUtilTest.java b/tests/wifitests/src/com/android/server/wifi/util/TelephonyUtilTest.java index 5cff6d3d1..b31bb057e 100644 --- a/tests/wifitests/src/com/android/server/wifi/util/TelephonyUtilTest.java +++ b/tests/wifitests/src/com/android/server/wifi/util/TelephonyUtilTest.java @@ -49,6 +49,7 @@ import org.mockito.quality.Strictness; import java.security.PublicKey; import java.util.ArrayList; +import java.util.Arrays; import java.util.Collections; import java.util.List; @@ -652,8 +653,12 @@ public class TelephonyUtilTest extends WifiBaseTest { */ @Test public void isSimPresentWithValidSubscriptionIdList() { - when(mSubscriptionManager.getActiveSubscriptionIdList()) - .thenReturn(new int[] {DATA_SUBID, NON_DATA_SUBID}); + SubscriptionInfo subInfo1 = mock(SubscriptionInfo.class); + when(subInfo1.getSubscriptionId()).thenReturn(DATA_SUBID); + SubscriptionInfo subInfo2 = mock(SubscriptionInfo.class); + when(subInfo2.getSubscriptionId()).thenReturn(NON_DATA_SUBID); + when(mSubscriptionManager.getActiveSubscriptionInfoList()) + .thenReturn(Arrays.asList(subInfo1, subInfo2)); assertTrue(mTelephonyUtil.isSimPresent(DATA_SUBID)); } @@ -663,13 +668,15 @@ public class TelephonyUtilTest extends WifiBaseTest { */ @Test public void isSimPresentWithInvalidOrEmptySubscriptionIdList() { - when(mSubscriptionManager.getActiveSubscriptionIdList()) - .thenReturn(new int[]{}); + when(mSubscriptionManager.getActiveSubscriptionInfoList()) + .thenReturn(Collections.emptyList()); assertFalse(mTelephonyUtil.isSimPresent(DATA_SUBID)); - when(mSubscriptionManager.getActiveSubscriptionIdList()) - .thenReturn(new int[]{NON_DATA_SUBID}); + SubscriptionInfo subInfo = mock(SubscriptionInfo.class); + when(subInfo.getSubscriptionId()).thenReturn(NON_DATA_SUBID); + when(mSubscriptionManager.getActiveSubscriptionInfoList()) + .thenReturn(Arrays.asList(subInfo)); assertFalse(mTelephonyUtil.isSimPresent(DATA_SUBID)); } |