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:
@@ -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 {
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
65
telecomm/java/android/telecomm/RemoteCallVideoClient.java
Normal file
65
telecomm/java/android/telecomm/RemoteCallVideoClient.java
Normal 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);
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user