summaryrefslogtreecommitdiff
path: root/platform/android/src/storage/default_file_source_peer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/src/storage/default_file_source_peer.cpp')
-rw-r--r--platform/android/src/storage/default_file_source_peer.cpp54
1 files changed, 54 insertions, 0 deletions
diff --git a/platform/android/src/storage/default_file_source_peer.cpp b/platform/android/src/storage/default_file_source_peer.cpp
new file mode 100644
index 0000000000..6f8a36b78a
--- /dev/null
+++ b/platform/android/src/storage/default_file_source_peer.cpp
@@ -0,0 +1,54 @@
+#include "default_file_source_peer.hpp"
+
+#include <mbgl/storage/default_file_source.hpp>
+
+namespace mbgl {
+namespace android {
+
+jni::Class<DefaultFileSourcePeer> DefaultFileSourcePeer::javaClass;
+
+#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();
+
+ jni::RegisterNativePeer<DefaultFileSourcePeer>(
+ env, javaClass, "peer",
+ std::make_unique<DefaultFileSourcePeer, 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());
+}
+
+} // namespace android
+} // namespace mbgl