diff options
author | Rika Brooks <rbrooks@codeaurora.org> | 2012-06-05 14:26:55 -0700 |
---|---|---|
committer | Rika Brooks <rbrooks@codeaurora.org> | 2012-08-06 17:22:48 -0700 |
commit | b691740cc6c5e05f47b2eb8f0e766e6dfac9bfe7 (patch) | |
tree | 8e7fa1ae9266ea24e9ed7be72234948eabf166ee | |
parent | 2a503c6ca403b3c4837309b3dddec9897ee61c86 (diff) | |
download | android_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.java | 26 |
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"); } |