Revert "Don't throw RemoteException in public RemoteCallVideoClient APIs."

This reverts commit 080b1f58eb877e1ac375768c6f951cc61a3cdbae.

Change-Id: I0dc963b3f4efe1479a7a94b8d851b89d15480d17
diff --git a/api/current.txt b/api/current.txt
index e466be0..863a88b 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -28703,13 +28703,14 @@
     field public static final android.os.Parcelable.Creator CREATOR;
   }
 
-  public class RemoteCallVideoClient {
-    method public void handleCallSessionEvent(int);
-    method public void handleCameraCapabilitiesChange(android.telecomm.CallCameraCapabilities);
-    method public void receiveSessionModifyRequest(android.telecomm.VideoCallProfile);
-    method public void receiveSessionModifyResponse(int, android.telecomm.VideoCallProfile, android.telecomm.VideoCallProfile);
-    method public void updateCallDataUsage(int);
-    method public void updatePeerDimensions(int, int);
+  public class RemoteCallVideoClient implements android.os.IBinder.DeathRecipient {
+    method public void binderDied();
+    method public void handleCallSessionEvent(int) throws android.os.RemoteException;
+    method public void handleCameraCapabilitiesChange(android.telecomm.CallCameraCapabilities) throws android.os.RemoteException;
+    method public void receiveSessionModifyRequest(android.telecomm.VideoCallProfile) throws android.os.RemoteException;
+    method public void receiveSessionModifyResponse(int, android.telecomm.VideoCallProfile, android.telecomm.VideoCallProfile) throws android.os.RemoteException;
+    method public void updateCallDataUsage(int) throws android.os.RemoteException;
+    method public void updatePeerDimensions(int, int) throws android.os.RemoteException;
   }
 
   public class RemoteCallVideoProvider {
diff --git a/telecomm/java/android/telecomm/RemoteCallVideoClient.java b/telecomm/java/android/telecomm/RemoteCallVideoClient.java
index 08d1391..8024831 100644
--- a/telecomm/java/android/telecomm/RemoteCallVideoClient.java
+++ b/telecomm/java/android/telecomm/RemoteCallVideoClient.java
@@ -26,20 +26,17 @@
 /**
  * Remote class to invoke callbacks in InCallUI related to supporting video in calls.
  */
-public class RemoteCallVideoClient {
+public class RemoteCallVideoClient implements IBinder.DeathRecipient {
     private final ICallVideoClient mCallVideoClient;
 
-    private IBinder.DeathRecipient mDeathRecipient = new IBinder.DeathRecipient() {
-        @Override
-        public void binderDied() {
-            mCallVideoClient.asBinder().unlinkToDeath(this, 0);
-        }
-    };
-
-    /** {@hide} */
     RemoteCallVideoClient(ICallVideoClient callVideoProvider) throws RemoteException {
         mCallVideoClient = callVideoProvider;
-        mCallVideoClient.asBinder().linkToDeath(mDeathRecipient, 0);
+        mCallVideoClient.asBinder().linkToDeath(this, 0);
+    }
+
+    @Override
+    public void binderDied() {
+        mCallVideoClient.asBinder().unlinkToDeath(this, 0);
     }
 
     /**
@@ -52,11 +49,9 @@
      *
      * @param videoCallProfile The requested video call profile.
      */
-    public void receiveSessionModifyRequest(VideoCallProfile videoCallProfile) {
-        try {
-            mCallVideoClient.receiveSessionModifyRequest(videoCallProfile);
-        } catch (RemoteException e) {
-        }
+    public void receiveSessionModifyRequest(VideoCallProfile videoCallProfile)
+            throws RemoteException {
+        mCallVideoClient.receiveSessionModifyRequest(videoCallProfile);
     }
 
     /**
@@ -71,13 +66,9 @@
      * @param requestedProfile The original request which was sent to the remote device.
      * @param responseProfile The actual profile changes made by the remote device.
      */
-    public void receiveSessionModifyResponse(
-            int status, VideoCallProfile requestedProfile, VideoCallProfile responseProfile) {
-        try {
-            mCallVideoClient.receiveSessionModifyResponse(
-                    status, requestedProfile, responseProfile);
-        } catch (RemoteException e) {
-        }
+    public void receiveSessionModifyResponse(int status, VideoCallProfile requestedProfile,
+            VideoCallProfile responseProfile) throws RemoteException {
+        mCallVideoClient.receiveSessionModifyResponse(status, requestedProfile, responseProfile);
     }
 
     /**
@@ -90,11 +81,8 @@
      *
      * @param event The event.
      */
-    public void handleCallSessionEvent(int event) {
-        try {
-            mCallVideoClient.handleCallSessionEvent(event);
-        } catch (RemoteException e) {
-        }
+    public void handleCallSessionEvent(int event) throws RemoteException {
+        mCallVideoClient.handleCallSessionEvent(event);
     }
 
     /**
@@ -104,11 +92,8 @@
      * @param width  The updated peer video width.
      * @param height The updated peer video height.
      */
-    public void updatePeerDimensions(int width, int height) {
-        try {
-            mCallVideoClient.updatePeerDimensions(width, height);
-        } catch (RemoteException e) {
-        }
+    public void updatePeerDimensions(int width, int height) throws RemoteException {
+        mCallVideoClient.updatePeerDimensions(width, height);
     }
 
     /**
@@ -116,11 +101,8 @@
      *
      * @param dataUsage The updated data usage.
      */
-    public void updateCallDataUsage(int dataUsage) {
-        try {
-            mCallVideoClient.updateCallDataUsage(dataUsage);
-        } catch (RemoteException e) {
-        }
+    public void updateCallDataUsage(int dataUsage) throws RemoteException {
+        mCallVideoClient.updateCallDataUsage(dataUsage);
     }
 
     /**
@@ -128,10 +110,8 @@
      *
      * @param callCameraCapabilities The changed camera capabilities.
      */
-    public void handleCameraCapabilitiesChange(CallCameraCapabilities callCameraCapabilities) {
-        try {
-            mCallVideoClient.handleCameraCapabilitiesChange(callCameraCapabilities);
-        } catch (RemoteException e) {
-        }
+    public void handleCameraCapabilitiesChange(CallCameraCapabilities callCameraCapabilities)
+            throws RemoteException {
+        mCallVideoClient.handleCameraCapabilitiesChange(callCameraCapabilities);
     }
-}
\ No newline at end of file
+}