[Telephony Setting] Add supplementary conditions for CDMA display IMEI info when subscriptionInfo is null

Bug: 149307162
Test: make RunSettingsRoboTests ROBOTEST_FILTER=ImeiInfoDialogControllerTest
Change-Id: I1dd83ba55b34433b2b600b8a998000347b6ae5e8
Merged-In: I011b52fd25ca9ad48be3afcdabd9bdd443cd121d
This commit is contained in:
changbetty
2020-02-21 21:57:13 +08:00
parent 936ebd0367
commit 288fa30c2d
2 changed files with 42 additions and 1 deletions

View File

@@ -119,7 +119,8 @@ public class ImeiInfoDialogController {
mDialog.setText(ID_PRL_VERSION_VALUE, getCdmaPrlVersion());
if (mSubscriptionInfo != null && isCdmaLteEnabled()) {
if ((mSubscriptionInfo != null && isCdmaLteEnabled()) ||
(mSubscriptionInfo == null && isSimPresent(mSlotId))) {
// Show IMEI for LTE device
mDialog.setText(ID_IMEI_VALUE,
getTextAsDigits(mTelephonyManager.getImei(mSlotId)));
@@ -151,6 +152,15 @@ public class ImeiInfoDialogController {
== PhoneConstants.LTE_ON_CDMA_TRUE;
}
boolean isSimPresent(int slotId) {
final int simState = mTelephonyManager.getSimState(slotId);
if ((simState != TelephonyManager.SIM_STATE_ABSENT) &&
(simState != TelephonyManager.SIM_STATE_UNKNOWN)) {
return true;
}
return false;
}
@VisibleForTesting
String getMeid() {
return mTelephonyManager.getMeid(mSlotId);

View File

@@ -142,6 +142,37 @@ public class ImeiInfoDialogControllerTest {
verify(mDialog).removeViewFromScreen(ID_GSM_SETTINGS);
}
@Test
public void populateImeiInfo_cdmaSimPresent_shouldSetImeiInfoAndSetAllCdmaSetting() {
ReflectionHelpers.setField(mController, "mSubscriptionInfo", null);
when(mTelephonyManager.getPhoneType()).thenReturn(TelephonyManager.PHONE_TYPE_CDMA);
when(mTelephonyManager.getSimState(anyInt())).thenReturn(
TelephonyManager.SIM_STATE_PRESENT);
mController.populateImeiInfo();
verify(mDialog).setText(ID_MEID_NUMBER_VALUE, MEID_NUMBER);
verify(mDialog).setText(ID_MIN_NUMBER_VALUE, "");
verify(mDialog).setText(ID_PRL_VERSION_VALUE, "");
verify(mDialog).setText(eq(ID_IMEI_VALUE), any());
verify(mDialog).setText(eq(ID_IMEI_SV_VALUE), any());
}
@Test
public void populateImeiInfo_cdmaSimABSENT_shouldSetImeiInfoAndSetAllCdmaSetting() {
ReflectionHelpers.setField(mController, "mSubscriptionInfo", null);
when(mTelephonyManager.getPhoneType()).thenReturn(TelephonyManager.PHONE_TYPE_CDMA);
when(mTelephonyManager.getSimState(anyInt())).thenReturn(TelephonyManager.SIM_STATE_ABSENT);
mController.populateImeiInfo();
verify(mDialog).setText(ID_MEID_NUMBER_VALUE, MEID_NUMBER);
verify(mDialog).setText(ID_MIN_NUMBER_VALUE, "");
verify(mDialog).setText(ID_PRL_VERSION_VALUE, "");
verify(mDialog).removeViewFromScreen(ID_GSM_SETTINGS);
}
@Test
public void populateImeiInfo_gsmSimDisabled_shouldSetImeiAndRemoveCdmaSettings() {
ReflectionHelpers.setField(mController, "mSubscriptionInfo", null);