DO NOT MERGE. Allow ConnectionService to ask Telecomm for ringback

Implements the necessary wiring to respondj to a ConnecitonService that
asks Telecomm to play ringbacks on its behalf.

Bug: 15190301
Change-Id: Ic6a6c031aa92df1f3587daf74f24d090cd21245b
diff --git a/src/com/android/telecomm/CallServiceWrapper.java b/src/com/android/telecomm/CallServiceWrapper.java
index 9b96890..9b5e2c3 100644
--- a/src/com/android/telecomm/CallServiceWrapper.java
+++ b/src/com/android/telecomm/CallServiceWrapper.java
@@ -56,6 +56,7 @@
         private static final int MSG_SET_DIALING = 6;
         private static final int MSG_SET_DISCONNECTED = 7;
         private static final int MSG_SET_ON_HOLD = 8;
+        private static final int MSG_SET_REQUESTING_RINGBACK = 9;
 
         private final Handler mHandler = new Handler() {
             @Override
@@ -152,6 +153,20 @@
                             Log.w(this, "setOnHold, unknown call id: %s", msg.obj);
                         }
                         break;
+                    case MSG_SET_REQUESTING_RINGBACK:
+                        SomeArgs args = (SomeArgs) msg.obj;
+                        try {
+                            call = mCallIdMapper.getCall(args.arg1);
+                            boolean ringback = (boolean) args.arg2;
+                            if (call != null) {
+                                call.setRequestingRingback(ringback);
+                            } else {
+                                Log.w(this, "setRingback, unknown call id: %s", args.arg1);
+                            }
+                        } finally {
+                            args.recycle();
+                        }
+                        break;
                 }
             }
         };
@@ -227,6 +242,16 @@
             mCallIdMapper.checkValidCallId(callId);
             mHandler.obtainMessage(MSG_SET_ON_HOLD, callId).sendToTarget();
         }
+
+        /** {@inheritDoc} */
+        @Override
+        public void setRequestingRingback(String callId, boolean ringback) {
+            mCallIdMapper.checkValidCallId(callId);
+            SomeArgs args = SomeArgs.obtain();
+            args.arg1 = callId;
+            args.arg2 = ringback;
+            mHandler.obtainMessage(MSG_SET_REQUESTING_RINGBACK, args).sendToTarget();
+        }
     }
 
     private final Adapter mAdapter = new Adapter();