diff options
author | roldenburg <roldenburg@google.com> | 2017-06-23 17:03:57 -0700 |
---|---|---|
committer | Eric Erfanian <erfanian@google.com> | 2017-06-26 09:08:13 -0700 |
commit | 4b499669dde98f485199fd38883ad0dc26d1f0f3 (patch) | |
tree | 69d617e473b7542599aea32df2b331852c43d1ca | |
parent | 059d2e2a9ef121edfbd0596cf0f8c22b167a7b8d (diff) |
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
3 files changed, 1 insertions, 26 deletions
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 |