diff options
author | Mårten Nordheim <marten.nordheim@qt.io> | 2022-08-08 15:37:29 +0200 |
---|---|---|
committer | Mårten Nordheim <marten.nordheim@qt.io> | 2022-08-09 09:59:11 +0000 |
commit | ba36f7947a1ed434ff3fc3f1969426e13c3bb456 (patch) | |
tree | 161d6361625074649f3ac90fdc0efc9851a6f4a3 /src | |
parent | 431ddc58e7bffa49b4f061397022e52d3fd94060 (diff) |
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 <ivan.solovev@qt.io>
Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Diffstat (limited to 'src')
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 6fad646883..6a56c506b0 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 a03116812a..dffe0fdc5f 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<jint>("ordinal"); - const auto connectivity = static_cast<AndroidConnectivityManager::AndroidConnectivity>(value); + const auto connectivity = + static_cast<AndroidConnectivityManager::AndroidConnectivity>(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<jint>("ordinal"); - const auto transport = static_cast<AndroidConnectivityManager::AndroidTransport>(value); + const auto transport = static_cast<AndroidConnectivityManager::AndroidTransport>(enumValue); emit androidConnManagerInstance->connManager->transportMediumChanged(transport); } Q_DECLARE_JNI_NATIVE_METHOD(transportMediumChanged) |