diff options
Diffstat (limited to 'platform/android/src/storage')
-rw-r--r-- | platform/android/src/storage/default_file_source_peer.cpp | 84 | ||||
-rw-r--r-- | platform/android/src/storage/default_file_source_peer.hpp | 40 |
2 files changed, 45 insertions, 79 deletions
diff --git a/platform/android/src/storage/default_file_source_peer.cpp b/platform/android/src/storage/default_file_source_peer.cpp index 6f8a36b78a..968ec1c652 100644 --- a/platform/android/src/storage/default_file_source_peer.cpp +++ b/platform/android/src/storage/default_file_source_peer.cpp @@ -1,53 +1,59 @@ -#include "default_file_source_peer.hpp" - +#include <mbgl/storage/default_file_source.hpp> #include <mbgl/storage/default_file_source.hpp> +#include "../jni/peer.hpp" + namespace mbgl { namespace android { -jni::Class<DefaultFileSourcePeer> DefaultFileSourcePeer::javaClass; +template <> +constexpr auto Peer<DefaultFileSource>::Name() { + return "com/mapbox/mapboxsdk/storage/DefaultFileSource"; +} + +class Impl : public Peer<DefaultFileSource> { +public: + Impl(jni::JNIEnv& env, + jni::String cachePath, + jni::String assetRoot, + jni::jlong maximumCacheSize) + : Peer(jni::Make<std::string>(env, cachePath), + jni::Make<std::string>(env, assetRoot), + maximumCacheSize) { + } + + void setAPIBaseURL(jni::JNIEnv& env, jni::String baseURL) { + native->setAPIBaseURL(jni::Make<std::string>(env, baseURL)); + } + + jni::String getAPIBaseURL(jni::JNIEnv& env) { + return jni::Make<jni::String>(env, native->getAPIBaseURL()); + } + + void setAccessToken(jni::JNIEnv& env, jni::String accessToken) { + native->setAccessToken(jni::Make<std::string>(env, accessToken)); + } + + jni::String getAccessToken(jni::JNIEnv& env) { + return jni::Make<jni::String>(env, native->getAccessToken()); + } +}; #define NATIVE_METHOD(MethodPtr, name) \ jni::MakeNativePeerMethod<decltype(MethodPtr), (MethodPtr)>(name) -void DefaultFileSourcePeer::registerNative(jni::JNIEnv& env) { - javaClass = *jni::Class<DefaultFileSourcePeer>::Find(env).NewGlobalRef(env).release(); +template <> +void Peer<DefaultFileSource>::RegisterNative(jni::JNIEnv& env) { + javaClass = *jni::Class<Peer<DefaultFileSource>>::Find(env).NewGlobalRef(env).release(); - jni::RegisterNativePeer<DefaultFileSourcePeer>( - env, javaClass, "peer", - std::make_unique<DefaultFileSourcePeer, JNIEnv&, jni::String, jni::String, jni::jlong>, + jni::RegisterNativePeer<Impl>( + env, javaClass, peer, + std::make_unique<Impl, JNIEnv&, jni::String, jni::String, jni::jlong>, "initialize", "finalize", - NATIVE_METHOD(&DefaultFileSourcePeer::setAPIBaseURL, "setAPIBaseURL"), - NATIVE_METHOD(&DefaultFileSourcePeer::getAPIBaseURL, "getAPIBaseURL"), - NATIVE_METHOD(&DefaultFileSourcePeer::setAccessToken, "setAccessToken"), - NATIVE_METHOD(&DefaultFileSourcePeer::getAccessToken, "getAccessToken")); -} - -DefaultFileSourcePeer::DefaultFileSourcePeer(jni::JNIEnv& env, - jni::String cachePath, - jni::String assetRoot, - jni::jlong maximumCacheSize) - : native(std::make_unique<DefaultFileSource>(jni::Make<std::string>(env, cachePath), - jni::Make<std::string>(env, assetRoot), - maximumCacheSize)) { -} - -DefaultFileSourcePeer::~DefaultFileSourcePeer() = default; - -void DefaultFileSourcePeer::setAPIBaseURL(jni::JNIEnv& env, jni::String baseURL) { - native->setAPIBaseURL(jni::Make<std::string>(env, baseURL)); -} - -jni::String DefaultFileSourcePeer::getAPIBaseURL(jni::JNIEnv& env) { - return jni::Make<jni::String>(env, native->getAPIBaseURL()); -} - -void DefaultFileSourcePeer::setAccessToken(jni::JNIEnv& env, jni::String accessToken) { - native->setAccessToken(jni::Make<std::string>(env, accessToken)); -} - -jni::String DefaultFileSourcePeer::getAccessToken(jni::JNIEnv& env) { - return jni::Make<jni::String>(env, native->getAccessToken()); + NATIVE_METHOD(&Impl::setAPIBaseURL, "setAPIBaseURL"), + NATIVE_METHOD(&Impl::getAPIBaseURL, "getAPIBaseURL"), + NATIVE_METHOD(&Impl::setAccessToken, "setAccessToken"), + NATIVE_METHOD(&Impl::getAccessToken, "getAccessToken")); } } // namespace android diff --git a/platform/android/src/storage/default_file_source_peer.hpp b/platform/android/src/storage/default_file_source_peer.hpp deleted file mode 100644 index c0f60447b3..0000000000 --- a/platform/android/src/storage/default_file_source_peer.hpp +++ /dev/null @@ -1,40 +0,0 @@ -#pragma once - -#include <jni/jni.hpp> - -#include <memory> - -namespace mbgl { - -class DefaultFileSource; - -namespace android { - -class DefaultFileSourcePeer { -public: - static constexpr auto Name() { return "com/mapbox/mapboxsdk/storage/DefaultFileSource"; } - static jni::Class<DefaultFileSourcePeer> javaClass; - static void registerNative(jni::JNIEnv&); - - DefaultFileSourcePeer(jni::JNIEnv&, - jni::String cachePath, - jni::String assetRoot, - jni::jlong maximumCacheSize); - ~DefaultFileSourcePeer(); - - void setAPIBaseURL(jni::JNIEnv&, jni::String); - jni::String getAPIBaseURL(jni::JNIEnv&); - - void setAccessToken(jni::JNIEnv&, jni::String); - jni::String getAccessToken(jni::JNIEnv&); - - DefaultFileSource& getFileSource() { - return *native; - } - -private: - const std::unique_ptr<DefaultFileSource> native; -}; - -} // namespace android -} // namespace mbgl |