summaryrefslogtreecommitdiff
path: root/src/com/android/cellbroadcastreceiver/CellBroadcastResources.java
diff options
context:
space:
mode:
authorJack Yu <jackyu@google.com>2016-09-14 17:17:51 -0700
committerJack Yu <jackyu@google.com>2016-09-15 15:47:21 -0700
commit1820c019a79ad2c50e3c3e4bf18155d4d3dc7967 (patch)
treeef74d91a1b966c6b85587372d80accc908b32eb0 /src/com/android/cellbroadcastreceiver/CellBroadcastResources.java
parent468a41702543cb74189153a79af5b38a344e9960 (diff)
downloadCellBroadcastReceiver-1820c019a79ad2c50e3c3e4bf18155d4d3dc7967.tar.gz
Fixed that carrier specific messages were not treated as emergency
Added an emergency flag to other channel managers. The carrier's specific cell broadcast messages can be marked as emergency or non-emergency. bug: 31172048 Change-Id: Ie2f20a166125bbcb8c5f9baadd9d97bca9c4d917
Diffstat (limited to 'src/com/android/cellbroadcastreceiver/CellBroadcastResources.java')
-rw-r--r--src/com/android/cellbroadcastreceiver/CellBroadcastResources.java29
1 files changed, 27 insertions, 2 deletions
diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastResources.java b/src/com/android/cellbroadcastreceiver/CellBroadcastResources.java
index a49267905..9c5d5faed 100644
--- a/src/com/android/cellbroadcastreceiver/CellBroadcastResources.java
+++ b/src/com/android/cellbroadcastreceiver/CellBroadcastResources.java
@@ -24,6 +24,9 @@ import android.telephony.SmsCbEtwsInfo;
import android.text.Spannable;
import android.text.SpannableStringBuilder;
import android.text.style.StyleSpan;
+import com.android.cellbroadcastreceiver.CellBroadcastOtherChannelsManager.CellBroadcastChannelRange;
+
+import java.util.ArrayList;
/**
* Returns the string resource ID's for CMAS and ETWS emergency alerts.
@@ -236,7 +239,7 @@ public class CellBroadcastResources {
}
}
- public static int getDialogTitleResource(CellBroadcastMessage cbm) {
+ public static int getDialogTitleResource(Context context, CellBroadcastMessage cbm) {
// ETWS warning types
SmsCbEtwsInfo etwsInfo = cbm.getEtwsWarningInfo();
if (etwsInfo != null) {
@@ -289,7 +292,29 @@ public class CellBroadcastResources {
}
}
- if (cbm.isEmergencyAlertMessage()) {
+ if (CellBroadcastAlertService.isEmergencyMessage(context, cbm)) {
+ ArrayList<CellBroadcastChannelRange> ranges = CellBroadcastOtherChannelsManager.
+ getInstance().getCellBroadcastChannelRanges(context, cbm.getSubId());
+ if (ranges != null) {
+ for (CellBroadcastChannelRange range : ranges) {
+ if (cbm.getServiceCategory() >= range.mStartId &&
+ cbm.getServiceCategory() <= range.mEndId) {
+ // Apply the closest title to the specified tones.
+ switch (range.mToneType) {
+ case CMAS_DEFAULT:
+ return R.string.pws_other_message_identifiers;
+ case EARTHQUAKE:
+ return R.string.etws_earthquake_warning;
+ case TSUNAMI:
+ return R.string.etws_tsunami_warning;
+ case ETWS_DEFAULT:
+ case OTHER:
+ return R.string.etws_other_emergency_type;
+ }
+ }
+ }
+
+ }
return R.string.pws_other_message_identifiers;
} else {
return R.string.cb_other_message_identifiers;