summaryrefslogtreecommitdiffstats
path: root/src/android/jar/src/org/qtproject/qt
diff options
context:
space:
mode:
authorPetri Virkkunen <petri.virkkunen@qt.io>2024-02-26 13:07:33 +0200
committerPetri Virkkunen <petri.virkkunen@qt.io>2024-04-30 22:17:04 +0300
commite46adeb59927c5ee3cd3a0225c7579f31c96d651 (patch)
treee4332d93937474fffee64bb5fde8213232437345 /src/android/jar/src/org/qtproject/qt
parented3ce4ebfa34472df61a684f298aadb74d72c5bd (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')
-rw-r--r--src/android/jar/src/org/qtproject/qt/android/QtEmbeddedDelegate.java12
-rw-r--r--src/android/jar/src/org/qtproject/qt/android/QtNative.java11
-rw-r--r--src/android/jar/src/org/qtproject/qt/android/QtServiceEmbeddedDelegate.java4
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;