From a36cc15325e3b07105dd35889a62a60f87651996 Mon Sep 17 00:00:00 2001 From: Petr Pokorny Date: Wed, 3 Mar 2021 18:05:07 +0100 Subject: [PATCH 1/2] Cherry pick from https://github.com/mapbox/mapbox-gl-native-android/pull/466/files resolves #22 --- .../java/com/mapbox/mapboxsdk/maps/MapView.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java index de33e8fcf..85c736605 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java @@ -525,21 +525,33 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback { @Override public boolean onKeyDown(int keyCode, @NonNull KeyEvent event) { + if (!isKeyDetectorInitialized()) { + return super.onKeyDown(keyCode, event); + } return mapKeyListener.onKeyDown(keyCode, event) || super.onKeyDown(keyCode, event); } @Override public boolean onKeyLongPress(int keyCode, KeyEvent event) { + if (!isKeyDetectorInitialized()) { + return super.onKeyLongPress(keyCode, event); + } return mapKeyListener.onKeyLongPress(keyCode, event) || super.onKeyLongPress(keyCode, event); } @Override public boolean onKeyUp(int keyCode, @NonNull KeyEvent event) { + if (!isKeyDetectorInitialized()) { + return super.onKeyUp(keyCode, event); + } return mapKeyListener.onKeyUp(keyCode, event) || super.onKeyUp(keyCode, event); } @Override public boolean onTrackballEvent(@NonNull MotionEvent event) { + if (!isKeyDetectorInitialized()) { + return super.onTrackballEvent(event); + } return mapKeyListener.onTrackballEvent(event) || super.onTrackballEvent(event); } @@ -1121,6 +1133,10 @@ public class MapView extends FrameLayout implements NativeMapView.ViewCallback { return mapGestureDetector != null; } + private boolean isKeyDetectorInitialized() { + return mapKeyListener != null; + } + @Nullable MapboxMap getMapboxMap() { return mapboxMap; From 5576e95536607e7b3799441433f5ff8f4db9017c Mon Sep 17 00:00:00 2001 From: Petr Pokorny Date: Wed, 3 Mar 2021 18:26:20 +0100 Subject: [PATCH 2/2] Changelog update --- platform/android/CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/platform/android/CHANGELOG.md b/platform/android/CHANGELOG.md index 051dda106..895365e87 100644 --- a/platform/android/CHANGELOG.md +++ b/platform/android/CHANGELOG.md @@ -9,6 +9,7 @@ Mapbox welcomes participation and contributions from everyone. Please read [`Con ### Bug Fixes * Fixed an issue where symbols flickered when zooming out. [#16](https://github.com/maplibre/maplibre-gl-native/issues/16) +* Fixes crash caused by NullPointerException MapKeyListener [#464](https://github.com/mapbox/mapbox-gl-native-android/issues/464), cherry picked from [#466](https://github.com/mapbox/mapbox-gl-native-android/pull/466) ### Other