diff options
Diffstat (limited to 'java/com/android/incallui/videotech/ims')
-rw-r--r-- | java/com/android/incallui/videotech/ims/ImsVideoCallCallback.java | 28 | ||||
-rw-r--r-- | java/com/android/incallui/videotech/ims/ImsVideoTech.java | 38 |
2 files changed, 39 insertions, 27 deletions
diff --git a/java/com/android/incallui/videotech/ims/ImsVideoCallCallback.java b/java/com/android/incallui/videotech/ims/ImsVideoCallCallback.java index 0a15f7e65..9b5222e10 100644 --- a/java/com/android/incallui/videotech/ims/ImsVideoCallCallback.java +++ b/java/com/android/incallui/videotech/ims/ImsVideoCallCallback.java @@ -24,9 +24,8 @@ import android.telecom.InCallService.VideoCall; import android.telecom.VideoProfile; import android.telecom.VideoProfile.CameraCapabilities; import com.android.dialer.common.LogUtil; -import com.android.incallui.videotech.VideoTech; -import com.android.incallui.videotech.VideoTech.SessionModificationState; import com.android.incallui.videotech.VideoTech.VideoTechListener; +import com.android.incallui.videotech.utils.SessionModificationState; /** Receives IMS video call state updates. */ public class ImsVideoCallCallback extends VideoCall.Callback { @@ -60,7 +59,7 @@ public class ImsVideoCallCallback extends VideoCall.Callback { } else if (previousVideoState != newVideoState) { requestedVideoState = newVideoState; videoTech.setSessionModificationState( - VideoTech.SESSION_MODIFICATION_STATE_RECEIVED_UPGRADE_TO_VIDEO_REQUEST); + SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST); listener.onVideoUpgradeRequestReceived(); } } @@ -84,7 +83,7 @@ public class ImsVideoCallCallback extends VideoCall.Callback { videoTech.getSessionModificationState()); if (videoTech.getSessionModificationState() - == VideoTech.SESSION_MODIFICATION_STATE_WAITING_FOR_UPGRADE_TO_VIDEO_RESPONSE) { + == SessionModificationState.WAITING_FOR_UPGRADE_TO_VIDEO_RESPONSE) { handler.removeCallbacksAndMessages(null); // Clear everything final int newSessionModificationState = getSessionModificationStateFromTelecomStatus(status); @@ -103,8 +102,7 @@ public class ImsVideoCallCallback extends VideoCall.Callback { () -> { if (videoTech.getSessionModificationState() == newSessionModificationState) { LogUtil.i("ImsVideoCallCallback.onSessionModifyResponseReceived", "clearing state"); - videoTech.setSessionModificationState( - VideoTech.SESSION_MODIFICATION_STATE_NO_REQUEST); + videoTech.setSessionModificationState(SessionModificationState.NO_REQUEST); } else { LogUtil.i( "ImsVideoCallCallback.onSessionModifyResponseReceived", @@ -113,10 +111,10 @@ public class ImsVideoCallCallback extends VideoCall.Callback { }, CLEAR_FAILED_REQUEST_TIMEOUT_MILLIS); } else if (videoTech.getSessionModificationState() - == VideoTech.SESSION_MODIFICATION_STATE_RECEIVED_UPGRADE_TO_VIDEO_REQUEST) { - videoTech.setSessionModificationState(VideoTech.SESSION_MODIFICATION_STATE_NO_REQUEST); + == SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST) { + videoTech.setSessionModificationState(SessionModificationState.NO_REQUEST); } else if (videoTech.getSessionModificationState() - == VideoTech.SESSION_MODIFICATION_STATE_WAITING_FOR_RESPONSE) { + == SessionModificationState.WAITING_FOR_RESPONSE) { videoTech.setSessionModificationState(getSessionModificationStateFromTelecomStatus(status)); } else { LogUtil.i( @@ -129,25 +127,25 @@ public class ImsVideoCallCallback extends VideoCall.Callback { private int getSessionModificationStateFromTelecomStatus(int telecomStatus) { switch (telecomStatus) { case VideoProvider.SESSION_MODIFY_REQUEST_SUCCESS: - return VideoTech.SESSION_MODIFICATION_STATE_NO_REQUEST; + return SessionModificationState.NO_REQUEST; case VideoProvider.SESSION_MODIFY_REQUEST_FAIL: case VideoProvider.SESSION_MODIFY_REQUEST_INVALID: // Check if it's already video call, which means the request is not video upgrade request. if (VideoProfile.isVideo(call.getDetails().getVideoState())) { - return VideoTech.SESSION_MODIFICATION_STATE_REQUEST_FAILED; + return SessionModificationState.REQUEST_FAILED; } else { - return VideoTech.SESSION_MODIFICATION_STATE_UPGRADE_TO_VIDEO_REQUEST_FAILED; + return SessionModificationState.UPGRADE_TO_VIDEO_REQUEST_FAILED; } case VideoProvider.SESSION_MODIFY_REQUEST_TIMED_OUT: - return VideoTech.SESSION_MODIFICATION_STATE_UPGRADE_TO_VIDEO_REQUEST_TIMED_OUT; + return SessionModificationState.UPGRADE_TO_VIDEO_REQUEST_TIMED_OUT; case VideoProvider.SESSION_MODIFY_REQUEST_REJECTED_BY_REMOTE: - return VideoTech.SESSION_MODIFICATION_STATE_REQUEST_REJECTED; + return SessionModificationState.REQUEST_REJECTED; default: LogUtil.e( "ImsVideoCallCallback.getSessionModificationStateFromTelecomStatus", "unknown status: %d", telecomStatus); - return VideoTech.SESSION_MODIFICATION_STATE_REQUEST_FAILED; + return SessionModificationState.REQUEST_FAILED; } } diff --git a/java/com/android/incallui/videotech/ims/ImsVideoTech.java b/java/com/android/incallui/videotech/ims/ImsVideoTech.java index a37500c3b..8c2ca151a 100644 --- a/java/com/android/incallui/videotech/ims/ImsVideoTech.java +++ b/java/com/android/incallui/videotech/ims/ImsVideoTech.java @@ -16,13 +16,17 @@ package com.android.incallui.videotech.ims; +import android.content.Context; import android.os.Build; import android.telecom.Call; import android.telecom.Call.Details; import android.telecom.VideoProfile; import com.android.dialer.common.Assert; import com.android.dialer.common.LogUtil; +import com.android.incallui.video.protocol.VideoCallScreen; +import com.android.incallui.video.protocol.VideoCallScreenDelegate; import com.android.incallui.videotech.VideoTech; +import com.android.incallui.videotech.utils.SessionModificationState; /** ViLTE implementation */ public class ImsVideoTech implements VideoTech { @@ -30,7 +34,7 @@ public class ImsVideoTech implements VideoTech { private final VideoTechListener listener; private ImsVideoCallCallback callback; private @SessionModificationState int sessionModificationState = - VideoTech.SESSION_MODIFICATION_STATE_NO_REQUEST; + SessionModificationState.NO_REQUEST; private int previousVideoState = VideoProfile.STATE_AUDIO_ONLY; public ImsVideoTech(VideoTechListener listener, Call call) { @@ -65,6 +69,18 @@ public class ImsVideoTech implements VideoTech { } @Override + public boolean shouldUseSurfaceView() { + return false; + } + + @Override + public VideoCallScreenDelegate createVideoCallScreenDelegate( + Context context, VideoCallScreen videoCallScreen) { + // TODO move creating VideoCallPresenter here + throw Assert.createUnsupportedOperationFailException(); + } + + @Override public void onCallStateChanged(int newState) { if (!isAvailable()) { return; @@ -76,7 +92,7 @@ public class ImsVideoTech implements VideoTech { } if (getSessionModificationState() - == VideoTech.SESSION_MODIFICATION_STATE_WAITING_FOR_UPGRADE_TO_VIDEO_RESPONSE + == SessionModificationState.WAITING_FOR_UPGRADE_TO_VIDEO_RESPONSE && isTransmittingOrReceiving()) { // We don't clear the session modification state right away when we find out the video upgrade // request was accepted to avoid having the UI switch from video to voice to video. @@ -84,17 +100,16 @@ public class ImsVideoTech implements VideoTech { LogUtil.i( "ImsVideoTech.onCallStateChanged", "upgraded to video, clearing session modification state"); - setSessionModificationState(VideoTech.SESSION_MODIFICATION_STATE_NO_REQUEST); + setSessionModificationState(SessionModificationState.NO_REQUEST); } // Determines if a received upgrade to video request should be cancelled. This can happen if // another InCall UI responds to the upgrade to video request. int newVideoState = call.getDetails().getVideoState(); if (newVideoState != previousVideoState - && sessionModificationState - == VideoTech.SESSION_MODIFICATION_STATE_RECEIVED_UPGRADE_TO_VIDEO_REQUEST) { + && sessionModificationState == SessionModificationState.RECEIVED_UPGRADE_TO_VIDEO_REQUEST) { LogUtil.i("ImsVideoTech.onCallStateChanged", "cancelling upgrade notification"); - setSessionModificationState(VideoTech.SESSION_MODIFICATION_STATE_NO_REQUEST); + setSessionModificationState(SessionModificationState.NO_REQUEST); } previousVideoState = newVideoState; } @@ -121,8 +136,7 @@ public class ImsVideoTech implements VideoTech { call.getVideoCall() .sendSessionModifyRequest( new VideoProfile(unpausedVideoState | VideoProfile.STATE_BIDIRECTIONAL)); - setSessionModificationState( - VideoTech.SESSION_MODIFICATION_STATE_WAITING_FOR_UPGRADE_TO_VIDEO_RESPONSE); + setSessionModificationState(SessionModificationState.WAITING_FOR_UPGRADE_TO_VIDEO_RESPONSE); } @Override @@ -131,14 +145,14 @@ public class ImsVideoTech implements VideoTech { Assert.checkArgument(requestedVideoState != VideoProfile.STATE_AUDIO_ONLY); LogUtil.i("ImsVideoTech.acceptUpgradeRequest", "videoState: " + requestedVideoState); call.getVideoCall().sendSessionModifyResponse(new VideoProfile(requestedVideoState)); - setSessionModificationState(VideoTech.SESSION_MODIFICATION_STATE_NO_REQUEST); + setSessionModificationState(SessionModificationState.NO_REQUEST); } @Override public void acceptVideoRequestAsAudio() { LogUtil.enterBlock("ImsVideoTech.acceptVideoRequestAsAudio"); call.getVideoCall().sendSessionModifyResponse(new VideoProfile(VideoProfile.STATE_AUDIO_ONLY)); - setSessionModificationState(VideoTech.SESSION_MODIFICATION_STATE_NO_REQUEST); + setSessionModificationState(SessionModificationState.NO_REQUEST); } @Override @@ -146,7 +160,7 @@ public class ImsVideoTech implements VideoTech { LogUtil.enterBlock("ImsVideoTech.declineUpgradeRequest"); call.getVideoCall() .sendSessionModifyResponse(new VideoProfile(call.getDetails().getVideoState())); - setSessionModificationState(VideoTech.SESSION_MODIFICATION_STATE_NO_REQUEST); + setSessionModificationState(SessionModificationState.NO_REQUEST); } @Override @@ -172,7 +186,7 @@ public class ImsVideoTech implements VideoTech { call.getVideoCall() .sendSessionModifyRequest( new VideoProfile(unpausedVideoState | VideoProfile.STATE_TX_ENABLED)); - setSessionModificationState(VideoTech.SESSION_MODIFICATION_STATE_WAITING_FOR_RESPONSE); + setSessionModificationState(SessionModificationState.WAITING_FOR_RESPONSE); } @Override |