summaryrefslogtreecommitdiffstats
path: root/core
diff options
context:
space:
mode:
authorTeng-Hui Zhu <ztenghui@google.com>2012-06-18 10:31:16 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2012-06-18 10:31:16 -0700
commitc1d3b23b54bb044bc2fbff83f1a3816b3a0f276b (patch)
tree8d2dea6d865a0d677299d9074e8196065b5ac49c /core
parent99e33bf14b2be799efe02b9a8a42b25abc0fced3 (diff)
parent2075f2d3e486b565c9abd2556d81dfb1449f6efb (diff)
downloadframeworks_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.java17
-rw-r--r--core/java/android/webkit/HTML5VideoViewProxy.java7
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);