summaryrefslogtreecommitdiff
path: root/java/com/android/incallui/videotech/ims/ImsVideoTech.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/incallui/videotech/ims/ImsVideoTech.java')
-rw-r--r--java/com/android/incallui/videotech/ims/ImsVideoTech.java20
1 files changed, 14 insertions, 6 deletions
diff --git a/java/com/android/incallui/videotech/ims/ImsVideoTech.java b/java/com/android/incallui/videotech/ims/ImsVideoTech.java
index 66a7af58a..40fdc6fde 100644
--- a/java/com/android/incallui/videotech/ims/ImsVideoTech.java
+++ b/java/com/android/incallui/videotech/ims/ImsVideoTech.java
@@ -23,6 +23,8 @@ import android.telecom.Call.Details;
import android.telecom.VideoProfile;
import com.android.dialer.common.Assert;
import com.android.dialer.common.LogUtil;
+import com.android.dialer.logging.DialerImpression;
+import com.android.dialer.logging.LoggingBindings;
import com.android.incallui.video.protocol.VideoCallScreen;
import com.android.incallui.video.protocol.VideoCallScreenDelegate;
import com.android.incallui.videotech.VideoTech;
@@ -30,6 +32,7 @@ import com.android.incallui.videotech.utils.SessionModificationState;
/** ViLTE implementation */
public class ImsVideoTech implements VideoTech {
+ private final LoggingBindings logger;
private final Call call;
private final VideoTechListener listener;
private ImsVideoCallCallback callback;
@@ -37,7 +40,8 @@ public class ImsVideoTech implements VideoTech {
SessionModificationState.NO_REQUEST;
private int previousVideoState = VideoProfile.STATE_AUDIO_ONLY;
- public ImsVideoTech(VideoTechListener listener, Call call) {
+ public ImsVideoTech(LoggingBindings logger, VideoTechListener listener, Call call) {
+ this.logger = logger;
this.listener = listener;
this.call = call;
}
@@ -87,7 +91,7 @@ public class ImsVideoTech implements VideoTech {
}
if (callback == null) {
- callback = new ImsVideoCallCallback(call, this, listener);
+ callback = new ImsVideoCallCallback(logger, call, this, listener);
call.getVideoCall().registerCallback(callback);
}
@@ -137,6 +141,7 @@ public class ImsVideoTech implements VideoTech {
.sendSessionModifyRequest(
new VideoProfile(unpausedVideoState | VideoProfile.STATE_BIDIRECTIONAL));
setSessionModificationState(SessionModificationState.WAITING_FOR_UPGRADE_TO_VIDEO_RESPONSE);
+ logger.logImpression(DialerImpression.Type.IMS_VIDEO_UPGRADE_REQUESTED);
}
@Override
@@ -146,6 +151,9 @@ public class ImsVideoTech implements VideoTech {
LogUtil.i("ImsVideoTech.acceptUpgradeRequest", "videoState: " + requestedVideoState);
call.getVideoCall().sendSessionModifyResponse(new VideoProfile(requestedVideoState));
setSessionModificationState(SessionModificationState.NO_REQUEST);
+ // Telecom manages audio route for us
+ listener.onUpgradedToVideo(false /* switchToSpeaker */);
+ logger.logImpression(DialerImpression.Type.IMS_VIDEO_REQUEST_ACCEPTED);
}
@Override
@@ -153,6 +161,7 @@ public class ImsVideoTech implements VideoTech {
LogUtil.enterBlock("ImsVideoTech.acceptVideoRequestAsAudio");
call.getVideoCall().sendSessionModifyResponse(new VideoProfile(VideoProfile.STATE_AUDIO_ONLY));
setSessionModificationState(SessionModificationState.NO_REQUEST);
+ logger.logImpression(DialerImpression.Type.IMS_VIDEO_REQUEST_ACCEPTED_AS_AUDIO);
}
@Override
@@ -161,6 +170,7 @@ public class ImsVideoTech implements VideoTech {
call.getVideoCall()
.sendSessionModifyResponse(new VideoProfile(call.getDetails().getVideoState()));
setSessionModificationState(SessionModificationState.NO_REQUEST);
+ logger.logImpression(DialerImpression.Type.IMS_VIDEO_REQUEST_DECLINED);
}
@Override
@@ -172,20 +182,18 @@ public class ImsVideoTech implements VideoTech {
public void stopTransmission() {
LogUtil.enterBlock("ImsVideoTech.stopTransmission");
- int unpausedVideoState = getUnpausedVideoState(call.getDetails().getVideoState());
call.getVideoCall()
.sendSessionModifyRequest(
- new VideoProfile(unpausedVideoState & ~VideoProfile.STATE_TX_ENABLED));
+ new VideoProfile(call.getDetails().getVideoState() & ~VideoProfile.STATE_TX_ENABLED));
}
@Override
public void resumeTransmission() {
LogUtil.enterBlock("ImsVideoTech.resumeTransmission");
- int unpausedVideoState = getUnpausedVideoState(call.getDetails().getVideoState());
call.getVideoCall()
.sendSessionModifyRequest(
- new VideoProfile(unpausedVideoState | VideoProfile.STATE_TX_ENABLED));
+ new VideoProfile(call.getDetails().getVideoState() | VideoProfile.STATE_TX_ENABLED));
setSessionModificationState(SessionModificationState.WAITING_FOR_RESPONSE);
}