diff options
Diffstat (limited to 'src/plugins')
4 files changed, 13 insertions, 6 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 51a3b43fd0..a35424f8e8 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 @@ -52,7 +52,7 @@ public class QtAndroidNetworkInformation { private static final String LOG_TAG = "QtAndroidNetworkInformation"; private static native void connectivityChanged(AndroidConnectivity connectivity); - private static native void behindCaptivePortalChanged(boolean state); + private static native void genericInfoChanged(boolean captivePortal, boolean metered); private static native void transportMediumChanged(Transport transportMedium); private static QtNetworkInformationCallback m_callback = null; @@ -101,7 +101,9 @@ public class QtAndroidNetworkInformation { final boolean captive = capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL); - behindCaptivePortalChanged(captive); + final boolean metered + = !capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_METERED); + genericInfoChanged(captive, metered); } private Transport getTransport(NetworkCapabilities capabilities) diff --git a/src/plugins/networkinformation/android/qandroidnetworkinformationbackend.cpp b/src/plugins/networkinformation/android/qandroidnetworkinformationbackend.cpp index 8f90ea82bd..2e4149f686 100644 --- a/src/plugins/networkinformation/android/qandroidnetworkinformationbackend.cpp +++ b/src/plugins/networkinformation/android/qandroidnetworkinformationbackend.cpp @@ -127,6 +127,9 @@ QAndroidNetworkInformationBackend::QAndroidNetworkInformationBackend() connect(conman, &AndroidConnectivityManager::transportMediumChanged, this, &QAndroidNetworkInformationBackend::updateTransportMedium); + + connect(conman, &AndroidConnectivityManager::meteredChanged, this, + &QAndroidNetworkInformationBackend::setMetered); } void QAndroidNetworkInformationBackend::updateConnectivity( diff --git a/src/plugins/networkinformation/android/wrapper/androidconnectivitymanager.cpp b/src/plugins/networkinformation/android/wrapper/androidconnectivitymanager.cpp index e95a7db610..5c1230bfaa 100644 --- a/src/plugins/networkinformation/android/wrapper/androidconnectivitymanager.cpp +++ b/src/plugins/networkinformation/android/wrapper/androidconnectivitymanager.cpp @@ -65,11 +65,12 @@ static void networkConnectivityChanged(JNIEnv *env, jobject obj, jobject enumVal Q_EMIT androidConnManagerInstance->connManager->connectivityChanged(connectivity); } -static void behindCaptivePortalChanged(JNIEnv *env, jobject obj, jboolean state) +static void genericInfoChanged(JNIEnv *env, jobject obj, jboolean captivePortal, jboolean metered) { Q_UNUSED(env); Q_UNUSED(obj); - Q_EMIT androidConnManagerInstance->connManager->captivePortalChanged(state); + Q_EMIT androidConnManagerInstance->connManager->captivePortalChanged(captivePortal); + Q_EMIT androidConnManagerInstance->connManager->meteredChanged(metered); } static void transportMediumChangedCallback(JNIEnv *env, jobject obj, jobject enumValue) @@ -128,8 +129,8 @@ bool AndroidConnectivityManager::registerNatives() static JNINativeMethod methods[] = { { "connectivityChanged", connectivityEnumSig.data(), reinterpret_cast<void *>(networkConnectivityChanged) }, - { "behindCaptivePortalChanged", "(Z)V", - reinterpret_cast<void *>(behindCaptivePortalChanged) }, + { "genericInfoChanged", "(ZZ)V", + reinterpret_cast<void *>(genericInfoChanged) }, { "transportMediumChanged", transportEnumSig.data(), reinterpret_cast<void *>(transportMediumChangedCallback) }, }; diff --git a/src/plugins/networkinformation/android/wrapper/androidconnectivitymanager.h b/src/plugins/networkinformation/android/wrapper/androidconnectivitymanager.h index b335a4a3e4..414ef2748a 100644 --- a/src/plugins/networkinformation/android/wrapper/androidconnectivitymanager.h +++ b/src/plugins/networkinformation/android/wrapper/androidconnectivitymanager.h @@ -75,6 +75,7 @@ Q_SIGNALS: void connectivityChanged(AndroidConnectivity connectivity); void captivePortalChanged(bool state); void transportMediumChanged(AndroidTransport transport); + void meteredChanged(bool state); private: friend struct AndroidConnectivityManagerInstance; |