Hiding videoState values in telecomm APIs. (1/3)

Hiding in Connection, ConnectionRequest, and ConnectionService.
Also @hiding PhoneAccount and PhoneCapabilities attributes related
to VT.

Bug: 17243002
Change-Id: I685305cddb99e1d2eb767982106253894a8d282f
diff --git a/telecomm/java/android/telecomm/CameraCapabilities.java b/telecomm/java/android/telecomm/CameraCapabilities.java
index 7c7dde1..5f860db 100644
--- a/telecomm/java/android/telecomm/CameraCapabilities.java
+++ b/telecomm/java/android/telecomm/CameraCapabilities.java
@@ -21,6 +21,7 @@
 
 /**
  * Represents the camera capabilities important to a Video Telephony provider.
+ * @hide
  */
 public final class CameraCapabilities implements Parcelable {
 
diff --git a/telecomm/java/android/telecomm/Connection.java b/telecomm/java/android/telecomm/Connection.java
index d8f487f..f349659 100644
--- a/telecomm/java/android/telecomm/Connection.java
+++ b/telecomm/java/android/telecomm/Connection.java
@@ -1012,11 +1012,20 @@
      * a request to accept.
      *
      * @param videoState The video state in which to answer the call.
+     * @hide
      */
     public void onAnswer(int videoState) {}
 
     /**
      * Notifies this Connection, which is in {@link #STATE_RINGING}, of
+     * a request to accept.
+     */
+    public void onAnswer() {
+        onAnswer(VideoProfile.VideoState.AUDIO_ONLY);
+    }
+
+    /**
+     * Notifies this Connection, which is in {@link #STATE_RINGING}, of
      * a request to reject.
      */
     public void onReject() {}
diff --git a/telecomm/java/android/telecomm/ConnectionRequest.java b/telecomm/java/android/telecomm/ConnectionRequest.java
index b991af1..39ae59a 100644
--- a/telecomm/java/android/telecomm/ConnectionRequest.java
+++ b/telecomm/java/android/telecomm/ConnectionRequest.java
@@ -40,7 +40,23 @@
      * @param handlePresentation The {@link PropertyPresentation} which controls how the handle
      *         is shown.
      * @param extras Application-specific extra data.
+     */
+    public ConnectionRequest(
+            PhoneAccountHandle accountHandle,
+            Uri handle,
+            int handlePresentation,
+            Bundle extras) {
+        this(accountHandle, handle, handlePresentation, extras, VideoProfile.VideoState.AUDIO_ONLY);
+    }
+
+    /**
+     * @param accountHandle The accountHandle which should be used to place the call.
+     * @param handle The handle (e.g., phone number) to which the {@link Connection} is to connect.
+     * @param handlePresentation The {@link PropertyPresentation} which controls how the handle
+     *         is shown.
+     * @param extras Application-specific extra data.
      * @param videoState Determines the video state for the connection.
+     * @hide
      */
     public ConnectionRequest(
             PhoneAccountHandle accountHandle,
diff --git a/telecomm/java/android/telecomm/ConnectionService.java b/telecomm/java/android/telecomm/ConnectionService.java
index 4696815..19cf622 100644
--- a/telecomm/java/android/telecomm/ConnectionService.java
+++ b/telecomm/java/android/telecomm/ConnectionService.java
@@ -71,6 +71,7 @@
     private static final int MSG_ON_POST_DIAL_CONTINUE = 14;
     private static final int MSG_ON_PHONE_ACCOUNT_CLICKED = 15;
     private static final int MSG_REMOVE_CONNECTION_SERVICE_ADAPTER = 16;
+    private static final int MSG_ANSWER_VIDEO = 17;
 
     private static Connection sNullConnection;
 
@@ -116,11 +117,17 @@
         }
 
         @Override
-        public void answer(String callId, int videoState) {
+        /** @hide */
+        public void answerVideo(String callId, int videoState) {
             SomeArgs args = SomeArgs.obtain();
             args.arg1 = callId;
             args.argi1 = videoState;
-            mHandler.obtainMessage(MSG_ANSWER, args).sendToTarget();
+            mHandler.obtainMessage(MSG_ANSWER_VIDEO, args).sendToTarget();
+        }
+
+        @Override
+        public void answer(String callId) {
+            mHandler.obtainMessage(MSG_ANSWER, callId).sendToTarget();
         }
 
         @Override
@@ -234,12 +241,15 @@
                 case MSG_ABORT:
                     abort((String) msg.obj);
                     break;
-                case MSG_ANSWER: {
+                case MSG_ANSWER:
+                    answer((String) msg.obj);
+                    break;
+                case MSG_ANSWER_VIDEO: {
                     SomeArgs args = (SomeArgs) msg.obj;
                     try {
                         String callId = (String) args.arg1;
                         int videoState = args.argi1;
-                        answer(callId, videoState);
+                        answerVideo(callId, videoState);
                     } finally {
                         args.recycle();
                     }
@@ -545,11 +555,16 @@
         findConnectionForAction(callId, "abort").onAbort();
     }
 
-    private void answer(String callId, int videoState) {
-        Log.d(this, "answer %s", callId);
+    private void answerVideo(String callId, int videoState) {
+        Log.d(this, "answerVideo %s", callId);
         findConnectionForAction(callId, "answer").onAnswer(videoState);
     }
 
+    private void answer(String callId) {
+        Log.d(this, "answer %s", callId);
+        findConnectionForAction(callId, "answer").onAnswer();
+    }
+
     private void reject(String callId) {
         Log.d(this, "reject %s", callId);
         findConnectionForAction(callId, "reject").onReject();
diff --git a/telecomm/java/android/telecomm/PhoneAccount.java b/telecomm/java/android/telecomm/PhoneAccount.java
index 411f48c..e8e6467 100644
--- a/telecomm/java/android/telecomm/PhoneAccount.java
+++ b/telecomm/java/android/telecomm/PhoneAccount.java
@@ -73,6 +73,7 @@
      * Flag indicating that this {@code PhoneAccount} is capable of placing video calls.
      * <p>
      * See {@link #getCapabilities}
+     * @hide
      */
     public static final int CAPABILITY_VIDEO_CALLING = 0x8;
 
diff --git a/telecomm/java/android/telecomm/PhoneCapabilities.java b/telecomm/java/android/telecomm/PhoneCapabilities.java
index 0c6a1ef..3d76608 100644
--- a/telecomm/java/android/telecomm/PhoneCapabilities.java
+++ b/telecomm/java/android/telecomm/PhoneCapabilities.java
@@ -45,18 +45,32 @@
     /** Call supports generic conference mode. */
     public static final int GENERIC_CONFERENCE = 0x00000080;
 
-    /** Local device supports video telephony. */
+    /**
+     * Local device supports video telephony.
+     * @hide
+     */
     public static final int SUPPORTS_VT_LOCAL  = 0x00000100;
 
-    /** Remote device supports video telephony. */
+    /**
+     * Remote device supports video telephony.
+     * @hide
+     */
     public static final int SUPPORTS_VT_REMOTE = 0x00000200;
 
+    /**
+     * Call is using voice over LTE.
+     * @hide
+     */
     public static final int VoLTE = 0x00000400;
 
+    /**
+     * Call is using voice over WIFI.
+     * @hide
+     */
     public static final int VoWIFI = 0x00000800;
 
     public static final int ALL = HOLD | SUPPORT_HOLD | MERGE_CALLS | SWAP_CALLS | ADD_CALL
-            | RESPOND_VIA_TEXT | MUTE | GENERIC_CONFERENCE | VoLTE | VoWIFI;
+            | RESPOND_VIA_TEXT | MUTE | GENERIC_CONFERENCE;
 
     public static String toString(int capabilities) {
         StringBuilder builder = new StringBuilder();
diff --git a/telecomm/java/android/telecomm/RemoteConnection.java b/telecomm/java/android/telecomm/RemoteConnection.java
index 8c86b15..b7e4b2a 100644
--- a/telecomm/java/android/telecomm/RemoteConnection.java
+++ b/telecomm/java/android/telecomm/RemoteConnection.java
@@ -426,12 +426,25 @@
 
     /**
      * Instructs this {@link Connection#STATE_RINGING} {@code RemoteConnection} to answer.
+     */
+    public void answer() {
+        try {
+            if (mConnected) {
+                mConnectionService.answer(mConnectionId);
+            }
+        } catch (RemoteException ignored) {
+        }
+    }
+
+    /**
+     * Instructs this {@link Connection#STATE_RINGING} {@code RemoteConnection} to answer.
      * @param videoState The video state in which to answer the call.
+     * @hide
      */
     public void answer(int videoState) {
         try {
             if (mConnected) {
-                mConnectionService.answer(mConnectionId, videoState);
+                mConnectionService.answerVideo(mConnectionId, videoState);
             }
         } catch (RemoteException ignored) {
         }