diff options
author | Jack Yu <jackyu@google.com> | 2017-11-14 16:24:32 -0800 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2018-02-08 04:12:14 +0000 |
commit | 9bbdc2355f2a4d273a90ffe9dfe016e150187e81 (patch) | |
tree | 6e6acff22e122b2fa87db7298e6043ca4720daeb | |
parent | 41cd9596220e1635ff8c0ab14e8ce1a3b228d1ba (diff) | |
download | CellBroadcastReceiver-9bbdc2355f2a4d273a90ffe9dfe016e150187e81.tar.gz |
Added carrier customized ETWS test channel support
Added carrier customized ETWS test channel support and changed
channel 0x802 and 0x804 on Softbank to ETWS test channel so it's
disabled by default unless users enable it.
Test: Manual and unit tests
bug: 69145050
Merged-In: I39d48d08f7aac9f601eaba8291176bff58bc4069
Change-Id: I39d48d08f7aac9f601eaba8291176bff58bc4069
(cherry picked from commit 5eb334ffb44b27ab76703a28f391e5008be9ad96)
(cherry picked from commit ea2d2d27eed836974112dcc8b5109461f6689a3b)
6 files changed, 38 insertions, 17 deletions
diff --git a/res/values-mcc440-mnc20/config.xml b/res/values-mcc440-mnc20/config.xml index bc6925bde..fbe7edc32 100644 --- a/res/values-mcc440-mnc20/config.xml +++ b/res/values-mcc440-mnc20/config.xml @@ -16,10 +16,10 @@ <resources> <string-array name="additional_cbs_channels_strings" translatable="false"> - <item>0xA800:type=earthquake, emergency=true</item> - <item>0xAFEE:type=tsunami, emergency=true</item> + <item>0xA800:type=etws_earthquake, emergency=true</item> + <item>0xAFEE:type=etws_tsunami, emergency=true</item> <item>0xAC00-0xAFED:type=other, emergency=true</item> - <item>0xA802:type=etws_default, emergency=true</item> - <item>0xA804:type=etws_default, emergency=true</item> + <item>0xA802:type=etws_test, emergency=true</item> + <item>0xA804:type=etws_test, emergency=true</item> </string-array> </resources> diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastAlertAudio.java b/src/com/android/cellbroadcastreceiver/CellBroadcastAlertAudio.java index fe75c9683..68eaf2da6 100644 --- a/src/com/android/cellbroadcastreceiver/CellBroadcastAlertAudio.java +++ b/src/com/android/cellbroadcastreceiver/CellBroadcastAlertAudio.java @@ -420,11 +420,11 @@ public class CellBroadcastAlertAudio extends Service implements TextToSpeech.OnI // Load the tones based on type switch (alertType) { - case EARTHQUAKE: + case ETWS_EARTHQUAKE: setDataSourceFromResource(getResources(), mMediaPlayer, R.raw.etws_earthquake); break; - case TSUNAMI: + case ETWS_TSUNAMI: setDataSourceFromResource(getResources(), mMediaPlayer, R.raw.etws_tsunami); break; @@ -433,6 +433,7 @@ public class CellBroadcastAlertAudio extends Service implements TextToSpeech.OnI R.raw.etws_other_disaster); break; case ETWS_DEFAULT: + case ETWS_TEST: setDataSourceFromResource(getResources(), mMediaPlayer, R.raw.etws_default); break; diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastAlertService.java b/src/com/android/cellbroadcastreceiver/CellBroadcastAlertService.java index d80bff7ea..593a0b4a6 100644 --- a/src/com/android/cellbroadcastreceiver/CellBroadcastAlertService.java +++ b/src/com/android/cellbroadcastreceiver/CellBroadcastAlertService.java @@ -98,8 +98,9 @@ public class CellBroadcastAlertService extends Service { public enum AlertType { CMAS_DEFAULT, ETWS_DEFAULT, - EARTHQUAKE, - TSUNAMI, + ETWS_EARTHQUAKE, + ETWS_TSUNAMI, + ETWS_TEST, AREA, OTHER } @@ -440,6 +441,12 @@ public class CellBroadcastAlertService extends Service { // area info broadcasts are displayed in Settings status screen } return false; + } else if (range.mAlertType == AlertType.ETWS_TEST) { + return emergencyAlertEnabled + && !forceDisableEtwsCmasTest + && PreferenceManager.getDefaultSharedPreferences(this) + .getBoolean(CellBroadcastSettings.KEY_ENABLE_ETWS_TEST_ALERTS, + false); } return emergencyAlertEnabled; @@ -510,10 +517,13 @@ public class CellBroadcastAlertService extends Service { switch (warningType) { case SmsCbEtwsInfo.ETWS_WARNING_TYPE_EARTHQUAKE: case SmsCbEtwsInfo.ETWS_WARNING_TYPE_EARTHQUAKE_AND_TSUNAMI: - alertType = AlertType.EARTHQUAKE; + alertType = AlertType.ETWS_EARTHQUAKE; break; case SmsCbEtwsInfo.ETWS_WARNING_TYPE_TSUNAMI: - alertType = AlertType.TSUNAMI; + alertType = AlertType.ETWS_TSUNAMI; + break; + case SmsCbEtwsInfo.ETWS_WARNING_TYPE_TEST_MESSAGE: + alertType = AlertType.ETWS_TEST; break; case SmsCbEtwsInfo.ETWS_WARNING_TYPE_OTHER_EMERGENCY: alertType = AlertType.OTHER; diff --git a/src/com/android/cellbroadcastreceiver/CellBroadcastResources.java b/src/com/android/cellbroadcastreceiver/CellBroadcastResources.java index 9946ce97d..05cb77240 100644 --- a/src/com/android/cellbroadcastreceiver/CellBroadcastResources.java +++ b/src/com/android/cellbroadcastreceiver/CellBroadcastResources.java @@ -304,10 +304,12 @@ public class CellBroadcastResources { switch (range.mAlertType) { case CMAS_DEFAULT: return R.string.pws_other_message_identifiers; - case EARTHQUAKE: + case ETWS_EARTHQUAKE: return R.string.etws_earthquake_warning; - case TSUNAMI: + case ETWS_TSUNAMI: return R.string.etws_tsunami_warning; + case ETWS_TEST: + return R.string.etws_test_message; case ETWS_DEFAULT: case OTHER: return R.string.etws_other_emergency_type; diff --git a/tests/unit/src/com/android/cellbroadcastreceiver/CellBroadcastChannelManagerTest.java b/tests/unit/src/com/android/cellbroadcastreceiver/CellBroadcastChannelManagerTest.java index 264ee3da7..b86234f58 100644 --- a/tests/unit/src/com/android/cellbroadcastreceiver/CellBroadcastChannelManagerTest.java +++ b/tests/unit/src/com/android/cellbroadcastreceiver/CellBroadcastChannelManagerTest.java @@ -53,11 +53,12 @@ public class CellBroadcastChannelManagerTest extends CellBroadcastTest { @SmallTest public void testGetCellBroadcastChannelRanges() throws Exception { putResources(R.array.additional_cbs_channels_strings, new String[]{ - "12:type=earthquake, emergency=true", - "456:type=tsunami, emergency=true", + "12:type=etws_earthquake, emergency=true", + "456:type=etws_tsunami, emergency=true", "0xAC00-0xAFED:type=other, emergency=false", "54-60:emergency=true", - "100-200" + "100-200", + "0xA804:type=etws_test, emergency=true" }); ArrayList<CellBroadcastChannelRange> list = CellBroadcastChannelManager.getInstance() @@ -65,12 +66,12 @@ public class CellBroadcastChannelManagerTest extends CellBroadcastTest { assertEquals(12, list.get(0).mStartId); assertEquals(12, list.get(0).mEndId); - assertEquals(AlertType.EARTHQUAKE, list.get(0).mAlertType); + assertEquals(AlertType.ETWS_EARTHQUAKE, list.get(0).mAlertType); assertTrue(list.get(0).mIsEmergency); assertEquals(456, list.get(1).mStartId); assertEquals(456, list.get(1).mEndId); - assertEquals(AlertType.TSUNAMI, list.get(1).mAlertType); + assertEquals(AlertType.ETWS_TSUNAMI, list.get(1).mAlertType); assertTrue(list.get(1).mIsEmergency); assertEquals(0xAC00, list.get(2).mStartId); @@ -87,5 +88,10 @@ public class CellBroadcastChannelManagerTest extends CellBroadcastTest { assertEquals(200, list.get(4).mEndId); assertEquals(AlertType.CMAS_DEFAULT, list.get(4).mAlertType); assertFalse(list.get(4).mIsEmergency); + + assertEquals(0xA804, list.get(5).mStartId); + assertEquals(0xA804, list.get(5).mEndId); + assertEquals(AlertType.ETWS_TEST, list.get(5).mAlertType); + assertTrue(list.get(5).mIsEmergency); } } diff --git a/tests/unit/src/com/android/cellbroadcastreceiver/CellBroadcastSettingsTest.java b/tests/unit/src/com/android/cellbroadcastreceiver/CellBroadcastSettingsTest.java index e4ea05fdc..f342a58d7 100644 --- a/tests/unit/src/com/android/cellbroadcastreceiver/CellBroadcastSettingsTest.java +++ b/tests/unit/src/com/android/cellbroadcastreceiver/CellBroadcastSettingsTest.java @@ -23,6 +23,7 @@ import android.app.Instrumentation; import android.content.Context; import android.content.Intent; import android.support.test.InstrumentationRegistry; +import android.support.test.filters.FlakyTest; import android.support.test.runner.AndroidJUnit4; import android.support.test.uiautomator.UiDevice; @@ -45,6 +46,7 @@ public class CellBroadcastSettingsTest { mDevice = UiDevice.getInstance(mInstrumentation); } + @FlakyTest @Test public void testRotate_alertReminderDialogOpen_shouldNotCrash() { mInstrumentation.startActivitySync(createActivityIntent()); |