Как получить список новостей при помощи VK SDK?

В моём приложении три фрагмента - в одном загружается список друзей, во втором список сообществ, в третьем - список новостей. Проблема возникла, когда начал работать с получением новостей.

С группами всё просто: в метод success передаётся result: GroupsGetObjectExtendedResponse, в котором есть val items: List<GroupsGroupFull>. У класса GroupsGroupFull есть все необходимые поля, характеризующие группу. Мы проходимся по списку, присваиваем поля экземпляров GroupsGroupFull нашему классу VKGroup, а потом выводим всё в RecyclerView:

private fun requestGroups() {
        VK.execute(GroupsService().groupsGetExtended(), object :
            VKApiCallback<GroupsGetObjectExtendedResponse> {
            override fun success(result: GroupsGetObjectExtendedResponse) {
                val groups = result.items
                if (!requireActivity().isFinishing && groups.isNotEmpty()) {
                    val vkGroups = groups.map { group ->
                        VKGroup(
                            id = group.id.value,
                            name = group.name ?: "",
                            photo = group.photo200 ?: ""
                        )
                    }
                    showGroups(vkGroups)
                }
            }

            override fun fail(error: Exception) {
                Log.e(TAG, error.toString())
            }
        })
    } 

С новостями всё сложнее: в метод success передаётся result: NewsfeedGetResponse, в котором тоже есть val items: List<NewsfeedNewsfeedItem>. Однако класс NewsfeedNewsfeedItem в отличие от класса группы представляет собой sealed class, в котором вложены многочисленные наследники: Соответственно, никаких полей у самой группы NewsfeedNewsfeedItem нет. Есть только поля наследников - получается, в news.map надо через when перечислять десятки наследников и для каждого типа новости обрабатывать отдельно? Или может новости вообще по-другому получать проще?

Код получения списка новостей:

private fun requestNews() {
        VK.execute(NewsfeedService().newsfeedGet(), object :
            VKApiCallback<NewsfeedGetResponse> {
            override fun success(result: NewsfeedGetResponse) {
                Log.d(TAG, "success news")
                val news = result.items
                if (!requireActivity().isFinishing && news?.isNotEmpty() == true) {
                    val vkNews = news.map { newsItem ->
                        VKNews(
                            text = newsItem.toString()
                        )
                    }
                    showGroups(vkNews)
                }
            }

            override fun fail(error: Exception) {
                Log.e(TAG, error.toString())
            }
        })
    }

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