diff --git a/src/android/jar/src/org/qtproject/qt/android/QtActivityBase.java b/src/android/jar/src/org/qtproject/qt/android/QtActivityBase.java index 159f31be9db..fa602ce4947 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtActivityBase.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtActivityBase.java @@ -208,7 +208,7 @@ public class QtActivityBase extends Activity public boolean onKeyDown(int keyCode, KeyEvent event) { QtNative.ApplicationStateDetails stateDetails = QtNative.getStateDetails(); - if (!stateDetails.isStarted || !m_delegate.isPluginRunning()) + if (!stateDetails.isStarted || !stateDetails.nativePluginIntegrationReady) return false; return m_delegate.getInputDelegate().onKeyDown(keyCode, event); @@ -218,7 +218,7 @@ public class QtActivityBase extends Activity public boolean onKeyUp(int keyCode, KeyEvent event) { QtNative.ApplicationStateDetails stateDetails = QtNative.getStateDetails(); - if (!stateDetails.isStarted || !m_delegate.isPluginRunning()) + if (!stateDetails.isStarted || !stateDetails.nativePluginIntegrationReady) return false; return m_delegate.getInputDelegate().onKeyUp(keyCode, event); 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 c154399911a..510120ee3c7 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtActivityDelegate.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtActivityDelegate.java @@ -37,8 +37,6 @@ public class QtActivityDelegate { private Activity m_activity; - private boolean m_isPluginRunning = false; - private HashMap m_surfaces = null; private HashMap m_nativeViews = null; private QtLayout m_layout = null; @@ -97,11 +95,6 @@ public class QtActivityDelegate }); } - boolean isPluginRunning() - { - return m_isPluginRunning; - } - void setContextMenuVisible(boolean contextMenuVisible) { m_contextMenuVisible = contextMenuVisible; @@ -300,12 +293,6 @@ public class QtActivityDelegate m_accessibilityDelegate.notifyScrolledEvent(viewId); } - @UsedFromNativeCode - public void notifyQtAndroidPluginRunning(boolean running) - { - m_isPluginRunning = running; - } - @UsedFromNativeCode public void initializeAccessibility() { 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 8d39398837b..e4fe68100e9 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtNative.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtNative.java @@ -203,6 +203,7 @@ public class QtNative public static class ApplicationStateDetails { int state = ApplicationState.ApplicationSuspended; + boolean nativePluginIntegrationReady = false; boolean isStarted = false; } @@ -216,6 +217,12 @@ public class QtNative m_stateDetails.isStarted = started; } + @UsedFromNativeCode + public static void notifyNativePluginIntegrationReady(boolean ready) + { + m_stateDetails.nativePluginIntegrationReady = ready; + } + public static void setApplicationState(int state) { synchronized (m_mainActivityMutex) { diff --git a/src/plugins/platforms/android/androidjnimain.cpp b/src/plugins/platforms/android/androidjnimain.cpp index f6819643574..2c7ddb08100 100644 --- a/src/plugins/platforms/android/androidjnimain.cpp +++ b/src/plugins/platforms/android/androidjnimain.cpp @@ -99,6 +99,7 @@ namespace QtAndroid void setAndroidPlatformIntegration(QAndroidPlatformIntegration *androidPlatformIntegration) { m_androidPlatformIntegration = androidPlatformIntegration; + QtAndroid::notifyNativePluginIntegrationReady((bool)m_androidPlatformIntegration); // flush the pending state if necessary. if (m_androidPlatformIntegration && (m_pendingApplicationState != -1)) { @@ -213,9 +214,11 @@ namespace QtAndroid qtActivityDelegate().callMethod("notifyScrolledEvent", accessibilityObjectId); } - void notifyQtAndroidPluginRunning(bool running) + void notifyNativePluginIntegrationReady(bool ready) { - qtActivityDelegate().callMethod("notifyQtAndroidPluginRunning", running); + QJniObject::callStaticMethod(m_applicationClass, + "notifyNativePluginIntegrationReady", + ready); } jobject createBitmap(QImage img, JNIEnv *env) diff --git a/src/plugins/platforms/android/androidjnimain.h b/src/plugins/platforms/android/androidjnimain.h index 672aca19273..349eba99623 100644 --- a/src/plugins/platforms/android/androidjnimain.h +++ b/src/plugins/platforms/android/androidjnimain.h @@ -75,7 +75,7 @@ namespace QtAndroid void notifyObjectFocus(uint accessibilityObjectId); void notifyValueChanged(uint accessibilityObjectId, jstring value); void notifyScrolledEvent(uint accessibilityObjectId); - void notifyQtAndroidPluginRunning(bool running); + void notifyNativePluginIntegrationReady(bool ready); const char *classErrorMsgFmt(); const char *methodErrorMsgFmt(); diff --git a/src/plugins/platforms/android/qandroidplatformintegration.cpp b/src/plugins/platforms/android/qandroidplatformintegration.cpp index f3a5e4247f8..a31e3c8f69b 100644 --- a/src/plugins/platforms/android/qandroidplatformintegration.cpp +++ b/src/plugins/platforms/android/qandroidplatformintegration.cpp @@ -54,7 +54,6 @@ Qt::ScreenOrientation QAndroidPlatformIntegration::m_orientation = Qt::PrimaryOr Qt::ScreenOrientation QAndroidPlatformIntegration::m_nativeOrientation = Qt::PrimaryOrientation; bool QAndroidPlatformIntegration::m_showPasswordEnabled = false; -static bool m_running = false; Q_DECLARE_JNI_CLASS(QtNative, "org/qtproject/qt/android/QtNative") Q_DECLARE_JNI_CLASS(QtDisplayManager, "org/qtproject/qt/android/QtDisplayManager") @@ -159,10 +158,6 @@ void QAndroidPlatformNativeInterface::customEvent(QEvent *event) api->accessibility()->setActive(QtAndroidAccessibility::isActive()); #endif // QT_CONFIG(accessibility) - if (!m_running) { - m_running = true; - QtAndroid::notifyQtAndroidPluginRunning(m_running); - } api->flushPendingUpdates(); }