From ef57ed71bf390858cb83253bd193a192bb48346c Mon Sep 17 00:00:00 2001 From: Jake Hamby Date: Thu, 21 Jun 2012 10:59:22 -0700 Subject: [PATCH] Add menu item to Settings to go to Cell Broadcast settings. Add menu item to Settings when "config_cellBroadcastAppLinks" config option is set to true to jump to the Cell Broadcast app settings activity. This enables the Cell Broadcast launcher icon to be removed, while still allowing access to the app (by adding a similar menu item to the MMS app) and its settings activity (this settings link). The menu item will not be added if the CellBroadcastReceiver package is disabled or not installed. Bug: 6709985 Change-Id: If3a3016ceea70704790964c0b712c31cb38f7b62 --- res/values/strings.xml | 5 +++++ res/xml/wireless_settings.xml | 10 +++++++++ .../android/settings/WirelessSettings.java | 21 +++++++++++++++++++ 3 files changed, 36 insertions(+) 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