|
|
@ -16,6 +16,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
package com.google.samples.apps.nowinandroid.core.data.repository
|
|
|
|
package com.google.samples.apps.nowinandroid.core.data.repository
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import androidx.tracing.trace
|
|
|
|
import com.google.samples.apps.nowinandroid.core.database.dao.NewsResourceDao
|
|
|
|
import com.google.samples.apps.nowinandroid.core.database.dao.NewsResourceDao
|
|
|
|
import com.google.samples.apps.nowinandroid.core.database.dao.NewsResourceFtsDao
|
|
|
|
import com.google.samples.apps.nowinandroid.core.database.dao.NewsResourceFtsDao
|
|
|
|
import com.google.samples.apps.nowinandroid.core.database.dao.TopicDao
|
|
|
|
import com.google.samples.apps.nowinandroid.core.database.dao.TopicDao
|
|
|
@ -78,10 +79,12 @@ internal class DefaultSearchContentsRepository @Inject constructor(
|
|
|
|
.distinctUntilChanged()
|
|
|
|
.distinctUntilChanged()
|
|
|
|
.flatMapLatest(topicDao::getTopicEntities)
|
|
|
|
.flatMapLatest(topicDao::getTopicEntities)
|
|
|
|
return combine(newsResourcesFlow, topicsFlow) { newsResources, topics ->
|
|
|
|
return combine(newsResourcesFlow, topicsFlow) { newsResources, topics ->
|
|
|
|
SearchResult(
|
|
|
|
trace("DefaultSearchContentsRepository.searchContents") {
|
|
|
|
topics = topics.map { it.asExternalModel() },
|
|
|
|
SearchResult(
|
|
|
|
newsResources = newsResources.map { it.asExternalModel() },
|
|
|
|
topics = topics.map { it.asExternalModel() },
|
|
|
|
)
|
|
|
|
newsResources = newsResources.map { it.asExternalModel() },
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
}
|
|
|
|
}.flowOn(defaultDispatcher)
|
|
|
|
}.flowOn(defaultDispatcher)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -90,6 +93,8 @@ internal class DefaultSearchContentsRepository @Inject constructor(
|
|
|
|
newsResourceFtsDao.getCount(),
|
|
|
|
newsResourceFtsDao.getCount(),
|
|
|
|
topicFtsDao.getCount(),
|
|
|
|
topicFtsDao.getCount(),
|
|
|
|
) { newsResourceCount, topicsCount ->
|
|
|
|
) { newsResourceCount, topicsCount ->
|
|
|
|
newsResourceCount + topicsCount
|
|
|
|
trace("DefaultSearchContentsRepository.getSearchContentsCount") {
|
|
|
|
|
|
|
|
newsResourceCount + topicsCount
|
|
|
|
|
|
|
|
}
|
|
|
|
}.flowOn(defaultDispatcher)
|
|
|
|
}.flowOn(defaultDispatcher)
|
|
|
|
}
|
|
|
|
}
|
|
|
|