summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRika Brooks <rbrooks@codeaurora.org>2012-06-05 14:26:55 -0700
committerRika Brooks <rbrooks@codeaurora.org>2012-08-06 17:22:48 -0700
commitb691740cc6c5e05f47b2eb8f0e766e6dfac9bfe7 (patch)
tree8e7fa1ae9266ea24e9ed7be72234948eabf166ee
parent2a503c6ca403b3c4837309b3dddec9897ee61c86 (diff)
downloadandroid_packages_apps_CellBroadcastReceiver-b691740cc6c5e05f47b2eb8f0e766e6dfac9bfe7.tar.gz
android_packages_apps_CellBroadcastReceiver-b691740cc6c5e05f47b2eb8f0e766e6dfac9bfe7.tar.bz2
android_packages_apps_CellBroadcastReceiver-b691740cc6c5e05f47b2eb8f0e766e6dfac9bfe7.zip
CB: Turn on CMAS Presidential
Per 3GPP TS 22.268 Section 6.2, CMAS Presidential must be turned on. Change-Id: I37e2d583e132172658ffb2ed00db2dfd695bbc29
-rw-r--r--src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java26
1 files changed, 20 insertions, 6 deletions
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java b/src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java
index ad77dc25..bc153949 100644
--- a/src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java
@@ -51,12 +51,14 @@ public class CellBroadcastConfigService extends IntentService {
}
private static void setChannelRange(SmsManager manager, String ranges, boolean enable) {
+ if (DBG)log("setChannelRange: " + ranges);
+
try {
for (String channelRange : ranges.split(",")) {
int dashIndex = channelRange.indexOf('-');
if (dashIndex != -1) {
- int startId = Integer.decode(channelRange.substring(0, dashIndex));
- int endId = Integer.decode(channelRange.substring(dashIndex + 1));
+ int startId = Integer.decode(channelRange.substring(0, dashIndex).trim());
+ int endId = Integer.decode(channelRange.substring(dashIndex + 1).trim());
if (enable) {
if (DBG) log("enabling emergency IDs " + startId + '-' + endId);
manager.enableCellBroadcastRange(startId, endId);
@@ -65,7 +67,7 @@ public class CellBroadcastConfigService extends IntentService {
manager.disableCellBroadcastRange(startId, endId);
}
} else {
- int messageId = Integer.decode(channelRange);
+ int messageId = Integer.decode(channelRange.trim());
if (enable) {
if (DBG) log("enabling emergency message ID " + messageId);
manager.enableCellBroadcast(messageId);
@@ -78,6 +80,10 @@ public class CellBroadcastConfigService extends IntentService {
} catch (NumberFormatException e) {
Log.e(TAG, "Number Format Exception parsing emergency channel range", e);
}
+
+ // Make sure CMAS Presidential is enabled (See 3GPP TS 22.268 Section 6.2).
+ if (DBG) log("setChannelRange: enabling CMAS Presidential");
+ manager.enableCellBroadcast(SmsCbConstants.MESSAGE_ID_CMAS_ALERT_PRESIDENTIAL_LEVEL);
}
static boolean isOperatorDefinedEmergencyId(int messageId) {
@@ -90,13 +96,13 @@ public class CellBroadcastConfigService extends IntentService {
for (String channelRange : emergencyIdRange.split(",")) {
int dashIndex = channelRange.indexOf('-');
if (dashIndex != -1) {
- int startId = Integer.decode(channelRange.substring(0, dashIndex));
- int endId = Integer.decode(channelRange.substring(dashIndex + 1));
+ int startId = Integer.decode(channelRange.substring(0, dashIndex).trim());
+ int endId = Integer.decode(channelRange.substring(dashIndex + 1).trim());
if (messageId >= startId && messageId <= endId) {
return true;
}
} else {
- int emergencyMessageId = Integer.decode(channelRange);
+ int emergencyMessageId = Integer.decode(channelRange.trim());
if (emergencyMessageId == messageId) {
return true;
}
@@ -134,6 +140,10 @@ public class CellBroadcastConfigService extends IntentService {
manager.enableCellBroadcastRange(
SmsCbConstants.MESSAGE_ID_PWS_FIRST_IDENTIFIER,
SmsCbConstants.MESSAGE_ID_PWS_LAST_IDENTIFIER);
+
+ // CMAS Presidential must be on (See 3GPP TS 22.268 Section 6.2).
+ manager.enableCellBroadcast(
+ SmsCbConstants.MESSAGE_ID_CMAS_ALERT_PRESIDENTIAL_LEVEL);
}
if (DBG) log("enabled emergency cell broadcast channels");
} else {
@@ -143,9 +153,13 @@ public class CellBroadcastConfigService extends IntentService {
setChannelRange(manager, emergencyIdRange, false);
} else {
// No emergency channel system property, disable all emergency channels
+ // except for CMAS Presidential (See 3GPP TS 22.268 Section 6.2)
manager.disableCellBroadcastRange(
SmsCbConstants.MESSAGE_ID_PWS_FIRST_IDENTIFIER,
SmsCbConstants.MESSAGE_ID_PWS_LAST_IDENTIFIER);
+
+ manager.enableCellBroadcast(
+ SmsCbConstants.MESSAGE_ID_CMAS_ALERT_PRESIDENTIAL_LEVEL);
}
if (DBG) log("disabled emergency cell broadcast channels");
}