diff options
Diffstat (limited to 'platform/android/src/http_request_android.cpp')
-rw-r--r-- | platform/android/src/http_request_android.cpp | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/platform/android/src/http_request_android.cpp b/platform/android/src/http_request_android.cpp index 390334627a..2e2fd6408d 100644 --- a/platform/android/src/http_request_android.cpp +++ b/platform/android/src/http_request_android.cpp @@ -199,17 +199,18 @@ void HTTPAndroidRequest::onResponse(JNIEnv* env, int code, jstring /* message */ response->expires = util::parseTimePoint(mbgl::android::std_string_from_jstring(env, expires).c_str()); } - if (body != nullptr) { - jbyte* bodyData = env->GetByteArrayElements(body, nullptr); - response->data = std::make_shared<std::string>(reinterpret_cast<char*>(bodyData), env->GetArrayLength(body)); - env->ReleaseByteArrayElements(body, bodyData, JNI_ABORT); - } - if (code == 200) { - // Nothing to do; this is what we want + if (body != nullptr) { + jbyte* bodyData = env->GetByteArrayElements(body, nullptr); + response->data = std::make_shared<std::string>(reinterpret_cast<char*>(bodyData), env->GetArrayLength(body)); + env->ReleaseByteArrayElements(body, bodyData, JNI_ABORT); + } else { + response->data = std::make_shared<std::string>(); + } + } else if (code == 204 || (code == 404 && resource.kind == Resource::Kind::Tile)) { + response->noContent = true; } else if (code == 304) { response->notModified = true; - response->data.reset(); } else if (code == 404) { response->error = std::make_unique<Error>(Error::Reason::NotFound, "HTTP status code 404"); } else if (code >= 500 && code < 600) { @@ -248,6 +249,10 @@ std::unique_ptr<HTTPContextBase> HTTPContextBase::createContext() { return std::make_unique<HTTPAndroidContext>(); } +uint32_t HTTPContextBase::maximumConcurrentRequests() { + return 20; +} + void JNICALL nativeOnFailure(JNIEnv* env, jobject, jlong nativePtr, jint type, jstring message) { mbgl::Log::Debug(mbgl::Event::JNI, "nativeOnFailure"); assert(nativePtr != 0); |