Add Initial PMTiles support (#2882)

Co-authored-by: Bart Louwers <bart.louwers@gmail.com>
This commit is contained in:
tdcosta100
2025-01-07 10:32:17 -03:00
committed by GitHub
parent c7e6b0c796
commit cf9f41cf61
41 changed files with 969 additions and 32 deletions

View File

@@ -91,9 +91,15 @@ void RegisterNativeHTTPRequest(jni::JNIEnv& env) {
HTTPRequest::HTTPRequest(jni::JNIEnv& env, const Resource& resource_, FileSource::Callback callback_)
: resource(resource_),
callback(callback_) {
std::string dataRangeStr;
std::string etagStr;
std::string modifiedStr;
if (resource.dataRange) {
dataRangeStr = std::string("bytes=") + std::to_string(resource.dataRange->first) + std::string("-") +
std::to_string(resource.dataRange->second);
}
if (resource.priorEtag) {
etagStr = *resource.priorEtag;
} else if (resource.priorModified) {
@@ -104,13 +110,14 @@ HTTPRequest::HTTPRequest(jni::JNIEnv& env, const Resource& resource_, FileSource
static auto& javaClass = jni::Class<HTTPRequest>::Singleton(env);
static auto constructor =
javaClass.GetConstructor<jni::jlong, jni::String, jni::String, jni::String, jni::jboolean>(env);
javaClass.GetConstructor<jni::jlong, jni::String, jni::String, jni::String, jni::String, jni::jboolean>(env);
javaRequest = jni::NewGlobal(env,
javaClass.New(env,
constructor,
reinterpret_cast<jlong>(this),
jni::Make<jni::String>(env, resource.url),
jni::Make<jni::String>(env, dataRangeStr),
jni::Make<jni::String>(env, etagStr),
jni::Make<jni::String>(env, modifiedStr),
(jboolean)(resource_.usage == Resource::Usage::Offline)));