Skip to content
This repository has been archived by the owner on Aug 8, 2023. It is now read-only.

Commit

Permalink
[android] Support mbgl::MapObserver
Browse files Browse the repository at this point in the history
  • Loading branch information
brunoabinader committed Mar 14, 2017
1 parent c6f878b commit 81b0a2b
Show file tree
Hide file tree
Showing 2 changed files with 82 additions and 1 deletion.
64 changes: 64 additions & 0 deletions platform/android/src/native_map_view.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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&) {
Expand Down
19 changes: 18 additions & 1 deletion platform/android/src/native_map_view.hpp
Original file line number Diff line number Diff line change
@@ -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>
Expand Down Expand Up @@ -51,7 +52,23 @@ class NativeMapView : public View, public Backend {
// 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 //

Expand Down

0 comments on commit 81b0a2b

Please sign in to comment.