101b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee/* 201b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee * Copyright (C) 2014 The Android Open Source Project 301b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee * 401b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee * Licensed under the Apache License, Version 2.0 (the "License"); 501b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee * you may not use this file except in compliance with the License. 601b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee * You may obtain a copy of the License at 701b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee * 801b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee * http://www.apache.org/licenses/LICENSE-2.0 901b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee * 1001b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee * Unless required by applicable law or agreed to in writing, software 1101b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee * distributed under the License is distributed on an "AS IS" BASIS, 1201b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1301b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee * See the License for the specific language governing permissions and 1401b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee * limitations under the License 1501b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee */ 1601b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee 1701b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Leepackage com.android.ims.internal; 1801b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee 1901b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Leeimport android.os.Handler; 2001b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Leeimport android.os.Looper; 2101b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Leeimport android.os.Message; 2201b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Leeimport android.os.RemoteException; 233ddaa6ec08d417d2848775ad3b5b01b865a9c891Tyler Gunnimport android.telecom.CameraCapabilities; 243ddaa6ec08d417d2848775ad3b5b01b865a9c891Tyler Gunnimport android.telecom.Connection; 253ddaa6ec08d417d2848775ad3b5b01b865a9c891Tyler Gunnimport android.telecom.VideoProfile; 2601b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Leeimport android.view.Surface; 2701b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee 2801b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Leepublic abstract class ImsVideoCallProvider { 2901b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee private static final int MSG_SET_CALLBACK = 1; 3001b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee private static final int MSG_SET_CAMERA = 2; 3101b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee private static final int MSG_SET_PREVIEW_SURFACE = 3; 3201b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee private static final int MSG_SET_DISPLAY_SURFACE = 4; 3301b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee private static final int MSG_SET_DEVICE_ORIENTATION = 5; 3401b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee private static final int MSG_SET_ZOOM = 6; 3501b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee private static final int MSG_SEND_SESSION_MODIFY_REQUEST = 7; 3601b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee private static final int MSG_SEND_SESSION_MODIFY_RESPONSE = 8; 3701b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee private static final int MSG_REQUEST_CAMERA_CAPABILITIES = 9; 3801b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee private static final int MSG_REQUEST_CALL_DATA_USAGE = 10; 3901b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee private static final int MSG_SET_PAUSE_IMAGE = 11; 4001b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee 4101b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee private final ImsVideoCallProviderBinder mBinder; 4201b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee 4301b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee private IImsVideoCallCallback mCallback; 4401b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee 4501b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee /** 4601b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee * Default handler used to consolidate binder method calls onto a single thread. 4701b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee */ 4801b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee private final Handler mProviderHandler = new Handler(Looper.getMainLooper()) { 4901b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee @Override 5001b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee public void handleMessage(Message msg) { 5101b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee switch (msg.what) { 5201b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee case MSG_SET_CALLBACK: 5301b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee mCallback = (IImsVideoCallCallback) msg.obj; 5401b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee break; 5501b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee case MSG_SET_CAMERA: 5601b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee onSetCamera((String) msg.obj); 5701b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee break; 5801b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee case MSG_SET_PREVIEW_SURFACE: 5901b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee onSetPreviewSurface((Surface) msg.obj); 6001b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee break; 6101b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee case MSG_SET_DISPLAY_SURFACE: 6201b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee onSetDisplaySurface((Surface) msg.obj); 6301b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee break; 6401b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee case MSG_SET_DEVICE_ORIENTATION: 6501b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee onSetDeviceOrientation(msg.arg1); 6601b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee break; 6701b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee case MSG_SET_ZOOM: 6801b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee onSetZoom((Float) msg.obj); 6901b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee break; 7001b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee case MSG_SEND_SESSION_MODIFY_REQUEST: 71ed7fbd60ee7f2d72d7bdf78718663774f526a1bcIhab Awad onSendSessionModifyRequest((VideoProfile) msg.obj); 7201b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee break; 7301b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee case MSG_SEND_SESSION_MODIFY_RESPONSE: 74ed7fbd60ee7f2d72d7bdf78718663774f526a1bcIhab Awad onSendSessionModifyResponse((VideoProfile) msg.obj); 7501b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee break; 7601b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee case MSG_REQUEST_CAMERA_CAPABILITIES: 7701b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee onRequestCameraCapabilities(); 7801b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee break; 7901b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee case MSG_REQUEST_CALL_DATA_USAGE: 8001b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee onRequestCallDataUsage(); 8101b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee break; 8201b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee case MSG_SET_PAUSE_IMAGE: 8301b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee onSetPauseImage((String) msg.obj); 8401b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee break; 8501b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee default: 8601b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee break; 8701b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } 8801b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } 8901b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee }; 9001b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee 9101b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee /** 9201b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee * IImsVideoCallProvider stub implementation. 9301b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee */ 9401b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee private final class ImsVideoCallProviderBinder extends IImsVideoCallProvider.Stub { 9501b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee public void setCallback(IImsVideoCallCallback callback) { 9601b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee mProviderHandler.obtainMessage(MSG_SET_CALLBACK, callback).sendToTarget(); 9701b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } 9801b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee 9901b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee public void setCamera(String cameraId) { 10001b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee mProviderHandler.obtainMessage(MSG_SET_CAMERA, cameraId).sendToTarget(); 10101b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } 10201b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee 10301b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee public void setPreviewSurface(Surface surface) { 10401b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee mProviderHandler.obtainMessage(MSG_SET_PREVIEW_SURFACE, surface).sendToTarget(); 10501b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } 10601b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee 10701b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee public void setDisplaySurface(Surface surface) { 10801b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee mProviderHandler.obtainMessage(MSG_SET_DISPLAY_SURFACE, surface).sendToTarget(); 10901b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } 11001b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee 11101b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee public void setDeviceOrientation(int rotation) { 11201b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee mProviderHandler.obtainMessage(MSG_SET_DEVICE_ORIENTATION, rotation).sendToTarget(); 11301b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } 11401b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee 11501b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee public void setZoom(float value) { 11601b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee mProviderHandler.obtainMessage(MSG_SET_ZOOM, value).sendToTarget(); 11701b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } 11801b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee 119ed7fbd60ee7f2d72d7bdf78718663774f526a1bcIhab Awad public void sendSessionModifyRequest(VideoProfile requestProfile) { 12001b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee mProviderHandler.obtainMessage( 12101b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee MSG_SEND_SESSION_MODIFY_REQUEST, requestProfile).sendToTarget(); 12201b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } 12301b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee 124ed7fbd60ee7f2d72d7bdf78718663774f526a1bcIhab Awad public void sendSessionModifyResponse(VideoProfile responseProfile) { 12501b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee mProviderHandler.obtainMessage( 12601b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee MSG_SEND_SESSION_MODIFY_RESPONSE, responseProfile).sendToTarget(); 12701b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } 12801b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee 12901b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee public void requestCameraCapabilities() { 13001b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee mProviderHandler.obtainMessage(MSG_REQUEST_CAMERA_CAPABILITIES).sendToTarget(); 13101b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } 13201b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee 13301b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee public void requestCallDataUsage() { 13401b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee mProviderHandler.obtainMessage(MSG_REQUEST_CALL_DATA_USAGE).sendToTarget(); 13501b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } 13601b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee 13701b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee public void setPauseImage(String uri) { 13801b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee mProviderHandler.obtainMessage(MSG_SET_PAUSE_IMAGE, uri).sendToTarget(); 13901b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } 14001b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } 14101b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee 14201b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee public ImsVideoCallProvider() { 14301b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee mBinder = new ImsVideoCallProviderBinder(); 14401b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } 14501b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee 14601b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee /** 14701b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee * Returns binder object which can be used across IPC methods. 14801b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee */ 14901b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee public final IImsVideoCallProvider getInterface() { 15001b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee return mBinder; 15101b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } 15201b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee 153ed7fbd60ee7f2d72d7bdf78718663774f526a1bcIhab Awad /** @see Connection.VideoProvider#onSetCamera */ 15401b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee public abstract void onSetCamera(String cameraId); 15501b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee 156ed7fbd60ee7f2d72d7bdf78718663774f526a1bcIhab Awad /** @see Connection.VideoProvider#onSetPreviewSurface */ 15701b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee public abstract void onSetPreviewSurface(Surface surface); 15801b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee 159ed7fbd60ee7f2d72d7bdf78718663774f526a1bcIhab Awad /** @see Connection.VideoProvider#onSetDisplaySurface */ 16001b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee public abstract void onSetDisplaySurface(Surface surface); 16101b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee 162ed7fbd60ee7f2d72d7bdf78718663774f526a1bcIhab Awad /** @see Connection.VideoProvider#onSetDeviceOrientation */ 16301b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee public abstract void onSetDeviceOrientation(int rotation); 16401b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee 165ed7fbd60ee7f2d72d7bdf78718663774f526a1bcIhab Awad /** @see Connection.VideoProvider#onSetZoom */ 16601b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee public abstract void onSetZoom(float value); 16701b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee 168ed7fbd60ee7f2d72d7bdf78718663774f526a1bcIhab Awad /** @see Connection.VideoProvider#onSendSessionModifyRequest */ 169ed7fbd60ee7f2d72d7bdf78718663774f526a1bcIhab Awad public abstract void onSendSessionModifyRequest(VideoProfile requestProfile); 17001b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee 171ed7fbd60ee7f2d72d7bdf78718663774f526a1bcIhab Awad /** @see Connection.VideoProvider#onSendSessionModifyResponse */ 172ed7fbd60ee7f2d72d7bdf78718663774f526a1bcIhab Awad public abstract void onSendSessionModifyResponse(VideoProfile responseProfile); 17301b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee 174ed7fbd60ee7f2d72d7bdf78718663774f526a1bcIhab Awad /** @see Connection.VideoProvider#onRequestCameraCapabilities */ 17501b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee public abstract void onRequestCameraCapabilities(); 17601b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee 177ed7fbd60ee7f2d72d7bdf78718663774f526a1bcIhab Awad /** @see Connection.VideoProvider#onRequestCallDataUsage */ 17801b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee public abstract void onRequestCallDataUsage(); 17901b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee 180ed7fbd60ee7f2d72d7bdf78718663774f526a1bcIhab Awad /** @see Connection.VideoProvider#onSetPauseImage */ 18101b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee public abstract void onSetPauseImage(String uri); 18201b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee 183ed7fbd60ee7f2d72d7bdf78718663774f526a1bcIhab Awad /** @see Connection.VideoProvider#receiveSessionModifyRequest */ 184ed7fbd60ee7f2d72d7bdf78718663774f526a1bcIhab Awad public void receiveSessionModifyRequest(VideoProfile VideoProfile) { 18501b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee if (mCallback != null) { 18601b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee try { 187ed7fbd60ee7f2d72d7bdf78718663774f526a1bcIhab Awad mCallback.receiveSessionModifyRequest(VideoProfile); 18801b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } catch (RemoteException ignored) { 18901b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } 19001b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } 19101b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } 19201b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee 193ed7fbd60ee7f2d72d7bdf78718663774f526a1bcIhab Awad /** @see Connection.VideoProvider#receiveSessionModifyResponse */ 19401b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee public void receiveSessionModifyResponse( 195ed7fbd60ee7f2d72d7bdf78718663774f526a1bcIhab Awad int status, VideoProfile requestedProfile, VideoProfile responseProfile) { 19601b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee if (mCallback != null) { 19701b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee try { 19801b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee mCallback.receiveSessionModifyResponse(status, requestedProfile, responseProfile); 19901b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } catch (RemoteException ignored) { 20001b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } 20101b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } 20201b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } 20301b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee 204ed7fbd60ee7f2d72d7bdf78718663774f526a1bcIhab Awad /** @see Connection.VideoProvider#handleCallSessionEvent */ 20501b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee public void handleCallSessionEvent(int event) { 20601b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee if (mCallback != null) { 20701b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee try { 20801b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee mCallback.handleCallSessionEvent(event); 20901b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } catch (RemoteException ignored) { 21001b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } 21101b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } 21201b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } 21301b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee 214ed7fbd60ee7f2d72d7bdf78718663774f526a1bcIhab Awad /** @see Connection.VideoProvider#changePeerDimensions */ 21501b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee public void changePeerDimensions(int width, int height) { 21601b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee if (mCallback != null) { 21701b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee try { 21801b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee mCallback.changePeerDimensions(width, height); 21901b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } catch (RemoteException ignored) { 22001b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } 22101b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } 22201b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } 22301b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee 224ed7fbd60ee7f2d72d7bdf78718663774f526a1bcIhab Awad /** @see Connection.VideoProvider#changeCallDataUsage */ 22501b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee public void changeCallDataUsage(int dataUsage) { 22601b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee if (mCallback != null) { 22701b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee try { 22801b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee mCallback.changeCallDataUsage(dataUsage); 22901b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } catch (RemoteException ignored) { 23001b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } 23101b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } 23201b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } 23301b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee 234ed7fbd60ee7f2d72d7bdf78718663774f526a1bcIhab Awad /** @see Connection.VideoProvider#changeCameraCapabilities */ 235ed7fbd60ee7f2d72d7bdf78718663774f526a1bcIhab Awad public void changeCameraCapabilities(CameraCapabilities CameraCapabilities) { 23601b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee if (mCallback != null) { 23701b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee try { 238ed7fbd60ee7f2d72d7bdf78718663774f526a1bcIhab Awad mCallback.changeCameraCapabilities(CameraCapabilities); 23901b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } catch (RemoteException ignored) { 24001b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } 24101b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } 24201b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee } 24301b4ea445b5cdc6c1b32153d4f0216f429ede8afAndrew Lee}