fix db loading, add network log
This commit is contained in:
@@ -3,6 +3,12 @@ package ru.fincode.tsudesk.feature.schedule.data.local
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.combine
|
||||
import kotlinx.coroutines.flow.distinctUntilChanged
|
||||
import kotlinx.coroutines.flow.emitAll
|
||||
import kotlinx.coroutines.flow.first
|
||||
import kotlinx.coroutines.flow.flatMapLatest
|
||||
import kotlinx.coroutines.flow.flow
|
||||
import kotlinx.coroutines.flow.flowOf
|
||||
import kotlinx.coroutines.flow.map
|
||||
import kotlinx.coroutines.flow.onStart
|
||||
import ru.fincode.tsudesk.core.database.schedule.ScheduleDao
|
||||
import ru.fincode.tsudesk.feature.schedule.data.datasource.ScheduleLocalDataSource
|
||||
@@ -24,16 +30,19 @@ class ScheduleLocalDataSourceImpl @Inject constructor(
|
||||
return schedule.toDomain(lessons)
|
||||
}
|
||||
|
||||
override fun observeSchedule(key: String): Flow<ScheduleEntity?> {
|
||||
val scheduleFlow = dao.observeSchedule(key) // Flow<ScheduleCacheEntity?>
|
||||
val lessonsFlow = dao.observeLessons(key)
|
||||
.onStart { emit(emptyList()) }
|
||||
return scheduleFlow
|
||||
.combine(lessonsFlow) { schedule, lessons ->
|
||||
schedule?.toDomain(lessons)
|
||||
override fun observeSchedule(key: String): Flow<ScheduleEntity?> = flow {
|
||||
emitAll(
|
||||
dao.observeSchedule(key).map { schedule ->
|
||||
if (schedule == null) {
|
||||
null
|
||||
} else {
|
||||
val lessons = dao.observeLessons(key)
|
||||
.first()
|
||||
schedule.toDomain(lessons)
|
||||
}
|
||||
}
|
||||
.distinctUntilChanged()
|
||||
}
|
||||
)
|
||||
}.distinctUntilChanged()
|
||||
|
||||
override suspend fun removeSchedule(key: String) {
|
||||
dao.deleteLessonsByKey(key)
|
||||
|
||||
Reference in New Issue
Block a user