diff options
6 files changed, 38 insertions, 17 deletions
diff --git a/res/values-mcc440-mnc20/config.xml b/res/values-mcc440-mnc20/config.xml index bc6925bd..fbe7edc3 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 fe75c968..68eaf2da 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 d80bff7e..593a0b4a 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 9946ce97..05cb7724 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 264ee3da..b86234f5 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 e4ea05fd..f342a58d 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()); |