API support for reporting of changes to call features.
(eg VoLTE, VoWIFI, etc)

Bug: 15987281
Change-Id: I5a18046ca0e2ff78ee96af610b5a3b88d93a52ad
diff --git a/src/com/android/telecomm/CallServiceWrapper.java b/src/com/android/telecomm/CallServiceWrapper.java
index 5970846..5e0d9a8 100644
--- a/src/com/android/telecomm/CallServiceWrapper.java
+++ b/src/com/android/telecomm/CallServiceWrapper.java
@@ -77,6 +77,7 @@
         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 static final int MSG_SET_FEATURES = 18;
 
         private final Handler mHandler = new Handler() {
             @Override
@@ -296,6 +297,19 @@
                         }
                         break;
                     }
+                    case MSG_SET_FEATURES: {
+                        SomeArgs args = (SomeArgs) msg.obj;
+                        try {
+                            call = mCallIdMapper.getCall(args.arg1);
+                            int features = (int) args.arg2;
+                            if (call != null) {
+                                call.setFeatures(features);
+                            }
+                        } finally {
+                            args.recycle();
+                        }
+                        break;
+                    }
                 }
             }
         };
@@ -465,6 +479,16 @@
             logIncoming("queryRemoteCSs");
             mHandler.obtainMessage(MSG_QUERY_REMOTE_CALL_SERVICES, callback).sendToTarget();
         }
+
+        @Override
+        public void setFeatures(String callId, int features) {
+            logIncoming("setFeatures %s %d", callId, features);
+            mCallIdMapper.checkValidCallId(callId);
+            SomeArgs args = SomeArgs.obtain();
+            args.arg1 = callId;
+            args.arg2 = features;
+            mHandler.obtainMessage(MSG_SET_FEATURES, args).sendToTarget();
+        }
     }
 
     private final Adapter mAdapter = new Adapter();