diff options
-rw-r--r-- | src/java/com/android/internal/telephony/GsmCdmaPhone.java | 7 | ||||
-rw-r--r-- | tests/telephonytests/src/com/android/internal/telephony/GsmCdmaPhoneTest.java | 26 |
2 files changed, 33 insertions, 0 deletions
diff --git a/src/java/com/android/internal/telephony/GsmCdmaPhone.java b/src/java/com/android/internal/telephony/GsmCdmaPhone.java index cd6dc322f..13f8b0bad 100644 --- a/src/java/com/android/internal/telephony/GsmCdmaPhone.java +++ b/src/java/com/android/internal/telephony/GsmCdmaPhone.java @@ -1610,6 +1610,13 @@ public class GsmCdmaPhone extends Phone { IccRecords r = mIccRecords.get(); return (r != null) ? r.getMsisdnNumber() : null; } else { + CarrierConfigManager configManager = (CarrierConfigManager) + mContext.getSystemService(Context.CARRIER_CONFIG_SERVICE); + boolean use_usim = configManager.getConfigForSubId(getSubId()).getBoolean( + CarrierConfigManager.KEY_USE_USIM_BOOL); + if (use_usim) { + return (mSimRecords != null) ? mSimRecords.getMsisdnNumber() : null; + } return mSST.getMdnNumber(); } } diff --git a/tests/telephonytests/src/com/android/internal/telephony/GsmCdmaPhoneTest.java b/tests/telephonytests/src/com/android/internal/telephony/GsmCdmaPhoneTest.java index 60bc61f74..3a1822322 100644 --- a/tests/telephonytests/src/com/android/internal/telephony/GsmCdmaPhoneTest.java +++ b/tests/telephonytests/src/com/android/internal/telephony/GsmCdmaPhoneTest.java @@ -957,4 +957,30 @@ public class GsmCdmaPhoneTest extends TelephonyTest { assertEquals(EVENT_SET_ICC_LOCK_ENABLED, message.what); assertTrue(ret.exception != null); } + + @Test + @SmallTest + public void testGetLine1NumberForGsmPhone() { + final String msisdn = "+1234567890"; + doReturn(msisdn).when(mSimRecords).getMsisdnNumber(); + + switchToGsm(); + assertEquals(msisdn, mPhoneUT.getLine1Number()); + } + + @Test + @SmallTest + public void testGetLine1NumberForCdmaPhone() { + final String mdn = "1234567890"; + final String msisdn = "+1234567890"; + doReturn(mdn).when(mSST).getMdnNumber(); + doReturn(msisdn).when(mSimRecords).getMsisdnNumber(); + + switchToCdma(); + assertEquals(mdn, mPhoneUT.getLine1Number()); + + mContextFixture.getCarrierConfigBundle().putBoolean( + CarrierConfigManager.KEY_USE_USIM_BOOL, true); + assertEquals(msisdn, mPhoneUT.getLine1Number()); + } } |