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
 | 
			
		||||
) : 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>>> {
 | 
			
		||||
        return sessionDAO.getSessions().map {sessionReports ->
 | 
			
		||||
            sessionReports
 | 
			
		||||
| 
						 | 
				
			
			@ -28,7 +31,6 @@ class FirebaseFeedDAO @Inject constructor(
 | 
			
		|||
                    entries
 | 
			
		||||
                    .groupBy { it.taskId }
 | 
			
		||||
                    .map { fuseFeedEntries(it.component2()) }
 | 
			
		||||
                    .sortedByDescending { it.endTime }
 | 
			
		||||
                }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
| 
						 | 
				
			
			@ -37,6 +39,10 @@ class FirebaseFeedDAO @Inject constructor(
 | 
			
		|||
        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 =
 | 
			
		||||
        entries.fold(entries[0]) { accEntry, newEntry ->
 | 
			
		||||
            accEntry.copy(
 | 
			
		||||
| 
						 | 
				
			
			@ -49,7 +55,9 @@ class FirebaseFeedDAO @Inject constructor(
 | 
			
		|||
        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 {
 | 
			
		||||
        val subjectId: String = sessionReport.subjectId
 | 
			
		||||
        val taskId: String = sessionReport.taskId
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in a new issue