diff options
author | Petri Virkkunen <petri.virkkunen@qt.io> | 2024-02-26 13:07:33 +0200 |
---|---|---|
committer | Petri Virkkunen <petri.virkkunen@qt.io> | 2024-04-30 22:17:04 +0300 |
commit | e46adeb59927c5ee3cd3a0225c7579f31c96d651 (patch) | |
tree | e4332d93937474fffee64bb5fde8213232437345 /src/android/jar/src/org/qtproject/qt | |
parent | ed3ce4ebfa34472df61a684f298aadb74d72c5bd (diff) |
Android: Extend app state listener interface with native plugin state
Instead of using the generic onAppStateDetailsChanged function, use a
specific callback for native plugin readiness state in cases where only
native plugin readiness matters.
Add default empty implementations for both functions in the interface.
Task-number: QTBUG-118874
Change-Id: Ie736b0e7789400421247648cb3a008712fd959c5
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Diffstat (limited to 'src/android/jar/src/org/qtproject/qt')
3 files changed, 21 insertions, 6 deletions
diff --git a/src/android/jar/src/org/qtproject/qt/android/QtEmbeddedDelegate.java b/src/android/jar/src/org/qtproject/qt/android/QtEmbeddedDelegate.java index 898596e460..ff694777d5 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtEmbeddedDelegate.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtEmbeddedDelegate.java @@ -89,11 +89,17 @@ class QtEmbeddedDelegate extends QtActivityDelegateBase public void onAppStateDetailsChanged(QtNative.ApplicationStateDetails details) { synchronized (this) { m_stateDetails = details; - if (m_stateDetails.nativePluginIntegrationReady) { + } + } + + @Override + public void onNativePluginIntegrationReadyChanged(boolean ready) + { + synchronized (this) { + if (ready) { QtNative.runAction(() -> { DisplayMetrics metrics = Resources.getSystem().getDisplayMetrics(); - QtDisplayManager.setApplicationDisplayMetrics(m_activity, - metrics.widthPixels, + QtDisplayManager.setApplicationDisplayMetrics(m_activity, metrics.widthPixels, metrics.heightPixels); }); 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 97a45ef8fa..72a6996db6 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtNative.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtNative.java @@ -196,7 +196,8 @@ class QtNative } interface AppStateDetailsListener { - void onAppStateDetailsChanged(ApplicationStateDetails details); + default void onAppStateDetailsChanged(ApplicationStateDetails details) {} + default void onNativePluginIntegrationReadyChanged(boolean ready) {} } // Keep in sync with src/corelib/global/qnamespace.h @@ -228,6 +229,7 @@ class QtNative public static void notifyNativePluginIntegrationReady(boolean ready) { m_stateDetails.nativePluginIntegrationReady = ready; + notifyNativePluginIntegrationReadyChanged(ready); notifyAppStateDetailsChanged(m_stateDetails); } @@ -258,6 +260,13 @@ class QtNative } } + static void notifyNativePluginIntegrationReadyChanged(boolean ready) { + synchronized (m_appStateListenersLock) { + for (final AppStateDetailsListener listener : m_appStateListeners) + listener.onNativePluginIntegrationReadyChanged(ready); + } + } + static void notifyAppStateDetailsChanged(ApplicationStateDetails details) { synchronized (m_appStateListenersLock) { for (AppStateDetailsListener listener : m_appStateListeners) diff --git a/src/android/jar/src/org/qtproject/qt/android/QtServiceEmbeddedDelegate.java b/src/android/jar/src/org/qtproject/qt/android/QtServiceEmbeddedDelegate.java index e5fd397857..29f1d1790f 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtServiceEmbeddedDelegate.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtServiceEmbeddedDelegate.java @@ -38,10 +38,10 @@ class QtServiceEmbeddedDelegate implements QtEmbeddedViewInterface, QtNative.App } @Override - public void onAppStateDetailsChanged(QtNative.ApplicationStateDetails details) + public void onNativePluginIntegrationReadyChanged(boolean ready) { synchronized (this) { - if (details.nativePluginIntegrationReady) { + if (ready) { QtNative.runAction(() -> { if (m_view == null) return; |