Merge pull request #35 from maplibre/android-slow-init-466

Avoid throwing null pointer exception on slow initialization
This commit is contained in:
Petr Pokorny
2021-03-03 19:51:19 +01:00
committed by GitHub
2 changed files with 17 additions and 0 deletions

View File

@@ -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)
* Fixed an issue where GPS puck keeps previous value when enabled. [#462]https://github.com/mapbox/mapbox-gl-native-android/issues/462, cherry picked from [#470](https://github.com/mapbox/mapbox-gl-native-android/pull/470)
### Other

View File

@@ -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;