diff options
author | Teng-Hui Zhu <ztenghui@google.com> | 2011-03-22 11:42:37 -0700 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2011-03-22 11:42:37 -0700 |
commit | fdef2cb760de2798d9832a4aaa7d8cba1f32dfd1 (patch) | |
tree | f662844ab9608fd20dd07a67e9c287a3c0fa9cc1 | |
parent | 8b17346a438cbb6ae7c8eb54d7611b32d43699e1 (diff) | |
parent | c81d7e0ae802626e9e7a09bdc70afe4952c2ac96 (diff) | |
download | frameworks_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.java | 3 | ||||
-rw-r--r-- | core/java/android/webkit/HTML5VideoView.java | 21 |
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 |