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);
+ }
+
}