summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMårten Nordheim <marten.nordheim@qt.io>2022-08-08 15:37:29 +0200
committerMårten Nordheim <marten.nordheim@qt.io>2022-08-09 09:59:11 +0000
commitba36f7947a1ed434ff3fc3f1969426e13c3bb456 (patch)
tree161d6361625074649f3ac90fdc0efc9851a6f4a3 /src
parent431ddc58e7bffa49b4f061397022e52d3fd94060 (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')
-rw-r--r--src/plugins/networkinformation/android/jar/src/org/qtproject/qt/android/networkinformation/QtAndroidNetworkInformation.java8
-rw-r--r--src/plugins/networkinformation/android/wrapper/androidconnectivitymanager.cpp16
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)