Loading play-services-maps-core-mapbox/src/main/kotlin/org/microg/gms/maps/mapbox/model/BitmapDescriptorFactory.kt +20 −6 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ object BitmapDescriptorFactoryImpl : IBitmapDescriptorFactoryDelegate.Stub() { private var mapResources: Resources? = null private val maps = hashSetOf<MapboxMap>() private val bitmaps = hashMapOf<String, Bitmap>() private val missingBitmaps = hashMapOf<String, Bitmap>() private val refCount = hashMapOf<String, Int>() fun initialize(mapResources: Resources?, resources: Resources?) { Loading Loading @@ -115,13 +116,11 @@ object BitmapDescriptorFactoryImpl : IBitmapDescriptorFactoryDelegate.Stub() { } if (bitmap != null) { for (map in maps) { map.getStyle { runOnMainLooper { it.addImage(id, bitmap) } } synchronized(missingBitmaps) { missingBitmaps[id] = bitmap if (missingBitmaps.size == 1) runOnMainLooper(forceQueue = true) { postAddMissingBitmaps() } } } synchronized(refCount) { Loading @@ -131,6 +130,21 @@ object BitmapDescriptorFactoryImpl : IBitmapDescriptorFactoryDelegate.Stub() { return ObjectWrapper.wrap(descriptorCreator(id, bitmapSize(id))) } private fun postAddMissingBitmaps() { val missingPairs = synchronized(missingBitmaps) { HashMap(missingBitmaps).also { missingBitmaps.clear() } } for (map in maps) { map.getStyle { runOnMainLooper { Log.v(TAG, "registering ${missingPairs.size} bitmaps") it.addImages(missingPairs) } } } } override fun fromResource(resourceId: Int): IObjectWrapper = registerBitmap("resource-$resourceId") { val bitmap = BitmapFactory.decodeResource(resources, resourceId) if (bitmap == null) { Loading Loading
play-services-maps-core-mapbox/src/main/kotlin/org/microg/gms/maps/mapbox/model/BitmapDescriptorFactory.kt +20 −6 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ object BitmapDescriptorFactoryImpl : IBitmapDescriptorFactoryDelegate.Stub() { private var mapResources: Resources? = null private val maps = hashSetOf<MapboxMap>() private val bitmaps = hashMapOf<String, Bitmap>() private val missingBitmaps = hashMapOf<String, Bitmap>() private val refCount = hashMapOf<String, Int>() fun initialize(mapResources: Resources?, resources: Resources?) { Loading Loading @@ -115,13 +116,11 @@ object BitmapDescriptorFactoryImpl : IBitmapDescriptorFactoryDelegate.Stub() { } if (bitmap != null) { for (map in maps) { map.getStyle { runOnMainLooper { it.addImage(id, bitmap) } } synchronized(missingBitmaps) { missingBitmaps[id] = bitmap if (missingBitmaps.size == 1) runOnMainLooper(forceQueue = true) { postAddMissingBitmaps() } } } synchronized(refCount) { Loading @@ -131,6 +130,21 @@ object BitmapDescriptorFactoryImpl : IBitmapDescriptorFactoryDelegate.Stub() { return ObjectWrapper.wrap(descriptorCreator(id, bitmapSize(id))) } private fun postAddMissingBitmaps() { val missingPairs = synchronized(missingBitmaps) { HashMap(missingBitmaps).also { missingBitmaps.clear() } } for (map in maps) { map.getStyle { runOnMainLooper { Log.v(TAG, "registering ${missingPairs.size} bitmaps") it.addImages(missingPairs) } } } } override fun fromResource(resourceId: Int): IObjectWrapper = registerBitmap("resource-$resourceId") { val bitmap = BitmapFactory.decodeResource(resources, resourceId) if (bitmap == null) { Loading