From c8dad00be558183af30971f2bb44d17b22cafb93 Mon Sep 17 00:00:00 2001 From: Adrian Cojocaru Date: Wed, 29 Jul 2026 20:23:35 +0300 Subject: [PATCH] fix(android): Fix surface changed ANR (#4439) --- .../maps/renderer/surfaceview/MapLibreSurfaceView.java | 2 +- .../maps/renderer/surfaceview/MapLibreVulkanSurfaceView.java | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/platform/android/MapLibreAndroid/src/main/java/org/maplibre/android/maps/renderer/surfaceview/MapLibreSurfaceView.java b/platform/android/MapLibreAndroid/src/main/java/org/maplibre/android/maps/renderer/surfaceview/MapLibreSurfaceView.java index 04acbc50f..086853d40 100644 --- a/platform/android/MapLibreAndroid/src/main/java/org/maplibre/android/maps/renderer/surfaceview/MapLibreSurfaceView.java +++ b/platform/android/MapLibreAndroid/src/main/java/org/maplibre/android/maps/renderer/surfaceview/MapLibreSurfaceView.java @@ -488,7 +488,7 @@ public abstract class MapLibreSurfaceView extends SurfaceView implements Surface protected boolean requestPaused; protected boolean paused; protected boolean hasSurface; - protected boolean waitingForSurface; + protected boolean waitingForSurface = true; protected int width; protected int height; protected MapRenderer.RenderingRefreshMode renderMode; diff --git a/platform/android/MapLibreAndroid/src/vulkan/java/org/maplibre/android/maps/renderer/surfaceview/MapLibreVulkanSurfaceView.java b/platform/android/MapLibreAndroid/src/vulkan/java/org/maplibre/android/maps/renderer/surfaceview/MapLibreVulkanSurfaceView.java index 756223889..543620458 100644 --- a/platform/android/MapLibreAndroid/src/vulkan/java/org/maplibre/android/maps/renderer/surfaceview/MapLibreVulkanSurfaceView.java +++ b/platform/android/MapLibreAndroid/src/vulkan/java/org/maplibre/android/maps/renderer/surfaceview/MapLibreVulkanSurfaceView.java @@ -162,6 +162,11 @@ public class MapLibreVulkanSurfaceView extends MapLibreSurfaceView { } } + @Override + public boolean ableToDraw() { + return graphicsSurfaceCreated && readyToDraw(); + } + private boolean graphicsSurfaceCreated; private final WeakReference mSurfaceViewWeakRef;