diff options
author | Teng-Hui Zhu <ztenghui@google.com> | 2012-06-18 10:31:16 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2012-06-18 10:31:16 -0700 |
commit | c1d3b23b54bb044bc2fbff83f1a3816b3a0f276b (patch) | |
tree | 8d2dea6d865a0d677299d9074e8196065b5ac49c /core | |
parent | 99e33bf14b2be799efe02b9a8a42b25abc0fced3 (diff) | |
parent | 2075f2d3e486b565c9abd2556d81dfb1449f6efb (diff) | |
download | frameworks_base-c1d3b23b54bb044bc2fbff83f1a3816b3a0f276b.zip frameworks_base-c1d3b23b54bb044bc2fbff83f1a3816b3a0f276b.tar.gz frameworks_base-c1d3b23b54bb044bc2fbff83f1a3816b3a0f276b.tar.bz2 |
am 2075f2d3: Merge "Notify Java side to start when transition into full screen mode without a reload." into jb-dev
* commit '2075f2d3e486b565c9abd2556d81dfb1449f6efb':
Notify Java side to start when transition into full screen mode without a reload.
Diffstat (limited to 'core')
-rw-r--r-- | core/java/android/webkit/HTML5VideoFullScreen.java | 17 | ||||
-rw-r--r-- | core/java/android/webkit/HTML5VideoViewProxy.java | 7 |
2 files changed, 16 insertions, 8 deletions
diff --git a/core/java/android/webkit/HTML5VideoFullScreen.java b/core/java/android/webkit/HTML5VideoFullScreen.java index 62bc502..33eaad6 100644 --- a/core/java/android/webkit/HTML5VideoFullScreen.java +++ b/core/java/android/webkit/HTML5VideoFullScreen.java @@ -194,13 +194,6 @@ public class HTML5VideoFullScreen extends HTML5VideoView mCanPause = mCanSeekBack = mCanSeekForward = true; } - // mMediaController status depends on the Metadata result, so put it - // after reading the MetaData - if (mMediaController != null) { - mMediaController.setEnabled(true); - mMediaController.show(); - } - if (mProgressView != null) { mProgressView.setVisibility(View.GONE); } @@ -215,6 +208,16 @@ public class HTML5VideoFullScreen extends HTML5VideoView if (getStartWhenPrepared()) { mPlayer.start(); + // Clear the flag. + setStartWhenPrepared(false); + } + + // mMediaController status depends on the Metadata result, so put it + // after reading the MetaData. + // And make sure mPlayer state is updated before showing the controller. + if (mMediaController != null) { + mMediaController.setEnabled(true); + mMediaController.show(); } } diff --git a/core/java/android/webkit/HTML5VideoViewProxy.java b/core/java/android/webkit/HTML5VideoViewProxy.java index 90db308..ab884df 100644 --- a/core/java/android/webkit/HTML5VideoViewProxy.java +++ b/core/java/android/webkit/HTML5VideoViewProxy.java @@ -147,6 +147,7 @@ class HTML5VideoViewProxy extends Handler // Save the inline video info and inherit it in the full screen int savePosition = 0; boolean canSkipPrepare = false; + boolean forceStart = false; if (mHTML5VideoView != null) { // We don't allow enter full screen mode while the previous // full screen video hasn't finished yet. @@ -154,11 +155,11 @@ class HTML5VideoViewProxy extends Handler Log.w(LOGTAG, "Try to reenter the full screen mode"); return; } + int playerState = mHTML5VideoView.getCurrentState(); // If we are playing the same video, then it is better to // save the current position. if (layerId == mHTML5VideoView.getVideoLayerId()) { savePosition = mHTML5VideoView.getCurrentPosition(); - int playerState = mHTML5VideoView.getCurrentState(); canSkipPrepare = (playerState == HTML5VideoView.STATE_PREPARING || playerState == HTML5VideoView.STATE_PREPARED || playerState == HTML5VideoView.STATE_PLAYING) @@ -166,10 +167,14 @@ class HTML5VideoViewProxy extends Handler } if (!canSkipPrepare) { mHTML5VideoView.reset(); + } else { + forceStart = playerState == HTML5VideoView.STATE_PREPARING + || playerState == HTML5VideoView.STATE_PLAYING; } } mHTML5VideoView = new HTML5VideoFullScreen(proxy.getContext(), layerId, savePosition, canSkipPrepare); + mHTML5VideoView.setStartWhenPrepared(forceStart); mCurrentProxy = proxy; mHTML5VideoView.setVideoURI(url, mCurrentProxy); mHTML5VideoView.enterFullScreenVideoState(layerId, proxy, webView); |