diff options
author | Jake Hamby <jhamby@google.com> | 2013-02-04 16:22:22 -0800 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2013-02-04 16:22:22 -0800 |
commit | e017261eb3887451451ceb00e2491016c44e2755 (patch) | |
tree | f47dff240d559925ff2d791c0f365d8e8b7c5c81 /src/com/android/cellbroadcastreceiver/CellBroadcastConfigService.java | |
parent | 9ac73b3569a334ded9a794396d044b4db5f7d1ae (diff) | |
parent | 6d492b6d2d628dd2c97b3ca5dd9e0a031905cb15 (diff) | |
download | android_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.java | 40 |
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"); |