#pragma once #include #include #include "../file_source.hpp" #include "offline_region.hpp" #include "offline_region_definition.hpp" #include "../java_types.hpp" #include namespace mbgl { class DefaultFileSource; namespace android { class OfflineManager { public: class ListOfflineRegionsCallback { public: static constexpr auto Name() { return "com/mapbox/mapboxsdk/offline/OfflineManager$ListOfflineRegionsCallback";} static void onError(jni::JNIEnv&, const jni::Object&, std::exception_ptr); static void onList(jni::JNIEnv&, const jni::Object&, const jni::Object&, mbgl::OfflineRegions&); }; class CreateOfflineRegionCallback { public: static constexpr auto Name() { return "com/mapbox/mapboxsdk/offline/OfflineManager$CreateOfflineRegionCallback"; } static void onError(jni::JNIEnv&, const jni::Object&, std::exception_ptr); static void onCreate(jni::JNIEnv&, const jni::Object&, const jni::Object&, mbgl::OfflineRegion&); }; class MergeOfflineRegionsCallback { public: static constexpr auto Name() { return "com/mapbox/mapboxsdk/offline/OfflineManager$MergeOfflineRegionsCallback";} static void onError(jni::JNIEnv&, const jni::Object&, std::exception_ptr); static void onMerge(jni::JNIEnv&, const jni::Object&, const jni::Object&, mbgl::OfflineRegions&); }; static constexpr auto Name() { return "com/mapbox/mapboxsdk/offline/OfflineManager"; }; static void registerNative(jni::JNIEnv&); OfflineManager(jni::JNIEnv&, const jni::Object&); ~OfflineManager(); void setOfflineMapboxTileCountLimit(jni::JNIEnv&, jni::jlong limit); void listOfflineRegions(jni::JNIEnv&, const jni::Object&, const jni::Object& callback); void createOfflineRegion(jni::JNIEnv&, const jni::Object& jFileSource_, const jni::Object& definition, const jni::Array& metadata, const jni::Object& callback); void mergeOfflineRegions(jni::JNIEnv&, const jni::Object&, const jni::String&, const jni::Object&); void putResourceWithUrl(jni::JNIEnv&, const jni::String& url, const jni::Array& data, jlong modified, jlong expires, const jni::String& eTag, jboolean mustRevalidate); private: std::shared_ptr fileSource; }; } // namespace android } // namespace mbgl