#include #include #include "../jni/peer.hpp" namespace mbgl { namespace android { template <> constexpr auto Peer::Name() { return "com/mapbox/mapboxsdk/storage/DefaultFileSource"; } class Impl : public Peer { public: Impl(jni::JNIEnv& env, jni::String cachePath, jni::String assetRoot, jni::jlong maximumCacheSize) : Peer(jni::Make(env, cachePath), jni::Make(env, assetRoot), maximumCacheSize) { } void setAPIBaseURL(jni::JNIEnv& env, jni::String baseURL) { native->setAPIBaseURL(jni::Make(env, baseURL)); } jni::String getAPIBaseURL(jni::JNIEnv& env) { return jni::Make(env, native->getAPIBaseURL()); } void setAccessToken(jni::JNIEnv& env, jni::String accessToken) { native->setAccessToken(jni::Make(env, accessToken)); } jni::String getAccessToken(jni::JNIEnv& env) { return jni::Make(env, native->getAccessToken()); } }; #define NATIVE_METHOD(MethodPtr, name) \ jni::MakeNativePeerMethod(name) template <> void Peer::RegisterNative(jni::JNIEnv& env) { javaClass = *jni::Class>::Find(env).NewGlobalRef(env).release(); jni::RegisterNativePeer( env, javaClass, peer, std::make_unique, "initialize", "finalize", NATIVE_METHOD(&Impl::setAPIBaseURL, "setAPIBaseURL"), NATIVE_METHOD(&Impl::getAPIBaseURL, "getAPIBaseURL"), NATIVE_METHOD(&Impl::setAccessToken, "setAccessToken"), NATIVE_METHOD(&Impl::getAccessToken, "getAccessToken")); } } // namespace android } // namespace mbgl