summaryrefslogtreecommitdiffstats
path: root/src/android
diff options
context:
space:
mode:
authorBogDan Vatra <bogdan@kde.org>2015-07-06 15:22:34 +0300
committerBogDan Vatra <bogdan@kde.org>2015-07-30 07:06:18 +0000
commit17caa9419045f88baceae6555deadfcf24f5d1b1 (patch)
tree783ed819d96c724c368e6d9b829e48fcb7f7a1a3 /src/android
parent332d41d025b5e289821cf2bd81745471c76dce36 (diff)
Android: Start the application when we know the screen geometry.
Until now we'se set the screenGemetry to 0,0 until the layout is created, but some controls needs it before that. Task-number: QTBUG-44271 Change-Id: I7d00e2a142572e27fc77e46566bb2cdb37f58035 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@theqtcompany.com>
Diffstat (limited to 'src/android')
-rw-r--r--src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java30
-rw-r--r--src/android/jar/src/org/qtproject/qt5/android/QtLayout.java8
2 files changed, 25 insertions, 13 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 f4d2645e9a..ba3ecfecd6 100644
--- a/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java
+++ b/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java
@@ -760,12 +760,6 @@ public class QtActivityDelegate
if (null == m_surfaces)
onCreate(null);
- String nativeLibraryDir = QtNativeLibrariesDir.nativeLibrariesDir(m_activity);
- QtNative.startApplication(m_applicationParameters,
- m_environmentVariables,
- m_mainLib,
- nativeLibraryDir);
- m_started = true;
return true;
} catch (Exception e) {
e.printStackTrace();
@@ -781,14 +775,26 @@ public class QtActivityDelegate
public void onCreate(Bundle savedInstanceState)
{
m_quitApp = true;
+ Runnable startApplication = null;
if (null == savedInstanceState) {
- DisplayMetrics metrics = new DisplayMetrics();
- m_activity.getWindowManager().getDefaultDisplay().getMetrics(metrics);
- QtNative.setApplicationDisplayMetrics(metrics.widthPixels, metrics.heightPixels,
- 0, 0,
- metrics.xdpi, metrics.ydpi, metrics.scaledDensity);
+ startApplication = new Runnable() {
+ @Override
+ public void run() {
+ try {
+ String nativeLibraryDir = QtNativeLibrariesDir.nativeLibrariesDir(m_activity);
+ QtNative.startApplication(m_applicationParameters,
+ m_environmentVariables,
+ m_mainLib,
+ nativeLibraryDir);
+ m_started = true;
+ } catch (Exception e) {
+ e.printStackTrace();
+ m_activity.finish();
+ }
+ }
+ };
}
- m_layout = new QtLayout(m_activity);
+ m_layout = new QtLayout(m_activity, startApplication);
m_editText = new QtEditText(m_activity, this);
m_imm = (InputMethodManager)m_activity.getSystemService(Context.INPUT_METHOD_SERVICE);
m_surfaces = new HashMap<Integer, QtSurface>();
diff --git a/src/android/jar/src/org/qtproject/qt5/android/QtLayout.java b/src/android/jar/src/org/qtproject/qt5/android/QtLayout.java
index 09fef4a705..4d7ca47dde 100644
--- a/src/android/jar/src/org/qtproject/qt5/android/QtLayout.java
+++ b/src/android/jar/src/org/qtproject/qt5/android/QtLayout.java
@@ -43,9 +43,11 @@ import android.view.ViewGroup;
public class QtLayout extends ViewGroup
{
- public QtLayout(Context context)
+ private Runnable m_startApplicationRunnable;
+ public QtLayout(Context context, Runnable startRunnable)
{
super(context);
+ m_startApplicationRunnable = startRunnable;
}
public QtLayout(Context context, AttributeSet attrs)
@@ -65,6 +67,10 @@ public class QtLayout extends ViewGroup
((Activity) getContext()).getWindowManager().getDefaultDisplay().getMetrics(metrics);
QtNative.setApplicationDisplayMetrics(metrics.widthPixels,
metrics.heightPixels, w, h, metrics.xdpi, metrics.ydpi, metrics.scaledDensity);
+ if (m_startApplicationRunnable != null) {
+ m_startApplicationRunnable.run();
+ m_startApplicationRunnable = null;
+ }
}
@Override