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