diff options
author | Jack Yu <jackyu@google.com> | 2016-09-14 17:17:51 -0700 |
---|---|---|
committer | Jack Yu <jackyu@google.com> | 2016-09-15 15:47:21 -0700 |
commit | 1820c019a79ad2c50e3c3e4bf18155d4d3dc7967 (patch) | |
tree | ef74d91a1b966c6b85587372d80accc908b32eb0 /src/com/android/cellbroadcastreceiver/CellBroadcastResources.java | |
parent | 468a41702543cb74189153a79af5b38a344e9960 (diff) | |
download | CellBroadcastReceiver-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.java | 29 |
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; |