summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTeng-Hui Zhu <ztenghui@google.com>2011-03-22 11:42:37 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2011-03-22 11:42:37 -0700
commitfdef2cb760de2798d9832a4aaa7d8cba1f32dfd1 (patch)
treef662844ab9608fd20dd07a67e9c287a3c0fa9cc1
parent8b17346a438cbb6ae7c8eb54d7611b32d43699e1 (diff)
parentc81d7e0ae802626e9e7a09bdc70afe4952c2ac96 (diff)
downloadframeworks_base-fdef2cb760de2798d9832a4aaa7d8cba1f32dfd1.zip
frameworks_base-fdef2cb760de2798d9832a4aaa7d8cba1f32dfd1.tar.gz
frameworks_base-fdef2cb760de2798d9832a4aaa7d8cba1f32dfd1.tar.bz2
am c81d7e0a: am f2c44a79: am 039aa81a: Merge "Fix a crash" into honeycomb-mr1
* commit 'c81d7e0ae802626e9e7a09bdc70afe4952c2ac96': Fix a crash
-rw-r--r--core/java/android/webkit/HTML5VideoFullScreen.java3
-rw-r--r--core/java/android/webkit/HTML5VideoView.java21
2 files changed, 15 insertions, 9 deletions
diff --git a/core/java/android/webkit/HTML5VideoFullScreen.java b/core/java/android/webkit/HTML5VideoFullScreen.java
index 6be988e..f52fa66 100644
--- a/core/java/android/webkit/HTML5VideoFullScreen.java
+++ b/core/java/android/webkit/HTML5VideoFullScreen.java
@@ -209,9 +209,6 @@ public class HTML5VideoFullScreen extends HTML5VideoView
// which happens when the video view is detached from its parent
// view. This happens in the WebChromeClient before this method
// is invoked.
- mTimer.cancel();
- mTimer = null;
-
pauseAndDispatch(mProxy);
mLayout.removeView(getSurfaceView());
diff --git a/core/java/android/webkit/HTML5VideoView.java b/core/java/android/webkit/HTML5VideoView.java
index b9d55e0..cd2264c 100644
--- a/core/java/android/webkit/HTML5VideoView.java
+++ b/core/java/android/webkit/HTML5VideoView.java
@@ -68,6 +68,14 @@ public class HTML5VideoView implements MediaPlayer.OnPreparedListener{
// common Video control FUNCTIONS:
public void start() {
if (mCurrentState == STATE_PREPARED) {
+ // When replaying the same video, there is no onPrepared call.
+ // Therefore, the timer should be set up here.
+ if (mTimer == null)
+ {
+ mTimer = new Timer();
+ mTimer.schedule(new TimeupdateTask(mProxy), TIMEUPDATE_PERIOD,
+ TIMEUPDATE_PERIOD);
+ }
mPlayer.start();
}
}
@@ -76,8 +84,12 @@ public class HTML5VideoView implements MediaPlayer.OnPreparedListener{
if (mCurrentState == STATE_PREPARED && mPlayer.isPlaying()) {
mPlayer.pause();
}
+
+ // Delete the Timer to stop it since there is no stop call.
if (mTimer != null) {
mTimer.purge();
+ mTimer.cancel();
+ mTimer = null;
}
}
@@ -129,6 +141,7 @@ public class HTML5VideoView implements MediaPlayer.OnPreparedListener{
mVideoLayerId = videoLayerId;
mSaveSeekTime = position;
mAutostart = autoStart;
+ mTimer = null;
}
protected HTML5VideoView() {
@@ -153,8 +166,6 @@ public class HTML5VideoView implements MediaPlayer.OnPreparedListener{
// When switching players, surface texture will be reused.
mUri = uri;
mHeaders = generateHeaders(uri, proxy);
-
- mTimer = new Timer();
}
// Listeners setup FUNCTIONS:
@@ -228,11 +239,9 @@ public class HTML5VideoView implements MediaPlayer.OnPreparedListener{
public void onPrepared(MediaPlayer mp) {
mCurrentState = STATE_PREPARED;
seekTo(mSaveSeekTime);
- if (mProxy != null)
+ if (mProxy != null) {
mProxy.onPrepared(mp);
-
- mTimer.schedule(new TimeupdateTask(mProxy), TIMEUPDATE_PERIOD, TIMEUPDATE_PERIOD);
-
+ }
}
// Pause the play and update the play/pause button