Add a splash screen to the webruntime.
Bug: 2766920
Change-Id: Ie40627aa50e849b49177f79aa129242eb1d2f2a8
diff --git a/core/java/android/webruntime/WebRuntimeActivity.java b/core/java/android/webruntime/WebRuntimeActivity.java
index 4c63496..bda1a7a 100644
--- a/core/java/android/webruntime/WebRuntimeActivity.java
+++ b/core/java/android/webruntime/WebRuntimeActivity.java
@@ -16,22 +16,25 @@
package android.webruntime;
+import android.Manifest;
import android.app.Activity;
import android.content.Intent;
import android.content.ComponentName;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;
-import android.Manifest;
+import android.content.res.Resources;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
+import android.view.View;
import android.view.Window;
import android.webkit.GeolocationPermissions;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
+import android.widget.ImageView;
import android.widget.Toast;
import com.android.internal.R;
@@ -49,6 +52,7 @@
private WebView mWebView;
private URL mBaseUrl;
+ private ImageView mSplashScreen;
/** Called when the activity is first created. */
@Override
@@ -92,6 +96,9 @@
getWindow().requestFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.web_runtime);
mWebView = (WebView) findViewById(R.id.webview);
+ mSplashScreen = (ImageView) findViewById(R.id.splashscreen);
+ mSplashScreen.setImageResource(
+ getResources().getIdentifier("splash_screen", "drawable", getPackageName()));
mWebView.getSettings().setJavaScriptEnabled(true);
mWebView.setWebViewClient(new WebViewClient() {
@Override
@@ -113,6 +120,14 @@
startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(url)));
return true;
}
+
+ @Override
+ public void onPageFinished(WebView view, String url) {
+ if (mSplashScreen.getVisibility() == View.VISIBLE) {
+ mSplashScreen.setVisibility(View.GONE);
+ mSplashScreen = null;
+ }
+ }
});
// Use a custom WebChromeClient with geolocation permissions handling to always
diff --git a/core/res/res/layout/web_runtime.xml b/core/res/res/layout/web_runtime.xml
index 6cef8f3a..4ec0964 100644
--- a/core/res/res/layout/web_runtime.xml
+++ b/core/res/res/layout/web_runtime.xml
@@ -14,16 +14,23 @@
limitations under the License.
-->
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
-
<WebView
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
-</LinearLayout>
+
+ <ImageView
+ android:id="@+id/splashscreen"
+ android:layout_width="fill_parent"
+ android:layout_height="fill_parent"
+ android:scaleType="fitStart"
+ />
+
+</FrameLayout>