From ba36f7947a1ed434ff3fc3f1969426e13c3bb456 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A5rten=20Nordheim?= Date: Mon, 8 Aug 2022 15:37:29 +0200 Subject: [PATCH] NetworkInformation/Android: Convert enum to integer in java side Saving some jni boundary crossing Task-number: QTBUG-104188 Change-Id: I03f49d24848b4107a7e74b620be5e90eca2d4bdc Reviewed-by: Ivan Solovev Reviewed-by: Assam Boudjelthia --- .../QtAndroidNetworkInformation.java | 8 ++++---- .../wrapper/androidconnectivitymanager.cpp | 16 +++++----------- 2 files changed, 9 insertions(+), 15 deletions(-) diff --git a/src/plugins/networkinformation/android/jar/src/org/qtproject/qt/android/networkinformation/QtAndroidNetworkInformation.java b/src/plugins/networkinformation/android/jar/src/org/qtproject/qt/android/networkinformation/QtAndroidNetworkInformation.java index 6fad6468836..6a56c506b03 100644 --- a/src/plugins/networkinformation/android/jar/src/org/qtproject/qt/android/networkinformation/QtAndroidNetworkInformation.java +++ b/src/plugins/networkinformation/android/jar/src/org/qtproject/qt/android/networkinformation/QtAndroidNetworkInformation.java @@ -15,9 +15,9 @@ import android.os.Build; public class QtAndroidNetworkInformation { private static final String LOG_TAG = "QtAndroidNetworkInformation"; - private static native void networkConnectivityChanged(AndroidConnectivity connectivity); + private static native void networkConnectivityChanged(int connectivity); private static native void genericInfoChanged(boolean captivePortal, boolean metered); - private static native void transportMediumChanged(Transport transportMedium); + private static native void transportMediumChanged(int transportMedium); private static QtNetworkInformationCallback m_callback = null; private static final Object m_lock = new Object(); @@ -96,14 +96,14 @@ public class QtAndroidNetworkInformation { private void setState(AndroidConnectivity s) { if (previousState != s) { previousState = s; - networkConnectivityChanged(s); + networkConnectivityChanged(s.ordinal()); } } private void setTransportMedium(Transport t) { if (previousTransport != t) { previousTransport = t; - transportMediumChanged(t); + transportMediumChanged(t.ordinal()); } } diff --git a/src/plugins/networkinformation/android/wrapper/androidconnectivitymanager.cpp b/src/plugins/networkinformation/android/wrapper/androidconnectivitymanager.cpp index a03116812a0..dffe0fdc5fa 100644 --- a/src/plugins/networkinformation/android/wrapper/androidconnectivitymanager.cpp +++ b/src/plugins/networkinformation/android/wrapper/androidconnectivitymanager.cpp @@ -20,15 +20,12 @@ Q_GLOBAL_STATIC(AndroidConnectivityManagerInstance, androidConnManagerInstance) static const char networkInformationClass[] = "org/qtproject/qt/android/networkinformation/QtAndroidNetworkInformation"; -Q_DECLARE_JNI_TYPE(AndroidConnectivity, - "Lorg/qtproject/qt/android/networkinformation/QtAndroidNetworkInformation$AndroidConnectivity;"); -static void networkConnectivityChanged(JNIEnv *env, jobject obj, - QtJniTypes::AndroidConnectivity enumValue) +static void networkConnectivityChanged(JNIEnv *env, jobject obj, jint enumValue) { Q_UNUSED(env); Q_UNUSED(obj); - const jint value = QJniObject(enumValue).callMethod("ordinal"); - const auto connectivity = static_cast(value); + const auto connectivity = + static_cast(enumValue); Q_EMIT androidConnManagerInstance->connManager->connectivityChanged(connectivity); } Q_DECLARE_JNI_NATIVE_METHOD(networkConnectivityChanged) @@ -42,14 +39,11 @@ static void genericInfoChanged(JNIEnv *env, jobject obj, jboolean captivePortal, } Q_DECLARE_JNI_NATIVE_METHOD(genericInfoChanged) -Q_DECLARE_JNI_TYPE(Transport, - "Lorg/qtproject/qt/android/networkinformation/QtAndroidNetworkInformation$Transport;"); -static void transportMediumChanged(JNIEnv *env, jobject obj, QtJniTypes::Transport enumValue) +static void transportMediumChanged(JNIEnv *env, jobject obj, jint enumValue) { Q_UNUSED(env); Q_UNUSED(obj); - const jint value = QJniObject(enumValue).callMethod("ordinal"); - const auto transport = static_cast(value); + const auto transport = static_cast(enumValue); emit androidConnManagerInstance->connManager->transportMediumChanged(transport); } Q_DECLARE_JNI_NATIVE_METHOD(transportMediumChanged)