Add progress view and default poster for the <video> implementation
diff --git a/res/drawable/default_video_poster.png b/res/drawable/default_video_poster.png
new file mode 100755
index 0000000..f457f23
--- /dev/null
+++ b/res/drawable/default_video_poster.png
Binary files differ
diff --git a/res/layout/video_loading_progress.xml b/res/layout/video_loading_progress.xml
new file mode 100644
index 0000000..dd818bd
--- /dev/null
+++ b/res/layout/video_loading_progress.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2009 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:id="@+id/progress_indicator"
+ android:orientation="vertical"
+ android:layout_centerInParent="true"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content">
+
+ <ProgressBar android:id="@android:id/progress"
+ style="?android:attr/progressBarStyleLarge"
+ android:layout_gravity="center"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content" />
+
+ <TextView android:paddingTop="5dip"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center"
+ android:text="@string/loading_video" android:textSize="14sp"
+ android:textColor="?android:attr/textColorPrimary" />
+ </LinearLayout>
\ No newline at end of file
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 407532a..42d5a8c 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -721,6 +721,8 @@
<string name="webstorage_clear_data_dialog_cancel_button">Cancel</string>
<!-- Strings used in the summary of origins -->
<string name="webstorage_origin_summary_mb_stored">MB stored on your phone</string>
+ <!-- String shown in a progress view while a video is loading, before it starts playing -->
+ <string name="loading_video">Loading video</string>
<!-- Geolocation -->
<!-- Permissions prompt -->
diff --git a/src/com/android/browser/BrowserActivity.java b/src/com/android/browser/BrowserActivity.java
index 1801b52..1730f9b 100644
--- a/src/com/android/browser/BrowserActivity.java
+++ b/src/com/android/browser/BrowserActivity.java
@@ -45,6 +45,7 @@
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.graphics.Bitmap;
+import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.DrawFilter;
import android.graphics.Paint;
@@ -3274,6 +3275,38 @@
}
Log.w(LOGTAG, "Console: " + message + " " + sourceID + ":" + lineNumber);
}
+
+ /**
+ * Ask the browser for an icon to represent a <video> element.
+ * This icon will be used if the Web page did not specify a poster attribute.
+ *
+ * @return Bitmap The icon or null if no such icon is available.
+ * @hide pending API Council approval
+ */
+ @Override
+ public Bitmap getDefaultVideoPoster() {
+ if (mDefaultVideoPoster == null) {
+ mDefaultVideoPoster = BitmapFactory.decodeResource(
+ getResources(), R.drawable.default_video_poster);
+ }
+ return mDefaultVideoPoster;
+ }
+
+ /**
+ * Ask the host application for a custom progress view to show while
+ * a <video> is loading.
+ *
+ * @return View The progress view.
+ * @hide pending API Council approval
+ */
+ @Override
+ public View getVideoLoadingProgressView() {
+ if (mVideoProgressView == null) {
+ LayoutInflater inflater = LayoutInflater.from(BrowserActivity.this);
+ mVideoProgressView = inflater.inflate(R.layout.video_loading_progress, null);
+ }
+ return mVideoProgressView;
+ }
};
/**
@@ -4343,6 +4376,11 @@
final static int DOWNLOAD_PAGE = 2;
final static int PREFERENCES_PAGE = 3;
+ // the default <video> poster
+ private Bitmap mDefaultVideoPoster;
+ // the video progress view
+ private View mVideoProgressView;
+
/**
* A UrlData class to abstract how the content will be set to WebView.
* This base class uses loadUrl to show the content.