Handle setCallVideoProvider by setting a video provider on a call.

Bug: 15893156
Change-Id: I3a5c339dba88939bcb9e495e623c03ff44001e29
diff --git a/src/com/android/telecomm/CallServiceWrapper.java b/src/com/android/telecomm/CallServiceWrapper.java
index 782f7a4..365a5ce 100644
--- a/src/com/android/telecomm/CallServiceWrapper.java
+++ b/src/com/android/telecomm/CallServiceWrapper.java
@@ -31,9 +31,11 @@
 import android.telephony.DisconnectCause;
 
 import com.android.internal.os.SomeArgs;
+
 import com.android.internal.telecomm.ICallService;
 import com.android.internal.telecomm.ICallServiceAdapter;
 import com.android.internal.telecomm.ICallServiceProvider;
+import com.android.internal.telecomm.ICallVideoProvider;
 import com.android.internal.telecomm.RemoteServiceCallback;
 import com.android.telecomm.BaseRepository.LookupCallback;
 import com.google.common.base.Preconditions;
@@ -74,6 +76,7 @@
         private static final int MSG_ADD_CONFERENCE_CALL = 14;
         private static final int MSG_HANDOFF_CALL = 15;
         private static final int MSG_QUERY_REMOTE_CALL_SERVICES = 16;
+        private static final int MSG_SET_CALL_VIDEO_PROVIDER = 17;
 
         private final Handler mHandler = new Handler() {
             @Override
@@ -278,6 +281,19 @@
                     case MSG_QUERY_REMOTE_CALL_SERVICES: {
                         CallServiceWrapper.this.queryRemoteConnectionServices(
                                 (RemoteServiceCallback) msg.obj);
+                        break;
+                    }
+                    case MSG_SET_CALL_VIDEO_PROVIDER: {
+                        SomeArgs args = (SomeArgs) msg.obj;
+                        try {
+                            call = mCallIdMapper.getCall(args.arg1);
+                            if (call != null) {
+                                call.setCallVideoProvider();
+                            }
+                        } finally {
+                            args.recycle();
+                        }
+                        break;
                     }
                 }
             }
@@ -340,6 +356,17 @@
 
         /** {@inheritDoc} */
         @Override
+        public void setCallVideoProvider(String callId, ICallVideoProvider callVideoProvider) {
+            logIncoming("setCallVideoProvider %s", callId);
+            mCallIdMapper.checkValidCallId(callId);
+            SomeArgs args = SomeArgs.obtain();
+            args.arg1 = callId;
+            args.arg2 = callVideoProvider;
+            mHandler.obtainMessage(MSG_SET_CALL_VIDEO_PROVIDER, args).sendToTarget();
+        }
+
+        /** {@inheritDoc} */
+        @Override
         public void setDialing(String callId) {
             logIncoming("setDialing %s", callId);
             mCallIdMapper.checkValidCallId(callId);