diff options
author | Bruno de Oliveira Abinader <bruno@mapbox.com> | 2017-03-13 16:22:07 +0200 |
---|---|---|
committer | Bruno de Oliveira Abinader <bruno@mapbox.com> | 2017-03-15 14:53:32 +0200 |
commit | a07e6aee045b82e8695616fbd4b08107ddb34f75 (patch) | |
tree | 573825c46388f4e8f3d0e800cfb09cfb809e5f16 /platform/android | |
parent | 25f48a913d763730e1cac12223cb63439f9677c3 (diff) | |
download | qtlocation-mapboxgl-a07e6aee045b82e8695616fbd4b08107ddb34f75.tar.gz |
[android] Support mbgl::MapObserver
Diffstat (limited to 'platform/android')
-rwxr-xr-x | platform/android/src/native_map_view.cpp | 64 | ||||
-rwxr-xr-x | platform/android/src/native_map_view.hpp | 19 |
2 files changed, 82 insertions, 1 deletions
diff --git a/platform/android/src/native_map_view.cpp b/platform/android/src/native_map_view.cpp index d6307ad80d..864d4c9abb 100755 --- a/platform/android/src/native_map_view.cpp +++ b/platform/android/src/native_map_view.cpp @@ -181,6 +181,70 @@ void NativeMapView::notifyMapChange(mbgl::MapChange change) { javaPeer->Call(*_env, onMapChanged, (int) change); } +void NativeMapView::onCameraWillChange(MapObserver::CameraChangeMode mode) { + if (mode == MapObserver::CameraChangeMode::Immediate) { + notifyMapChange(MapChange::MapChangeRegionWillChange); + } else { + notifyMapChange(MapChange::MapChangeRegionWillChangeAnimated); + } +} + +void NativeMapView::onCameraIsChanging() { + notifyMapChange(MapChange::MapChangeRegionIsChanging); +} + +void NativeMapView::onCameraDidChange(MapObserver::CameraChangeMode mode) { + if (mode == MapObserver::CameraChangeMode::Immediate) { + notifyMapChange(MapChange::MapChangeRegionDidChange); + } else { + notifyMapChange(MapChange::MapChangeRegionDidChangeAnimated); + } +} + +void NativeMapView::onWillStartLoadingMap() { + notifyMapChange(MapChange::MapChangeWillStartLoadingMap); +} + +void NativeMapView::onDidFinishLoadingMap() { + notifyMapChange(MapChange::MapChangeDidFinishLoadingMap); +} + +void NativeMapView::onDidFailLoadingMap() { + notifyMapChange(MapChange::MapChangeDidFailLoadingMap); +} + +void NativeMapView::onWillStartRenderingFrame() { + notifyMapChange(MapChange::MapChangeWillStartRenderingFrame); +} + +void NativeMapView::onDidFinishRenderingFrame(MapObserver::RenderMode mode) { + if (mode == MapObserver::RenderMode::Partial) { + notifyMapChange(MapChange::MapChangeDidFinishRenderingFrame); + } else { + notifyMapChange(MapChange::MapChangeDidFinishRenderingFrameFullyRendered); + } +} + +void NativeMapView::onWillStartRenderingMap() { + notifyMapChange(MapChange::MapChangeWillStartRenderingMap); +} + +void NativeMapView::onDidFinishRenderingMap(MapObserver::RenderMode mode) { + if (mode == MapObserver::RenderMode::Partial) { + notifyMapChange(MapChange::MapChangeDidFinishRenderingMap); + } else { + notifyMapChange(MapChange::MapChangeDidFinishRenderingMapFullyRendered); + } +} + +void NativeMapView::onDidFinishLoadingStyle() { + notifyMapChange(MapChange::MapChangeDidFinishLoadingStyle); +} + +void NativeMapView::onSourceDidChange() { + notifyMapChange(MapChange::MapChangeSourceDidChange); +} + // JNI Methods // void NativeMapView::initializeDisplay(jni::JNIEnv&) { diff --git a/platform/android/src/native_map_view.hpp b/platform/android/src/native_map_view.hpp index b7bf03402e..3b2610c76d 100755 --- a/platform/android/src/native_map_view.hpp +++ b/platform/android/src/native_map_view.hpp @@ -1,6 +1,7 @@ #pragma once #include <mbgl/map/backend.hpp> +#include <mbgl/map/change.hpp> #include <mbgl/map/camera.hpp> #include <mbgl/map/map.hpp> #include <mbgl/map/view.hpp> @@ -51,7 +52,23 @@ public: // mbgl::Backend // void invalidate() override; - void notifyMapChange(mbgl::MapChange) override; + + // Deprecated // + void notifyMapChange(mbgl::MapChange); + + // mbgl::Backend (mbgl::MapObserver) // + void onCameraWillChange(MapObserver::CameraChangeMode) override; + void onCameraIsChanging() override; + void onCameraDidChange(MapObserver::CameraChangeMode) override; + void onWillStartLoadingMap() override; + void onDidFinishLoadingMap() override; + void onDidFailLoadingMap() override; + void onWillStartRenderingFrame() override; + void onDidFinishRenderingFrame(MapObserver::RenderMode) override; + void onWillStartRenderingMap() override; + void onDidFinishRenderingMap(MapObserver::RenderMode) override; + void onDidFinishLoadingStyle() override; + void onSourceDidChange() override; // JNI // |