summaryrefslogtreecommitdiffstats
path: root/telecomm
diff options
context:
space:
mode:
authorAndrew Lee <anwlee@google.com>2014-07-18 19:36:15 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-07-17 17:59:02 +0000
commitba051aa6f8b32fd6527fc88d8848cd651b1e83ae (patch)
tree3e5cf3f9effcad577e238a358b180b99b03da908 /telecomm
parent6ce4db0acf9dea297d96424e526092e799f6da84 (diff)
parentdd1b0e787450bb72f4c5de0041fefd49e2956e6d (diff)
downloadframeworks_base-ba051aa6f8b32fd6527fc88d8848cd651b1e83ae.zip
frameworks_base-ba051aa6f8b32fd6527fc88d8848cd651b1e83ae.tar.gz
frameworks_base-ba051aa6f8b32fd6527fc88d8848cd651b1e83ae.tar.bz2
Merge "Add comments for RemoteCallVideoClient and RemoteCallVideoProvider." into lmp-dev
Diffstat (limited to 'telecomm')
-rw-r--r--telecomm/java/android/telecomm/RemoteCallVideoClient.java52
-rw-r--r--telecomm/java/android/telecomm/RemoteCallVideoProvider.java72
2 files changed, 124 insertions, 0 deletions
diff --git a/telecomm/java/android/telecomm/RemoteCallVideoClient.java b/telecomm/java/android/telecomm/RemoteCallVideoClient.java
index f0a3afc..aceba4d 100644
--- a/telecomm/java/android/telecomm/RemoteCallVideoClient.java
+++ b/telecomm/java/android/telecomm/RemoteCallVideoClient.java
@@ -23,6 +23,9 @@ import android.telecomm.VideoCallProfile;
import com.android.internal.telecomm.ICallVideoClient;
+/**
+ * Remote class to invoke callbacks in InCallUI related to supporting video in calls.
+ */
public class RemoteCallVideoClient implements IBinder.DeathRecipient {
private final ICallVideoClient mCallVideoClient;
@@ -36,28 +39,77 @@ public class RemoteCallVideoClient implements IBinder.DeathRecipient {
mCallVideoClient.asBinder().unlinkToDeath(this, 0);
}
+ /**
+ * Called when a session modification request is received from the remote device.
+ * The remote request is sent via {@link CallVideoProvider#onSendSessionModifyRequest}.
+ * The InCall UI is responsible for potentially prompting the user whether they wish to accept
+ * the new call profile (e.g. prompt user if they wish to accept an upgrade from an audio to a
+ * video call) and should call {@link CallVideoProvider#onSendSessionModifyResponse} to indicate
+ * the video settings the user has agreed to.
+ *
+ * @param videoCallProfile The requested video call profile.
+ */
public void receiveSessionModifyRequest(VideoCallProfile videoCallProfile)
throws RemoteException {
mCallVideoClient.receiveSessionModifyRequest(videoCallProfile);
}
+ /**
+ * Called when a response to a session modification request is received from the remote device.
+ * The remote InCall UI sends the response using
+ * {@link CallVideoProvider#onSendSessionModifyResponse}.
+ *
+ * @param status Status of the session modify request. Valid values are
+ * {@link CallVideoClient#SESSION_MODIFY_REQUEST_SUCCESS},
+ * {@link CallVideoClient#SESSION_MODIFY_REQUEST_FAIL},
+ * {@link CallVideoClient#SESSION_MODIFY_REQUEST_INVALID}
+ * @param requestProfile The original request which was sent to the remote device.
+ * @param responseProfile The actual profile changes made by the remote device.
+ */
public void receiveSessionModifyResponse(int status, VideoCallProfile requestedProfile,
VideoCallProfile responseProfile) throws RemoteException {
mCallVideoClient.receiveSessionModifyResponse(status, requestedProfile, responseProfile);
}
+ /**
+ * Handles events related to the current session which the client may wish to handle. These
+ * are separate from requested changes to the session due to the underlying protocol or
+ * connection.
+ * Valid values are: {@link CallVideoClient#SESSION_EVENT_RX_PAUSE},
+ * {@link CallVideoClient#SESSION_EVENT_RX_RESUME},
+ * {@link CallVideoClient#SESSION_EVENT_TX_START}, {@link CallVideoClient#SESSION_EVENT_TX_STOP}
+ *
+ * @param event The event.
+ */
public void handleCallSessionEvent(int event) throws RemoteException {
mCallVideoClient.handleCallSessionEvent(event);
}
+ /**
+ * Handles a change to the video dimensions from the remote caller (peer). This could happen
+ * if, for example, the peer changes orientation of their device.
+ *
+ * @param width The updated peer video width.
+ * @param height The updated peer video height.
+ */
public void updatePeerDimensions(int width, int height) throws RemoteException {
mCallVideoClient.updatePeerDimensions(width, height);
}
+ /**
+ * Handles an update to the total data used for the current session.
+ *
+ * @param dataUsage The updated data usage.
+ */
public void updateCallDataUsage(int dataUsage) throws RemoteException {
mCallVideoClient.updateCallDataUsage(dataUsage);
}
+ /**
+ * Handles a change in camera capabilities.
+ *
+ * @param callCameraCapabilities The changed camera capabilities.
+ */
public void handleCameraCapabilitiesChange(CallCameraCapabilities callCameraCapabilities)
throws RemoteException {
mCallVideoClient.handleCameraCapabilitiesChange(callCameraCapabilities);
diff --git a/telecomm/java/android/telecomm/RemoteCallVideoProvider.java b/telecomm/java/android/telecomm/RemoteCallVideoProvider.java
index a49076a..170cf04 100644
--- a/telecomm/java/android/telecomm/RemoteCallVideoProvider.java
+++ b/telecomm/java/android/telecomm/RemoteCallVideoProvider.java
@@ -22,6 +22,9 @@ import android.view.Surface;
import com.android.internal.telecomm.ICallVideoProvider;
+/**
+ * Remote class for InCallUI to invoke functionality provided for video in calls.
+ */
public class RemoteCallVideoProvider {
private final ICallVideoProvider mCallVideoProvider;
@@ -38,6 +41,12 @@ public class RemoteCallVideoProvider {
mCallVideoProvider.asBinder().linkToDeath(mDeathRecipient, 0);
}
+ /**
+ * Sets a remote interface for invoking callback methods in the InCallUI after performing
+ * telephony actions.
+ *
+ * @param callVideoClient The call video client.
+ */
public void setCallVideoClient(CallVideoClient callVideoClient) {
try {
mCallVideoProvider.setCallVideoClient(callVideoClient.getBinder());
@@ -45,10 +54,22 @@ public class RemoteCallVideoProvider {
}
}
+ /**
+ * Sets the camera to be used for video recording in a video call.
+ *
+ * @param cameraId The id of the camera.
+ */
public void setCamera(String cameraId) throws RemoteException {
mCallVideoProvider.setCamera(cameraId);
}
+ /**
+ * Sets the surface to be used for displaying a preview of what the user's camera is
+ * currently capturing. When video transmission is enabled, this is the video signal which is
+ * sent to the remote device.
+ *
+ * @param surface The surface.
+ */
public void setPreviewSurface(Surface surface) {
try {
mCallVideoProvider.setPreviewSurface(surface);
@@ -56,6 +77,11 @@ public class RemoteCallVideoProvider {
}
}
+ /**
+ * Sets the surface to be used for displaying the video received from the remote device.
+ *
+ * @param surface The surface.
+ */
public void setDisplaySurface(Surface surface) {
try {
mCallVideoProvider.setDisplaySurface(surface);
@@ -63,6 +89,12 @@ public class RemoteCallVideoProvider {
}
}
+ /**
+ * Sets the device orientation, in degrees. Assumes that a standard portrait orientation of the
+ * device is 0 degrees.
+ *
+ * @param rotation The device orientation, in degrees.
+ */
public void setDeviceOrientation(int rotation) {
try {
mCallVideoProvider.setDeviceOrientation(rotation);
@@ -70,10 +102,24 @@ public class RemoteCallVideoProvider {
}
}
+ /**
+ * Sets camera zoom ratio.
+ *
+ * @param value The camera zoom ratio.
+ */
public void setZoom(float value) throws RemoteException {
mCallVideoProvider.setZoom(value);
}
+ /**
+ * Issues a request to modify the properties of the current session. The request is sent to
+ * the remote device where it it handled by
+ * {@link CallVideoClient#onReceiveSessionModifyRequest}.
+ * Some examples of session modification requests: upgrade call from audio to video, downgrade
+ * call from video to audio, pause video.
+ *
+ * @param requestProfile The requested call video properties.
+ */
public void sendSessionModifyRequest(VideoCallProfile requestProfile) {
try {
mCallVideoProvider.sendSessionModifyRequest(requestProfile);
@@ -81,6 +127,16 @@ public class RemoteCallVideoProvider {
}
}
+ /**
+ * Provides a response to a request to change the current call session video
+ * properties.
+ * This is in response to a request the InCall UI has received via
+ * {@link CallVideoClient#onReceiveSessionModifyRequest}.
+ * The response is handled on the remove device by
+ * {@link CallVideoClient#onReceiveSessionModifyResponse}.
+ *
+ * @param responseProfile The response call video properties.
+ */
public void sendSessionModifyResponse(VideoCallProfile responseProfile) {
try {
mCallVideoProvider.sendSessionModifyResponse(responseProfile);
@@ -88,6 +144,11 @@ public class RemoteCallVideoProvider {
}
}
+ /**
+ * Issues a request to the video provider to retrieve the camera capabilities.
+ * Camera capabilities are reported back to the caller via
+ * {@link CallVideoClient#onHandleCameraCapabilitiesChange(CallCameraCapabilities)}.
+ */
public void requestCameraCapabilities() {
try {
mCallVideoProvider.requestCameraCapabilities();
@@ -95,6 +156,11 @@ public class RemoteCallVideoProvider {
}
}
+ /**
+ * Issues a request to the video telephony framework to retrieve the cumulative data usage for
+ * the current call. Data usage is reported back to the caller via
+ * {@link CallVideoClient#onUpdateCallDataUsage}.
+ */
public void requestCallDataUsage() {
try {
mCallVideoProvider.requestCallDataUsage();
@@ -102,6 +168,12 @@ public class RemoteCallVideoProvider {
}
}
+ /**
+ * Provides the video telephony framework with the URI of an image to be displayed to remote
+ * devices when the video signal is paused.
+ *
+ * @param uri URI of image to display.
+ */
public void setPauseImage(String uri) {
try {
mCallVideoProvider.setPauseImage(uri);