summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWink Saville <wink@google.com>2011-09-22 15:17:00 -0700
committerWink Saville <wink@google.com>2011-09-22 15:17:00 -0700
commit382a75b105506f9ef8e6e735fcfa40ddccbd87cc (patch)
treedc900f14b8cf1d39c3927abd0973c06473c84582
parent89cd48cd8e01081f470ea299dbf841a0099226ae (diff)
downloadpackages_apps_settings-382a75b105506f9ef8e6e735fcfa40ddccbd87cc.zip
packages_apps_settings-382a75b105506f9ef8e6e735fcfa40ddccbd87cc.tar.gz
packages_apps_settings-382a75b105506f9ef8e6e735fcfa40ddccbd87cc.tar.bz2
Add a button to enable/disable Mobile Terminated SMS over IMS
This toggles persist.radio.imsallowmtsms between 0/1 which can be used during testing and bring up of SMS over IMS. Change-Id: I4581bca76899445e825260e8af6a39903d029c44
-rw-r--r--res/layout/radio_info.xml8
-rw-r--r--res/values/strings.xml8
-rw-r--r--src/com/android/settings/RadioInfo.java29
3 files changed, 43 insertions, 2 deletions
diff --git a/res/layout/radio_info.xml b/res/layout/radio_info.xml
index 0592b3f..02e321a 100644
--- a/res/layout/radio_info.xml
+++ b/res/layout/radio_info.xml
@@ -204,6 +204,14 @@
android:layout_height="wrap_content"
/>
+ <!-- SMS over IMS -->
+ <Button android:id="@+id/sms_over_ims"
+ android:textSize="14sp"
+ android:layout_marginTop="8dip"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ />
+
<!-- SMSC -->
<RelativeLayout android:layout_width="match_parent"
android:layout_height="wrap_content">
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 8f582b5..4dfa126 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -40,8 +40,12 @@
<!-- Phone Info screen. Button label to turn off the radio . Only shown in diagnostic screen, so precise translation is not needed. -->
<string name="turn_off_radio">Turn off radio</string>
- <!-- Phone info -->
- <!-- Phone IMS registration required on. Only shown in diagnostic screen, so precise translation is not needed. -->
+ <!-- Phone SMS over IMS on. Only shown in diagnostic screen, so precise translation is not needed. -->
+ <string name="sms_over_ims_on">Turn on SMS over IMS</string>
+ <!-- Phone SMS over IMS off. Only shown in diagnostic screen, so precise translation is not needed. -->
+ <string name="sms_over_ims_off">Turn off SMS over IMS</string>
+
+ <!-- Phone SMS over IMS IMS registration required on. Only shown in diagnostic screen, so precise translation is not needed. -->
<string name="ims_reg_required_on">Turn on IMS registration required</string>
<!-- Phone IMS registration required off. Only shown in diagnostic screen, so precise translation is not needed. -->
<string name="ims_reg_required_off">Turn off IMS registration required</string>
diff --git a/src/com/android/settings/RadioInfo.java b/src/com/android/settings/RadioInfo.java
index ba10deb..1ba4804 100644
--- a/src/com/android/settings/RadioInfo.java
+++ b/src/com/android/settings/RadioInfo.java
@@ -124,6 +124,7 @@ public class RadioInfo extends Activity {
private EditText smsc;
private Button radioPowerButton;
private Button imsRegRequiredButton;
+ private Button smsOverImsButton;
private Button dnsCheckToggleButton;
private Button pingTestButton;
private Button updateSmscButton;
@@ -286,6 +287,9 @@ public class RadioInfo extends Activity {
imsRegRequiredButton = (Button) findViewById(R.id.ims_reg_required);
imsRegRequiredButton.setOnClickListener(mImsRegRequiredHandler);
+ smsOverImsButton = (Button) findViewById(R.id.sms_over_ims);
+ smsOverImsButton.setOnClickListener(mSmsOverImsHandler);
+
pingTestButton = (Button) findViewById(R.id.ping_test);
pingTestButton.setOnClickListener(mPingButtonHandler);
updateSmscButton = (Button) findViewById(R.id.update_smsc);
@@ -332,6 +336,7 @@ public class RadioInfo extends Activity {
updateDataStats2();
updatePowerState();
updateImsRegRequiredState();
+ updateSmsOverImsState();
updateProperties();
updateDnsCheckState();
@@ -420,6 +425,18 @@ public class RadioInfo extends Activity {
imsRegRequiredButton.setText(buttonText);
}
+ private boolean isSmsOverImsEnabled() {
+ return SystemProperties.getBoolean(PROPERTY_SMS_OVER_IMS, false);
+ }
+
+ private void updateSmsOverImsState() {
+ Log.d(TAG, "updateSmsOverImsState isSmsOverImsEnabled()=" + isSmsOverImsEnabled());
+ String buttonText = isSmsOverImsEnabled() ?
+ getString(R.string.sms_over_ims_off) :
+ getString(R.string.sms_over_ims_on);
+ smsOverImsButton.setText(buttonText);
+ }
+
private void updateDnsCheckState() {
dnsCheckState.setText(phone.isDnsCheckDisabled() ?
@@ -907,6 +924,18 @@ public class RadioInfo extends Activity {
}
};
+ static final String PROPERTY_SMS_OVER_IMS = "persist.radio.imsallowmtsms";
+ OnClickListener mSmsOverImsHandler = new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Log.d(TAG, String.format("toggle %s: currently %s",
+ PROPERTY_SMS_OVER_IMS, (isSmsOverImsEnabled() ? "on":"off")));
+ boolean newValue = !isSmsOverImsEnabled();
+ SystemProperties.set(PROPERTY_SMS_OVER_IMS, newValue ? "1":"0");
+ updateSmsOverImsState();
+ }
+ };
+
OnClickListener mDnsCheckButtonHandler = new OnClickListener() {
public void onClick(View v) {
phone.disableDnsCheck(!phone.isDnsCheckDisabled());