Add call service handoff trigger

Bug: 15191653
Change-Id: Iee03a666e7ebc2fe326f32405174466299be9d04
diff --git a/src/com/android/telecomm/CallServiceWrapper.java b/src/com/android/telecomm/CallServiceWrapper.java
index 160b1e9..6165804 100644
--- a/src/com/android/telecomm/CallServiceWrapper.java
+++ b/src/com/android/telecomm/CallServiceWrapper.java
@@ -62,6 +62,7 @@
         private static final int MSG_SET_ON_HOLD = 8;
         private static final int MSG_SET_REQUESTING_RINGBACK = 9;
         private static final int MSG_ON_POST_DIAL_WAIT = 10;
+        private static final int MSG_HANDOFF_CALL = 11;
 
         private final Handler mHandler = new Handler() {
             @Override
@@ -188,6 +189,14 @@
                         } finally {
                             args.recycle();
                         }
+                    case MSG_HANDOFF_CALL:
+                        call = mCallIdMapper.getCall(msg.obj);
+                        if (call != null) {
+                            mCallsManager.startHandoffForCall(call);
+                        } else {
+                            Log.w(this, "handoffCall, unknown call id: %s", msg.obj);
+                        }
+                        break;
                 }
             }
         };
@@ -301,6 +310,13 @@
             args.arg2 = remaining;
             mHandler.obtainMessage(MSG_ON_POST_DIAL_WAIT, args).sendToTarget();
         }
+
+        /** {@inheritDoc} */
+        @Override
+        public void handoffCall(String callId) {
+            mCallIdMapper.checkValidCallId(callId);
+            mHandler.obtainMessage(MSG_HANDOFF_CALL, callId).sendToTarget();
+        }
     }
 
     private final Adapter mAdapter = new Adapter();