Loading src/java/com/android/internal/telephony/satellite/SatelliteController.java +34 −6 Original line number Diff line number Diff line Loading @@ -7259,22 +7259,50 @@ public class SatelliteController extends Handler { return new Pair<>(subscriberId, subscriberIdType); } private String getPhoneNumberBasedCarrier(int subId) { /** Get subscriberId from phone number and carrier information. */ @VisibleForTesting(visibility = VisibleForTesting.Visibility.PRIVATE) public String getPhoneNumberBasedCarrier(int subId) { String subscriberId = ""; SubscriptionInfoInternal internal = mSubscriptionManagerService.getSubscriptionInfoInternal( subId); if (internal == null) { plogd("getPhoneNumberBasedCarrier: subscriptionInfoInternal is null."); return subscriberId; } SubscriptionManager subscriptionManager = mContext.getSystemService( SubscriptionManager.class); if (mInjectSubscriptionManager != null) { logd("getPhoneNumberBasedCarrier: InjectSubscriptionManager"); plogd("getPhoneNumberBasedCarrier: InjectSubscriptionManager"); subscriptionManager = mInjectSubscriptionManager; } if (subscriptionManager == null) { plogd("getPhoneNumberBasedCarrier: subscriptionManager is null"); return subscriberId; } String phoneNumber = subscriptionManager.getPhoneNumber(subId); if (phoneNumber == null) { logd("getPhoneNumberBasedCarrier: phoneNumber null"); return ""; if (TextUtils.isEmpty(phoneNumber)) { plogd("getPhoneNumberBasedCarrier: phoneNumber is empty."); return subscriberId; } String imsi = internal.getImsi(); if (TextUtils.isEmpty(imsi)) { plogd("getPhoneNumberBasedCarrier: imsi is empty"); return subscriberId; } return internal.getImsi() == null ? "" : internal.getImsi().substring(0, 6) if (imsi.length() < 6) { plogd("getPhoneNumberBasedCarrier: imsi length is less than 6"); return subscriberId; } subscriberId = internal.getImsi().substring(0, 6) + phoneNumber.replaceFirst("^\\+", ""); plogd("getPhoneNumberBasedCarrier: subscriberId=" + subscriberId); return subscriberId; } private boolean isPriorityChanged(Map<Integer, List<SubscriptionInfo>> currentMap, Loading tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteControllerTest.java +41 −0 Original line number Diff line number Diff line Loading @@ -6836,4 +6836,45 @@ public class SatelliteControllerTest extends TelephonyTest { verify(mPhone, times(2)).notifyCarrierRoamingNtnAvailableServicesChanged( (int[]) ArgumentMatchers.any()); } @Test public void testGetPhoneNumberBasedCarrier() throws Exception { assertEquals("", mSatelliteControllerUT.getPhoneNumberBasedCarrier(-1)); int carrierId_subID = 0; SubscriptionInfoInternal subInfoInternal = new SubscriptionInfoInternal.Builder().setCarrierId( carrierId_subID).setImsi("").setIccId(mIccId).build(); doReturn(subInfoInternal).when(mMockSubscriptionManagerService) .getSubscriptionInfoInternal(eq(SUB_ID)); // subscriptionManager is null Field field = SatelliteController.class.getDeclaredField("mInjectSubscriptionManager"); field.setAccessible(true); field.set(mSatelliteControllerUT, null); assertEquals("", mSatelliteControllerUT.getPhoneNumberBasedCarrier(SUB_ID)); // phoneNumber is empty field.set(mSatelliteControllerUT, mSubscriptionManager); doReturn("").when(mSubscriptionManager).getPhoneNumber(eq(SUB_ID)); assertEquals("", mSatelliteControllerUT.getPhoneNumberBasedCarrier(SUB_ID)); // IMSI is empty doReturn(mMsisdn).when(mSubscriptionManager).getPhoneNumber(eq(SUB_ID)); assertEquals("", mSatelliteControllerUT.getPhoneNumberBasedCarrier(SUB_ID)); // IMSI length is less than 6 subInfoInternal = new SubscriptionInfoInternal.Builder().setCarrierId( carrierId_subID).setImsi("12345").setIccId(mIccId).build(); doReturn(subInfoInternal).when(mMockSubscriptionManagerService) .getSubscriptionInfoInternal(eq(SUB_ID)); assertEquals("", mSatelliteControllerUT.getPhoneNumberBasedCarrier(SUB_ID)); subInfoInternal = new SubscriptionInfoInternal.Builder().setCarrierId( carrierId_subID).setImsi(mImsi).setIccId(mIccId).build(); doReturn(subInfoInternal).when(mMockSubscriptionManagerService) .getSubscriptionInfoInternal(eq(SUB_ID)); String expectedResult = "123456" + "0987654321"; assertEquals(expectedResult, mSatelliteControllerUT.getPhoneNumberBasedCarrier(SUB_ID)); } } Loading
src/java/com/android/internal/telephony/satellite/SatelliteController.java +34 −6 Original line number Diff line number Diff line Loading @@ -7259,22 +7259,50 @@ public class SatelliteController extends Handler { return new Pair<>(subscriberId, subscriberIdType); } private String getPhoneNumberBasedCarrier(int subId) { /** Get subscriberId from phone number and carrier information. */ @VisibleForTesting(visibility = VisibleForTesting.Visibility.PRIVATE) public String getPhoneNumberBasedCarrier(int subId) { String subscriberId = ""; SubscriptionInfoInternal internal = mSubscriptionManagerService.getSubscriptionInfoInternal( subId); if (internal == null) { plogd("getPhoneNumberBasedCarrier: subscriptionInfoInternal is null."); return subscriberId; } SubscriptionManager subscriptionManager = mContext.getSystemService( SubscriptionManager.class); if (mInjectSubscriptionManager != null) { logd("getPhoneNumberBasedCarrier: InjectSubscriptionManager"); plogd("getPhoneNumberBasedCarrier: InjectSubscriptionManager"); subscriptionManager = mInjectSubscriptionManager; } if (subscriptionManager == null) { plogd("getPhoneNumberBasedCarrier: subscriptionManager is null"); return subscriberId; } String phoneNumber = subscriptionManager.getPhoneNumber(subId); if (phoneNumber == null) { logd("getPhoneNumberBasedCarrier: phoneNumber null"); return ""; if (TextUtils.isEmpty(phoneNumber)) { plogd("getPhoneNumberBasedCarrier: phoneNumber is empty."); return subscriberId; } String imsi = internal.getImsi(); if (TextUtils.isEmpty(imsi)) { plogd("getPhoneNumberBasedCarrier: imsi is empty"); return subscriberId; } return internal.getImsi() == null ? "" : internal.getImsi().substring(0, 6) if (imsi.length() < 6) { plogd("getPhoneNumberBasedCarrier: imsi length is less than 6"); return subscriberId; } subscriberId = internal.getImsi().substring(0, 6) + phoneNumber.replaceFirst("^\\+", ""); plogd("getPhoneNumberBasedCarrier: subscriberId=" + subscriberId); return subscriberId; } private boolean isPriorityChanged(Map<Integer, List<SubscriptionInfo>> currentMap, Loading
tests/telephonytests/src/com/android/internal/telephony/satellite/SatelliteControllerTest.java +41 −0 Original line number Diff line number Diff line Loading @@ -6836,4 +6836,45 @@ public class SatelliteControllerTest extends TelephonyTest { verify(mPhone, times(2)).notifyCarrierRoamingNtnAvailableServicesChanged( (int[]) ArgumentMatchers.any()); } @Test public void testGetPhoneNumberBasedCarrier() throws Exception { assertEquals("", mSatelliteControllerUT.getPhoneNumberBasedCarrier(-1)); int carrierId_subID = 0; SubscriptionInfoInternal subInfoInternal = new SubscriptionInfoInternal.Builder().setCarrierId( carrierId_subID).setImsi("").setIccId(mIccId).build(); doReturn(subInfoInternal).when(mMockSubscriptionManagerService) .getSubscriptionInfoInternal(eq(SUB_ID)); // subscriptionManager is null Field field = SatelliteController.class.getDeclaredField("mInjectSubscriptionManager"); field.setAccessible(true); field.set(mSatelliteControllerUT, null); assertEquals("", mSatelliteControllerUT.getPhoneNumberBasedCarrier(SUB_ID)); // phoneNumber is empty field.set(mSatelliteControllerUT, mSubscriptionManager); doReturn("").when(mSubscriptionManager).getPhoneNumber(eq(SUB_ID)); assertEquals("", mSatelliteControllerUT.getPhoneNumberBasedCarrier(SUB_ID)); // IMSI is empty doReturn(mMsisdn).when(mSubscriptionManager).getPhoneNumber(eq(SUB_ID)); assertEquals("", mSatelliteControllerUT.getPhoneNumberBasedCarrier(SUB_ID)); // IMSI length is less than 6 subInfoInternal = new SubscriptionInfoInternal.Builder().setCarrierId( carrierId_subID).setImsi("12345").setIccId(mIccId).build(); doReturn(subInfoInternal).when(mMockSubscriptionManagerService) .getSubscriptionInfoInternal(eq(SUB_ID)); assertEquals("", mSatelliteControllerUT.getPhoneNumberBasedCarrier(SUB_ID)); subInfoInternal = new SubscriptionInfoInternal.Builder().setCarrierId( carrierId_subID).setImsi(mImsi).setIccId(mIccId).build(); doReturn(subInfoInternal).when(mMockSubscriptionManagerService) .getSubscriptionInfoInternal(eq(SUB_ID)); String expectedResult = "123456" + "0987654321"; assertEquals(expectedResult, mSatelliteControllerUT.getPhoneNumberBasedCarrier(SUB_ID)); } }