Docs
This commit is contained in:
parent
b5b3205971
commit
d036afc319
1 changed files with 10 additions and 2 deletions
|
@ -18,6 +18,9 @@ class FirebaseFeedDAO @Inject constructor(
|
||||||
private val subjectDAO: FireBaseSubjectDAO
|
private val subjectDAO: FireBaseSubjectDAO
|
||||||
) : FeedDAO {
|
) : FeedDAO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return a map as with key the day and value a list of feedentries for that day.
|
||||||
|
*/
|
||||||
override fun getFeedEntries(): Flow<Map<String, List<FeedEntry>>> {
|
override fun getFeedEntries(): Flow<Map<String, List<FeedEntry>>> {
|
||||||
return sessionDAO.getSessions().map {sessionReports ->
|
return sessionDAO.getSessions().map {sessionReports ->
|
||||||
sessionReports
|
sessionReports
|
||||||
|
@ -28,7 +31,6 @@ class FirebaseFeedDAO @Inject constructor(
|
||||||
entries
|
entries
|
||||||
.groupBy { it.taskId }
|
.groupBy { it.taskId }
|
||||||
.map { fuseFeedEntries(it.component2()) }
|
.map { fuseFeedEntries(it.component2()) }
|
||||||
.sortedByDescending { it.endTime }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -37,6 +39,10 @@ class FirebaseFeedDAO @Inject constructor(
|
||||||
return DateFormat.getDateInstance().format(entry.endTime.toDate())
|
return DateFormat.getDateInstance().format(entry.endTime.toDate())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Givin a list of entries referencing the same task, in the same day, fuse them into one
|
||||||
|
* feed-entry by adding the studytime and keeping the most recent end-timestamp
|
||||||
|
*/
|
||||||
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(
|
||||||
|
@ -49,7 +55,9 @@ class FirebaseFeedDAO @Inject constructor(
|
||||||
return if (t1 < t2) t2 else t1
|
return if (t1 < t2) t2 else t1
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convert a sessionReport to a feedEntry. Fetch Task and Subject to get names
|
||||||
|
*/
|
||||||
private suspend fun sessionToFeedEntry(sessionReport: SessionReport): FeedEntry {
|
private suspend fun sessionToFeedEntry(sessionReport: SessionReport): FeedEntry {
|
||||||
val subjectId: String = sessionReport.subjectId
|
val subjectId: String = sessionReport.subjectId
|
||||||
val taskId: String = sessionReport.taskId
|
val taskId: String = sessionReport.taskId
|
||||||
|
|
Reference in a new issue