Вы можете заменить предыдущий код на
return config.mainMenus.mapNotNull { mainMenu ->
config.subPages
.find{mainMenu.actions.firstOrNull()?.contentId?.equals(it.id)?:false}
?.let{menu->
MenuItem(mainMenu.type, mainMenu.titles, mainMenu.actions[0].type, menu.items).takeIf{menu.items?.isNotEmpty()==true}
}?:null
}
}
Второй может быть
val programs = cards.
filterIsInstance<Program>().
map { epgRepository.getProgramProgress(currentTime = currentTime, program = card)}
В этом случае вы сначала фильтруете коллекцию, получая только те элементы, которые являются программами, и только те, которые преобразованы в тип, возвращаемый функцией getProgramProcess