diff options
author | Tyler Gunn <tgunn@google.com> | 2017-07-17 15:45:40 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2017-07-17 15:45:40 +0000 |
commit | 8795220e73477e2b75565622c476fb41aa0fb505 (patch) | |
tree | ce323f5cda9ca0ce47a7ec6a60496e808fce8382 | |
parent | 0b5242f5c846e88a9d1d63be71251089910691db (diff) | |
parent | 28552fbbf08d9652b259aaae8661f98d865408c1 (diff) | |
download | ims-8795220e73477e2b75565622c476fb41aa0fb505.tar.gz |
Filter resume requests when video is already resumed.
am: 28552fbbf0
Change-Id: I4992a41ae4a1099a08ff6a2cef32b1200bd8a3c2
-rw-r--r-- | src/java/com/android/ims/internal/ImsVideoCallProviderWrapper.java | 10 | ||||
-rw-r--r-- | src/java/com/android/ims/internal/VideoPauseTracker.java | 8 |
2 files changed, 16 insertions, 2 deletions
diff --git a/src/java/com/android/ims/internal/ImsVideoCallProviderWrapper.java b/src/java/com/android/ims/internal/ImsVideoCallProviderWrapper.java index 8a06f3c3..ca4078f9 100644 --- a/src/java/com/android/ims/internal/ImsVideoCallProviderWrapper.java +++ b/src/java/com/android/ims/internal/ImsVideoCallProviderWrapper.java @@ -284,6 +284,16 @@ public class ImsVideoCallProviderWrapper extends Connection.VideoProvider { } try { + if (isResumeRequest(fromProfile.getVideoState(), toProfile.getVideoState()) && + !VideoProfile.isPaused(mCurrentVideoState)) { + // Request is to resume, but we're already resumed so ignore the request. + Log.i(this, "onSendSessionModifyRequest: fromVideoState=%s, toVideoState=%s; " + + "skipping resume request - already resumed.", + VideoProfile.videoStateToString(fromProfile.getVideoState()), + VideoProfile.videoStateToString(toProfile.getVideoState())); + return; + } + toProfile = maybeFilterPauseResume(fromProfile, toProfile, VideoPauseTracker.SOURCE_INCALL); diff --git a/src/java/com/android/ims/internal/VideoPauseTracker.java b/src/java/com/android/ims/internal/VideoPauseTracker.java index a23c5901..baa3163f 100644 --- a/src/java/com/android/ims/internal/VideoPauseTracker.java +++ b/src/java/com/android/ims/internal/VideoPauseTracker.java @@ -123,8 +123,12 @@ public class VideoPauseTracker { } else { Log.i(this, "shouldResumeVideoFor: source=%s, pendingRequests=%s - not paused", sourceToString(source), sourcesToString(mPauseRequests)); - // Video wasn't paused, so don't resume. - return false; + // Although there are no pending pause requests, it is possible that we cleared the + // pause tracker because the video state reported we're un-paused. In this case it + // is benign to just allow the resume request to be sent since it'll have no effect. + // Re-writing it to squelch the resume would end up causing it to be a pause + // request, which is bad. + return true; } } } |