diff options
Diffstat (limited to 'platform/android/src')
-rwxr-xr-x | platform/android/src/native_map_view.cpp | 41 | ||||
-rwxr-xr-x | platform/android/src/native_map_view.hpp | 12 | ||||
-rw-r--r-- | platform/android/src/style/transition_options.cpp | 12 | ||||
-rw-r--r-- | platform/android/src/style/transition_options.hpp | 4 |
4 files changed, 35 insertions, 34 deletions
diff --git a/platform/android/src/native_map_view.cpp b/platform/android/src/native_map_view.cpp index c76b5c2610..2216b260ce 100755 --- a/platform/android/src/native_map_view.cpp +++ b/platform/android/src/native_map_view.cpp @@ -629,13 +629,11 @@ jni::Local<jni::Array<jlong>> NativeMapView::addPolygons(JNIEnv& env, const jni: return result; } -//TODO: Move to Polyline class and make native peer void NativeMapView::updatePolyline(JNIEnv& env, jlong polylineId, const jni::Object<Polyline>& polyline) { mbgl::LineAnnotation annotation = Polyline::toAnnotation(env, polyline); map->updateAnnotation(polylineId, annotation); } -//TODO: Move to Polygon class and make native peer void NativeMapView::updatePolygon(JNIEnv& env, jlong polygonId, const jni::Object<Polygon>& polygon) { mbgl::FillAnnotation annotation = Polygon::toAnnotation(env, polygon); map->updateAnnotation(polygonId, annotation); @@ -680,25 +678,18 @@ jdouble NativeMapView::getTopOffsetPixelsForAnnotationSymbol(JNIEnv& env, const return map->getTopOffsetPixelsForAnnotationImage(jni::Make<std::string>(env, symbolName)); } -jlong NativeMapView::getTransitionDuration(JNIEnv&) { +jni::Local<jni::Object<TransitionOptions>> NativeMapView::getTransitionOptions(JNIEnv& env) { const auto transitionOptions = map->getStyle().getTransitionOptions(); - return std::chrono::duration_cast<std::chrono::milliseconds>(transitionOptions.duration.value_or(mbgl::Duration::zero())).count(); + const auto duration = std::chrono::duration_cast<std::chrono::milliseconds>(transitionOptions.duration.value_or(mbgl::Duration::zero())).count(); + const auto delay = std::chrono::duration_cast<std::chrono::milliseconds>(transitionOptions.delay.value_or(mbgl::Duration::zero())).count(); + return TransitionOptions::fromTransitionOptions(env, duration, delay); } -void NativeMapView::setTransitionDuration(JNIEnv&, jlong duration) { - auto transitionOptions = map->getStyle().getTransitionOptions(); - transitionOptions.duration.emplace(mbgl::Milliseconds(duration)); - map->getStyle().setTransitionOptions(transitionOptions); -} - -jlong NativeMapView::getTransitionDelay(JNIEnv&) { - const auto transitionOptions = map->getStyle().getTransitionOptions(); - return std::chrono::duration_cast<std::chrono::milliseconds>(transitionOptions.delay.value_or(mbgl::Duration::zero())).count(); -} - -void NativeMapView::setTransitionDelay(JNIEnv&, jlong delay) { - auto transitionOptions = map->getStyle().getTransitionOptions(); - transitionOptions.delay.emplace(mbgl::Milliseconds(delay)); +void NativeMapView::setTransitionOptions(JNIEnv& env, const jni::Object<TransitionOptions>& options) { + const mbgl::style::TransitionOptions transitionOptions( + Duration(mbgl::Milliseconds(TransitionOptions::getDuration(env, options))), + Duration(mbgl::Milliseconds(TransitionOptions::getOffset(env, options))) + ); map->getStyle().setTransitionOptions(transitionOptions); } @@ -1012,11 +1003,11 @@ jni::Local<jni::Object<Bitmap>> NativeMapView::getImage(JNIEnv& env, const jni:: } } -void NativeMapView::setPrefetchesTiles(JNIEnv&, jni::jboolean enable) { +void NativeMapView::setPrefetchTiles(JNIEnv&, jni::jboolean enable) { map->setPrefetchZoomDelta(enable ? util::DEFAULT_PREFETCH_ZOOM_DELTA : uint8_t(0)); } -jni::jboolean NativeMapView::getPrefetchesTiles(JNIEnv&) { +jni::jboolean NativeMapView::getPrefetchTiles(JNIEnv&) { return jni::jboolean(map->getPrefetchZoomDelta() > 0); } @@ -1093,10 +1084,8 @@ void NativeMapView::registerNative(jni::JNIEnv& env) { METHOD(&NativeMapView::addAnnotationIcon, "nativeAddAnnotationIcon"), METHOD(&NativeMapView::removeAnnotationIcon, "nativeRemoveAnnotationIcon"), METHOD(&NativeMapView::getTopOffsetPixelsForAnnotationSymbol, "nativeGetTopOffsetPixelsForAnnotationSymbol"), - METHOD(&NativeMapView::getTransitionDuration, "nativeGetTransitionDuration"), - METHOD(&NativeMapView::setTransitionDuration, "nativeSetTransitionDuration"), - METHOD(&NativeMapView::getTransitionDelay, "nativeGetTransitionDelay"), - METHOD(&NativeMapView::setTransitionDelay, "nativeSetTransitionDelay"), + METHOD(&NativeMapView::getTransitionOptions, "nativeGetTransitionOptions"), + METHOD(&NativeMapView::setTransitionOptions, "nativeSetTransitionOptions"), METHOD(&NativeMapView::queryPointAnnotations, "nativeQueryPointAnnotations"), METHOD(&NativeMapView::queryShapeAnnotations, "nativeQueryShapeAnnotations"), METHOD(&NativeMapView::queryRenderedFeaturesForPoint, "nativeQueryRenderedFeaturesForPoint"), @@ -1118,8 +1107,8 @@ void NativeMapView::registerNative(jni::JNIEnv& env) { METHOD(&NativeMapView::removeImage, "nativeRemoveImage"), METHOD(&NativeMapView::getImage, "nativeGetImage"), METHOD(&NativeMapView::setLatLngBounds, "nativeSetLatLngBounds"), - METHOD(&NativeMapView::setPrefetchesTiles, "nativeSetPrefetchesTiles"), - METHOD(&NativeMapView::getPrefetchesTiles, "nativeGetPrefetchesTiles") + METHOD(&NativeMapView::setPrefetchTiles, "nativeSetPrefetchTiles"), + METHOD(&NativeMapView::getPrefetchTiles, "nativeGetPrefetchTiles") ); } diff --git a/platform/android/src/native_map_view.hpp b/platform/android/src/native_map_view.hpp index 82666a2475..1bb4f23cbe 100755 --- a/platform/android/src/native_map_view.hpp +++ b/platform/android/src/native_map_view.hpp @@ -187,13 +187,9 @@ public: jni::jdouble getTopOffsetPixelsForAnnotationSymbol(JNIEnv&, const jni::String&); - jni::jlong getTransitionDuration(JNIEnv&); + jni::Local<jni::Object<TransitionOptions>> getTransitionOptions(JNIEnv&); - void setTransitionDuration(JNIEnv&, jni::jlong); - - jni::jlong getTransitionDelay(JNIEnv&); - - void setTransitionDelay(JNIEnv&, jni::jlong); + void setTransitionOptions(JNIEnv&, const jni::Object<TransitionOptions>&); jni::Local<jni::Array<jlong>> queryPointAnnotations(JNIEnv&, const jni::Object<RectF>&); @@ -239,9 +235,9 @@ public: jni::Local<jni::Object<Bitmap>> getImage(JNIEnv&, const jni::String&); - void setPrefetchesTiles(JNIEnv&, jni::jboolean); + void setPrefetchTiles(JNIEnv&, jni::jboolean); - jni::jboolean getPrefetchesTiles(JNIEnv&); + jni::jboolean getPrefetchTiles(JNIEnv&); mbgl::Map& getMap(); diff --git a/platform/android/src/style/transition_options.cpp b/platform/android/src/style/transition_options.cpp index b908c37089..320f3d64b1 100644 --- a/platform/android/src/style/transition_options.cpp +++ b/platform/android/src/style/transition_options.cpp @@ -9,6 +9,18 @@ jni::Local<jni::Object<TransitionOptions>> TransitionOptions::fromTransitionOpti return javaClass.Call(env, method, duration, delay); } +long TransitionOptions::getDuration(jni::JNIEnv& env, const jni::Object<TransitionOptions>& transitionOptions) { + static auto& javaClass = jni::Class<TransitionOptions>::Singleton(env); + static auto field = javaClass.GetField<jlong>(env, "duration"); + return transitionOptions.Get(env, field); +} + +long TransitionOptions::getOffset(jni::JNIEnv& env, const jni::Object<TransitionOptions>& transitionOptions) { + static auto& javaClass = jni::Class<TransitionOptions>::Singleton(env); + static auto field = javaClass.GetField<jlong>(env, "offset"); + return transitionOptions.Get(env, field); +} + void TransitionOptions::registerNative(jni::JNIEnv& env) { jni::Class<TransitionOptions>::Singleton(env); } diff --git a/platform/android/src/style/transition_options.hpp b/platform/android/src/style/transition_options.hpp index 0bac43fa16..cca56afdb6 100644 --- a/platform/android/src/style/transition_options.hpp +++ b/platform/android/src/style/transition_options.hpp @@ -13,6 +13,10 @@ public: static jni::Local<jni::Object<TransitionOptions>> fromTransitionOptions(jni::JNIEnv&, jlong duration, jlong offset); + static long getDuration(jni::JNIEnv&, const jni::Object<TransitionOptions>&); + + static long getOffset(jni::JNIEnv&, const jni::Object<TransitionOptions>&); + static void registerNative(jni::JNIEnv&); }; |