summaryrefslogtreecommitdiffstats
path: root/src/android
diff options
context:
space:
mode:
authorPekka Gehör <pekka.gehor@qt.io>2021-04-04 09:59:41 +0200
committerPekka Gehör <pekka.gehor@qt.io>2021-05-03 08:48:57 +0300
commit2262a9cd2d135d5ea2ade42460496c88d8b2c292 (patch)
treedbd60d79bf22d55db81d210ca0b2854b8b62353f /src/android
parent3e2e0dde4797cda4f04347a7f766cc37428ceef6 (diff)
Android: Fix Application becomes unresponsive issue
Block key events until the plugin is running. Fixes: QTBUG-67944 Pick-to: 5.15 6.1 Change-Id: Iea47f2e94d850141834a7e8fc26218be2cacf660 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Diffstat (limited to 'src/android')
-rw-r--r--src/android/jar/src/org/qtproject/qt/android/QtActivityDelegate.java10
-rw-r--r--src/android/jar/src/org/qtproject/qt/android/QtNative.java5
2 files changed, 13 insertions, 2 deletions
diff --git a/src/android/jar/src/org/qtproject/qt/android/QtActivityDelegate.java b/src/android/jar/src/org/qtproject/qt/android/QtActivityDelegate.java
index 0a60587aa8..166786134b 100644
--- a/src/android/jar/src/org/qtproject/qt/android/QtActivityDelegate.java
+++ b/src/android/jar/src/org/qtproject/qt/android/QtActivityDelegate.java
@@ -158,6 +158,7 @@ public class QtActivityDelegate
private CursorHandle m_leftSelectionHandle;
private CursorHandle m_rightSelectionHandle;
private EditPopupMenu m_editPopupMenu;
+ private boolean m_isPluginRunning = false;
private QtAccessibilityDelegate m_accessibilityDelegate = null;
@@ -903,6 +904,11 @@ public class QtActivityDelegate
m_accessibilityDelegate.notifyObjectFocus(viewId);
}
+ public void notifyQtAndroidPluginRunning(boolean running)
+ {
+ m_isPluginRunning = running;
+ }
+
public void initializeAccessibility()
{
m_accessibilityDelegate = new QtAccessibilityDelegate(m_activity, m_layout, this);
@@ -1010,7 +1016,7 @@ public class QtActivityDelegate
public boolean onKeyDown(int keyCode, KeyEvent event)
{
- if (!m_started)
+ if (!m_started || !m_isPluginRunning)
return false;
m_metaState = MetaKeyKeyListener.handleKeyDown(m_metaState, keyCode, event);
@@ -1044,7 +1050,7 @@ public class QtActivityDelegate
public boolean onKeyUp(int keyCode, KeyEvent event)
{
- if (!m_started)
+ if (!m_started || !m_isPluginRunning)
return false;
if ((keyCode == KeyEvent.KEYCODE_VOLUME_UP
diff --git a/src/android/jar/src/org/qtproject/qt/android/QtNative.java b/src/android/jar/src/org/qtproject/qt/android/QtNative.java
index 56cf0cca8a..fc5026d951 100644
--- a/src/android/jar/src/org/qtproject/qt/android/QtNative.java
+++ b/src/android/jar/src/org/qtproject/qt/android/QtNative.java
@@ -995,6 +995,11 @@ public class QtNative
});
}
+ public static void notifyQtAndroidPluginRunning(final boolean running)
+ {
+ m_activityDelegate.notifyQtAndroidPluginRunning(running);
+ }
+
private static void registerClipboardManager()
{
if (m_service == null || m_activity != null) { // Avoid freezing if only service