#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
	
	 lbarraga
						lbarraga