aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTyler Gunn <tgunn@google.com>2017-07-17 15:52:41 +0000
committerandroid-build-merger <android-build-merger@google.com>2017-07-17 15:52:41 +0000
commit88f6ce488201377fff61e0de9f3384614305187f (patch)
treece323f5cda9ca0ce47a7ec6a60496e808fce8382
parent9d1fa14c108ca41fbe785e7b258ba348bf7928a2 (diff)
parent8795220e73477e2b75565622c476fb41aa0fb505 (diff)
downloadims-88f6ce488201377fff61e0de9f3384614305187f.tar.gz
Filter resume requests when video is already resumed. am: 28552fbbf0
am: 8795220e73 Change-Id: Ibbf15360f0961c9b0bd66477a95f4ff9abc1b211
-rw-r--r--src/java/com/android/ims/internal/ImsVideoCallProviderWrapper.java10
-rw-r--r--src/java/com/android/ims/internal/VideoPauseTracker.java8
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;
}
}
}