QNI: Android support for isMetered
Task-number: QTBUG-91024 Change-Id: I7a8fdcddc25fdb60390b424a888d0311afd8cef3 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
This commit is contained in:
parent
bd52c1bba6
commit
83ddf49bc7
@ -52,7 +52,7 @@ public class QtAndroidNetworkInformation {
|
|||||||
private static final String LOG_TAG = "QtAndroidNetworkInformation";
|
private static final String LOG_TAG = "QtAndroidNetworkInformation";
|
||||||
|
|
||||||
private static native void connectivityChanged(AndroidConnectivity connectivity);
|
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 native void transportMediumChanged(Transport transportMedium);
|
||||||
|
|
||||||
private static QtNetworkInformationCallback m_callback = null;
|
private static QtNetworkInformationCallback m_callback = null;
|
||||||
@ -101,7 +101,9 @@ public class QtAndroidNetworkInformation {
|
|||||||
|
|
||||||
final boolean captive
|
final boolean captive
|
||||||
= capabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL);
|
= 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)
|
private Transport getTransport(NetworkCapabilities capabilities)
|
||||||
|
@ -127,6 +127,9 @@ QAndroidNetworkInformationBackend::QAndroidNetworkInformationBackend()
|
|||||||
|
|
||||||
connect(conman, &AndroidConnectivityManager::transportMediumChanged, this,
|
connect(conman, &AndroidConnectivityManager::transportMediumChanged, this,
|
||||||
&QAndroidNetworkInformationBackend::updateTransportMedium);
|
&QAndroidNetworkInformationBackend::updateTransportMedium);
|
||||||
|
|
||||||
|
connect(conman, &AndroidConnectivityManager::meteredChanged, this,
|
||||||
|
&QAndroidNetworkInformationBackend::setMetered);
|
||||||
}
|
}
|
||||||
|
|
||||||
void QAndroidNetworkInformationBackend::updateConnectivity(
|
void QAndroidNetworkInformationBackend::updateConnectivity(
|
||||||
|
@ -65,11 +65,12 @@ static void networkConnectivityChanged(JNIEnv *env, jobject obj, jobject enumVal
|
|||||||
Q_EMIT androidConnManagerInstance->connManager->connectivityChanged(connectivity);
|
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(env);
|
||||||
Q_UNUSED(obj);
|
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)
|
static void transportMediumChangedCallback(JNIEnv *env, jobject obj, jobject enumValue)
|
||||||
@ -128,8 +129,8 @@ bool AndroidConnectivityManager::registerNatives()
|
|||||||
static JNINativeMethod methods[] = {
|
static JNINativeMethod methods[] = {
|
||||||
{ "connectivityChanged", connectivityEnumSig.data(),
|
{ "connectivityChanged", connectivityEnumSig.data(),
|
||||||
reinterpret_cast<void *>(networkConnectivityChanged) },
|
reinterpret_cast<void *>(networkConnectivityChanged) },
|
||||||
{ "behindCaptivePortalChanged", "(Z)V",
|
{ "genericInfoChanged", "(ZZ)V",
|
||||||
reinterpret_cast<void *>(behindCaptivePortalChanged) },
|
reinterpret_cast<void *>(genericInfoChanged) },
|
||||||
{ "transportMediumChanged", transportEnumSig.data(),
|
{ "transportMediumChanged", transportEnumSig.data(),
|
||||||
reinterpret_cast<void *>(transportMediumChangedCallback) },
|
reinterpret_cast<void *>(transportMediumChangedCallback) },
|
||||||
};
|
};
|
||||||
|
@ -75,6 +75,7 @@ Q_SIGNALS:
|
|||||||
void connectivityChanged(AndroidConnectivity connectivity);
|
void connectivityChanged(AndroidConnectivity connectivity);
|
||||||
void captivePortalChanged(bool state);
|
void captivePortalChanged(bool state);
|
||||||
void transportMediumChanged(AndroidTransport transport);
|
void transportMediumChanged(AndroidTransport transport);
|
||||||
|
void meteredChanged(bool state);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
friend struct AndroidConnectivityManagerInstance;
|
friend struct AndroidConnectivityManagerInstance;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user