summaryrefslogtreecommitdiff
path: root/src/com
diff options
context:
space:
mode:
Diffstat (limited to 'src/com')
-rw-r--r--src/com/android/cellbroadcastreceiver/CellBroadcastAlertService.java6
-rw-r--r--src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java7
-rw-r--r--src/com/android/cellbroadcastreceiver/CellBroadcastSearchIndexableProvider.java7
-rw-r--r--src/com/android/cellbroadcastreceiver/CellBroadcastSettings.java31
4 files changed, 37 insertions, 14 deletions
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastAlertService.java b/src/com/android/cellbroadcastreceiver/CellBroadcastAlertService.java
index 0a04dd0b9..b6406344d 100644
--- a/src/com/android/cellbroadcastreceiver/CellBroadcastAlertService.java
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastAlertService.java
@@ -371,6 +371,12 @@ public class CellBroadcastAlertService extends Service {
}
if (channelManager.checkCellBroadcastChannelRange(channel,
+ R.array.exercise_alert_range_strings)
+ && getResources().getBoolean(R.bool.always_enable_exercise_alert)) {
+ return true;
+ }
+
+ if (channelManager.checkCellBroadcastChannelRange(channel,
R.array.required_monthly_test_range_strings)
|| channelManager.checkCellBroadcastChannelRange(channel,
R.array.exercise_alert_range_strings)
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java b/src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java
index ac5503310..f20634a77 100644
--- a/src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java
@@ -103,6 +103,7 @@ public class CellBroadcastConfigService extends IntentService {
public void enableCellBroadcastChannels(int subId) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
+ Resources res = CellBroadcastSettings.getResources(this, subId);
// boolean for each user preference checkbox, true for checked, false for unchecked
// Note: If enableAlertsMasterToggle is false, it disables ALL emergency broadcasts
@@ -192,9 +193,13 @@ public class CellBroadcastConfigService extends IntentService {
channelManager.getCellBroadcastChannelRanges(
R.array.required_monthly_test_range_strings));
- setCellBroadcastRange(subId, enableTestAlerts,
+ // Exercise is part of test toggle with monthly test and operator defined. some carriers
+ // mandate to show test settings in UI but always enable exercise alert.
+ setCellBroadcastRange(subId, enableTestAlerts ||
+ res.getBoolean(R.bool.always_enable_exercise_alert),
channelManager.getCellBroadcastChannelRanges(
R.array.exercise_alert_range_strings));
+
setCellBroadcastRange(subId, enableTestAlerts,
channelManager.getCellBroadcastChannelRanges(
R.array.operator_defined_alert_range_strings));
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastSearchIndexableProvider.java b/src/com/android/cellbroadcastreceiver/CellBroadcastSearchIndexableProvider.java
index 2134e4631..676af0154 100644
--- a/src/com/android/cellbroadcastreceiver/CellBroadcastSearchIndexableProvider.java
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastSearchIndexableProvider.java
@@ -229,6 +229,13 @@ public class CellBroadcastSearchIndexableProvider extends SearchIndexablesProvid
cursor.addRow(ref);
}
+ if (!CellBroadcastSettings.isTestAlertsToggleVisible(getContext())) {
+ ref = new Object[1];
+ ref[COLUMN_INDEX_NON_INDEXABLE_KEYS_KEY_VALUE] =
+ CellBroadcastSettings.KEY_ENABLE_TEST_ALERTS;
+ cursor.addRow(ref);
+ }
+
return cursor;
}
}
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastSettings.java b/src/com/android/cellbroadcastreceiver/CellBroadcastSettings.java
index 67f23f6db..e3424349b 100644
--- a/src/com/android/cellbroadcastreceiver/CellBroadcastSettings.java
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastSettings.java
@@ -320,23 +320,11 @@ public class CellBroadcastSettings extends Activity {
if (mMasterToggle != null) preferenceScreen.removePreference(mMasterToggle);
}
- boolean hideTestAlertMenu = CellBroadcastSettings.isFeatureEnabled(getContext(),
- CarrierConfigManager.KEY_CARRIER_FORCE_DISABLE_ETWS_CMAS_TEST_BOOL, false);
-
CellBroadcastChannelManager channelManager = new CellBroadcastChannelManager(
getContext(), SubscriptionManager.DEFAULT_SUBSCRIPTION_ID);
- boolean isTestAlertsAvailable = !channelManager.getCellBroadcastChannelRanges(
- R.array.required_monthly_test_range_strings).isEmpty()
- || !channelManager.getCellBroadcastChannelRanges(
- R.array.exercise_alert_range_strings).isEmpty()
- || !channelManager.getCellBroadcastChannelRanges(
- R.array.operator_defined_alert_range_strings).isEmpty()
- || !channelManager.getCellBroadcastChannelRanges(
- R.array.etws_test_alerts_range_strings).isEmpty();
-
// Check if we want to hide the test alert toggle.
- if (hideTestAlertMenu || !enableDevSettings || !isTestAlertsAvailable) {
+ if (!isTestAlertsToggleVisible(getContext())) {
if (mTestCheckBox != null) {
mAlertCategory.removePreference(mTestCheckBox);
}
@@ -550,6 +538,23 @@ public class CellBroadcastSettings extends Activity {
}
}
+ public static boolean isTestAlertsToggleVisible(Context context) {
+ CellBroadcastChannelManager channelManager = new CellBroadcastChannelManager(context,
+ SubscriptionManager.DEFAULT_SUBSCRIPTION_ID);
+ Resources res = CellBroadcastSettings.getResources(context,
+ SubscriptionManager.DEFAULT_SUBSCRIPTION_ID);
+ boolean isTestAlertsAvailable = !channelManager.getCellBroadcastChannelRanges(
+ R.array.required_monthly_test_range_strings).isEmpty()
+ || !channelManager.getCellBroadcastChannelRanges(
+ R.array.exercise_alert_range_strings).isEmpty()
+ || !channelManager.getCellBroadcastChannelRanges(
+ R.array.operator_defined_alert_range_strings).isEmpty()
+ || !channelManager.getCellBroadcastChannelRanges(
+ R.array.etws_test_alerts_range_strings).isEmpty();
+
+ return res.getBoolean(R.bool.show_test_settings) && isTestAlertsAvailable;
+ }
+
public static boolean isFeatureEnabled(Context context, String feature, boolean defaultValue) {
CarrierConfigManager configManager =
(CarrierConfigManager) context.getSystemService(Context.CARRIER_CONFIG_SERVICE);