diff --git a/res/layout/radio_info.xml b/res/layout/radio_info.xml
index e9841d02adc..0592b3fd6cb 100644
--- a/res/layout/radio_info.xml
+++ b/res/layout/radio_info.xml
@@ -196,6 +196,14 @@
android:layout_height="wrap_content"
/>
+
+
+
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 863d66c07b2..eb5474e9839 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -40,6 +40,12 @@
Turn off radio
+
+
+ Turn on IMS registration required
+
+ Turn off IMS registration required
+
View SIM address book
diff --git a/src/com/android/settings/RadioInfo.java b/src/com/android/settings/RadioInfo.java
index d45616ef106..ba10debfdb7 100644
--- a/src/com/android/settings/RadioInfo.java
+++ b/src/com/android/settings/RadioInfo.java
@@ -123,6 +123,7 @@ public class RadioInfo extends Activity {
private TextView dnsCheckState;
private EditText smsc;
private Button radioPowerButton;
+ private Button imsRegRequiredButton;
private Button dnsCheckToggleButton;
private Button pingTestButton;
private Button updateSmscButton;
@@ -282,6 +283,9 @@ public class RadioInfo extends Activity {
radioPowerButton = (Button) findViewById(R.id.radio_power);
radioPowerButton.setOnClickListener(mPowerButtonHandler);
+ imsRegRequiredButton = (Button) findViewById(R.id.ims_reg_required);
+ imsRegRequiredButton.setOnClickListener(mImsRegRequiredHandler);
+
pingTestButton = (Button) findViewById(R.id.ping_test);
pingTestButton.setOnClickListener(mPingButtonHandler);
updateSmscButton = (Button) findViewById(R.id.update_smsc);
@@ -327,6 +331,7 @@ public class RadioInfo extends Activity {
updateDataStats();
updateDataStats2();
updatePowerState();
+ updateImsRegRequiredState();
updateProperties();
updateDnsCheckState();
@@ -403,6 +408,19 @@ public class RadioInfo extends Activity {
radioPowerButton.setText(buttonText);
}
+ private boolean isImsRegRequired() {
+ return SystemProperties.getBoolean(TelephonyProperties.PROPERTY_IMS_REG_REQUIRED, false);
+ }
+
+ private void updateImsRegRequiredState() {
+ Log.d(TAG, "updateImsRegRequiredState isImsRegRequired()=" + isImsRegRequired());
+ String buttonText = isImsRegRequired() ?
+ getString(R.string.ims_reg_required_off) :
+ getString(R.string.ims_reg_required_on);
+ imsRegRequiredButton.setText(buttonText);
+ }
+
+
private void updateDnsCheckState() {
dnsCheckState.setText(phone.isDnsCheckDisabled() ?
"0.0.0.0 allowed" :"0.0.0.0 not allowed");
@@ -877,6 +895,18 @@ public class RadioInfo extends Activity {
}
};
+ OnClickListener mImsRegRequiredHandler = new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Log.d(TAG, String.format("toggle %s: currently %s",
+ TelephonyProperties.PROPERTY_IMS_REG_REQUIRED, (isImsRegRequired() ? "on":"off")));
+ boolean newValue = !isImsRegRequired();
+ SystemProperties.set(TelephonyProperties.PROPERTY_IMS_REG_REQUIRED,
+ newValue ? "1":"0");
+ updateImsRegRequiredState();
+ }
+ };
+
OnClickListener mDnsCheckButtonHandler = new OnClickListener() {
public void onClick(View v) {
phone.disableDnsCheck(!phone.isDnsCheckDisabled());