From 1004f3c270be55679dd4cf4f244cb0282ac5439d Mon Sep 17 00:00:00 2001 From: Christian Balster Date: Sat, 27 Sep 2025 16:41:43 +0200 Subject: [PATCH] Fix NPE on configuration change otto doesn't like to be registered twice (cherry picked from commit 6dfee2afda167339c2e5b8e0e4ae00e7136d8231) --- .../criticalmaps/managers/LocationUpdateManager.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/de/stephanlindauer/criticalmaps/managers/LocationUpdateManager.java b/app/src/main/java/de/stephanlindauer/criticalmaps/managers/LocationUpdateManager.java index 7b2b8837..52d64a8a 100644 --- a/app/src/main/java/de/stephanlindauer/criticalmaps/managers/LocationUpdateManager.java +++ b/app/src/main/java/de/stephanlindauer/criticalmaps/managers/LocationUpdateManager.java @@ -37,6 +37,7 @@ public class LocationUpdateManager { private final PermissionCheckHandler permissionCheckHandler; private final App app; private boolean isUpdating = false; + private boolean isEventBusRegistered = false; private static final float LOCATION_REFRESH_DISTANCE = 20; //20 meters private static final long LOCATION_REFRESH_TIME = 12 * 1000; //12 seconds @@ -160,7 +161,11 @@ public void initialize() { } else { setStatusEvent(); } - eventBus.register(this); + + if(!isEventBusRegistered) { + eventBus.register(this); + isEventBusRegistered = true; + } // Short-circuit here: if no provider exists don't start listening if (noProviderExists) { @@ -232,6 +237,7 @@ public void handleShutdown() { } catch (IllegalArgumentException ignored) { // nothing we can do } + isEventBusRegistered = false; } private void publishNewLocation(Location location) {