#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"; }; static jni::Class javaClass; static void registerNative(jni::JNIEnv&); }; class OfflineRegionStatusCallback { public: static constexpr auto Name() { return "com/mapbox/mapboxsdk/offline/OfflineRegion$OfflineRegionStatusCallback"; }; static void onError(jni::JNIEnv&, jni::Object, std::exception_ptr); static void onStatus(jni::JNIEnv&, jni::Object, mbgl::optional); static jni::Class javaClass; static void registerNative(jni::JNIEnv&); }; class OfflineRegionDeleteCallback { public: static constexpr auto Name() { return "com/mapbox/mapboxsdk/offline/OfflineRegion$OfflineRegionDeleteCallback"; }; static void onError(jni::JNIEnv&, jni::Object, std::exception_ptr); static void onDelete(jni::JNIEnv&, jni::Object); static jni::Class javaClass; static void registerNative(jni::JNIEnv&); }; class OfflineRegionUpdateMetadataCallback { public: static constexpr auto Name() { return "com/mapbox/mapboxsdk/offline/OfflineRegion$OfflineRegionUpdateMetadataCallback"; }; static void onError(jni::JNIEnv&, jni::Object, std::exception_ptr); static void onUpdate(jni::JNIEnv&, jni::Object, mbgl::optional); static jni::Class javaClass; static void registerNative(jni::JNIEnv&); }; static constexpr auto Name() { return "com/mapbox/mapboxsdk/offline/OfflineRegion"; }; OfflineRegion(jni::JNIEnv&, jni::jlong, jni::Object); ~OfflineRegion(); void setOfflineRegionObserver(jni::JNIEnv&, jni::Object); void setOfflineRegionDownloadState(jni::JNIEnv&, jni::jint); void getOfflineRegionStatus(jni::JNIEnv&, jni::Object); void deleteOfflineRegion(jni::JNIEnv&, jni::Object); void updateOfflineRegionMetadata(jni::JNIEnv&, jni::Array, jni::Object); static jni::Object New(jni::JNIEnv&, jni::Object, mbgl::OfflineRegion); static jni::Array metadata(jni::JNIEnv&, mbgl::OfflineRegionMetadata); static mbgl::OfflineRegionMetadata metadata(jni::JNIEnv&, jni::Array); static jni::Class javaClass; static void registerNative(jni::JNIEnv&); private: std::unique_ptr region; mbgl::DefaultFileSource& fileSource; }; } // namespace android } // namespace mbgl