diff options
author | tobrun <tobrun.van.nuland@gmail.com> | 2019-11-01 10:13:22 +0100 |
---|---|---|
committer | tobrun <tobrun.van.nuland@gmail.com> | 2019-11-01 10:13:22 +0100 |
commit | 5825afac23d5cfbab3127cf5bdd09f2e815de5f4 (patch) | |
tree | 314ca31ef9a4278e0798b3de9115db2892bd8dac /platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/IconManagerResolver.java | |
parent | c94184c04742e935853a2e6b26d7fe1aa94c3250 (diff) | |
download | qtlocation-mapboxgl-5825afac23d5cfbab3127cf5bdd09f2e815de5f4.tar.gz |
Diffstat (limited to 'platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/IconManagerResolver.java')
-rw-r--r-- | platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/IconManagerResolver.java | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/IconManagerResolver.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/IconManagerResolver.java new file mode 100644 index 0000000000..3e226a7ec5 --- /dev/null +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/IconManagerResolver.java @@ -0,0 +1,42 @@ +package com.mapbox.mapboxsdk.maps; + +import com.mapbox.mapboxsdk.annotations.Icon; + +import java.lang.reflect.Field; +import java.util.HashMap; +import java.util.Map; + +import timber.log.Timber; + +public class IconManagerResolver { + + private IconManager iconManager; + + public IconManagerResolver(MapboxMap mapboxMap) { + try { + Field annotationManagerField = MapboxMap.class.getDeclaredField("annotationManager"); + annotationManagerField.setAccessible(true); + AnnotationManager annotationManager = (AnnotationManager) annotationManagerField.get(mapboxMap); + + Field iconManagerField = AnnotationManager.class.getDeclaredField("iconManager"); + iconManagerField.setAccessible(true); + iconManager = (IconManager) iconManagerField.get(annotationManager); + } catch (Exception exception) { + Timber.e(exception, "Could not create IconManagerResolver, unable to reflect."); + } + } + + @SuppressWarnings("unchecked") + public Map<Icon, Integer> getIconMap() { + try { + Field field = IconManager.class.getDeclaredField("iconMap"); + field.setAccessible(true); + return (Map<Icon, Integer>) field.get(iconManager); + } catch (NoSuchFieldException exception) { + Timber.e(exception, "Could not getIconMap, unable to reflect."); + } catch (IllegalAccessException exception) { + Timber.e(exception, "Could not getIconMap, unable to reflect."); + } + return new HashMap<>(); + } +} |