diff options
author | Ivo van Dongen <info@ivovandongen.nl> | 2016-09-08 17:53:00 +0200 |
---|---|---|
committer | Ivo van Dongen <info@ivovandongen.nl> | 2016-09-23 10:47:54 +0200 |
commit | 742d6d827567608f94b0743b7bac5dbef94724e3 (patch) | |
tree | b42d617cf2e8ac60f7a91b339ef3fccccca02043 /platform/android/src/connectivity_listener.cpp | |
parent | 3ddb8dfc86753120d2ea2c3befdf2430c1c56562 (diff) | |
download | qtlocation-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.cpp | 43 |
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 |