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