summaryrefslogtreecommitdiff
path: root/platform/android/src
diff options
context:
space:
mode:
authorm-stephen <truestyle2005@163.com>2019-09-26 09:39:56 +0800
committerGitHub <noreply@github.com>2019-09-26 09:39:56 +0800
commitfc2c02bbc6abaef52077fe5e9e78f772e6009967 (patch)
tree112c13466a3b38714e9d151b6241066967727012 /platform/android/src
parentf131b9116f7ee07e8ef92a82c5df3c5aeba80f47 (diff)
parent7c2a7a263f9b3e90dd807ddd6d1dcbb783dec29b (diff)
downloadqtlocation-mapboxgl-fc2c02bbc6abaef52077fe5e9e78f772e6009967.tar.gz
Merge branch 'master' into stephen-improve-accuracy-for-camera
Diffstat (limited to 'platform/android/src')
-rw-r--r--platform/android/src/file_source.cpp7
-rw-r--r--platform/android/src/map/camera_position.cpp21
2 files changed, 15 insertions, 13 deletions
diff --git a/platform/android/src/file_source.cpp b/platform/android/src/file_source.cpp
index 05b57e5d1c..5f61aadba0 100644
--- a/platform/android/src/file_source.cpp
+++ b/platform/android/src/file_source.cpp
@@ -58,14 +58,15 @@ void FileSource::setAPIBaseUrl(jni::JNIEnv& env, const jni::String& url) {
void FileSource::setResourceTransform(jni::JNIEnv& env, const jni::Object<FileSource::ResourceTransformCallback>& transformCallback) {
if (transformCallback) {
auto global = jni::NewGlobal<jni::EnvAttachingDeleter>(env, transformCallback);
- resourceTransform = std::make_unique<Actor<ResourceTransform>>(*Scheduler::GetCurrent(),
+ resourceTransform = std::make_unique<Actor<ResourceTransform>>(
+ *Scheduler::GetCurrent(),
// Capture the ResourceTransformCallback object as a managed global into
// the lambda. It is released automatically when we're setting a new ResourceTransform in
// a subsequent call.
// Note: we're converting it to shared_ptr because this lambda is converted to a std::function,
// which requires copyability of its captured variables.
- [callback = std::make_shared<decltype(global)>(std::move(global))]
- (mbgl::Resource::Kind kind, const std::string&& url_) {
+ [callback = std::make_shared<decltype(global)>(std::move(global))](mbgl::Resource::Kind kind,
+ const std::string& url_) {
android::UniqueEnv _env = android::AttachEnv();
return FileSource::ResourceTransformCallback::onURL(*_env, *callback, int(kind), url_);
});
diff --git a/platform/android/src/map/camera_position.cpp b/platform/android/src/map/camera_position.cpp
index cbf5f2e408..4266b64fdf 100644
--- a/platform/android/src/map/camera_position.cpp
+++ b/platform/android/src/map/camera_position.cpp
@@ -44,19 +44,20 @@ mbgl::CameraOptions CameraPosition::getCameraOptions(jni::JNIEnv& env, const jni
static auto tilt = javaClass.GetField<jni::jdouble>(env, "tilt");
static auto zoom = javaClass.GetField<jni::jdouble>(env, "zoom");
static auto paddingField = javaClass.GetField<jni::Array<jni::jdouble>>(env, "padding");
- static auto padding = position.Get(env, paddingField);
+ auto padding = position.Get(env, paddingField);
auto center = LatLng::getLatLng(env, position.Get(env, target));
- return mbgl::CameraOptions {
- center,
- padding ? EdgeInsets {padding.Get(env, 1) * pixelRatio, padding.Get(env, 0) * pixelRatio,
- padding.Get(env, 3) * pixelRatio, padding.Get(env, 2) * pixelRatio} : (EdgeInsets) {},
- {},
- position.Get(env, zoom),
- position.Get(env, bearing),
- position.Get(env, tilt)
- };
+ return mbgl::CameraOptions{center,
+ padding && padding.Length(env) == 4 ? EdgeInsets{padding.Get(env, 1) * pixelRatio,
+ padding.Get(env, 0) * pixelRatio,
+ padding.Get(env, 3) * pixelRatio,
+ padding.Get(env, 2) * pixelRatio}
+ : (EdgeInsets){},
+ {},
+ position.Get(env, zoom),
+ position.Get(env, bearing),
+ position.Get(env, tilt)};
}
void CameraPosition::registerNative(jni::JNIEnv &env) {