Merge "Add SmsHeaderTest" into rvc-dev
diff --git a/res/values-ky/strings.xml b/res/values-ky/strings.xml
index 8becbd8..3f04d59 100644
--- a/res/values-ky/strings.xml
+++ b/res/values-ky/strings.xml
@@ -19,6 +19,6 @@
     <string name="etws_primary_default_message_earthquake" msgid="6322509321590329419">"Эс алып, жакын жерден калканч издеңиз."</string>
     <string name="etws_primary_default_message_tsunami" msgid="2521384573822842618">"Деңиз жана дарыя жээгинде жайгашкан аймактардан бийик тоо сыяктуу коопсуз жерге тезинен чыгып кетиңиз."</string>
     <string name="etws_primary_default_message_earthquake_and_tsunami" msgid="7826176257527823396">"Эс алып, жакын жерден калканч издеңиз."</string>
-    <string name="etws_primary_default_message_test" msgid="2739829278266087553">"Өзгөчө кырдаалда жөнөтүлүүчү билдирүүлөрдү сыноо"</string>
+    <string name="etws_primary_default_message_test" msgid="2739829278266087553">"Кырсыктаганда жөнөтүлүүчү билдирүүлөрдү сыноо"</string>
     <string name="etws_primary_default_message_others" msgid="7879169328308568119"></string>
 </resources>
diff --git a/res/values/config.xml b/res/values/config.xml
index 7407bb9..fa4e0bc 100644
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -15,19 +15,23 @@
 -->
 
 <resources>
-    <!-- If this value is true, SMS encoded as octet is decoded by utf8 decoder.
-      If false, decoded by Latin decoder. -->
-    <bool name="config_sms_utf8_support">false</bool>
+    <!-- Package name of the default cell broadcast receiver -->
+    <string name="default_cell_broadcast_receiver_package" translatable="false">
+        com.android.cellbroadcastreceiver
+    </string>
 
-    <!-- Package names of the default cell broadcast receivers -->
-    <string-array name="config_defaultCellBroadcastReceiverPkgs" translatable="false">
-        <item>com.android.cellbroadcastreceiver</item>
+    <!-- Package names of additional cell broadcast receivers -->
+    <string-array name="additional_cell_broadcast_receiver_packages" translatable="false">
     </string-array>
 
     <!-- Package names of the test cell broadcast receivers, only used on debug builds -->
-    <string-array name="config_testCellBroadcastReceiverPkgs" translatable="false">
+    <string-array name="test_cell_broadcast_receiver_packages" translatable="false">
     </string-array>
 
+    <!-- If this value is true, SMS encoded as octet is decoded by utf8 decoder.
+      If false, decoded by Latin decoder. -->
+    <bool name="config_sms_utf8_support">false</bool>
+
     <!-- The message expiration time in milliseconds for duplicate detection -->
     <integer name="message_expiration_time">86400000</integer>
 
diff --git a/res/values/overlayable.xml b/res/values/overlayable.xml
index 63f7ba3..492a035 100644
--- a/res/values/overlayable.xml
+++ b/res/values/overlayable.xml
@@ -19,8 +19,8 @@
         <policy type="product|system|vendor">
 
           <!-- Params from config.xml that can be overlayed -->
-          <item type="array" name="config_defaultCellBroadcastReceiverPkgs" />
-          <item type="array" name="config_testCellBroadcastReceiverPkgs" />
+          <item type="array" name="additional_cell_broadcast_receiver_packages" />
+          <item type="array" name="test_cell_broadcast_receiver_packages" />
           <item type="array" name="config_area_info_receiver_packages" />
           <!-- Params from config.xml that can be overlayed -->
         </policy>
diff --git a/res/values/symbols.xml b/res/values/symbols.xml
deleted file mode 100644
index 2cfb796..0000000
--- a/res/values/symbols.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-<?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>
-    <!-- Private symbols that we need to reference from framework code.  See
-      frameworks/base/core/res/MakeJavaSymbols.sed for how to easily generate
-      this.
-
-      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_testCellBroadcastReceiverPkgs" />
-
-	<!-- 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/CdmaServiceCategoryProgramHandler.java b/src/com/android/cellbroadcastservice/CdmaServiceCategoryProgramHandler.java
index 2050960..0c17ed1 100644
--- a/src/com/android/cellbroadcastservice/CdmaServiceCategoryProgramHandler.java
+++ b/src/com/android/cellbroadcastservice/CdmaServiceCategoryProgramHandler.java
@@ -144,17 +144,14 @@
         intent.putParcelableArrayListExtra("program_data", programData);
         CellBroadcastHandler.putPhoneIdAndSubIdExtra(mContext, intent, phoneId);
 
-        // TODO: move this resource and its overlays to the CellBroadcastService directory
-        String[] pkgs = mContext.getResources().getStringArray(
-                R.array.config_defaultCellBroadcastReceiverPkgs);
-        mReceiverCount.addAndGet(pkgs.length);
-        for (String pkg : pkgs) {
-            intent.setPackage(pkg);
-            mContext.sendOrderedBroadcast(intent, Manifest.permission.RECEIVE_SMS,
-                    AppOpsManager.OPSTR_RECEIVE_SMS, mScpResultsReceiver,
-                    getHandler(), Activity.RESULT_OK, null, null);
-            mScpCallback.add(callback);
-        }
+        String pkg = mContext.getResources().getString(
+                R.string.default_cell_broadcast_receiver_package);
+        mReceiverCount.incrementAndGet();
+        intent.setPackage(pkg);
+        mContext.sendOrderedBroadcast(intent, Manifest.permission.RECEIVE_SMS,
+                AppOpsManager.OPSTR_RECEIVE_SMS, mScpResultsReceiver,
+                getHandler(), Activity.RESULT_OK, null, null);
+        mScpCallback.add(callback);
         return true;
     }
 
diff --git a/src/com/android/cellbroadcastservice/CellBroadcastHandler.java b/src/com/android/cellbroadcastservice/CellBroadcastHandler.java
index fa59a10..b89d940 100644
--- a/src/com/android/cellbroadcastservice/CellBroadcastHandler.java
+++ b/src/com/android/cellbroadcastservice/CellBroadcastHandler.java
@@ -63,6 +63,7 @@
 import java.io.PrintWriter;
 import java.text.DateFormat;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -520,7 +521,7 @@
                 // Send additional broadcast intent to the specified package. This is only for sl4a
                 // automation tests.
                 String[] testPkgs = mContext.getResources().getStringArray(
-                        R.array.config_testCellBroadcastReceiverPkgs);
+                        R.array.test_cell_broadcast_receiver_packages);
                 if (testPkgs != null) {
                     Intent additionalIntent = new Intent(intent);
                     for (String pkg : testPkgs) {
@@ -533,10 +534,13 @@
                 }
             }
 
-            String[] pkgs = mContext.getResources().getStringArray(
-                    R.array.config_defaultCellBroadcastReceiverPkgs);
+            List<String> pkgs = new ArrayList<>();
+            pkgs.add(mContext.getResources().getString(
+                    R.string.default_cell_broadcast_receiver_package));
+            pkgs.addAll(Arrays.asList(mContext.getResources().getStringArray(
+                    R.array.additional_cell_broadcast_receiver_packages)));
             if (pkgs != null) {
-                mReceiverCount.addAndGet(pkgs.length);
+                mReceiverCount.addAndGet(pkgs.size());
                 for (String pkg : pkgs) {
                     // Explicitly send the intent to all the configured cell broadcast receivers.
                     intent.setPackage(pkg);
diff --git a/tests/src/com/android/cellbroadcastservice/tests/GsmCellBroadcastHandlerTest.java b/tests/src/com/android/cellbroadcastservice/tests/GsmCellBroadcastHandlerTest.java
index 77929f2..e6cf8b5 100644
--- a/tests/src/com/android/cellbroadcastservice/tests/GsmCellBroadcastHandlerTest.java
+++ b/tests/src/com/android/cellbroadcastservice/tests/GsmCellBroadcastHandlerTest.java
@@ -164,8 +164,10 @@
                 mGsmCellBroadcastHandler, mMockedResourcesCache);
         putResources(com.android.cellbroadcastservice.R.integer.message_expiration_time, 86400000);
         putResources(
-                com.android.cellbroadcastservice.R.array.config_defaultCellBroadcastReceiverPkgs,
-                new String[]{"fake.cellcbroadcast.pkg"});
+                com.android.cellbroadcastservice.R.string.default_cell_broadcast_receiver_package,
+                "fake.cellcbroadcast.pkg");
+        putResources(com.android.cellbroadcastservice.R.array
+                .additional_cell_broadcast_receiver_packages, new String[]{});
         putResources(com.android.cellbroadcastservice.R.array.area_info_channels, new int[]{});
         putResources(
                 com.android.cellbroadcastservice.R.array.config_area_info_receiver_packages,