Merge "Added sub id to SmsCbMessage"
diff --git a/src/com/android/cellbroadcastservice/CellBroadcastHandler.java b/src/com/android/cellbroadcastservice/CellBroadcastHandler.java
index 61f87f0..cc91f3d 100644
--- a/src/com/android/cellbroadcastservice/CellBroadcastHandler.java
+++ b/src/com/android/cellbroadcastservice/CellBroadcastHandler.java
@@ -459,7 +459,7 @@
     protected void broadcastMessage(@NonNull SmsCbMessage message, @Nullable Uri messageUri,
             int slotIndex) {
         String receiverPermission;
-        String appOp;
+        int appOp;
         String msg;
         Intent intent;
         if (message.isEmergencyMessage()) {
@@ -470,7 +470,7 @@
             //Emergency alerts need to be delivered with high priority
             intent.addFlags(Intent.FLAG_RECEIVER_FOREGROUND);
             receiverPermission = Manifest.permission.RECEIVE_EMERGENCY_BROADCAST;
-            appOp = AppOpsManager.OPSTR_RECEIVE_EMERGENCY_BROADCAST;
+            appOp = AppOpsManager.OP_RECEIVE_EMERGECY_SMS;
 
             intent.putExtra(EXTRA_MESSAGE, message);
             int subId = getSubIdForPhone(slotIndex);
@@ -491,9 +491,9 @@
                     Intent additionalIntent = new Intent(intent);
                     for (String pkg : testPkgs) {
                         additionalIntent.setPackage(pkg);
-                        mContext.createContextAsUser(UserHandle.ALL, 0).sendOrderedBroadcast(
-                                additionalIntent, receiverPermission, appOp, null, getHandler(),
-                                Activity.RESULT_OK, null, null);
+                        mContext.sendOrderedBroadcastAsUser(additionalIntent, UserHandle.ALL,
+                                receiverPermission, appOp, null, getHandler(), Activity.RESULT_OK,
+                                null, null);
                     }
                 }
             }
@@ -505,9 +505,8 @@
                 for (String pkg : pkgs) {
                     // Explicitly send the intent to all the configured cell broadcast receivers.
                     intent.setPackage(pkg);
-                    mContext.createContextAsUser(UserHandle.ALL, 0).sendOrderedBroadcast(
-                            intent, receiverPermission, appOp, null, getHandler(),
-                            Activity.RESULT_OK, null, null);
+                    mContext.sendOrderedBroadcastAsUser(intent, UserHandle.ALL, receiverPermission,
+                            appOp, null, mReceiver, getHandler(), Activity.RESULT_OK, null, null);
                 }
             }
         } else {
@@ -519,15 +518,14 @@
             // this intent.
             intent.addFlags(Intent.FLAG_RECEIVER_INCLUDE_BACKGROUND);
             receiverPermission = Manifest.permission.RECEIVE_SMS;
-            appOp = AppOpsManager.OPSTR_RECEIVE_SMS;
+            appOp = AppOpsManager.OP_RECEIVE_SMS;
 
             intent.putExtra(EXTRA_MESSAGE, message);
             SubscriptionManager.putPhoneIdAndSubIdExtra(intent, slotIndex);
 
             mReceiverCount.incrementAndGet();
-            mContext.createContextAsUser(UserHandle.ALL, 0).sendOrderedBroadcast(
-                    intent, receiverPermission, appOp, mReceiver, getHandler(),
-                    Activity.RESULT_OK, null, null);
+            mContext.sendOrderedBroadcastAsUser(intent, UserHandle.ALL, receiverPermission,
+                    appOp, null, mReceiver, getHandler(), Activity.RESULT_OK, null, null);
         }
 
         if (messageUri != null) {
diff --git a/tests/src/com/android/cellbroadcastservice/tests/GsmCellBroadcastHandlerTest.java b/tests/src/com/android/cellbroadcastservice/tests/GsmCellBroadcastHandlerTest.java
index 1fefbbf..5a7979c 100644
--- a/tests/src/com/android/cellbroadcastservice/tests/GsmCellBroadcastHandlerTest.java
+++ b/tests/src/com/android/cellbroadcastservice/tests/GsmCellBroadcastHandlerTest.java
@@ -18,6 +18,7 @@
 
 import static org.mockito.ArgumentMatchers.anyInt;
 import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.any;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.never;
@@ -33,6 +34,7 @@
 import android.location.LocationRequest;
 import android.net.Uri;
 import android.os.Bundle;
+import android.os.UserHandle;
 import android.provider.Settings;
 import android.provider.Telephony;
 import android.telephony.SmsCbCmasInfo;
@@ -179,8 +181,8 @@
         mTestableLooper.processAllMessages();
 
         ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
-        verify(mMockedContext).sendOrderedBroadcast(captor.capture(), anyString(), anyString(),
-                any(), any(), anyInt(), any(), any());
+        verify(mMockedContext).sendOrderedBroadcastAsUser(captor.capture(), eq(UserHandle.ALL),
+                anyString(), anyInt(), any(), any(), any(), anyInt(), any(), any());
         Intent intent = captor.getValue();
         assertEquals(Telephony.Sms.Intents.ACTION_SMS_EMERGENCY_CB_RECEIVED, intent.getAction());
         SmsCbMessage msg = intent.getParcelableExtra("message");