Merge "Revert "Implement getNetworkCountryIso in PhoneInterfaceManager.""
diff --git a/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/AppActiveStreams.java b/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/AppActiveStreams.java
index dfc7ac9..4d2c62c 100644
--- a/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/AppActiveStreams.java
+++ b/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/AppActiveStreams.java
@@ -17,8 +17,8 @@
 package com.android.phone.testapps.embmsmw;
 
 import android.os.RemoteException;
-import android.telephony.mbms.IStreamingServiceCallback;
 import android.telephony.mbms.StreamingService;
+import android.telephony.mbms.StreamingServiceCallback;
 
 import java.util.HashMap;
 import java.util.Map;
@@ -28,18 +28,18 @@
 public class AppActiveStreams {
     // Wrapper for a pair (StreamingServiceCallback, streaming state)
     private static class StreamCallbackWithState {
-        private final IStreamingServiceCallback mCallback;
+        private final StreamingServiceCallback mCallback;
         private int mState;
         private int mMethod;
         private boolean mMethodSet = false;
 
-        StreamCallbackWithState(IStreamingServiceCallback callback, int state, int method) {
+        StreamCallbackWithState(StreamingServiceCallback callback, int state, int method) {
             mCallback = callback;
             mState = state;
             mMethod = method;
         }
 
-        public IStreamingServiceCallback getCallback() {
+        public StreamingServiceCallback getCallback() {
             return mCallback;
         }
 
@@ -80,7 +80,7 @@
                 StreamingService.STATE_STOPPED : callbackWithState.getState();
     }
 
-    public void startStreaming(String serviceId, IStreamingServiceCallback callback, int reason) {
+    public void startStreaming(String serviceId, StreamingServiceCallback callback, int reason) {
         if (mStreamStates.get(serviceId) != null) {
             // error - already started
             return;
diff --git a/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/EmbmsSampleDownloadService.java b/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/EmbmsSampleDownloadService.java
index ea0fd6e..afac316 100644
--- a/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/EmbmsSampleDownloadService.java
+++ b/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/EmbmsSampleDownloadService.java
@@ -68,29 +68,15 @@
 
     private final IMbmsDownloadService mBinder = new MbmsDownloadServiceBase() {
         @Override
-        public void initialize(int subId, IMbmsDownloadManagerCallback listener) {
+        public int initialize(int subId, IMbmsDownloadManagerCallback listener) {
             int packageUid = Binder.getCallingUid();
             String[] packageNames = getPackageManager().getPackagesForUid(packageUid);
             if (packageNames == null) {
-                try {
-                    listener.error(
-                            MbmsException.InitializationErrors.ERROR_APP_PERMISSIONS_NOT_GRANTED,
-                            "No matching packages found for your UID");
-                } catch (RemoteException e) {
-                    // ignore
-                }
-                return;
+                return MbmsException.InitializationErrors.ERROR_APP_PERMISSIONS_NOT_GRANTED;
             }
             boolean isUidAllowed = Arrays.stream(packageNames).anyMatch(ALLOWED_PACKAGES::contains);
             if (!isUidAllowed) {
-                try {
-                    listener.error(
-                            MbmsException.InitializationErrors.ERROR_APP_PERMISSIONS_NOT_GRANTED,
-                            "No packages for your UID are allowed to use this service.");
-                } catch (RemoteException e) {
-                    // ignore
-                }
-                return;
+                return MbmsException.InitializationErrors.ERROR_APP_PERMISSIONS_NOT_GRANTED;
             }
 
             // Do initialization with a bit of a delay to simulate work being done.
@@ -116,6 +102,8 @@
                     // TODO: call dispose
                 }
             }, INITIALIZATION_DELAY);
+
+            return MbmsException.SUCCESS;
         }
 
         @Override
diff --git a/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/EmbmsTestStreamingService.java b/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/EmbmsTestStreamingService.java
index 0373597..73a13e9 100644
--- a/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/EmbmsTestStreamingService.java
+++ b/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/EmbmsTestStreamingService.java
@@ -25,9 +25,10 @@
 import android.os.IBinder;
 import android.os.RemoteException;
 import android.telephony.mbms.IMbmsStreamingManagerCallback;
-import android.telephony.mbms.IStreamingServiceCallback;
 import android.telephony.mbms.MbmsException;
+import android.telephony.mbms.MbmsStreamingManagerCallback;
 import android.telephony.mbms.StreamingService;
+import android.telephony.mbms.StreamingServiceCallback;
 import android.telephony.mbms.StreamingServiceInfo;
 import android.telephony.mbms.vendor.IMbmsStreamingService;
 import android.telephony.mbms.vendor.MbmsStreamingServiceBase;
@@ -81,29 +82,15 @@
 
     private final IMbmsStreamingService.Stub mBinder = new MbmsStreamingServiceBase() {
         @Override
-        public void initialize(IMbmsStreamingManagerCallback listener, int subId) {
+        public int initialize(MbmsStreamingManagerCallback listener, int subId) {
             int packageUid = Binder.getCallingUid();
             String[] packageNames = getPackageManager().getPackagesForUid(packageUid);
             if (packageNames == null) {
-                try {
-                    listener.error(
-                            MbmsException.InitializationErrors.ERROR_APP_PERMISSIONS_NOT_GRANTED,
-                            "No matching packages found for your UID");
-                } catch (RemoteException e) {
-                    // ignore
-                }
-                return;
+                return MbmsException.InitializationErrors.ERROR_APP_PERMISSIONS_NOT_GRANTED;
             }
             boolean isUidAllowed = Arrays.stream(packageNames).anyMatch(ALLOWED_PACKAGES::contains);
             if (!isUidAllowed) {
-                try {
-                    listener.error(
-                            MbmsException.InitializationErrors.ERROR_APP_PERMISSIONS_NOT_GRANTED,
-                            "No packages for your UID are allowed to use this service.");
-                } catch (RemoteException e) {
-                    // ignore
-                }
-                return;
+                return MbmsException.InitializationErrors.ERROR_APP_PERMISSIONS_NOT_GRANTED;
             }
 
             mHandler.postDelayed(() -> {
@@ -126,6 +113,7 @@
                     mAppCallbacks.remove(appKey);
                 }
             }, INITIALIZATION_DELAY);
+            return MbmsException.SUCCESS;
         }
 
         @Override
@@ -150,7 +138,7 @@
 
         @Override
         public int startStreaming(int subscriptionId, String serviceId,
-                IStreamingServiceCallback callback) {
+                StreamingServiceCallback callback) {
             FrontendAppIdentifier appKey =
                     new FrontendAppIdentifier(Binder.getCallingUid(), subscriptionId);
             checkInitialized(appKey);
diff --git a/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/StreamStateTracker.java b/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/StreamStateTracker.java
index de81359..6fde02b 100644
--- a/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/StreamStateTracker.java
+++ b/testapps/EmbmsServiceTestApp/src/com/android/phone/testapps/embmsmw/StreamStateTracker.java
@@ -16,8 +16,8 @@
 
 package com.android.phone.testapps.embmsmw;
 
-import android.telephony.mbms.IStreamingServiceCallback;
 import android.telephony.mbms.StreamingService;
+import android.telephony.mbms.StreamingServiceCallback;
 import android.util.Log;
 
 import java.util.HashMap;
@@ -39,7 +39,7 @@
     }
 
     public static void startStreaming(FrontendAppIdentifier appIdentifier, String serviceId,
-            IStreamingServiceCallback callback, int reason) {
+            StreamingServiceCallback callback, int reason) {
         AppActiveStreams appStreams = sPerAppStreamStates.get(appIdentifier);
         if (appStreams == null) {
             appStreams = new AppActiveStreams(appIdentifier);