summaryrefslogtreecommitdiffstats
path: root/src/android
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@digia.com>2014-05-22 07:44:45 +0200
committerSimon Hausmann <simon.hausmann@digia.com>2014-05-22 07:46:17 +0200
commit508b95899d4764d879a01b3990e44ce849cd9abc (patch)
tree3dbb215480c98ee75b5aacc5e3d691e04d8ce8c8 /src/android
parentf2891be00808c82f5069661d60d8727fe28774b7 (diff)
parent5d2939344eb8fbd3c2115f52a7a8d47365bdf820 (diff)
Merge remote-tracking branch 'origin/stable' into dev
Diffstat (limited to 'src/android')
-rw-r--r--src/android/accessibility/jar/src/org/qtproject/qt5/android/accessibility/QtAccessibilityDelegate.java6
-rw-r--r--src/android/accessibility/jar/src/org/qtproject/qt5/android/accessibility/QtNativeAccessibility.java2
-rw-r--r--src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java18
3 files changed, 18 insertions, 8 deletions
diff --git a/src/android/accessibility/jar/src/org/qtproject/qt5/android/accessibility/QtAccessibilityDelegate.java b/src/android/accessibility/jar/src/org/qtproject/qt5/android/accessibility/QtAccessibilityDelegate.java
index 669fbaab0d..70b02d8d04 100644
--- a/src/android/accessibility/jar/src/org/qtproject/qt5/android/accessibility/QtAccessibilityDelegate.java
+++ b/src/android/accessibility/jar/src/org/qtproject/qt5/android/accessibility/QtAccessibilityDelegate.java
@@ -240,8 +240,12 @@ public class QtAccessibilityDelegate extends View.AccessibilityDelegate
node.setClassName(m_view.getClass().getName() + DEFAULT_CLASS_NAME);
node.setPackageName(m_view.getContext().getPackageName());
+ if (!QtNativeAccessibility.populateNode(virtualViewId, node))
+ return node;
+
+ // set only if valid, otherwise we return a node that is invalid and will crash when accessed
node.setSource(m_view, virtualViewId);
- QtNativeAccessibility.populateNode(virtualViewId, node);
+
if (TextUtils.isEmpty(node.getText()) && TextUtils.isEmpty(node.getContentDescription()))
Log.w(TAG, "AccessibilityNodeInfo with empty contentDescription: " + virtualViewId);
diff --git a/src/android/accessibility/jar/src/org/qtproject/qt5/android/accessibility/QtNativeAccessibility.java b/src/android/accessibility/jar/src/org/qtproject/qt5/android/accessibility/QtNativeAccessibility.java
index b1cc82c065..8a53623957 100644
--- a/src/android/accessibility/jar/src/org/qtproject/qt5/android/accessibility/QtNativeAccessibility.java
+++ b/src/android/accessibility/jar/src/org/qtproject/qt5/android/accessibility/QtNativeAccessibility.java
@@ -54,5 +54,5 @@ class QtNativeAccessibility
static native int hitTest(float x, float y);
static native boolean clickAction(int objectId);
- static native void populateNode(int objectId, AccessibilityNodeInfo node);
+ static native boolean populateNode(int objectId, AccessibilityNodeInfo node);
}
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 b396dfdfa1..554c54d4a0 100644
--- a/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java
+++ b/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java
@@ -170,6 +170,13 @@ public class QtActivityDelegate
m_layout.requestLayout();
}
+ public void updateFullScreen()
+ {
+ if (m_fullScreen) {
+ m_fullScreen = false;
+ setFullScreen(true);
+ }
+ }
// input method hints - must be kept in sync with QTDIR/src/corelib/global/qnamespace.h
private final int ImhHiddenText = 0x1;
@@ -213,6 +220,10 @@ public class QtActivityDelegate
return false;
m_keyboardIsVisible = visibility;
QtNative.keyboardVisibilityChanged(m_keyboardIsVisible);
+
+ if (visibility == false)
+ updateFullScreen(); // Hiding the keyboard clears the immersive mode, so we need to set it again.
+
return true;
}
public void resetSoftwareKeyboard()
@@ -721,12 +732,7 @@ public class QtActivityDelegate
QtNative.updateApplicationState(ApplicationActive);
QtNative.clearLostActions();
QtNative.updateWindow();
-
- if (m_fullScreen) {
- // Suspending the app clears the immersive mode, so we need to set it again.
- m_fullScreen = false; // Force the setFullScreen() call below to actually do something
- setFullScreen(true);
- }
+ updateFullScreen(); // Suspending the app clears the immersive mode, so we need to set it again.
}
}
}