Share GsmSmsCbMessage dependencies with cellbroadcastreceiver

This class is removed from framework, so let the cellbroadcastreceiver
test app link to the dependencies defined here. GsmSmsCbMessage itself
is copied into the cellbroadcastreceiver/tests/testapp directory because
it relies on R.resources which are generated at build-time and can't be
included with a Android.bp filegroup.

Bug: 135956699
Test: manual
Merged-In: I974c2f726c70760864cb4e29b8c651804ab87380
Change-Id: I974c2f726c70760864cb4e29b8c651804ab87380
(cherry picked from commit f4649f9510145e168c7e5d7d18960c227faf88de)
diff --git a/Android.bp b/Android.bp
index 20746b7..a5ad4a3 100644
--- a/Android.bp
+++ b/Android.bp
@@ -28,6 +28,16 @@
     ],
 }
 
+// used to share src with cellbroadcastreceiver test app
+filegroup {
+    name: "cellbroadcast-util-shared-srcs",
+    srcs: [
+        "src/com/android/cellbroadcastservice/GsmAlphabet.java",
+        "src/com/android/cellbroadcastservice/CbGeoUtils.java",
+        "src/com/android/cellbroadcastservice/SmsCbHeader.java",
+    ],
+}
+
 // used to share src with unit test app
 filegroup {
     name: "cellbroadcast-shared-srcs",
diff --git a/src/com/android/cellbroadcastservice/SmsCbHeader.java b/src/com/android/cellbroadcastservice/SmsCbHeader.java
index a7efe89..61a07d2 100644
--- a/src/com/android/cellbroadcastservice/SmsCbHeader.java
+++ b/src/com/android/cellbroadcastservice/SmsCbHeader.java
@@ -20,6 +20,8 @@
 import android.telephony.SmsCbEtwsInfo;
 import android.telephony.SmsMessage;
 
+import com.android.internal.annotations.VisibleForTesting;
+
 import java.util.Arrays;
 import java.util.Locale;
 
@@ -71,7 +73,7 @@
     /**
      * Length of SMS-CB header
      */
-    static final int PDU_HEADER_LENGTH = 6;
+    public static final int PDU_HEADER_LENGTH = 6;
 
     /**
      * GSM pdu format, as defined in 3gpp TS 23.041, section 9.4.1
@@ -224,39 +226,39 @@
         }
     }
 
-    int getGeographicalScope() {
+    public int getGeographicalScope() {
         return mGeographicalScope;
     }
 
-    int getSerialNumber() {
+    public int getSerialNumber() {
         return mSerialNumber;
     }
 
-    int getServiceCategory() {
+    public int getServiceCategory() {
         return mMessageIdentifier;
     }
 
-    int getDataCodingScheme() {
+    public int getDataCodingScheme() {
         return mDataCodingScheme;
     }
 
-    DataCodingScheme getDataCodingSchemeStructedData() {
+    public DataCodingScheme getDataCodingSchemeStructedData() {
         return mDataCodingSchemeStructedData;
     }
 
-    int getPageIndex() {
+    public int getPageIndex() {
         return mPageIndex;
     }
 
-    int getNumberOfPages() {
+    public int getNumberOfPages() {
         return mNrOfPages;
     }
 
-    SmsCbEtwsInfo getEtwsInfo() {
+    public SmsCbEtwsInfo getEtwsInfo() {
         return mEtwsInfo;
     }
 
-    SmsCbCmasInfo getCmasInfo() {
+    public SmsCbCmasInfo getCmasInfo() {
         return mCmasInfo;
     }
 
@@ -264,7 +266,7 @@
      * Return whether this broadcast is an emergency (PWS) message type.
      * @return true if this message is emergency type; false otherwise
      */
-    boolean isEmergencyMessage() {
+    public boolean isEmergencyMessage() {
         return mMessageIdentifier >= SmsCbConstants.MESSAGE_ID_PWS_FIRST_IDENTIFIER
                 && mMessageIdentifier <= SmsCbConstants.MESSAGE_ID_PWS_LAST_IDENTIFIER;
     }
@@ -273,7 +275,8 @@
      * Return whether this broadcast is an ETWS emergency message type.
      * @return true if this message is ETWS emergency type; false otherwise
      */
-    private boolean isEtwsMessage() {
+    @VisibleForTesting
+    public boolean isEtwsMessage() {
         return (mMessageIdentifier & SmsCbConstants.MESSAGE_ID_ETWS_TYPE_MASK)
                 == SmsCbConstants.MESSAGE_ID_ETWS_TYPE;
     }
@@ -282,7 +285,7 @@
      * Return whether this broadcast is an ETWS primary notification.
      * @return true if this message is an ETWS primary notification; false otherwise
      */
-    boolean isEtwsPrimaryNotification() {
+    public boolean isEtwsPrimaryNotification() {
         return mFormat == FORMAT_ETWS_PRIMARY;
     }
 
@@ -290,7 +293,7 @@
      * Return whether this broadcast is in UMTS format.
      * @return true if this message is in UMTS format; false otherwise
      */
-    boolean isUmtsFormat() {
+    public boolean isUmtsFormat() {
         return mFormat == FORMAT_UMTS;
     }