summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruno de Oliveira Abinader <bruno@mapbox.com>2017-03-13 16:22:07 +0200
committerBruno de Oliveira Abinader <bruno@mapbox.com>2017-03-15 14:53:32 +0200
commita07e6aee045b82e8695616fbd4b08107ddb34f75 (patch)
tree573825c46388f4e8f3d0e800cfb09cfb809e5f16
parent25f48a913d763730e1cac12223cb63439f9677c3 (diff)
downloadqtlocation-mapboxgl-a07e6aee045b82e8695616fbd4b08107ddb34f75.tar.gz
[android] Support mbgl::MapObserver
-rwxr-xr-xplatform/android/src/native_map_view.cpp64
-rwxr-xr-xplatform/android/src/native_map_view.hpp19
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 //