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>bb10
parent
332d41d025
commit
17caa94190
|
|
@ -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>();
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue