am 2c6f2816: am 5039e6da: Merge "fix for pause when loading" into honeycomb-mr1

* commit '2c6f2816d7308693a89f1214c2976512eb275d8a':
  fix for pause when loading
diff --git a/core/java/android/webkit/HTML5VideoFullScreen.java b/core/java/android/webkit/HTML5VideoFullScreen.java
index f52fa66..0510f8b 100644
--- a/core/java/android/webkit/HTML5VideoFullScreen.java
+++ b/core/java/android/webkit/HTML5VideoFullScreen.java
@@ -114,6 +114,13 @@
         return mVideoSurfaceView;
     }
 
+    @Override
+    public void start() {
+        if (getAutostart()) {
+            super.start();
+        }
+    }
+
     HTML5VideoFullScreen(Context context, int videoLayerId, int position,
             boolean autoStart) {
         mVideoSurfaceView = new VideoSurfaceView(context);
diff --git a/core/java/android/webkit/HTML5VideoInline.java b/core/java/android/webkit/HTML5VideoInline.java
index 4f042a6..25921bc 100644
--- a/core/java/android/webkit/HTML5VideoInline.java
+++ b/core/java/android/webkit/HTML5VideoInline.java
@@ -20,7 +20,9 @@
     // Video control FUNCTIONS:
     @Override
     public void start() {
-        super.start();
+        if (!getPauseDuringPreparing()) {
+            super.start();
+        }
     }
 
     HTML5VideoInline(int videoLayerId, int position,
diff --git a/core/java/android/webkit/HTML5VideoView.java b/core/java/android/webkit/HTML5VideoView.java
index cd2264c..8ea73b5 100644
--- a/core/java/android/webkit/HTML5VideoView.java
+++ b/core/java/android/webkit/HTML5VideoView.java
@@ -65,6 +65,7 @@
     // The spec says the timer should fire every 250 ms or less.
     private static final int TIMEUPDATE_PERIOD = 250;  // ms
 
+    protected boolean mPauseDuringPreparing;
     // common Video control FUNCTIONS:
     public void start() {
         if (mCurrentState == STATE_PREPARED) {
@@ -83,8 +84,9 @@
     public void pause() {
         if (mCurrentState == STATE_PREPARED && mPlayer.isPlaying()) {
             mPlayer.pause();
+        } else if (mCurrentState == STATE_NOTPREPARED) {
+            mPauseDuringPreparing = true;
         }
-
         // Delete the Timer to stop it since there is no stop call.
         if (mTimer != null) {
             mTimer.purge();
@@ -133,6 +135,10 @@
         return mAutostart;
     }
 
+    public boolean getPauseDuringPreparing() {
+        return mPauseDuringPreparing;
+    }
+
     // Every time we start a new Video, we create a VideoView and a MediaPlayer
     public void init(int videoLayerId, int position, boolean autoStart) {
         mPlayer = new MediaPlayer();
@@ -142,6 +148,7 @@
         mSaveSeekTime = position;
         mAutostart = autoStart;
         mTimer = null;
+        mPauseDuringPreparing = false;
     }
 
     protected HTML5VideoView() {
@@ -242,15 +249,17 @@
         if (mProxy != null) {
             mProxy.onPrepared(mp);
         }
+        if (mPauseDuringPreparing) {
+            pauseAndDispatch(mProxy);
+            mPauseDuringPreparing = false;
+        }
     }
 
     // Pause the play and update the play/pause button
     public void pauseAndDispatch(HTML5VideoViewProxy proxy) {
-        if (isPlaying()) {
-            pause();
-            if (proxy != null) {
-                proxy.dispatchOnPaused();
-            }
+        pause();
+        if (proxy != null) {
+            proxy.dispatchOnPaused();
         }
     }
 
diff --git a/core/java/android/webkit/HTML5VideoViewProxy.java b/core/java/android/webkit/HTML5VideoViewProxy.java
index d12b965..094566f 100644
--- a/core/java/android/webkit/HTML5VideoViewProxy.java
+++ b/core/java/android/webkit/HTML5VideoViewProxy.java
@@ -224,10 +224,8 @@
         }
 
         public static void onPrepared() {
-            if (!mHTML5VideoView.isFullScreenMode() ||
-                    mHTML5VideoView.isFullScreenMode() &&
-                    mHTML5VideoView.getAutostart() )
-                mHTML5VideoView.start();
+            // The VideoView will decide whether to really kick off to play.
+            mHTML5VideoView.start();
             if (mBaseLayer != 0) {
                 setBaseLayer(mBaseLayer);
             }