summaryrefslogtreecommitdiffstats
path: root/src/plugins/networkinformation/android/wrapper/androidconnectivitymanager.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/networkinformation/android/wrapper/androidconnectivitymanager.h')
-rw-r--r--src/plugins/networkinformation/android/wrapper/androidconnectivitymanager.h54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/plugins/networkinformation/android/wrapper/androidconnectivitymanager.h b/src/plugins/networkinformation/android/wrapper/androidconnectivitymanager.h
new file mode 100644
index 0000000000..d15faf0e8e
--- /dev/null
+++ b/src/plugins/networkinformation/android/wrapper/androidconnectivitymanager.h
@@ -0,0 +1,54 @@
+// Copyright (C) 2021 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
+
+#ifndef ANDROIDCONNECTIVITYMANAGER_H
+#define ANDROIDCONNECTIVITYMANAGER_H
+
+#include <QObject>
+#include <QtCore/qjniobject.h>
+
+QT_BEGIN_NAMESPACE
+
+class AndroidConnectivityManager : public QObject
+{
+ Q_OBJECT
+public:
+ // Keep synchronized with AndroidConnectivity in QtAndroidNetworkInformation.java
+ enum class AndroidConnectivity { Connected, Unknown, Disconnected };
+ Q_ENUM(AndroidConnectivity);
+
+ // Keep synchronized with Transport in QtAndroidNetworkInformation.java
+ enum class AndroidTransport {
+ Unknown,
+ Bluetooth,
+ Cellular,
+ Ethernet,
+ LoWPAN,
+ Usb,
+ WiFi,
+ WiFiAware,
+ };
+ Q_ENUM(AndroidTransport);
+
+ static AndroidConnectivityManager *getInstance();
+ ~AndroidConnectivityManager();
+
+ inline bool isValid() const;
+
+Q_SIGNALS:
+ void connectivityChanged(AndroidConnectivity connectivity);
+ void captivePortalChanged(bool state);
+ void transportMediumChanged(AndroidTransport transport);
+ void meteredChanged(bool state);
+
+private:
+ friend struct AndroidConnectivityManagerInstance;
+ AndroidConnectivityManager();
+ bool registerNatives() const;
+
+ Q_DISABLE_COPY_MOVE(AndroidConnectivityManager);
+};
+
+QT_END_NAMESPACE
+
+#endif // ANDROIDCONNECTIVITYMANAGER_H