Remove reference to hidden framework resource am: 7d898287e4
am: e038d472a9

Change-Id: Iaa9cc8b1440e5c0bf7cebfc3c7c672d7791758ed
diff --git a/res/values/string.xml b/res/values/string.xml
new file mode 100644
index 0000000..3f4d44e
--- /dev/null
+++ b/res/values/string.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2019 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <!-- Primary ETWS (Earthquake and Tsunami Warning System) default message for earthquake -->
+    <string name="etws_primary_default_message_earthquake">Stay calm and seek shelter nearby.</string>
+
+    <!-- Primary ETWS (Earthquake and Tsunami Warning System) default message for Tsunami -->
+    <string name="etws_primary_default_message_tsunami">Evacuate immediately from coastal regions and riverside areas to a safer place such as high ground.</string>
+
+    <!-- Primary ETWS (Earthquake and Tsunami Warning System) default message for earthquake and Tsunami -->
+    <string name="etws_primary_default_message_earthquake_and_tsunami">Stay calm and seek shelter nearby.</string>
+
+    <!-- Primary ETWS (Earthquake and Tsunami Warning System) default message for test -->
+    <string name="etws_primary_default_message_test">Emergency messages test</string>
+
+    <!-- Primary ETWS (Earthquake and Tsunami Warning System) default message for others -->
+    <string name="etws_primary_default_message_others"></string>
+</resources>
diff --git a/res/values/symbols.xml b/res/values/symbols.xml
index 867c3a2..c2f50eb 100644
--- a/res/values/symbols.xml
+++ b/res/values/symbols.xml
@@ -22,5 +22,12 @@
       Can be referenced in java code as: com.android.internal.R.<type>.<name>
       and in layout xml as: "@*android:<type>/<name>" -->
 
-    <java-symbol type="array" name="config_defaultCellBroadcastReceiverPkgs" />
+	<java-symbol type="array" name="config_defaultCellBroadcastReceiverPkgs" />
+
+	<!-- ETWS primary messages -->
+	<java-symbol type="string" name="etws_primary_default_message_earthquake" />
+	<java-symbol type="string" name="etws_primary_default_message_tsunami" />
+	<java-symbol type="string" name="etws_primary_default_message_earthquake_and_tsunami" />
+	<java-symbol type="string" name="etws_primary_default_message_test" />
+	<java-symbol type="string" name="etws_primary_default_message_others" />
 </resources>
diff --git a/src/com/android/cellbroadcastservice/GsmSmsCbMessage.java b/src/com/android/cellbroadcastservice/GsmSmsCbMessage.java
index d17c084..6a0c7cc 100644
--- a/src/com/android/cellbroadcastservice/GsmSmsCbMessage.java
+++ b/src/com/android/cellbroadcastservice/GsmSmsCbMessage.java
@@ -37,7 +37,7 @@
 import com.android.cellbroadcastservice.CbGeoUtils.Polygon;
 import com.android.cellbroadcastservice.GsmSmsCbMessage.GeoFencingTriggerMessage.CellBroadcastIdentity;
 import com.android.cellbroadcastservice.SmsCbHeader.DataCodingScheme;
-import com.android.internal.R;
+import com.android.internal.annotations.VisibleForTesting;
 
 import java.io.UnsupportedEncodingException;
 import java.util.ArrayList;
@@ -66,7 +66,8 @@
      * @param category ETWS message category defined in SmsCbConstants
      * @return ETWS text message in string. Return an empty string if no match.
      */
-    private static String getEtwsPrimaryMessage(Context context, int category) {
+    @VisibleForTesting
+    public static String getEtwsPrimaryMessage(Context context, int category) {
         final Resources r = context.getResources();
         switch (category) {
             case ETWS_WARNING_TYPE_EARTHQUAKE:
diff --git a/tests/src/com/android/cellbroadcastservice/GsmSmsCbMessageTest.java b/tests/src/com/android/cellbroadcastservice/GsmSmsCbMessageTest.java
index 7cacfb4..de80095 100644
--- a/tests/src/com/android/cellbroadcastservice/GsmSmsCbMessageTest.java
+++ b/tests/src/com/android/cellbroadcastservice/GsmSmsCbMessageTest.java
@@ -18,24 +18,80 @@
 
 import android.telephony.CbGeoUtils;
 import android.telephony.SmsCbCmasInfo;
+import android.telephony.SmsCbEtwsInfo;
 import android.telephony.SmsCbMessage;
 import android.test.suitebuilder.annotation.SmallTest;
 import android.testing.AndroidTestingRunner;
+import android.testing.TestableLooper;
 import android.util.Log;
 
 import com.android.cellbroadcastservice.CbGeoUtils.Circle;
 import com.android.cellbroadcastservice.CbGeoUtils.Polygon;
 
+import org.junit.After;
+import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 
 import java.util.List;
 
 @RunWith(AndroidTestingRunner.class)
+@TestableLooper.RunWithLooper
 public class GsmSmsCbMessageTest extends CellBroadcastServiceTestBase {
 
     private static final String TAG = "GsmSmsCbMessageTest";
 
+    @Before
+    public void setUp() throws Exception {
+        super.setUp();
+    }
+
+    @After
+    public void tearDown() throws Exception {
+        super.tearDown();
+    }
+
+    @Test
+    @SmallTest
+    public void testGetEtwsPrimaryMessage() {
+        String testMessage1 = "Testmessage1";
+        String testMessage2 = "Testmessage2";
+        String testMessage3 = "Testmessage3";
+        String testMessage4 = "Testmessage4";
+        String testMessage5 = "Testmessage5";
+
+        putResources(R.string.etws_primary_default_message_earthquake, testMessage1);
+        putResources(R.string.etws_primary_default_message_tsunami, testMessage2);
+        putResources(R.string.etws_primary_default_message_earthquake_and_tsunami, testMessage3);
+        putResources(R.string.etws_primary_default_message_test, testMessage4);
+        putResources(R.string.etws_primary_default_message_others, testMessage5);
+
+        String message = GsmSmsCbMessage.getEtwsPrimaryMessage(mMockedContext,
+                SmsCbEtwsInfo.ETWS_WARNING_TYPE_EARTHQUAKE);
+        Log.d("GsmSmsCbMessageTest", "earthquake message=" + message);
+        assertEquals(testMessage1, message);
+
+        message = GsmSmsCbMessage.getEtwsPrimaryMessage(mMockedContext,
+                SmsCbEtwsInfo.ETWS_WARNING_TYPE_TSUNAMI);
+        Log.d("GsmSmsCbMessageTest", "tsunami message=" + message);
+        assertEquals(testMessage2, message);
+
+        message = GsmSmsCbMessage.getEtwsPrimaryMessage(mMockedContext,
+                SmsCbEtwsInfo.ETWS_WARNING_TYPE_EARTHQUAKE_AND_TSUNAMI);
+        Log.d("GsmSmsCbMessageTest", "earthquake and tsunami message=" + message);
+        assertEquals(testMessage3, message);
+
+        message = GsmSmsCbMessage.getEtwsPrimaryMessage(mMockedContext,
+                SmsCbEtwsInfo.ETWS_WARNING_TYPE_TEST_MESSAGE);
+        Log.d("GsmSmsCbMessageTest", "test message=" + message);
+        assertEquals(testMessage4, message);
+
+        message = GsmSmsCbMessage.getEtwsPrimaryMessage(mMockedContext,
+                SmsCbEtwsInfo.ETWS_WARNING_TYPE_OTHER_EMERGENCY);
+        Log.d("GsmSmsCbMessageTest", "others message=" + message);
+        assertEquals(testMessage5, message);
+    }
+
     @Test
     @SmallTest
     public void testCreateMessageFromBinary() throws Exception {