diff options
-rw-r--r-- | src/java/com/android/ims/internal/ImsVideoCallProviderWrapper.java | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/src/java/com/android/ims/internal/ImsVideoCallProviderWrapper.java b/src/java/com/android/ims/internal/ImsVideoCallProviderWrapper.java index d6da824f..8a06f3c3 100644 --- a/src/java/com/android/ims/internal/ImsVideoCallProviderWrapper.java +++ b/src/java/com/android/ims/internal/ImsVideoCallProviderWrapper.java @@ -69,6 +69,7 @@ public class ImsVideoCallProviderWrapper extends Connection.VideoProvider { new ConcurrentHashMap<ImsVideoProviderWrapperCallback, Boolean>(8, 0.9f, 1)); private VideoPauseTracker mVideoPauseTracker = new VideoPauseTracker(); private boolean mUseVideoPauseWorkaround = false; + private int mCurrentVideoState; private IBinder.DeathRecipient mDeathRecipient = new IBinder.DeathRecipient() { @Override @@ -291,9 +292,6 @@ public class ImsVideoCallProviderWrapper extends Connection.VideoProvider { Log.i(this, "onSendSessionModifyRequest: fromVideoState=%s, toVideoState=%s; ", VideoProfile.videoStateToString(fromProfile.getVideoState()), VideoProfile.videoStateToString(toProfile.getVideoState())); - if (fromVideoState == toVideoState) { - return; - } mVideoCallProvider.sendSessionModifyRequest(fromProfile, toProfile); } catch (RemoteException e) { } @@ -544,10 +542,18 @@ public class ImsVideoCallProviderWrapper extends Connection.VideoProvider { * @param newVideoState The new video state. */ public void onVideoStateChanged(int newVideoState) { - if (mVideoPauseTracker.isPaused() && !VideoProfile.isPaused(newVideoState)) { - Log.i(this, "onVideoStateChanged: newVideoState=%s, clearing pending pause requests.", + if (VideoProfile.isPaused(mCurrentVideoState) && !VideoProfile.isPaused(newVideoState)) { + // New video state is un-paused, so clear any pending pause requests. + Log.i(this, "onVideoStateChanged: currentVideoState=%s, newVideoState=%s, " + + "clearing pending pause requests.", + VideoProfile.videoStateToString(mCurrentVideoState), VideoProfile.videoStateToString(newVideoState)); mVideoPauseTracker.clearPauseRequests(); + } else { + Log.d(this, "onVideoStateChanged: currentVideoState=%s, newVideoState=%s", + VideoProfile.videoStateToString(mCurrentVideoState), + VideoProfile.videoStateToString(newVideoState)); } + mCurrentVideoState = newVideoState; } } |