From 4b499669dde98f485199fd38883ad0dc26d1f0f3 Mon Sep 17 00:00:00 2001 From: roldenburg Date: Fri, 23 Jun 2017 17:03:57 -0700 Subject: Fix pause / unpause in the scenario where calls are swapped The previous fix (cl/159623587) has a regression in this scenario: Device A: video call Device B Device B: accept video call Device B: go into background (press Home) Device A: go into background (press Home) Device B: return to foreground (return to call) Unexpected result: A is transmitting video even though it has not returned to the foreground as well Bug: 62784036,38359325 Test: manual PiperOrigin-RevId: 160013824 Change-Id: I6e9c89c8fa52882c49d32e061032b93b1e8552f0 --- java/com/android/incallui/VideoPauseController.java | 7 +------ .../incallui/videotech/ims/ImsVideoCallCallback.java | 2 -- .../android/incallui/videotech/ims/ImsVideoTech.java | 18 ------------------ 3 files changed, 1 insertion(+), 26 deletions(-) (limited to 'java/com') diff --git a/java/com/android/incallui/VideoPauseController.java b/java/com/android/incallui/VideoPauseController.java index 2595e2f8b..36c9ef350 100644 --- a/java/com/android/incallui/VideoPauseController.java +++ b/java/com/android/incallui/VideoPauseController.java @@ -66,11 +66,6 @@ class VideoPauseController implements InCallStateListener, IncomingCallListener return sVideoPauseController; } - private boolean wasIncomingCall() { - return (mPrevCallState == DialerCall.State.CALL_WAITING - || mPrevCallState == DialerCall.State.INCOMING); - } - /** * Determines if a call is in incoming/waiting state. * @@ -198,7 +193,7 @@ class VideoPauseController implements InCallStateListener, IncomingCallListener } final boolean canVideoPause = videoCanPause(call); - if ((wasIncomingCall() || wasDialing()) && canVideoPause && !mIsInBackground) { + if (canVideoPause && !mIsInBackground) { // Send resume request for the active call, if user rejects incoming call, ends dialing // call, or the call was previously in a paused state and UI is in the foreground. sendRequest(call, true); diff --git a/java/com/android/incallui/videotech/ims/ImsVideoCallCallback.java b/java/com/android/incallui/videotech/ims/ImsVideoCallCallback.java index f4e0a01ea..b83929304 100644 --- a/java/com/android/incallui/videotech/ims/ImsVideoCallCallback.java +++ b/java/com/android/incallui/videotech/ims/ImsVideoCallCallback.java @@ -173,11 +173,9 @@ public class ImsVideoCallCallback extends VideoCall.Callback { switch (event) { case Connection.VideoProvider.SESSION_EVENT_RX_PAUSE: LogUtil.i("ImsVideoCallCallback.onCallSessionEvent", "rx_pause"); - videoTech.onPausedEvent(); break; case Connection.VideoProvider.SESSION_EVENT_RX_RESUME: LogUtil.i("ImsVideoCallCallback.onCallSessionEvent", "rx_resume"); - videoTech.onResumedEvent(); break; case Connection.VideoProvider.SESSION_EVENT_CAMERA_FAILURE: LogUtil.i("ImsVideoCallCallback.onCallSessionEvent", "camera_failure"); diff --git a/java/com/android/incallui/videotech/ims/ImsVideoTech.java b/java/com/android/incallui/videotech/ims/ImsVideoTech.java index 4e7443960..99d812a91 100644 --- a/java/com/android/incallui/videotech/ims/ImsVideoTech.java +++ b/java/com/android/incallui/videotech/ims/ImsVideoTech.java @@ -269,24 +269,6 @@ public class ImsVideoTech implements VideoTech { call.getVideoCall().setDeviceOrientation(rotation); } - /** - * Called when we receive an rx_pause from the IMS stack. Update our state so we know we are - * currently paused. This is important in the cases where we swap calls since pause() and - * unpause() are not called. - */ - void onPausedEvent() { - paused = true; - } - - /** - * Called when we receive an rx_resume from the IMS stack. Update our state so we know we are - * currently not paused. This is important in the cases where we swap calls since pause() and - * unpause() are not called. - */ - void onResumedEvent() { - paused = false; - } - private boolean canPause() { return call.getDetails().can(Details.CAPABILITY_CAN_PAUSE_VIDEO) && call.getState() == Call.STATE_ACTIVE -- cgit v1.2.3