Loading src/java/com/android/internal/telephony/ServiceStateTracker.java +2 −4 Original line number Diff line number Diff line Loading @@ -2897,10 +2897,8 @@ public class ServiceStateTracker extends Handler { } String crossSimSpnFormat = null; if (mPhone.getImsPhone() != null && (mPhone.getImsPhone() != null) && (mPhone.getImsPhone().getImsRegistrationTech() == ImsRegistrationImplBase.REGISTRATION_TECH_CROSS_SIM)) { if ((getImsRegistrationTech() == ImsRegistrationImplBase.REGISTRATION_TECH_CROSS_SIM) && mPhone.isImsRegistered()) { // In Cross SIM Calling mode show SPN or PLMN + Cross SIM Calling // // 1) Show SPN + Cross SIM Calling If SIM has SPN and SPN display condition Loading src/java/com/android/internal/telephony/cdnr/CarrierDisplayNameResolver.java +2 −1 Original line number Diff line number Diff line Loading @@ -477,7 +477,8 @@ public class CarrierDisplayNameResolver { CarrierDisplayNameData data = getCarrierDisplayNameFromEf(); if (DBG) Rlog.d(TAG, "CarrierName from EF: " + data); if ((mPhone.getImsPhone() != null) && (mPhone.getImsPhone().getImsRegistrationTech() == ImsRegistrationImplBase.REGISTRATION_TECH_CROSS_SIM)) { == ImsRegistrationImplBase.REGISTRATION_TECH_CROSS_SIM && mPhone.isImsRegistered())) { data = getCarrierDisplayNameFromCrossSimCallingOverride(data); if (DBG) { Rlog.d(TAG, "CarrierName override by Cross-SIM Calling " + data); Loading tests/telephonytests/src/com/android/internal/telephony/ServiceStateTrackerTest.java +64 −0 Original line number Diff line number Diff line Loading @@ -3082,6 +3082,7 @@ public class ServiceStateTrackerTest extends TelephonyTest { doReturn(mImsPhone).when(mPhone).getImsPhone(); doReturn(ImsRegistrationImplBase.REGISTRATION_TECH_CROSS_SIM).when(mImsPhone) .getImsRegistrationTech(); doReturn(true).when(mPhone).isImsRegistered(); String[] formats = {CROSS_SIM_CALLING_VOICE_FORMAT, "%s"}; Resources r = mContext.getResources(); doReturn(formats).when(r).getStringArray(anyInt()); Loading Loading @@ -3245,6 +3246,69 @@ public class ServiceStateTrackerTest extends TelephonyTest { assertThat(b.getBoolean(TelephonyManager.EXTRA_SHOW_PLMN)).isTrue(); } @Test public void testUpdateSpnDisplayLegacy_CrossSimCallingDataOOS_displayOOS() { mBundle.putBoolean( CarrierConfigManager.KEY_ENABLE_CARRIER_DISPLAY_NAME_RESOLVER_BOOL, false); sendCarrierConfigUpdate(PHONE_ID); // GSM phone doReturn(true).when(mPhone).isPhoneTypeGsm(); // Reg tech is Cross Sim but both data and voice are OOS doReturn(ServiceState.STATE_OUT_OF_SERVICE).when(mServiceState).getState(); doReturn(ServiceState.STATE_OUT_OF_SERVICE).when(mServiceState).getDataRegistrationState(); doReturn(TelephonyManager.NETWORK_TYPE_IWLAN).when(mServiceState).getDataNetworkType(); doReturn(mImsPhone).when(mPhone).getImsPhone(); doReturn(ImsRegistrationImplBase.REGISTRATION_TECH_CROSS_SIM).when( mImsPhone).getImsRegistrationTech(); sst.mSS = mServiceState; // wifi-calling is enabled doReturn(true).when(mPhone).isWifiCallingEnabled(); // update the spn sst.updateSpnDisplay(); // Plmn should be shown, and the string is "No service" Bundle b = getExtrasFromLastSpnUpdateIntent(); assertThat(b.getString(TelephonyManager.EXTRA_PLMN)) .isEqualTo(CARRIER_NAME_DISPLAY_NO_SERVICE); assertThat(b.getBoolean(TelephonyManager.EXTRA_SHOW_PLMN)).isTrue(); } @Test public void testUpdateSpnDisplayLegacy_CrossSimCallingVoiceOOS_displayOOS() { mBundle.putBoolean( CarrierConfigManager.KEY_ENABLE_CARRIER_DISPLAY_NAME_RESOLVER_BOOL, false); sendCarrierConfigUpdate(PHONE_ID); // GSM phone doReturn(true).when(mPhone).isPhoneTypeGsm(); // voice out of service but data in service (connected to Cross Sim IWLAN) doReturn(ServiceState.STATE_OUT_OF_SERVICE).when(mServiceState).getState(); doReturn(ServiceState.STATE_IN_SERVICE).when(mServiceState).getDataRegistrationState(); doReturn(TelephonyManager.NETWORK_TYPE_IWLAN).when(mServiceState).getDataNetworkType(); doReturn(mImsPhone).when(mPhone).getImsPhone(); doReturn(ImsRegistrationImplBase.REGISTRATION_TECH_CROSS_SIM).when( mImsPhone).getImsRegistrationTech(); doReturn(false).when(mPhone).isImsRegistered(); sst.mSS = mServiceState; // wifi-calling is enabled doReturn(true).when(mPhone).isWifiCallingEnabled(); // update the spn sst.updateSpnDisplay(); // Plmn should be shown, and the string is "No service" Bundle b = getExtrasFromLastSpnUpdateIntent(); assertThat(b.getString(TelephonyManager.EXTRA_PLMN)) .isEqualTo(CARRIER_NAME_DISPLAY_NO_SERVICE); assertThat(b.getBoolean(TelephonyManager.EXTRA_SHOW_PLMN)).isTrue(); } private Bundle getExtrasFromLastSpnUpdateIntent() { // Verify the spn update notification was sent ArgumentCaptor<Intent> intentArgumentCaptor = ArgumentCaptor.forClass(Intent.class); Loading Loading
src/java/com/android/internal/telephony/ServiceStateTracker.java +2 −4 Original line number Diff line number Diff line Loading @@ -2897,10 +2897,8 @@ public class ServiceStateTracker extends Handler { } String crossSimSpnFormat = null; if (mPhone.getImsPhone() != null && (mPhone.getImsPhone() != null) && (mPhone.getImsPhone().getImsRegistrationTech() == ImsRegistrationImplBase.REGISTRATION_TECH_CROSS_SIM)) { if ((getImsRegistrationTech() == ImsRegistrationImplBase.REGISTRATION_TECH_CROSS_SIM) && mPhone.isImsRegistered()) { // In Cross SIM Calling mode show SPN or PLMN + Cross SIM Calling // // 1) Show SPN + Cross SIM Calling If SIM has SPN and SPN display condition Loading
src/java/com/android/internal/telephony/cdnr/CarrierDisplayNameResolver.java +2 −1 Original line number Diff line number Diff line Loading @@ -477,7 +477,8 @@ public class CarrierDisplayNameResolver { CarrierDisplayNameData data = getCarrierDisplayNameFromEf(); if (DBG) Rlog.d(TAG, "CarrierName from EF: " + data); if ((mPhone.getImsPhone() != null) && (mPhone.getImsPhone().getImsRegistrationTech() == ImsRegistrationImplBase.REGISTRATION_TECH_CROSS_SIM)) { == ImsRegistrationImplBase.REGISTRATION_TECH_CROSS_SIM && mPhone.isImsRegistered())) { data = getCarrierDisplayNameFromCrossSimCallingOverride(data); if (DBG) { Rlog.d(TAG, "CarrierName override by Cross-SIM Calling " + data); Loading
tests/telephonytests/src/com/android/internal/telephony/ServiceStateTrackerTest.java +64 −0 Original line number Diff line number Diff line Loading @@ -3082,6 +3082,7 @@ public class ServiceStateTrackerTest extends TelephonyTest { doReturn(mImsPhone).when(mPhone).getImsPhone(); doReturn(ImsRegistrationImplBase.REGISTRATION_TECH_CROSS_SIM).when(mImsPhone) .getImsRegistrationTech(); doReturn(true).when(mPhone).isImsRegistered(); String[] formats = {CROSS_SIM_CALLING_VOICE_FORMAT, "%s"}; Resources r = mContext.getResources(); doReturn(formats).when(r).getStringArray(anyInt()); Loading Loading @@ -3245,6 +3246,69 @@ public class ServiceStateTrackerTest extends TelephonyTest { assertThat(b.getBoolean(TelephonyManager.EXTRA_SHOW_PLMN)).isTrue(); } @Test public void testUpdateSpnDisplayLegacy_CrossSimCallingDataOOS_displayOOS() { mBundle.putBoolean( CarrierConfigManager.KEY_ENABLE_CARRIER_DISPLAY_NAME_RESOLVER_BOOL, false); sendCarrierConfigUpdate(PHONE_ID); // GSM phone doReturn(true).when(mPhone).isPhoneTypeGsm(); // Reg tech is Cross Sim but both data and voice are OOS doReturn(ServiceState.STATE_OUT_OF_SERVICE).when(mServiceState).getState(); doReturn(ServiceState.STATE_OUT_OF_SERVICE).when(mServiceState).getDataRegistrationState(); doReturn(TelephonyManager.NETWORK_TYPE_IWLAN).when(mServiceState).getDataNetworkType(); doReturn(mImsPhone).when(mPhone).getImsPhone(); doReturn(ImsRegistrationImplBase.REGISTRATION_TECH_CROSS_SIM).when( mImsPhone).getImsRegistrationTech(); sst.mSS = mServiceState; // wifi-calling is enabled doReturn(true).when(mPhone).isWifiCallingEnabled(); // update the spn sst.updateSpnDisplay(); // Plmn should be shown, and the string is "No service" Bundle b = getExtrasFromLastSpnUpdateIntent(); assertThat(b.getString(TelephonyManager.EXTRA_PLMN)) .isEqualTo(CARRIER_NAME_DISPLAY_NO_SERVICE); assertThat(b.getBoolean(TelephonyManager.EXTRA_SHOW_PLMN)).isTrue(); } @Test public void testUpdateSpnDisplayLegacy_CrossSimCallingVoiceOOS_displayOOS() { mBundle.putBoolean( CarrierConfigManager.KEY_ENABLE_CARRIER_DISPLAY_NAME_RESOLVER_BOOL, false); sendCarrierConfigUpdate(PHONE_ID); // GSM phone doReturn(true).when(mPhone).isPhoneTypeGsm(); // voice out of service but data in service (connected to Cross Sim IWLAN) doReturn(ServiceState.STATE_OUT_OF_SERVICE).when(mServiceState).getState(); doReturn(ServiceState.STATE_IN_SERVICE).when(mServiceState).getDataRegistrationState(); doReturn(TelephonyManager.NETWORK_TYPE_IWLAN).when(mServiceState).getDataNetworkType(); doReturn(mImsPhone).when(mPhone).getImsPhone(); doReturn(ImsRegistrationImplBase.REGISTRATION_TECH_CROSS_SIM).when( mImsPhone).getImsRegistrationTech(); doReturn(false).when(mPhone).isImsRegistered(); sst.mSS = mServiceState; // wifi-calling is enabled doReturn(true).when(mPhone).isWifiCallingEnabled(); // update the spn sst.updateSpnDisplay(); // Plmn should be shown, and the string is "No service" Bundle b = getExtrasFromLastSpnUpdateIntent(); assertThat(b.getString(TelephonyManager.EXTRA_PLMN)) .isEqualTo(CARRIER_NAME_DISPLAY_NO_SERVICE); assertThat(b.getBoolean(TelephonyManager.EXTRA_SHOW_PLMN)).isTrue(); } private Bundle getExtrasFromLastSpnUpdateIntent() { // Verify the spn update notification was sent ArgumentCaptor<Intent> intentArgumentCaptor = ArgumentCaptor.forClass(Intent.class); Loading