From 2ee52915fe4d2889ddac217678d40dca9beae176 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Wed, 16 Dec 2015 11:13:59 -0800 Subject: [PATCH] [ios, android] Add a method to invalidate custom layers, forcing a repaint --- include/mbgl/ios/MGLMapView+MGLCustomStyleLayerAdditions.h | 2 ++ .../src/main/java/com/mapbox/mapboxsdk/views/MapView.java | 5 +++++ platform/ios/MGLMapView.mm | 5 +++++ 3 files changed, 12 insertions(+) diff --git a/include/mbgl/ios/MGLMapView+MGLCustomStyleLayerAdditions.h b/include/mbgl/ios/MGLMapView+MGLCustomStyleLayerAdditions.h index afb21f9b6..3c74b0296 100644 --- a/include/mbgl/ios/MGLMapView+MGLCustomStyleLayerAdditions.h +++ b/include/mbgl/ios/MGLMapView+MGLCustomStyleLayerAdditions.h @@ -20,6 +20,8 @@ typedef void (^MGLCustomStyleLayerCompletionHandler)(void); - (void)insertCustomStyleLayerWithIdentifier:(NSString *)identifier preparationHandler:(MGLCustomStyleLayerPreparationHandler)preparation drawingHandler:(MGLCustomStyleLayerDrawingHandler)drawing completionHandler:(MGLCustomStyleLayerCompletionHandler)completion belowStyleLayerWithIdentifier:(nullable NSString *)otherIdentifier; +- (void)invalidateCustomStyleLayers; + @end NS_ASSUME_NONNULL_END diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/MapView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/MapView.java index f169e98b8..e36a08aed 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/MapView.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/MapView.java @@ -3792,6 +3792,11 @@ public final class MapView extends FrameLayout { mNativeMapView.addCustomLayer(customLayer, before); } + @UiThread + public void invalidateCustomLayers() { + mNativeMapView.update(); + } + private void setWidgetGravity(@NonNull final View view, int gravity) { LayoutParams layoutParams = (LayoutParams) view.getLayoutParams(); layoutParams.gravity = gravity; diff --git a/platform/ios/MGLMapView.mm b/platform/ios/MGLMapView.mm index e9657f561..ab18c1b4c 100644 --- a/platform/ios/MGLMapView.mm +++ b/platform/ios/MGLMapView.mm @@ -3675,4 +3675,9 @@ void MGLFinishCustomStyleLayer(void *context) context, otherIdentifier.UTF8String); } +- (void)invalidateCustomStyleLayers +{ + _mbglMap->update(mbgl::Update::Repaint); +} + @end