summaryrefslogtreecommitdiff
path: root/platform/android/src/connectivity_listener.cpp
diff options
context:
space:
mode:
authorIvo van Dongen <info@ivovandongen.nl>2016-09-08 17:53:00 +0200
committerIvo van Dongen <info@ivovandongen.nl>2016-09-23 10:47:54 +0200
commit742d6d827567608f94b0743b7bac5dbef94724e3 (patch)
treeb42d617cf2e8ac60f7a91b339ef3fccccca02043 /platform/android/src/connectivity_listener.cpp
parent3ddb8dfc86753120d2ea2c3befdf2430c1c56562 (diff)
downloadqtlocation-mapboxgl-742d6d827567608f94b0743b7bac5dbef94724e3.tar.gz
[android] set connectivity state pro-actively
Diffstat (limited to 'platform/android/src/connectivity_listener.cpp')
-rw-r--r--platform/android/src/connectivity_listener.cpp43
1 files changed, 43 insertions, 0 deletions
diff --git a/platform/android/src/connectivity_listener.cpp b/platform/android/src/connectivity_listener.cpp
new file mode 100644
index 0000000000..df5c60a485
--- /dev/null
+++ b/platform/android/src/connectivity_listener.cpp
@@ -0,0 +1,43 @@
+#include "connectivity_listener.hpp"
+
+#include <mbgl/storage/network_status.hpp>
+#include <mbgl/platform/log.hpp>
+
+#include <jni/jni.hpp>
+
+namespace mbgl {
+namespace android {
+
+ /**
+ * Invoked when the construction is initiated from the jvm
+ */
+ ConnectivityListener::ConnectivityListener(jni::JNIEnv&) {}
+
+ ConnectivityListener::~ConnectivityListener() {}
+
+ void ConnectivityListener::onConnectivityStateChanged(jni::JNIEnv&, jni::jboolean connected) {
+ NetworkStatus::Set(connected ? NetworkStatus::Status::Online : NetworkStatus::Status::Offline);
+ }
+
+ jni::Class<ConnectivityListener> ConnectivityListener::javaClass;
+
+ void ConnectivityListener::registerNative(jni::JNIEnv& env) {
+ //Lookup the class
+ ConnectivityListener::javaClass = *jni::Class<ConnectivityListener>::Find(env).NewGlobalRef(env).release();
+
+ #define METHOD(MethodPtr, name) jni::MakeNativePeerMethod<decltype(MethodPtr), (MethodPtr)>(name)
+
+ //Register the peer
+ jni::RegisterNativePeer<ConnectivityListener>(
+ env,
+ ConnectivityListener::javaClass,
+ "nativePtr",
+ std::make_unique<ConnectivityListener, JNIEnv&>,
+ "initialize",
+ "finalize",
+ METHOD(&ConnectivityListener::onConnectivityStateChanged, "nativeOnConnectivityStateChanged")
+ );
+ }
+
+} //android
+} //mbgl \ No newline at end of file