From 5b8202a296bca5b7d3b3ef1b72a76445e03b8c9f Mon Sep 17 00:00:00 2001 From: jeffreyhuang Date: Mon, 6 Nov 2017 12:38:45 -0800 Subject: [PATCH] Move iccid number to sim status dialog - Remove iccid number logic from imei dialog - Add iccid number log to sim status dialog Bug: 36458278 Test: make RunSettingsRoboTests -j40 Change-Id: I087688645169b387b9d65264e2c8b70ca565a44e --- res/layout/dialog_imei_info.xml | 12 +------- res/layout/dialog_sim_status.xml | 12 ++++++++ .../deviceinfo/imei/ImeiInfoDialogController.java | 11 +------ .../simstatus/SimStatusDialogController.java | 30 ++++++++++++++++++ .../imei/ImeiInfoDialogControllerTest.java | 9 ------ .../simstatus/SimStatusDialogControllerTest.java | 36 ++++++++++++++++++++++ 6 files changed, 80 insertions(+), 30 deletions(-) diff --git a/res/layout/dialog_imei_info.xml b/res/layout/dialog_imei_info.xml index b19d336410..d989f4248a 100644 --- a/res/layout/dialog_imei_info.xml +++ b/res/layout/dialog_imei_info.xml @@ -69,6 +69,7 @@ + - - \ No newline at end of file diff --git a/res/layout/dialog_sim_status.xml b/res/layout/dialog_sim_status.xml index 068a889def..9377664ec9 100644 --- a/res/layout/dialog_sim_status.xml +++ b/res/layout/dialog_sim_status.xml @@ -128,5 +128,17 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/device_info_not_available"/> + + + diff --git a/src/com/android/settings/deviceinfo/imei/ImeiInfoDialogController.java b/src/com/android/settings/deviceinfo/imei/ImeiInfoDialogController.java index 542b630725..33bb1d4b35 100644 --- a/src/com/android/settings/deviceinfo/imei/ImeiInfoDialogController.java +++ b/src/com/android/settings/deviceinfo/imei/ImeiInfoDialogController.java @@ -44,10 +44,6 @@ public class ImeiInfoDialogController { @VisibleForTesting static final int ID_MEID_NUMBER_VALUE = R.id.meid_number_value; @VisibleForTesting - static final int ID_ICC_ID_LABEL = R.id.icc_id_label; - @VisibleForTesting - static final int ID_ICC_ID_VALUE = R.id.icc_id_value; - @VisibleForTesting static final int ID_IMEI_VALUE = R.id.imei_value; @VisibleForTesting static final int ID_IMEI_SV_VALUE = R.id.imei_sv_value; @@ -108,8 +104,7 @@ public class ImeiInfoDialogController { mDialog.setText(ID_PRL_VERSION_VALUE, getCdmaPrlVersion()); if (isCdmaLteEnabled()) { - // Show ICC ID and IMEI for LTE device - mDialog.setText(ID_ICC_ID_VALUE, mSubscriptionInfo.getIccId()); + // Show IMEI for LTE device mDialog.setText(ID_IMEI_VALUE, getTextAsDigits(mTelephonyManager.getImei(mSlotId))); mDialog.setText(ID_IMEI_SV_VALUE, @@ -117,8 +112,6 @@ public class ImeiInfoDialogController { } else { // device is not GSM/UMTS, do not display GSM/UMTS features mDialog.removeViewFromScreen(ID_GSM_SETTINGS); - mDialog.removeViewFromScreen(ID_ICC_ID_LABEL); - mDialog.removeViewFromScreen(ID_ICC_ID_VALUE); } } @@ -128,8 +121,6 @@ public class ImeiInfoDialogController { getTextAsDigits(mTelephonyManager.getDeviceSoftwareVersion(mSlotId))); // device is not CDMA, do not display CDMA features mDialog.removeViewFromScreen(ID_CDMA_SETTINGS); - mDialog.removeViewFromScreen(ID_ICC_ID_LABEL); - mDialog.removeViewFromScreen(ID_ICC_ID_VALUE); } private SubscriptionInfo getSubscriptionInfo(Context context, int slotId) { diff --git a/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java b/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java index a6cc28f185..15ca87bd85 100644 --- a/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java +++ b/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogController.java @@ -16,6 +16,7 @@ package com.android.settings.deviceinfo.simstatus; +import static android.content.Context.CARRIER_CONFIG_SERVICE; import static android.content.Context.TELEPHONY_SERVICE; import android.Manifest; @@ -26,9 +27,11 @@ import android.content.IntentFilter; import android.content.pm.PackageManager; import android.content.res.Resources; import android.os.Bundle; +import android.os.PersistableBundle; import android.os.UserHandle; import android.support.annotation.NonNull; import android.support.annotation.VisibleForTesting; +import android.telephony.CarrierConfigManager; import android.telephony.CellBroadcastMessage; import android.telephony.PhoneStateListener; import android.telephony.ServiceState; @@ -70,6 +73,10 @@ public class SimStatusDialogController implements LifecycleObserver, OnResume, O final static int CELLULAR_NETWORK_TYPE_VALUE_ID = R.id.network_type_value; @VisibleForTesting final static int ROAMING_INFO_VALUE_ID = R.id.roaming_state_value; + @VisibleForTesting + final static int ICCID_INFO_LABEL_ID = R.id.icc_id_label; + @VisibleForTesting + final static int ICCID_INFO_VALUE_ID = R.id.icc_id_value; private final static String CB_AREA_INFO_RECEIVED_ACTION = "com.android.cellbroadcastreceiver.CB_AREA_INFO_RECEIVED"; @@ -80,6 +87,7 @@ public class SimStatusDialogController implements LifecycleObserver, OnResume, O private final SimStatusDialogFragment mDialog; private final SubscriptionInfo mSubscriptionInfo; private final TelephonyManager mTelephonyManager; + private final CarrierConfigManager mCarrierConfigManager; private final Resources mRes; private final Context mContext; @@ -114,6 +122,9 @@ public class SimStatusDialogController implements LifecycleObserver, OnResume, O mSubscriptionInfo = getPhoneSubscriptionInfo(slotId); mTelephonyManager = (TelephonyManager) mContext.getSystemService( TELEPHONY_SERVICE); + mCarrierConfigManager = (CarrierConfigManager) mContext.getSystemService( + CARRIER_CONFIG_SERVICE); + mRes = mContext.getResources(); if (lifecycle != null) { @@ -136,6 +147,7 @@ public class SimStatusDialogController implements LifecycleObserver, OnResume, O updateSignalStrength(getSignalStrength()); updateNetworkType(); updateRoamingStatus(serviceState); + updateIccidNumber(); } @Override @@ -313,6 +325,19 @@ public class SimStatusDialogController implements LifecycleObserver, OnResume, O } } + private void updateIccidNumber() { + final int subscriptionId = mSubscriptionInfo.getSubscriptionId(); + final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(subscriptionId); + final boolean showIccId = carrierConfig.getBoolean( + CarrierConfigManager.KEY_SHOW_ICCID_IN_SIM_STATUS_BOOL); + if (!showIccId) { + mDialog.removeSettingFromScreen(ICCID_INFO_LABEL_ID); + mDialog.removeSettingFromScreen(ICCID_INFO_VALUE_ID); + } else { + mDialog.setText(ICCID_INFO_VALUE_ID, getSimSerialNumber(subscriptionId)); + } + } + private SubscriptionInfo getPhoneSubscriptionInfo(int slotId) { final List subscriptionInfoList = SubscriptionManager.from( mContext).getActiveSubscriptionInfoList(); @@ -372,4 +397,9 @@ public class SimStatusDialogController implements LifecycleObserver, OnResume, O SignalStrength getSignalStrength() { return mTelephonyManager.getSignalStrength(); } + + @VisibleForTesting + String getSimSerialNumber(int subscriptionId) { + return mTelephonyManager.getSimSerialNumber(subscriptionId); + } } diff --git a/tests/robotests/src/com/android/settings/deviceinfo/imei/ImeiInfoDialogControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/imei/ImeiInfoDialogControllerTest.java index bb4933bcdd..c95c4db624 100644 --- a/tests/robotests/src/com/android/settings/deviceinfo/imei/ImeiInfoDialogControllerTest.java +++ b/tests/robotests/src/com/android/settings/deviceinfo/imei/ImeiInfoDialogControllerTest.java @@ -18,8 +18,6 @@ package com.android.settings.deviceinfo.imei; import static com.android.settings.deviceinfo.imei.ImeiInfoDialogController.ID_CDMA_SETTINGS; import static com.android.settings.deviceinfo.imei.ImeiInfoDialogController.ID_GSM_SETTINGS; -import static com.android.settings.deviceinfo.imei.ImeiInfoDialogController.ID_ICC_ID_LABEL; -import static com.android.settings.deviceinfo.imei.ImeiInfoDialogController.ID_ICC_ID_VALUE; import static com.android.settings.deviceinfo.imei.ImeiInfoDialogController.ID_IMEI_SV_VALUE; import static com.android.settings.deviceinfo.imei.ImeiInfoDialogController.ID_IMEI_VALUE; import static com.android.settings.deviceinfo.imei.ImeiInfoDialogController.ID_MEID_NUMBER_VALUE; @@ -58,7 +56,6 @@ public class ImeiInfoDialogControllerTest { private static final String MEID_NUMBER = "12871234124"; private static final String IMEI_NUMBER = "2341982751254"; private static final String MIN_NUMBER = "123417851315"; - private static final String ICCID_NUMBER = "3845672472"; private static final String IMEI_SV_NUMBER = "12"; @Mock @@ -83,7 +80,6 @@ public class ImeiInfoDialogControllerTest { doReturn(PRL_VERSION).when(mController).getCdmaPrlVersion(); doReturn(MEID_NUMBER).when(mController).getMeid(); when(mTelephonyManager.getCdmaMin(anyInt())).thenReturn(MIN_NUMBER); - when(mSubscriptionInfo.getIccId()).thenReturn(ICCID_NUMBER); when(mTelephonyManager.getDeviceSoftwareVersion(anyInt())).thenReturn(IMEI_SV_NUMBER); when(mTelephonyManager.getImei(anyInt())).thenReturn(IMEI_NUMBER); } @@ -98,7 +94,6 @@ public class ImeiInfoDialogControllerTest { verify(mDialog).setText(ID_MEID_NUMBER_VALUE, MEID_NUMBER); verify(mDialog).setText(ID_MIN_NUMBER_VALUE, MIN_NUMBER); verify(mDialog).setText(ID_PRL_VERSION_VALUE, PRL_VERSION); - verify(mDialog).setText(ID_ICC_ID_VALUE, ICCID_NUMBER); verify(mDialog).setText(eq(ID_IMEI_VALUE), any()); verify(mDialog).setText(eq(ID_IMEI_SV_VALUE), any()); } @@ -114,8 +109,6 @@ public class ImeiInfoDialogControllerTest { verify(mDialog).setText(ID_MIN_NUMBER_VALUE, MIN_NUMBER); verify(mDialog).setText(ID_PRL_VERSION_VALUE, PRL_VERSION); verify(mDialog).removeViewFromScreen(ID_GSM_SETTINGS); - verify(mDialog).removeViewFromScreen(ID_ICC_ID_VALUE); - verify(mDialog).removeViewFromScreen(ID_ICC_ID_LABEL); } @Test @@ -127,7 +120,5 @@ public class ImeiInfoDialogControllerTest { verify(mDialog).setText(eq(ID_IMEI_VALUE), any()); verify(mDialog).setText(eq(ID_IMEI_SV_VALUE), any()); verify(mDialog).removeViewFromScreen(ID_CDMA_SETTINGS); - verify(mDialog).removeViewFromScreen(ID_ICC_ID_VALUE); - verify(mDialog).removeViewFromScreen(ID_ICC_ID_LABEL); } } diff --git a/tests/robotests/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogControllerTest.java index 73db81d932..d2ee5437d1 100644 --- a/tests/robotests/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogControllerTest.java +++ b/tests/robotests/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogControllerTest.java @@ -19,6 +19,10 @@ package com.android.settings.deviceinfo.simstatus; import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController .CELLULAR_NETWORK_TYPE_VALUE_ID; import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController + .ICCID_INFO_LABEL_ID; +import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController + .ICCID_INFO_VALUE_ID; +import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController .NETWORK_PROVIDER_VALUE_ID; import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController .OPERATOR_INFO_LABEL_ID; @@ -41,6 +45,8 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import android.content.Context; +import android.os.PersistableBundle; +import android.telephony.CarrierConfigManager; import android.telephony.PhoneStateListener; import android.telephony.ServiceState; import android.telephony.SignalStrength; @@ -77,6 +83,10 @@ public class SimStatusDialogControllerTest { private PhoneStateListener mPhoneStateListener; @Mock private SignalStrength mSignalStrength; + @Mock + private CarrierConfigManager mCarrierConfigManager; + @Mock + private PersistableBundle mPersistableBundle; private SimStatusDialogController mController; @@ -96,7 +106,9 @@ public class SimStatusDialogControllerTest { doReturn("").when(mController).getPhoneNumber(); doReturn(mSignalStrength).when(mController).getSignalStrength(); ReflectionHelpers.setField(mController, "mTelephonyManager", mTelephonyManager); + ReflectionHelpers.setField(mController, "mCarrierConfigManager", mCarrierConfigManager); ReflectionHelpers.setField(mController, "mSubscriptionInfo", mSubscriptionInfo); + when(mCarrierConfigManager.getConfigForSubId(anyInt())).thenReturn(mPersistableBundle); } @Test @@ -199,4 +211,28 @@ public class SimStatusDialogControllerTest { verify(mDialog).setText(ROAMING_INFO_VALUE_ID, roamingOffString); } + @Test + public void initialize_doNotShowIccid_shouldRemoveIccidSetting() { + when(mPersistableBundle.getBoolean( + CarrierConfigManager.KEY_SHOW_ICCID_IN_SIM_STATUS_BOOL)).thenReturn( + false); + + mController.initialize(); + + verify(mDialog).removeSettingFromScreen(ICCID_INFO_LABEL_ID); + verify(mDialog).removeSettingFromScreen(ICCID_INFO_VALUE_ID); + } + + @Test + public void initialize_showIccid_shouldSetIccidToSetting() { + final String iccid = "12351351231241"; + when(mPersistableBundle.getBoolean( + CarrierConfigManager.KEY_SHOW_ICCID_IN_SIM_STATUS_BOOL)).thenReturn( + true); + doReturn(iccid).when(mController).getSimSerialNumber(anyInt()); + + mController.initialize(); + + verify(mDialog).setText(ICCID_INFO_VALUE_ID, iccid); + } } -- 2.11.0