summaryrefslogtreecommitdiffstats
path: root/src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java
diff options
context:
space:
mode:
authorJake Hamby <jhamby@google.com>2013-02-04 16:22:22 -0800
committerAndroid Git Automerger <android-git-automerger@android.com>2013-02-04 16:22:22 -0800
commite017261eb3887451451ceb00e2491016c44e2755 (patch)
treef47dff240d559925ff2d791c0f365d8e8b7c5c81 /src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java
parent9ac73b3569a334ded9a794396d044b4db5f7d1ae (diff)
parent6d492b6d2d628dd2c97b3ca5dd9e0a031905cb15 (diff)
downloadandroid_packages_apps_CellBroadcastReceiver-e017261eb3887451451ceb00e2491016c44e2755.tar.gz
android_packages_apps_CellBroadcastReceiver-e017261eb3887451451ceb00e2491016c44e2755.tar.bz2
android_packages_apps_CellBroadcastReceiver-e017261eb3887451451ceb00e2491016c44e2755.zip
am 6d492b6d: Merge "CB: Add CDMA CMAS"
# By Rika Brooks # Via Gerrit Code Review (1) and Rika Brooks (1) * commit '6d492b6d2d628dd2c97b3ca5dd9e0a031905cb15': CB: Add CDMA CMAS
Diffstat (limited to 'src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java')
-rw-r--r--src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java40
1 files changed, 36 insertions, 4 deletions
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java b/src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java
index 41764af6..64c220bc 100644
--- a/src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java
@@ -29,6 +29,7 @@ import android.telephony.TelephonyManager;
import android.text.TextUtils;
import android.util.Log;
+import com.android.internal.telephony.cdma.sms.SmsEnvelope;
import com.android.internal.telephony.gsm.SmsCbConstants;
import static com.android.cellbroadcastreceiver.CellBroadcastReceiver.DBG;
@@ -49,6 +50,9 @@ public class CellBroadcastConfigService extends IntentService {
static final String ACTION_ENABLE_CHANNELS = "ACTION_ENABLE_CHANNELS";
+ static final String EMERGENCY_BROADCAST_RANGE_GSM =
+ "ro.cb.gsm.emergencyids";
+
public CellBroadcastConfigService() {
super(TAG); // use class name for worker thread name
}
@@ -86,7 +90,11 @@ public class CellBroadcastConfigService extends IntentService {
// 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);
+ if (CellBroadcastReceiver.phoneIsCdma()) {
+ manager.enableCellBroadcast(SmsEnvelope.SERVICE_CATEGORY_CMAS_PRESIDENTIAL_LEVEL_ALERT);
+ } else {
+ manager.enableCellBroadcast(SmsCbConstants.MESSAGE_ID_CMAS_ALERT_PRESIDENTIAL_LEVEL);
+ }
}
/**
@@ -101,7 +109,9 @@ public class CellBroadcastConfigService extends IntentService {
}
// Check for system property defining the emergency channel ranges to enable
- String emergencyIdRange = SystemProperties.get("ro.cellbroadcast.emergencyids");
+ String emergencyIdRange = (CellBroadcastReceiver.phoneIsCdma()) ?
+ "" : SystemProperties.get(EMERGENCY_BROADCAST_RANGE_GSM);
+
if (TextUtils.isEmpty(emergencyIdRange)) {
return false;
}
@@ -134,9 +144,11 @@ public class CellBroadcastConfigService extends IntentService {
try {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
Resources res = getResources();
+ boolean isCdma = CellBroadcastReceiver.phoneIsCdma();
// Check for system property defining the emergency channel ranges to enable
- String emergencyIdRange = SystemProperties.get("ro.cellbroadcast.emergencyids");
+ String emergencyIdRange = isCdma ?
+ "" : SystemProperties.get(EMERGENCY_BROADCAST_RANGE_GSM);
boolean enableEmergencyAlerts = prefs.getBoolean(
CellBroadcastSettings.KEY_ENABLE_EMERGENCY_ALERTS, true);
@@ -155,6 +167,15 @@ public class CellBroadcastConfigService extends IntentService {
if (DBG) log("enabling emergency cell broadcast channels");
if (!TextUtils.isEmpty(emergencyIdRange)) {
setChannelRange(manager, emergencyIdRange, true);
+ } else if (isCdma){
+ // No emergency channel system property, enable all emergency channels
+ manager.enableCellBroadcastRange(
+ SmsEnvelope.SERVICE_CATEGORY_CMAS_PRESIDENTIAL_LEVEL_ALERT,
+ SmsEnvelope.SERVICE_CATEGORY_CMAS_TEST_MESSAGE);
+
+ // CMAS Presidential must be on.
+ manager.enableCellBroadcast(
+ SmsEnvelope.SERVICE_CATEGORY_CMAS_PRESIDENTIAL_LEVEL_ALERT);
} else {
// No emergency channel system property, enable all emergency channels
manager.enableCellBroadcastRange(
@@ -171,6 +192,15 @@ public class CellBroadcastConfigService extends IntentService {
if (DBG) log("disabling emergency cell broadcast channels");
if (!TextUtils.isEmpty(emergencyIdRange)) {
setChannelRange(manager, emergencyIdRange, false);
+ } else if (isCdma) {
+ // No emergency channel system property, disable all emergency channels
+ manager.disableCellBroadcastRange(
+ SmsEnvelope.SERVICE_CATEGORY_CMAS_PRESIDENTIAL_LEVEL_ALERT,
+ SmsEnvelope.SERVICE_CATEGORY_CMAS_TEST_MESSAGE);
+
+ // CMAS Presidential must be on.
+ manager.enableCellBroadcast(
+ SmsEnvelope.SERVICE_CATEGORY_CMAS_PRESIDENTIAL_LEVEL_ALERT);
} else {
// No emergency channel system property, disable all emergency channels
// except for CMAS Presidential (See 3GPP TS 22.268 Section 6.2)
@@ -184,7 +214,9 @@ public class CellBroadcastConfigService extends IntentService {
if (DBG) log("disabled emergency cell broadcast channels");
}
- if (enableChannel50Alerts) {
+ if (isCdma) {
+ if (DBG) log("channel 50 is not aplicable for cdma");
+ } else if (enableChannel50Alerts) {
if (DBG) log("enabling cell broadcast channel 50");
manager.enableCellBroadcast(50);
if (DBG) log("enabled cell broadcast channel 50");