diff --git a/res/values/strings.xml b/res/values/strings.xml
index 41d562fb92e..744a814b0bb 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -4099,4 +4099,9 @@
+
+
+ Cell broadcasts
+
+ Select the types of emergency alerts to display.
diff --git a/res/xml/wireless_settings.xml b/res/xml/wireless_settings.xml
index 866a6173dbb..3cd72b3ed40 100644
--- a/res/xml/wireless_settings.xml
+++ b/res/xml/wireless_settings.xml
@@ -75,4 +75,14 @@
android:key="proxy_settings"
android:title="@string/proxy_settings_title" />
+
+
+
+
diff --git a/src/com/android/settings/WirelessSettings.java b/src/com/android/settings/WirelessSettings.java
index 3b67ec37d0f..347315a0596 100644
--- a/src/com/android/settings/WirelessSettings.java
+++ b/src/com/android/settings/WirelessSettings.java
@@ -50,6 +50,7 @@ public class WirelessSettings extends SettingsPreferenceFragment {
private static final String KEY_PROXY_SETTINGS = "proxy_settings";
private static final String KEY_MOBILE_NETWORK_SETTINGS = "mobile_network_settings";
private static final String KEY_TOGGLE_NSD = "toggle_nsd"; //network service discovery
+ private static final String KEY_CELL_BROADCAST_SETTINGS = "cell_broadcast_settings";
public static final String EXIT_ECM_RESULT = "exit_ecm_result";
public static final int REQUEST_CODE_EXIT_ECM = 1;
@@ -171,6 +172,26 @@ public class WirelessSettings extends SettingsPreferenceFragment {
Preference p = findPreference(KEY_TETHER_SETTINGS);
p.setTitle(Utils.getTetheringLabel(cm));
}
+
+ // Enable link to CMAS app settings depending on the value in config.xml.
+ boolean isCellBroadcastAppLinkEnabled = this.getResources().getBoolean(
+ com.android.internal.R.bool.config_cellBroadcastAppLinks);
+ try {
+ if (isCellBroadcastAppLinkEnabled) {
+ PackageManager pm = getPackageManager();
+ if (pm.getApplicationEnabledSetting("com.android.cellbroadcastreceiver")
+ == PackageManager.COMPONENT_ENABLED_STATE_DISABLED) {
+ isCellBroadcastAppLinkEnabled = false; // CMAS app disabled
+ }
+ }
+ } catch (IllegalArgumentException ignored) {
+ isCellBroadcastAppLinkEnabled = false; // CMAS app not installed
+ }
+ if (!isCellBroadcastAppLinkEnabled) {
+ PreferenceScreen root = getPreferenceScreen();
+ Preference ps = findPreference(KEY_CELL_BROADCAST_SETTINGS);
+ if (ps != null) root.removePreference(ps);
+ }
}
@Override