summaryrefslogtreecommitdiff
path: root/platform/android/src/storage
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/src/storage')
-rw-r--r--platform/android/src/storage/default_file_source_peer.cpp84
-rw-r--r--platform/android/src/storage/default_file_source_peer.hpp40
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