summaryrefslogtreecommitdiffstats
path: root/src/android/jar/src/org/qtproject/qt5/android
diff options
context:
space:
mode:
Diffstat (limited to 'src/android/jar/src/org/qtproject/qt5/android')
-rw-r--r--src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java34
-rw-r--r--src/android/jar/src/org/qtproject/qt5/android/QtSurface.java20
2 files changed, 28 insertions, 26 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 f44465b4c5..4d16d7e13f 100644
--- a/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java
+++ b/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java
@@ -80,6 +80,7 @@ import java.io.File;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.io.IOException;
+import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.HashMap;
@@ -321,7 +322,6 @@ public class QtActivityDelegate
m_layout.removeView(m_editText);
m_layout.addView(m_editText, new QtLayout.LayoutParams(width, height, x, y));
- m_editText.bringToFront();
m_editText.requestFocus();
m_editText.postDelayed(new Runnable() {
@Override
@@ -803,6 +803,22 @@ public class QtActivityDelegate
m_nativeViews = new HashMap<Integer, View>();
m_activity.registerForContextMenu(m_layout);
+ // Initialize accessibility
+ try {
+ final String a11yDelegateClassName = "org.qtproject.qt5.android.accessibility.QtAccessibilityDelegate";
+ Class<?> qtDelegateClass = Class.forName(a11yDelegateClassName);
+ Constructor constructor = qtDelegateClass.getConstructor(android.app.Activity.class,
+ android.view.ViewGroup.class,
+ this.getClass());
+ Object accessibilityDelegate = constructor.newInstance(m_activity, m_layout, this);
+ } catch (ClassNotFoundException e) {
+ // Class not found is fine since we are compatible with Android API < 16, but the function will
+ // only be available with that API level.
+ } catch (Exception e) {
+ // Unknown exception means something went wrong.
+ Log.w("Qt A11y", "Unknown exception: " + e.toString());
+ }
+
m_activity.setContentView(m_layout,
new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT));
@@ -1179,8 +1195,8 @@ public class QtActivityDelegate
// Native views are always inserted in the end of the stack (i.e., on top).
// All other views are stacked based on the order they are created.
- final int index = m_layout.getChildCount() - m_nativeViews.size() - 1;
- m_layout.addView(surface, index < 0 ? 0 : index);
+ final int surfaceCount = getSurfaceCount();
+ m_layout.addView(surface, surfaceCount);
m_surfaces.put(id, surface);
}
@@ -1221,12 +1237,18 @@ public class QtActivityDelegate
}
}
+ public int getSurfaceCount()
+ {
+ return m_surfaces.size();
+ }
+
public void bringChildToFront(int id)
{
View view = m_surfaces.get(id);
if (view != null) {
- final int index = m_layout.getChildCount() - m_nativeViews.size() - 1;
- m_layout.moveChild(view, index < 0 ? 0 : index);
+ final int surfaceCount = getSurfaceCount();
+ if (surfaceCount > 0)
+ m_layout.moveChild(view, surfaceCount - 1);
return;
}
@@ -1245,7 +1267,7 @@ public class QtActivityDelegate
view = m_nativeViews.get(id);
if (view != null) {
- final int index = m_layout.getChildCount() - m_nativeViews.size();
+ final int index = getSurfaceCount();
m_layout.moveChild(view, index);
}
}
diff --git a/src/android/jar/src/org/qtproject/qt5/android/QtSurface.java b/src/android/jar/src/org/qtproject/qt5/android/QtSurface.java
index ca3f20f11b..34fc31b222 100644
--- a/src/android/jar/src/org/qtproject/qt5/android/QtSurface.java
+++ b/src/android/jar/src/org/qtproject/qt5/android/QtSurface.java
@@ -88,26 +88,6 @@ public class QtSurface extends SurfaceView implements SurfaceHolder.Callback
public void surfaceCreated(SurfaceHolder holder)
{
QtNative.setSurface(getId(), holder.getSurface(), getWidth(), getHeight());
- // Initialize Accessibility
- // The accessibility code depends on android API level 16, so dynamically resolve it
- if (android.os.Build.VERSION.SDK_INT >= 16) {
- try {
- final String a11yDelegateClassName = "org.qtproject.qt5.android.accessibility.QtAccessibilityDelegate";
- Class<?> qtDelegateClass = Class.forName(a11yDelegateClassName);
- Constructor constructor = qtDelegateClass.getConstructor(Class.forName("android.view.View"));
- m_accessibilityDelegate = constructor.newInstance(this);
-
- Class a11yDelegateClass = Class.forName("android.view.View$AccessibilityDelegate");
- Method setDelegateMethod = this.getClass().getMethod("setAccessibilityDelegate", a11yDelegateClass);
- setDelegateMethod.invoke(this, m_accessibilityDelegate);
- } catch (ClassNotFoundException e) {
- // Class not found is fine since we are compatible with Android API < 16, but the function will
- // only be available with that API level.
- } catch (Exception e) {
- // Unknown exception means something went wrong.
- Log.w("Qt A11y", "Unknown exception: " + e.toString());
- }
- }
}
@Override