Yandex MapKit не работает addTapListener с коллекцией

пытаюсь расставить слушатели кликов на все точки на карте из коллекции при помощи функции ниже, по моим ожиданиям при нажатии на маркер, должно выводится сообщение в лог. Но не происходит ничего. В функции ниже пробовал добавить слушатель каждый раз когда создаётся новая метка, хотя его можно повесить на всю коллекцию. Кто-нибудь сталкивался с таким, как решили?

fun placePointsOnMap() {

        val locationsDatabase = currentDatabase // База объектов с координатами
        val pinsCollection = mapView.mapWindow.map.mapObjects.addCollection()


        val bitmapImage = this.context?.getDrawable(R.drawable.red_location_pin_50)?.toBitmap()
        val imageProvider =
            ImageProvider.fromBitmap(
                bitmapImage
            )

        val tapListener = MapObjectTapListener() { mapObject, point ->
            Log.d("tapListener ", "You tap point")
            true
        }

        locationsDatabase.forEach { point ->
            val newPin = Point(point.coordinates.latitude, point.coordinates.longitude)
            pinsCollection.addPlacemark().apply {
                geometry = newPin
                setIcon(imageProvider)
                this.addTapListener(tapListener)
            }

        }
    }

Ответы (1 шт):

Автор решения: Сергей Веретенников

Разобрался с вопросом:

Создал коллекцию во фрагменте для хранения объектов карты, и при создании коллекции стал сохранять их туда вместе со слушателями:

private val placemarkMapObjectList: MutableList<PlacemarkMapObject> = mutableListOf()

также отдельно создал tapListener такого вида:

private val tapListener = MapObjectTapListener { mapObject,point ->
//TODO smth...

true
}

сама функция стала такой:

private fun placePointsOnMap() {
        val pointsCollection = currentDatabase
        val pinsCollection = mapView.mapWindow.map.mapObjects.addCollection()


        val bitmapImage = this.context?.getDrawable(R.drawable.red_location_pin_50)?.toBitmap()
        val imageProvider =
            ImageProvider.fromBitmap(
                bitmapImage
            )

        pointsCollection.forEach { point ->
            val newPin = Point(point.coordinates.latitude, point.coordinates.longitude)
            val newPlacemarkMapObject =
                pinsCollection.addPlacemark().apply {
                    geometry = newPin
                    setIcon(imageProvider)
                    this.addTapListener(tapListener)
                }
            placemarkMapObjectList.add(newPlacemarkMapObject)
        }
    }

Надеюсь, поможет кому-нибудь разобраться.

→ Ссылка