summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBogDan Vatra <bogdan@kde.org>2014-02-21 16:08:06 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-02-21 15:50:52 +0100
commit4d08d80be60af14c5daed7c6f8d37538aea6c429 (patch)
treeb770deebb1ed9abff1e6b5c8e5dfd6f2dd226d2e
parent5e05c230af6b53d4323d3d8a445c5af1b1ba546a (diff)
Rework the splash screen for Android.
Allow the developers to define a splash screen which will be visible until the first window is created. [ChangeLog][Android] Allow the developers to define a splash screen which will be visible until the first window is created. Task-number: QTBUG-30652 Change-Id: I5da80be417ffffb03e66009f45745d4b387d2912 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
-rw-r--r--src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java19
-rw-r--r--src/android/java/AndroidManifest.xml5
-rw-r--r--src/android/java/res/layout/splash.xml13
-rw-r--r--src/android/java/src/org/qtproject/qt5/android/bindings/QtActivity.java4
-rw-r--r--src/android/java/version.xml2
5 files changed, 23 insertions, 20 deletions
diff --git a/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java b/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java
index 4b80d68761..620ea22dad 100644
--- a/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java
+++ b/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java
@@ -48,6 +48,7 @@ import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.res.Configuration;
+import android.graphics.drawable.ColorDrawable;
import android.graphics.Rect;
import android.os.Build;
import android.os.Bundle;
@@ -56,6 +57,7 @@ import android.os.ResultReceiver;
import android.text.method.MetaKeyKeyListener;
import android.util.DisplayMetrics;
import android.util.Log;
+import android.util.TypedValue;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.KeyCharacterMap;
@@ -653,9 +655,6 @@ public class QtActivityDelegate
m_imm = (InputMethodManager)m_activity.getSystemService(Context.INPUT_METHOD_SERVICE);
m_surfaces = new HashMap<Integer, QtSurface>();
m_nativeViews = new HashMap<Integer, View>();
- m_activity.setContentView(m_layout,
- new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
- ViewGroup.LayoutParams.MATCH_PARENT));
m_activity.registerForContextMenu(m_layout);
int orientation = m_activity.getResources().getConfiguration().orientation;
@@ -989,6 +988,20 @@ public class QtActivityDelegate
}
public void createSurface(int id, boolean onTop, int x, int y, int w, int h) {
+ if (m_surfaces.size() == 0) {
+ TypedValue attr = new TypedValue();
+ m_activity.getTheme().resolveAttribute(android.R.attr.windowBackground, attr, true);
+ if (attr.type >= TypedValue.TYPE_FIRST_COLOR_INT && attr.type <= TypedValue.TYPE_LAST_COLOR_INT) {
+ m_activity.getWindow().setBackgroundDrawable(new ColorDrawable(attr.data));
+ } else {
+ m_activity.getWindow().setBackgroundDrawable(m_activity.getResources().getDrawable(attr.resourceId));
+ }
+
+ m_activity.setContentView(m_layout,
+ new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
+ ViewGroup.LayoutParams.MATCH_PARENT));
+ }
+
if (m_surfaces.containsKey(id))
m_layout.removeView(m_surfaces.remove(id));
diff --git a/src/android/java/AndroidManifest.xml b/src/android/java/AndroidManifest.xml
index defbe502ef..3a2a52b874 100644
--- a/src/android/java/AndroidManifest.xml
+++ b/src/android/java/AndroidManifest.xml
@@ -29,8 +29,11 @@
<meta-data android:value="@string/ministro_needed_msg" android:name="android.app.ministro_needed_msg"/>
<meta-data android:value="@string/fatal_error_msg" android:name="android.app.fatal_error_msg"/>
<!-- Messages maps -->
+
<!-- Splash screen -->
- <meta-data android:name="android.app.splash_screen" android:resource="@layout/splash"/>
+ <!--
+ <meta-data android:name="android.app.splash_screen_drawable" android:resource="@drawable/logo"/>
+ -->
<!-- Splash screen -->
</activity>
</application>
diff --git a/src/android/java/res/layout/splash.xml b/src/android/java/res/layout/splash.xml
deleted file mode 100644
index 6b0d492dd5..0000000000
--- a/src/android/java/res/layout/splash.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:layout_gravity="center"
- >
- <ImageView
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:scaleType="fitXY"
- />
-</LinearLayout>
diff --git a/src/android/java/src/org/qtproject/qt5/android/bindings/QtActivity.java b/src/android/java/src/org/qtproject/qt5/android/bindings/QtActivity.java
index b2f92c04e9..3a0eaa77d6 100644
--- a/src/android/java/src/org/qtproject/qt5/android/bindings/QtActivity.java
+++ b/src/android/java/src/org/qtproject/qt5/android/bindings/QtActivity.java
@@ -858,8 +858,8 @@ public class QtActivity extends Activity
if (null == getLastNonConfigurationInstance()) {
// if splash screen is defined, then show it
- if (m_activityInfo.metaData.containsKey("android.app.splash_screen") )
- setContentView(m_activityInfo.metaData.getInt("android.app.splash_screen"));
+ if (m_activityInfo.metaData.containsKey("android.app.splash_screen_drawable"))
+ getWindow().setBackgroundDrawableResource(m_activityInfo.metaData.getInt("android.app.splash_screen_drawable"));
startApp(true);
}
}
diff --git a/src/android/java/version.xml b/src/android/java/version.xml
index bdcf915c06..e05bba7588 100644
--- a/src/android/java/version.xml
+++ b/src/android/java/version.xml
@@ -1,4 +1,4 @@
-<version value="5.2">
+<version value="5.3">
<ignore>
<file>AndroidManifest.xml</file>
<file>libs.xml</file>