From 219e1dcb1710a0b722bf7b6a9f43d8378551d173 Mon Sep 17 00:00:00 2001 From: Chen Xu Date: Tue, 23 Jun 2020 09:44:13 -0700 Subject: avoid null pointer failure when handling GSMA channels Bug: 159573092 Test: manual test on channel 919 Change-Id: I896cd8a6d88781d3cf0021f2aeace3dfc51f2120 --- .../cellbroadcastreceiver/CellBroadcastAlertService.java | 2 +- .../cellbroadcastreceiver/CellBroadcastResources.java | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) (limited to 'src/com/android') diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastAlertService.java b/src/com/android/cellbroadcastreceiver/CellBroadcastAlertService.java index ce810c0bf..53c32a601 100644 --- a/src/com/android/cellbroadcastreceiver/CellBroadcastAlertService.java +++ b/src/com/android/cellbroadcastreceiver/CellBroadcastAlertService.java @@ -312,7 +312,7 @@ public class CellBroadcastAlertService extends Service CellBroadcastChannelRange range = channelManager .getCellBroadcastChannelRangeFromMessage(message); if (CellBroadcastReceiver.isTestingMode(getApplicationContext()) - || range.mWriteToSmsInbox) { + || (range != null && range.mWriteToSmsInbox)) { writeMessageToSmsInbox(message); } } diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastResources.java b/src/com/android/cellbroadcastreceiver/CellBroadcastResources.java index 70e80c119..23f4dd19b 100644 --- a/src/com/android/cellbroadcastreceiver/CellBroadcastResources.java +++ b/src/com/android/cellbroadcastreceiver/CellBroadcastResources.java @@ -319,12 +319,14 @@ public class CellBroadcastResources { } if (channelManager.checkCellBroadcastChannelRange(serviceCategory, R.array.cmas_alert_extreme_channels_range_strings)) { - if (cmasInfo.getSeverity() == SmsCbCmasInfo.CMAS_SEVERITY_EXTREME - && cmasInfo.getUrgency() == SmsCbCmasInfo.CMAS_URGENCY_IMMEDIATE) { - if (cmasInfo.getCertainty() == SmsCbCmasInfo.CMAS_CERTAINTY_OBSERVED) { - return R.string.cmas_extreme_immediate_observed_alert; - } else if (cmasInfo.getCertainty() == SmsCbCmasInfo.CMAS_CERTAINTY_LIKELY) { - return R.string.cmas_extreme_immediate_likely_alert; + if (message.isCmasMessage()) { + if (cmasInfo.getSeverity() == SmsCbCmasInfo.CMAS_SEVERITY_EXTREME + && cmasInfo.getUrgency() == SmsCbCmasInfo.CMAS_URGENCY_IMMEDIATE) { + if (cmasInfo.getCertainty() == SmsCbCmasInfo.CMAS_CERTAINTY_OBSERVED) { + return R.string.cmas_extreme_immediate_observed_alert; + } else if (cmasInfo.getCertainty() == SmsCbCmasInfo.CMAS_CERTAINTY_LIKELY) { + return R.string.cmas_extreme_immediate_likely_alert; + } } } return R.string.cmas_extreme_alert; -- cgit v1.2.3