summaryrefslogtreecommitdiffstats
path: root/tests/manual
diff options
context:
space:
mode:
authorMårten Nordheim <marten.nordheim@qt.io>2021-10-25 20:23:24 +0200
committerMårten Nordheim <marten.nordheim@qt.io>2021-11-04 12:02:25 +0100
commitbd52c1bba6f5a0b7e820596e566146b5cf8a4ee7 (patch)
tree728aa2010288daee21336992428d57e306f22282 /tests/manual
parent2148e1f0e6026ad7a87c7eec0362d1250c1f09e9 (diff)
QNI: Add API to check if connection is metered
This may be a useful factor in deciding whether or not you should perform communications over the network which are not purely essential. For example, if you have a logging mechanism you can delay uploading them until you are no longer on a metered network. Task-number: QTBUG-91024 Change-Id: I19d32f031a3893512dc440914133678004987fb1 Reviewed-by: Paul Wicking <paul.wicking@qt.io> Reviewed-by: Marc Mutz <marc.mutz@qt.io> Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Diffstat (limited to 'tests/manual')
-rw-r--r--tests/manual/qnetworkinformation/mainwindow.h12
-rw-r--r--tests/manual/qnetworkinformation/tst_qnetworkinformation.cpp8
2 files changed, 18 insertions, 2 deletions
diff --git a/tests/manual/qnetworkinformation/mainwindow.h b/tests/manual/qnetworkinformation/mainwindow.h
index 4ecc721b81..0426bc3714 100644
--- a/tests/manual/qnetworkinformation/mainwindow.h
+++ b/tests/manual/qnetworkinformation/mainwindow.h
@@ -74,13 +74,20 @@ public slots:
updateText();
}
+ void updateMetered(bool newValue)
+ {
+ metered = newValue;
+ updateText();
+ }
+
private:
void updateText()
{
QString str =
- QLatin1String("Reachability: %1\nBehind captive portal: %2\nTransport medium: %3")
+ QLatin1String("Reachability: %1\nBehind captive portal: %2\nTransport medium: %3"
+ "\nMetered: %4")
.arg(enumToString(reachability), QStringView(captive ? u"true" : u"false"),
- enumToString(transportMedium));
+ enumToString(transportMedium), metered ? u"true" : u"false");
label->setText(str);
}
@@ -88,6 +95,7 @@ private:
Reachability reachability = Reachability::Unknown;
TransportMedium transportMedium = TransportMedium::Unknown;
bool captive = false;
+ bool metered = false;
};
#endif
diff --git a/tests/manual/qnetworkinformation/tst_qnetworkinformation.cpp b/tests/manual/qnetworkinformation/tst_qnetworkinformation.cpp
index 8cac940874..fc34a36c3c 100644
--- a/tests/manual/qnetworkinformation/tst_qnetworkinformation.cpp
+++ b/tests/manual/qnetworkinformation/tst_qnetworkinformation.cpp
@@ -70,6 +70,11 @@ int main(int argc, char **argv)
qDebug() << "Updated, current transport medium:" << newMedium;
});
+ QObject::connect(info, &QNetworkInformation::isMeteredChanged,
+ [](bool metered) {
+ qDebug() << "Updated, metered:" << metered;
+ });
+
#ifdef MOBILE
// Some extra connections to update the window if we're on mobile
QObject::connect(info, &QNetworkInformation::reachabilityChanged, &window,
@@ -78,11 +83,14 @@ int main(int argc, char **argv)
&MainWindow::updateCaptiveState);
QObject::connect(info, &QNetworkInformation::transportMediumChanged, &window,
&MainWindow::updateTransportMedium);
+ QObject::connect(info, &QNetworkInformation::isMeteredChanged, &window,
+ &MainWindow::updateMetered);
#endif
qDebug() << "Initial reachability:" << info->reachability();
qDebug() << "Behind captive portal:" << info->isBehindCaptivePortal();
qDebug() << "Transport medium:" << info->transportMedium();
+ qDebug() << "Is metered:" << info->isMetered();
return app.exec();
}