From 649751a4a8db4e87230b064fc0ba7e5e7fd9627e Mon Sep 17 00:00:00 2001 From: Doris Ling Date: Tue, 27 Mar 2018 15:22:42 -0700 Subject: [PATCH] Move IMS registration state to SIM status screen Manually merge change I3aff03ebdc9dc165db66c5007a2fa987ab8cd822 due to merge conflicts. To show IMS registration state for each SIM, move the preference of IMS registration state from Status screen to SIM Status screen. Fixes: 66063299 Test: manual - Checked that the IMS registration state is displayed on the SIM Status screen. Test: make RunSettingsRoboTests Change-Id: Ic0713c357085d94b59605c1b924e7b56a362e256 --- res/layout/dialog_sim_status.xml | 13 +++++ res/xml/device_info_settings.xml | 7 --- res/xml/my_device_info.xml | 7 --- .../deviceinfo/DeviceInfoSettings.java | 1 - .../aboutphone/MyDeviceInfoFragment.java | 2 - .../simstatus/SimStatusDialogController.java | 23 ++++++++- .../SimStatusDialogControllerTest.java | 49 +++++++++++++++++++ 7 files changed, 83 insertions(+), 19 deletions(-) diff --git a/res/layout/dialog_sim_status.xml b/res/layout/dialog_sim_status.xml index 9c67f13c378..27d12a8cb1c 100644 --- a/res/layout/dialog_sim_status.xml +++ b/res/layout/dialog_sim_status.xml @@ -167,5 +167,18 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/device_info_not_available"/> + + + diff --git a/res/xml/device_info_settings.xml b/res/xml/device_info_settings.xml index 91101310f97..8aa4d060d58 100644 --- a/res/xml/device_info_settings.xml +++ b/res/xml/device_info_settings.xml @@ -60,13 +60,6 @@ settings:keywords="@string/keywords_android_version" android:summary="@string/summary_placeholder"/> - - - - - - subscriptionInfoList = SubscriptionManager.from( mContext).getActiveSubscriptionInfoList(); 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 4d6cab7f14c..d9bc325d6fb 100644 --- a/tests/robotests/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogControllerTest.java +++ b/tests/robotests/src/com/android/settings/deviceinfo/simstatus/SimStatusDialogControllerTest.java @@ -21,6 +21,8 @@ import static com.android.settings.deviceinfo.simstatus.SimStatusDialogControlle import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController.EID_INFO_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.IMS_REGISTRATION_STATE_LABEL_ID; +import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController.IMS_REGISTRATION_STATE_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; import static com.android.settings.deviceinfo.simstatus.SimStatusDialogController.OPERATOR_INFO_VALUE_ID; @@ -33,6 +35,7 @@ import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.never; import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -286,4 +289,50 @@ public class SimStatusDialogControllerTest { verify(mDialog).setText(EID_INFO_VALUE_ID, eid); } + + @Test + public void initialize_imsRegistered_shouldSetImsRegistrationStateSummaryToRegisterd() { + when(mPersistableBundle.getBoolean( + CarrierConfigManager.KEY_SHOW_IMS_REGISTRATION_STATUS_BOOL)).thenReturn(true); + when(mTelephonyManager.isImsRegistered(anyInt())).thenReturn(true); + + mController.initialize(); + + verify(mDialog).setText(IMS_REGISTRATION_STATE_VALUE_ID, + mContext.getString(R.string.ims_reg_status_registered)); + } + + @Test + public void initialize_imsNotRegistered_shouldSetImsRegistrationStateSummaryToNotRegisterd() { + when(mPersistableBundle.getBoolean( + CarrierConfigManager.KEY_SHOW_IMS_REGISTRATION_STATUS_BOOL)).thenReturn(true); + when(mTelephonyManager.isImsRegistered(anyInt())).thenReturn(false); + + mController.initialize(); + + verify(mDialog).setText(IMS_REGISTRATION_STATE_VALUE_ID, + mContext.getString(R.string.ims_reg_status_not_registered)); + } + + @Test + public void initialize_showImsRegistration_shouldNotRemoveImsRegistrationStateSetting() { + when(mPersistableBundle.getBoolean( + CarrierConfigManager.KEY_SHOW_IMS_REGISTRATION_STATUS_BOOL)).thenReturn(true); + + mController.initialize(); + + verify(mDialog, never()).removeSettingFromScreen(IMS_REGISTRATION_STATE_VALUE_ID); + } + + @Test + public void initialize_doNotShowImsRegistration_shouldRemoveImsRegistrationStateSetting() { + when(mPersistableBundle.getBoolean( + CarrierConfigManager.KEY_SHOW_IMS_REGISTRATION_STATUS_BOOL)).thenReturn(false); + + mController.initialize(); + + verify(mDialog).removeSettingFromScreen(IMS_REGISTRATION_STATE_LABEL_ID); + verify(mDialog).removeSettingFromScreen(IMS_REGISTRATION_STATE_VALUE_ID); + } + }