#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 {
 | 
			
		||||
 | 
			
		||||
    fun getFeedEntries(): Flow<List<FeedEntry>>
 | 
			
		||||
    fun getFeedEntries(): Flow<Map<String, List<FeedEntry>>>
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -1,5 +1,6 @@
 | 
			
		|||
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.SessionReport
 | 
			
		||||
import be.ugent.sel.studeez.data.local.models.task.Subject
 | 
			
		||||
| 
						 | 
				
			
			@ -17,16 +18,21 @@ class FirebaseFeedDAO @Inject constructor(
 | 
			
		|||
    private val subjectDAO: FireBaseSubjectDAO
 | 
			
		||||
) : FeedDAO {
 | 
			
		||||
 | 
			
		||||
    override fun getFeedEntries(): Flow<List<FeedEntry>> {
 | 
			
		||||
    override fun getFeedEntries(): Flow<Map<String, List<FeedEntry>>> {
 | 
			
		||||
        return sessionDAO.getSessions().map {sessionReports ->
 | 
			
		||||
            sessionReports
 | 
			
		||||
                .map { sessionReport ->  sessionToFeedEntry(sessionReport) }
 | 
			
		||||
                .groupBy { it.taskId }
 | 
			
		||||
                .map { fuseFeedEntries(it.component2()) }
 | 
			
		||||
                .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 =
 | 
			
		||||
        entries.fold(entries[0]) { accEntry, newEntry ->
 | 
			
		||||
            accEntry.copy(
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Reference in a new issue