#74 getFeedentries now returns a map with date as key and as value the entries for that day
This commit is contained in:
parent
3f6d416f39
commit
f3a8c93a3e
2 changed files with 8 additions and 2 deletions
|
@ -5,6 +5,6 @@ import kotlinx.coroutines.flow.Flow
|
||||||
|
|
||||||
interface FeedDAO {
|
interface FeedDAO {
|
||||||
|
|
||||||
fun getFeedEntries(): Flow<List<FeedEntry>>
|
fun getFeedEntries(): Flow<Map<String, List<FeedEntry>>>
|
||||||
|
|
||||||
}
|
}
|
|
@ -1,5 +1,6 @@
|
||||||
package be.ugent.sel.studeez.domain.implementation
|
package be.ugent.sel.studeez.domain.implementation
|
||||||
|
|
||||||
|
import android.icu.text.DateFormat
|
||||||
import be.ugent.sel.studeez.data.local.models.FeedEntry
|
import be.ugent.sel.studeez.data.local.models.FeedEntry
|
||||||
import be.ugent.sel.studeez.data.local.models.SessionReport
|
import be.ugent.sel.studeez.data.local.models.SessionReport
|
||||||
import be.ugent.sel.studeez.data.local.models.task.Subject
|
import be.ugent.sel.studeez.data.local.models.task.Subject
|
||||||
|
@ -17,16 +18,21 @@ class FirebaseFeedDAO @Inject constructor(
|
||||||
private val subjectDAO: FireBaseSubjectDAO
|
private val subjectDAO: FireBaseSubjectDAO
|
||||||
) : FeedDAO {
|
) : FeedDAO {
|
||||||
|
|
||||||
override fun getFeedEntries(): Flow<List<FeedEntry>> {
|
override fun getFeedEntries(): Flow<Map<String, List<FeedEntry>>> {
|
||||||
return sessionDAO.getSessions().map {sessionReports ->
|
return sessionDAO.getSessions().map {sessionReports ->
|
||||||
sessionReports
|
sessionReports
|
||||||
.map { sessionReport -> sessionToFeedEntry(sessionReport) }
|
.map { sessionReport -> sessionToFeedEntry(sessionReport) }
|
||||||
.groupBy { it.taskId }
|
.groupBy { it.taskId }
|
||||||
.map { fuseFeedEntries(it.component2()) }
|
.map { fuseFeedEntries(it.component2()) }
|
||||||
.sortedByDescending { it.endTime }
|
.sortedByDescending { it.endTime }
|
||||||
|
.groupBy { getFormattedTime(it) }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun getFormattedTime(entry: FeedEntry): String {
|
||||||
|
return DateFormat.getDateInstance().format(entry.endTime.toDate())
|
||||||
|
}
|
||||||
|
|
||||||
private fun fuseFeedEntries(entries: List<FeedEntry>): FeedEntry =
|
private fun fuseFeedEntries(entries: List<FeedEntry>): FeedEntry =
|
||||||
entries.fold(entries[0]) { accEntry, newEntry ->
|
entries.fold(entries[0]) { accEntry, newEntry ->
|
||||||
accEntry.copy(
|
accEntry.copy(
|
||||||
|
|
Reference in a new issue