summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJack Yu <jackyu@google.com>2017-11-14 16:24:32 -0800
committerandroid-build-team Robot <android-build-team-robot@google.com>2018-02-08 04:12:14 +0000
commit9bbdc2355f2a4d273a90ffe9dfe016e150187e81 (patch)
tree6e6acff22e122b2fa87db7298e6043ca4720daeb
parent41cd9596220e1635ff8c0ab14e8ce1a3b228d1ba (diff)
downloadandroid_packages_apps_CellBroadcastReceiver-9bbdc2355f2a4d273a90ffe9dfe016e150187e81.tar.gz
android_packages_apps_CellBroadcastReceiver-9bbdc2355f2a4d273a90ffe9dfe016e150187e81.tar.bz2
android_packages_apps_CellBroadcastReceiver-9bbdc2355f2a4d273a90ffe9dfe016e150187e81.zip
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)
-rw-r--r--res/values-mcc440-mnc20/config.xml8
-rw-r--r--src/com/android/cellbroadcastreceiver/CellBroadcastAlertAudio.java5
-rw-r--r--src/com/android/cellbroadcastreceiver/CellBroadcastAlertService.java18
-rw-r--r--src/com/android/cellbroadcastreceiver/CellBroadcastResources.java6
-rw-r--r--tests/unit/src/com/android/cellbroadcastreceiver/CellBroadcastChannelManagerTest.java16
-rw-r--r--tests/unit/src/com/android/cellbroadcastreceiver/CellBroadcastSettingsTest.java2
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());