Enrique Ajin
06/22/2024, 1:27 PMinit {
getMainNews()
}
fun getMainNews() {
combine(
getAllTopNewsUseCase(pageSize = "10"),
getNewsByKeywordUseCase(keyword = keywordOne, pageSize = "15"),
getNewsByKeywordUseCase(keyword = keywordTwo, pageSize = "15"),
getNewsByKeywordUseCase(keyword = keywordThree, pageSize = "15"),
getNewsByKeywordUseCase(keyword = keywordFour, pageSize = "15"),
localState
) { topNews, newsByKeyword1, newsByKeyword2, newsByKeyword3, newsByKeyword4, localState ->
}.catch {
}.launchIn(viewModelScope)
}
Abhimanyu
06/22/2024, 1:43 PMgetNewsByKeywordUseCase
to get a list of keywords help?
getNewsByKeywordUseCase()
code would be required to analyse that.Enrique Ajin
06/22/2024, 1:52 PMGetNewsByKeywordUseCase
:
class GetNewsByKeywordUseCase @Inject constructor(
private val repository: NewsRepository
) {
operator fun invoke(keyword: String, pageSize: String): Flow<List<NewsItem>> = flow {
val news = repository.getNewsByKeyword(keyword, pageSize).articles
emit(news)
}
}
API method:
@GET("everything?" +
"apiKey=${BuildConfig.NEWS_API_KEY}&" +
"searchIn=title&" +
"language=en&" +
"sortBy=publishedAt")
suspend fun getNewsByKeyword(
@Query("q") keyword: String,
@Query("pageSize") pageSize: String
): NewsResponse
Abhimanyu
06/22/2024, 2:11 PMManel Martos
06/22/2024, 6:22 PM