#pragma once #include #include #include "../file_source.hpp" #include namespace mbgl { namespace android { class OfflineRegion { public: class OfflineRegionObserver { public: static constexpr auto Name() { return "com/mapbox/mapboxsdk/offline/OfflineRegion$OfflineRegionObserver"; }; }; class OfflineRegionStatusCallback { public: static constexpr auto Name() { return "com/mapbox/mapboxsdk/offline/OfflineRegion$OfflineRegionStatusCallback"; }; static void onError(jni::JNIEnv&, const jni::Object&, std::exception_ptr); static void onStatus(jni::JNIEnv&, const jni::Object&, mbgl::optional); }; class OfflineRegionDeleteCallback { public: static constexpr auto Name() { return "com/mapbox/mapboxsdk/offline/OfflineRegion$OfflineRegionDeleteCallback"; }; static void onError(jni::JNIEnv&, const jni::Object&, std::exception_ptr); static void onDelete(jni::JNIEnv&, const jni::Object&); }; class OfflineRegionUpdateMetadataCallback { public: static constexpr auto Name() { return "com/mapbox/mapboxsdk/offline/OfflineRegion$OfflineRegionUpdateMetadataCallback"; }; static void onError(jni::JNIEnv&, const jni::Object&, std::exception_ptr); static void onUpdate(jni::JNIEnv&, const jni::Object&, mbgl::optional); }; static constexpr auto Name() { return "com/mapbox/mapboxsdk/offline/OfflineRegion"; }; OfflineRegion(jni::JNIEnv&, jni::jlong, const jni::Object&); ~OfflineRegion(); void setOfflineRegionObserver(jni::JNIEnv&, const jni::Object&); void setOfflineRegionDownloadState(jni::JNIEnv&, jni::jint); void getOfflineRegionStatus(jni::JNIEnv&, const jni::Object&); void deleteOfflineRegion(jni::JNIEnv&, const jni::Object&); void updateOfflineRegionMetadata(jni::JNIEnv&, const jni::Array&, const jni::Object&); static jni::Local> New(jni::JNIEnv&, const jni::Object&, mbgl::OfflineRegion); static jni::Local> metadata(jni::JNIEnv&, mbgl::OfflineRegionMetadata); static mbgl::OfflineRegionMetadata metadata(jni::JNIEnv&, const jni::Array&); static void registerNative(jni::JNIEnv&); private: std::unique_ptr region; std::shared_ptr fileSource; }; } // namespace android } // namespace mbgl