Commit cb8ea3c 1 parent 115daa0 commit cb8ea3c Copy full SHA for cb8ea3c
File tree 3 files changed +10
-10
lines changed
app/src/main/java/com/infomaniak/mail/ui/main/thread
3 files changed +10
-10
lines changed Original file line number Diff line number Diff line change @@ -359,6 +359,11 @@ class ThreadFragment : Fragment() {
359
359
return @observe
360
360
}
361
361
362
+ if (threadState.shouldMarkThreadAsSeen == true ) {
363
+ threadState.shouldMarkThreadAsSeen = false
364
+ markThreadAsSeen(thread)
365
+ }
366
+
362
367
binding.threadSubject.movementMethod = LinkMovementMethod .getInstance()
363
368
364
369
binding.iconFavorite.apply {
@@ -378,11 +383,6 @@ class ThreadFragment : Fragment() {
378
383
messagesLive.observe(viewLifecycleOwner) { (items, messagesToFetch) ->
379
384
SentryLog .i(" UI" , " Received ${items.count()} messages" )
380
385
381
- if (threadState.shouldMarkThreadAsSeen) {
382
- threadState.shouldMarkThreadAsSeen = false
383
- markThreadAsSeen()
384
- }
385
-
386
386
if (items.isEmpty()) {
387
387
mainViewModel.deletedMessages.value = deletedMessagesUids
388
388
twoPaneViewModel.closeThread()
Original file line number Diff line number Diff line change @@ -37,7 +37,7 @@ class ThreadState {
37
37
val isCalendarEventExpandedMap: MutableMap <String , Boolean > = mutableMapOf ()
38
38
val treatedMessagesForCalendarEvent: MutableSet <String > = mutableSetOf ()
39
39
val cachedSplitBodies: MutableMap <String , SplitBody > = mutableMapOf ()
40
- var shouldMarkThreadAsSeen: Boolean = false
40
+ var shouldMarkThreadAsSeen: Boolean? = null
41
41
var superCollapsedBlock: SuperCollapsedBlock ? = null
42
42
43
43
fun reset () {
@@ -48,7 +48,7 @@ class ThreadState {
48
48
isCalendarEventExpandedMap.clear()
49
49
treatedMessagesForCalendarEvent.clear()
50
50
cachedSplitBodies.clear()
51
- shouldMarkThreadAsSeen = false
51
+ shouldMarkThreadAsSeen = null
52
52
superCollapsedBlock = null
53
53
}
54
54
}
Original file line number Diff line number Diff line change @@ -255,13 +255,13 @@ class ThreadViewModel @Inject constructor(
255
255
}
256
256
}
257
257
258
- threadState.shouldMarkThreadAsSeen = thread.unseenMessagesCount > 0
258
+ if (threadState.shouldMarkThreadAsSeen == null ) threadState.shouldMarkThreadAsSeen = thread.unseenMessagesCount > 0
259
259
260
260
emit(thread)
261
261
}
262
262
263
- fun markThreadAsSeen () = viewModelScope.launch(ioCoroutineContext) {
264
- threadLive.value?. let { sharedUtils.markAsSeen(mailbox, listOf (it)) }
263
+ fun markThreadAsSeen (thread : Thread ) = viewModelScope.launch(ioCoroutineContext) {
264
+ sharedUtils.markAsSeen(mailbox, listOf (thread))
265
265
}
266
266
267
267
private fun sendMatomoAndSentryAboutThreadMessagesCount (thread : Thread ) {
You can’t perform that action at this time.
0 commit comments