#pragma once #include #include "asset_manager.hpp" #include namespace mbgl { template class Actor; class ResourceTransform; namespace android { /** * Peer class for the Android FileSource holder. Ensures that a single DefaultFileSource is used */ class FileSource { public: static constexpr auto Name() { return "com/mapbox/mapboxsdk/storage/FileSource"; }; struct ResourceTransformCallback { static constexpr auto Name() { return "com/mapbox/mapboxsdk/storage/FileSource$ResourceTransformCallback"; } static std::string onURL(jni::JNIEnv&, const jni::Object&, int, std::string); }; FileSource(jni::JNIEnv&, const jni::String&, const jni::String&, const jni::Object&); ~FileSource(); jni::Local getAccessToken(jni::JNIEnv&); void setAccessToken(jni::JNIEnv&, const jni::String&); void setAPIBaseUrl(jni::JNIEnv&, const jni::String&); void setResourceTransform(jni::JNIEnv&, const jni::Object&); void setResourceCachePath(jni::JNIEnv&, const jni::String&); void resume(jni::JNIEnv&); void pause(jni::JNIEnv&); jni::jboolean isResumed(jni::JNIEnv&); static FileSource* getNativePeer(jni::JNIEnv&, const jni::Object&); static mbgl::DefaultFileSource& getDefaultFileSource(jni::JNIEnv&, const jni::Object&); static void registerNative(jni::JNIEnv&); private: const std::string DATABASE_FILE = "/mbgl-offline.db"; optional activationCounter; std::unique_ptr> resourceTransform; std::unique_ptr fileSource; }; } // namespace android } // namespace mbgl