Add function set CallVideoClient on the CallVideoProvider.

- Added implementation of RemoteCallVideoClient.
- Filled out the proxy methods on RemoteCallVideoProvider.
- Renamed methods on CallVideoClient/CallVideoProvider. Per Santos's
advice, this is to distinguish between the methods handling remote
communication, and the actual implementation of those methods.

Bug: 15893156
Change-Id: I5f433db1faa820dc96913091ce09938ddf40ffdd
This commit is contained in:
Andrew Lee
2014-06-30 12:46:35 -07:00
parent c3182c5573
commit a5736291bd
7 changed files with 250 additions and 98 deletions

View File

@@ -27557,12 +27557,12 @@ package android.telecomm {
public abstract class CallVideoClient {
ctor protected CallVideoClient();
method public abstract void onCallSessionEvent(int);
method public abstract void onCameraCapabilitiesChange(android.telecomm.CallCameraCapabilities);
method public abstract void onHandleCallSessionEvent(int);
method public abstract void onHandleCameraCapabilitiesChange(android.telecomm.CallCameraCapabilities);
method public abstract void onReceiveSessionModifyRequest(android.telecomm.VideoCallProfile);
method public abstract void onReceiveSessionModifyResponse(int, android.telecomm.VideoCallProfile, android.telecomm.VideoCallProfile);
method public abstract void onUpdateCallDataUsage(int);
method public abstract void onUpdatedPeerDimensions(int, int);
method public abstract void onUpdatePeerDimensions(int, int);
field public static final int SESSION_EVENT_RX_PAUSE = 1; // 0x1
field public static final int SESSION_EVENT_RX_RESUME = 2; // 0x2
field public static final int SESSION_EVENT_TX_START = 3; // 0x3
@@ -27574,16 +27574,17 @@ package android.telecomm {
public abstract class CallVideoProvider {
ctor protected CallVideoProvider();
method public abstract void requestCallDataUsage();
method public abstract void requestCameraCapabilities();
method public abstract void sendSessionModifyRequest(android.telecomm.VideoCallProfile);
method public abstract void sendSessionModifyResponse(android.telecomm.VideoCallProfile);
method public abstract void setCamera(java.lang.String);
method public abstract void setDeviceOrientation(int);
method public abstract void setDisplaySurface(android.view.Surface);
method public abstract void setPauseImage(java.lang.String);
method public abstract void setPreviewSurface(android.view.Surface);
method public abstract void setZoom(float);
method public abstract void onRequestCallDataUsage();
method public abstract void onRequestCameraCapabilities();
method public abstract void onSendSessionModifyRequest(android.telecomm.VideoCallProfile);
method public abstract void onSendSessionModifyResponse(android.telecomm.VideoCallProfile);
method public abstract void onSetCallVideoClient(android.telecomm.RemoteCallVideoClient);
method public abstract void onSetCamera(java.lang.String);
method public abstract void onSetDeviceOrientation(int);
method public abstract void onSetDisplaySurface(android.view.Surface);
method public abstract void onSetPauseImage(java.lang.String);
method public abstract void onSetPreviewSurface(android.view.Surface);
method public abstract void onSetZoom(float);
}
public abstract class Connection {
@@ -27734,9 +27735,29 @@ package android.telecomm {
method protected abstract void updateCall(android.telecomm.InCallCall);
}
public class RemoteCallVideoClient implements android.os.IBinder.DeathRecipient {
method public void binderDied();
method public void handleCallSessionEvent(int) throws android.os.RemoteException;
method public void handleCameraCapabilitiesChange(android.telecomm.CallCameraCapabilities) throws android.os.RemoteException;
method public void receiveSessionModifyRequest(android.telecomm.VideoCallProfile) throws android.os.RemoteException;
method public void receiveSessionModifyResponse(int, android.telecomm.VideoCallProfile, android.telecomm.VideoCallProfile) throws android.os.RemoteException;
method public void updateCallDataUsage(int) throws android.os.RemoteException;
method public void updatePeerDimensions(int, int) throws android.os.RemoteException;
}
public class RemoteCallVideoProvider implements android.os.IBinder.DeathRecipient {
method public void binderDied();
method public void onSetPauseImage(java.lang.String) throws android.os.RemoteException;
method public void requestCallDataUsage() throws android.os.RemoteException;
method public void requestCameraCapabilities() throws android.os.RemoteException;
method public void sendSessionModifyRequest(android.telecomm.VideoCallProfile) throws android.os.RemoteException;
method public void sendSessionModifyResponse(android.telecomm.VideoCallProfile) throws android.os.RemoteException;
method public void setCallVideoClient(android.telecomm.CallVideoClient) throws android.os.RemoteException;
method public void setCamera(java.lang.String) throws android.os.RemoteException;
method public void setDeviceOrientation(int) throws android.os.RemoteException;
method public void setDisplaySurface(android.view.Surface) throws android.os.RemoteException;
method public void setPreviewSurface(android.view.Surface) throws android.os.RemoteException;
method public void setZoom(float) throws android.os.RemoteException;
}
public final class RemoteConnection {

View File

@@ -17,6 +17,7 @@
package android.telecomm;
import android.os.Handler;
import android.os.IBinder;
import android.os.Looper;
import android.os.Message;
@@ -66,22 +67,22 @@ public abstract class CallVideoClient {
*/
public static final int SESSION_MODIFY_REQUEST_INVALID = 3;
private static final int MSG_ON_RECEIVE_SESSION_MODIFY_REQUEST = 1;
private static final int MSG_ON_RECEIVE_SESSION_MODIFY_RESPONSE = 2;
private static final int MSG_ON_CALL_SESSION_EVENT = 3;
private static final int MSG_ON_UPDATED_PEER_DIMENSIONS = 4;
private static final int MSG_ON_UPDATE_CALL_DATA_USAGE = 5;
private static final int MSG_ON_CAMERA_CAPABILITIES_CHANGE = 6;
private static final int MSG_RECEIVE_SESSION_MODIFY_REQUEST = 1;
private static final int MSG_RECEIVE_SESSION_MODIFY_RESPONSE = 2;
private static final int MSG_HANDLE_CALL_SESSION_EVENT = 3;
private static final int MSG_UPDATE_PEER_DIMENSIONS = 4;
private static final int MSG_UPDATE_CALL_DATA_USAGE = 5;
private static final int MSG_HANDLE_CAMERA_CAPABILITIES_CHANGE = 6;
/** Default Handler used to consolidate binder method calls onto a single thread. */
private final Handler mHandler = new Handler(Looper.getMainLooper()) {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case MSG_ON_RECEIVE_SESSION_MODIFY_REQUEST:
case MSG_RECEIVE_SESSION_MODIFY_REQUEST:
onReceiveSessionModifyRequest((VideoCallProfile) msg.obj);
break;
case MSG_ON_RECEIVE_SESSION_MODIFY_RESPONSE: {
case MSG_RECEIVE_SESSION_MODIFY_RESPONSE: {
SomeArgs args = (SomeArgs) msg.obj;
try {
int status = (int) args.arg1;
@@ -95,25 +96,25 @@ public abstract class CallVideoClient {
}
break;
}
case MSG_ON_CALL_SESSION_EVENT:
onCallSessionEvent((int) msg.obj);
case MSG_HANDLE_CALL_SESSION_EVENT:
onHandleCallSessionEvent((int) msg.obj);
break;
case MSG_ON_UPDATED_PEER_DIMENSIONS: {
case MSG_UPDATE_PEER_DIMENSIONS: {
SomeArgs args = (SomeArgs) msg.obj;
try {
int width = (int) args.arg1;
int height = (int) args.arg2;
onUpdatedPeerDimensions(width, height);
onUpdatePeerDimensions(width, height);
} finally {
args.recycle();
}
break;
}
case MSG_ON_UPDATE_CALL_DATA_USAGE:
case MSG_UPDATE_CALL_DATA_USAGE:
onUpdateCallDataUsage(msg.arg1);
break;
case MSG_ON_CAMERA_CAPABILITIES_CHANGE:
onCameraCapabilitiesChange((CallCameraCapabilities) msg.obj);
case MSG_HANDLE_CAMERA_CAPABILITIES_CHANGE:
onHandleCameraCapabilitiesChange((CallCameraCapabilities) msg.obj);
break;
default:
break;
@@ -126,42 +127,42 @@ public abstract class CallVideoClient {
*/
private final class CallVideoClientBinder extends ICallVideoClient.Stub {
@Override
public void onReceiveSessionModifyRequest(VideoCallProfile videoCallProfile) {
mHandler.obtainMessage(MSG_ON_RECEIVE_SESSION_MODIFY_REQUEST,
public void receiveSessionModifyRequest(VideoCallProfile videoCallProfile) {
mHandler.obtainMessage(MSG_RECEIVE_SESSION_MODIFY_REQUEST,
videoCallProfile).sendToTarget();
}
@Override
public void onReceiveSessionModifyResponse(int status,
public void receiveSessionModifyResponse(int status,
VideoCallProfile requestProfile, VideoCallProfile responseProfile) {
SomeArgs args = SomeArgs.obtain();
args.arg1 = status;
args.arg2 = requestProfile;
args.arg3 = responseProfile;
mHandler.obtainMessage(MSG_ON_RECEIVE_SESSION_MODIFY_RESPONSE, args).sendToTarget();
mHandler.obtainMessage(MSG_RECEIVE_SESSION_MODIFY_RESPONSE, args).sendToTarget();
}
@Override
public void onCallSessionEvent(int event) {
mHandler.obtainMessage(MSG_ON_CALL_SESSION_EVENT, event).sendToTarget();
public void handleCallSessionEvent(int event) {
mHandler.obtainMessage(MSG_HANDLE_CALL_SESSION_EVENT, event).sendToTarget();
}
@Override
public void onUpdatedPeerDimensions(int width, int height) {
public void updatePeerDimensions(int width, int height) {
SomeArgs args = SomeArgs.obtain();
args.arg1 = width;
args.arg2 = height;
mHandler.obtainMessage(MSG_ON_UPDATED_PEER_DIMENSIONS, args).sendToTarget();
mHandler.obtainMessage(MSG_UPDATE_PEER_DIMENSIONS, args).sendToTarget();
}
@Override
public void onUpdateCallDataUsage(int dataUsage) {
mHandler.obtainMessage(MSG_ON_UPDATE_CALL_DATA_USAGE, dataUsage).sendToTarget();
public void updateCallDataUsage(int dataUsage) {
mHandler.obtainMessage(MSG_UPDATE_CALL_DATA_USAGE, dataUsage).sendToTarget();
}
@Override
public void onCameraCapabilitiesChange(CallCameraCapabilities cameraCapabilities) {
mHandler.obtainMessage(MSG_ON_CAMERA_CAPABILITIES_CHANGE,
public void handleCameraCapabilitiesChange(CallCameraCapabilities cameraCapabilities) {
mHandler.obtainMessage(MSG_HANDLE_CAMERA_CAPABILITIES_CHANGE,
cameraCapabilities).sendToTarget();
}
}
@@ -173,21 +174,19 @@ public abstract class CallVideoClient {
}
/**
* Retrieves the binder.
*
* @return The binder.
* Returns binder object which can be used across IPC methods.
* @hide
*/
public final CallVideoClientBinder getBinder() {
public final IBinder getBinder() {
return mBinder;
}
/**
* Called when a session modification request is received from the remote device.
* The remote request is sent via {@link CallVideoProvider#sendSessionModifyRequest}.
* 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#sendSessionModifyResponse} to indicate
* 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.
@@ -197,7 +196,7 @@ public abstract class CallVideoClient {
/**
* 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#sendSessionModifyResponse}.
* {@link CallVideoProvider#onSendSessionModifyResponse}.
*
* @param status Status of the session modify request. Valid values are
* {@link CallVideoClient#SESSION_MODIFY_REQUEST_SUCCESS},
@@ -219,7 +218,7 @@ public abstract class CallVideoClient {
*
* @param event The event.
*/
public abstract void onCallSessionEvent(int event);
public abstract void onHandleCallSessionEvent(int event);
/**
* Handles a change to the video dimensions from the remote caller (peer). This could happen
@@ -228,7 +227,7 @@ public abstract class CallVideoClient {
* @param width The updated peer video width.
* @param height The updated peer video height.
*/
public abstract void onUpdatedPeerDimensions(int width, int height);
public abstract void onUpdatePeerDimensions(int width, int height);
/**
* Handles an update to the total data used for the current session.
@@ -242,6 +241,6 @@ public abstract class CallVideoClient {
*
* @param callCameraCapabilities The changed camera capabilities.
*/
public abstract void onCameraCapabilitiesChange(CallCameraCapabilities callCameraCapabilities);
public abstract void onHandleCameraCapabilitiesChange(CallCameraCapabilities callCameraCapabilities);
}

View File

@@ -17,22 +17,26 @@
package android.telecomm;
import android.os.Handler;
import android.os.IBinder;
import android.os.Message;
import android.os.RemoteException;
import android.view.Surface;
import com.android.internal.telecomm.ICallVideoClient;
import com.android.internal.telecomm.ICallVideoProvider;
public abstract class CallVideoProvider {
private static final int MSG_SET_CAMERA = 1;
private static final int MSG_SET_PREVIEW_SURFACE = 2;
private static final int MSG_SET_DISPLAY_SURFACE = 3;
private static final int MSG_SET_DEVICE_ORIENTATION = 4;
private static final int MSG_SET_ZOOM = 5;
private static final int MSG_SEND_SESSION_MODIFY_REQUEST = 6;
private static final int MSG_SEND_SESSION_MODIFY_RESPONSE = 7;
private static final int MSG_REQUEST_CAMERA_CAPABILITIES = 8;
private static final int MSG_REQUEST_CALL_DATA_USAGE = 9;
private static final int MSG_SET_PAUSE_IMAGE = 10;
private static final int MSG_SET_CALL_VIDEO_CLIENT = 1;
private static final int MSG_SET_CAMERA = 2;
private static final int MSG_SET_PREVIEW_SURFACE = 3;
private static final int MSG_SET_DISPLAY_SURFACE = 4;
private static final int MSG_SET_DEVICE_ORIENTATION = 5;
private static final int MSG_SET_ZOOM = 6;
private static final int MSG_SEND_SESSION_MODIFY_REQUEST = 7;
private static final int MSG_SEND_SESSION_MODIFY_RESPONSE = 8;
private static final int MSG_REQUEST_CAMERA_CAPABILITIES = 9;
private static final int MSG_REQUEST_CALL_DATA_USAGE = 10;
private static final int MSG_SET_PAUSE_IMAGE = 11;
/**
* Default handler used to consolidate binder method calls onto a single thread.
@@ -41,35 +45,45 @@ public abstract class CallVideoProvider {
@Override
public void handleMessage(Message msg) {
switch (msg.what) {
case MSG_SET_CALL_VIDEO_CLIENT:
try {
ICallVideoClient callVideoClient =
ICallVideoClient.Stub.asInterface((IBinder) msg.obj);
RemoteCallVideoClient remoteCallVideoClient =
new RemoteCallVideoClient(callVideoClient);
onSetCallVideoClient(remoteCallVideoClient);
} catch (RemoteException ignored) {
}
break;
case MSG_SET_CAMERA:
setCamera((String) msg.obj);
onSetCamera((String) msg.obj);
break;
case MSG_SET_PREVIEW_SURFACE:
setPreviewSurface((Surface) msg.obj);
onSetPreviewSurface((Surface) msg.obj);
break;
case MSG_SET_DISPLAY_SURFACE:
setDisplaySurface((Surface) msg.obj);
onSetDisplaySurface((Surface) msg.obj);
break;
case MSG_SET_DEVICE_ORIENTATION:
setDeviceOrientation(msg.arg1);
onSetDeviceOrientation(msg.arg1);
break;
case MSG_SET_ZOOM:
setZoom((Float) msg.obj);
onSetZoom((Float) msg.obj);
break;
case MSG_SEND_SESSION_MODIFY_REQUEST:
sendSessionModifyRequest((VideoCallProfile) msg.obj);
onSendSessionModifyRequest((VideoCallProfile) msg.obj);
break;
case MSG_SEND_SESSION_MODIFY_RESPONSE:
sendSessionModifyResponse((VideoCallProfile) msg.obj);
onSendSessionModifyResponse((VideoCallProfile) msg.obj);
break;
case MSG_REQUEST_CAMERA_CAPABILITIES:
requestCameraCapabilities();
onRequestCameraCapabilities();
break;
case MSG_REQUEST_CALL_DATA_USAGE:
requestCallDataUsage();
onRequestCallDataUsage();
break;
case MSG_SET_PAUSE_IMAGE:
setPauseImage((String) msg.obj);
onSetPauseImage((String) msg.obj);
break;
default:
break;
@@ -81,6 +95,11 @@ public abstract class CallVideoProvider {
* Default ICallVideoProvider implementation.
*/
private final class CallVideoProviderBinder extends ICallVideoProvider.Stub {
public void setCallVideoClient(IBinder callVideoClientBinder) {
mMessageHandler.obtainMessage(
MSG_SET_CALL_VIDEO_CLIENT, callVideoClientBinder).sendToTarget();
}
public void setCamera(String cameraId) {
mMessageHandler.obtainMessage(MSG_SET_CAMERA, cameraId).sendToTarget();
}
@@ -102,13 +121,13 @@ public abstract class CallVideoProvider {
}
public void sendSessionModifyRequest(VideoCallProfile requestProfile) {
mMessageHandler.obtainMessage(MSG_SEND_SESSION_MODIFY_REQUEST,
requestProfile).sendToTarget();
mMessageHandler.obtainMessage(
MSG_SEND_SESSION_MODIFY_REQUEST, requestProfile).sendToTarget();
}
public void sendSessionModifyResponse(VideoCallProfile responseProfile) {
mMessageHandler.obtainMessage(MSG_SEND_SESSION_MODIFY_RESPONSE,
responseProfile).sendToTarget();
mMessageHandler.obtainMessage(
MSG_SEND_SESSION_MODIFY_RESPONSE, responseProfile).sendToTarget();
}
public void requestCameraCapabilities() {
@@ -139,12 +158,20 @@ public abstract class CallVideoProvider {
return mBinder;
}
/**
* Sets a remote interface for invoking callback methods in the InCallUI after performing
* telephony actions.
*
* @param callVideoClient The call video client.
*/
public abstract void onSetCallVideoClient(RemoteCallVideoClient callVideoClient);
/**
* Sets the camera to be used for video recording in a video call.
*
* @param cameraId The id of the camera.
*/
public abstract void setCamera(String cameraId);
public abstract void onSetCamera(String cameraId);
/**
* Sets the surface to be used for displaying a preview of what the user's camera is
@@ -153,14 +180,14 @@ public abstract class CallVideoProvider {
*
* @param surface The surface.
*/
public abstract void setPreviewSurface(Surface surface);
public abstract void onSetPreviewSurface(Surface surface);
/**
* Sets the surface to be used for displaying the video received from the remote device.
*
* @param surface The surface.
*/
public abstract void setDisplaySurface(Surface surface);
public abstract void onSetDisplaySurface(Surface surface);
/**
* Sets the device orientation, in degrees. Assumes that a standard portrait orientation of the
@@ -168,14 +195,14 @@ public abstract class CallVideoProvider {
*
* @param rotation The device orientation, in degrees.
*/
public abstract void setDeviceOrientation(int rotation);
public abstract void onSetDeviceOrientation(int rotation);
/**
* Sets camera zoom ratio.
*
* @param value The camera zoom ratio.
*/
public abstract void setZoom(float value);
public abstract void onSetZoom(float value);
/**
* Issues a request to modify the properties of the current session. The request is sent to
@@ -186,7 +213,7 @@ public abstract class CallVideoProvider {
*
* @param requestProfile The requested call video properties.
*/
public abstract void sendSessionModifyRequest(VideoCallProfile requestProfile);
public abstract void onSendSessionModifyRequest(VideoCallProfile requestProfile);
/**
* Provides a response to a request to change the current call session video
@@ -198,21 +225,21 @@ public abstract class CallVideoProvider {
*
* @param responseProfile The response call video properties.
*/
public abstract void sendSessionModifyResponse(VideoCallProfile responseProfile);
public abstract void onSendSessionModifyResponse(VideoCallProfile responseProfile);
/**
* Issues a request to the video provider to retrieve the camera capabilities.
* Camera capabilities are reported back to the caller via
* {@link CallVideoClient#onCameraCapabilitiesChange(CallCameraCapabilities)}.
* {@link CallVideoClient#onHandleCameraCapabilitiesChange(CallCameraCapabilities)}.
*/
public abstract void requestCameraCapabilities();
public abstract void onRequestCameraCapabilities();
/**
* 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 abstract void requestCallDataUsage();
public abstract void onRequestCallDataUsage();
/**
* Provides the video telephony framework with the URI of an image to be displayed to remote
@@ -220,5 +247,5 @@ public abstract class CallVideoProvider {
*
* @param uri URI of image to display.
*/
public abstract void setPauseImage(String uri);
public abstract void onSetPauseImage(String uri);
}

View File

@@ -0,0 +1,65 @@
/*
* Copyright (C) 2014 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License
*/
package android.telecomm;
import android.os.IBinder;
import android.os.RemoteException;
import android.telecomm.CallCameraCapabilities;
import android.telecomm.VideoCallProfile;
import com.android.internal.telecomm.ICallVideoClient;
public class RemoteCallVideoClient implements IBinder.DeathRecipient {
private final ICallVideoClient mCallVideoClient;
RemoteCallVideoClient(ICallVideoClient callVideoProvider) throws RemoteException {
mCallVideoClient = callVideoProvider;
mCallVideoClient.asBinder().linkToDeath(this, 0);
}
@Override
public void binderDied() {
mCallVideoClient.asBinder().unlinkToDeath(this, 0);
}
public void receiveSessionModifyRequest(VideoCallProfile videoCallProfile)
throws RemoteException {
mCallVideoClient.receiveSessionModifyRequest(videoCallProfile);
}
public void receiveSessionModifyResponse(int status, VideoCallProfile requestedProfile,
VideoCallProfile responseProfile) throws RemoteException {
mCallVideoClient.receiveSessionModifyResponse(status, requestedProfile, responseProfile);
}
public void handleCallSessionEvent(int event) throws RemoteException {
mCallVideoClient.handleCallSessionEvent(event);
}
public void updatePeerDimensions(int width, int height) throws RemoteException {
mCallVideoClient.updatePeerDimensions(width, height);
}
public void updateCallDataUsage(int dataUsage) throws RemoteException {
mCallVideoClient.updateCallDataUsage(dataUsage);
}
public void handleCameraCapabilitiesChange(CallCameraCapabilities callCameraCapabilities)
throws RemoteException {
mCallVideoClient.handleCameraCapabilitiesChange(callCameraCapabilities);
}
}

View File

@@ -18,10 +18,11 @@ package android.telecomm;
import android.os.IBinder;
import android.os.RemoteException;
import android.view.Surface;
import com.android.internal.telecomm.ICallVideoClient;
import com.android.internal.telecomm.ICallVideoProvider;
public class RemoteCallVideoProvider implements IBinder.DeathRecipient {
private final ICallVideoProvider mCallVideoProvider;
@@ -35,12 +36,47 @@ public class RemoteCallVideoProvider implements IBinder.DeathRecipient {
mCallVideoProvider.asBinder().unlinkToDeath(this, 0);
}
/**
* Sets the camera to be used for video recording in a video call, using the binder.
*
* @param cameraId The id of the camera.
*/
public void setCallVideoClient(CallVideoClient callVideoClient) throws RemoteException {
mCallVideoProvider.setCallVideoClient(callVideoClient.getBinder());
}
public void setCamera(String cameraId) throws RemoteException {
mCallVideoProvider.setCamera(cameraId);
}
}
public void setPreviewSurface(Surface surface) throws RemoteException {
mCallVideoProvider.setPreviewSurface(surface);
}
public void setDisplaySurface(Surface surface) throws RemoteException {
mCallVideoProvider.setDisplaySurface(surface);
}
public void setDeviceOrientation(int rotation) throws RemoteException {
mCallVideoProvider.setDeviceOrientation(rotation);
}
public void setZoom(float value) throws RemoteException {
mCallVideoProvider.setZoom(value);
}
public void sendSessionModifyRequest(VideoCallProfile requestProfile) throws RemoteException {
mCallVideoProvider.sendSessionModifyRequest(requestProfile);
}
public void sendSessionModifyResponse(VideoCallProfile responseProfile) throws RemoteException {
mCallVideoProvider.sendSessionModifyResponse(responseProfile);
}
public void requestCameraCapabilities() throws RemoteException {
mCallVideoProvider.requestCameraCapabilities();
}
public void requestCallDataUsage() throws RemoteException {
mCallVideoProvider.requestCallDataUsage();
}
public void onSetPauseImage(String uri) throws RemoteException {
mCallVideoProvider.setPauseImage(uri);
}
}

View File

@@ -29,16 +29,16 @@ import android.telecomm.VideoCallProfile;
*/
oneway interface ICallVideoClient {
void onReceiveSessionModifyRequest(in VideoCallProfile videoCallProfile);
void receiveSessionModifyRequest(in VideoCallProfile videoCallProfile);
void onReceiveSessionModifyResponse(int status, in VideoCallProfile requestedProfile,
void receiveSessionModifyResponse(int status, in VideoCallProfile requestedProfile,
in VideoCallProfile responseProfile);
void onCallSessionEvent(int event);
void handleCallSessionEvent(int event);
void onUpdatedPeerDimensions(int width, int height);
void updatePeerDimensions(int width, int height);
void onUpdateCallDataUsage(int dataUsage);
void updateCallDataUsage(int dataUsage);
void onCameraCapabilitiesChange(in CallCameraCapabilities callCameraCapabilities);
void handleCameraCapabilitiesChange(in CallCameraCapabilities callCameraCapabilities);
}

View File

@@ -19,12 +19,16 @@ package com.android.internal.telecomm;
import android.view.Surface;
import android.telecomm.VideoCallProfile;
import com.android.internal.telecomm.ICallVideoClient;
/**
* Internal remote interface for a call video provider.
* @see android.telecomm.CallVideoProvider
* @hide
*/
oneway interface ICallVideoProvider {
void setCallVideoClient(IBinder callVideoClient);
void setCamera(String cameraId);
void setPreviewSurface(in Surface surface);