File tree 3 files changed +10
-12
lines changed
app/src/main/java/com/infomaniak/mail/ui/main/thread
3 files changed +10
-12
lines changed Original file line number Diff line number Diff line change @@ -352,9 +352,9 @@ class ThreadFragment : Fragment() {
352
352
mainViewModel.toggleLightThemeForMessage.observe(viewLifecycleOwner, threadAdapter::toggleLightMode)
353
353
}
354
354
355
- private fun observeThreadLive () = with (threadViewModel) {
355
+ private fun observeThreadLive () {
356
356
357
- threadLive.observe(viewLifecycleOwner) { thread ->
357
+ threadViewModel. threadLive.observe(viewLifecycleOwner) { thread ->
358
358
359
359
if (thread == null ) {
360
360
twoPaneViewModel.closeThread()
@@ -378,11 +378,6 @@ class ThreadFragment : Fragment() {
378
378
messagesLive.observe(viewLifecycleOwner) { (items, messagesToFetch) ->
379
379
SentryLog .i(" UI" , " Received ${items.count()} messages" )
380
380
381
- if (threadState.shouldMarkThreadAsSeen) {
382
- threadState.shouldMarkThreadAsSeen = false
383
- markThreadAsSeen()
384
- }
385
-
386
381
if (items.isEmpty()) {
387
382
mainViewModel.deletedMessages.value = deletedMessagesUids
388
383
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 hasBeenMarkedAsSeen : Boolean = false
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
+ hasBeenMarkedAsSeen = false
52
52
superCollapsedBlock = null
53
53
}
54
54
}
Original file line number Diff line number Diff line change @@ -255,13 +255,16 @@ class ThreadViewModel @Inject constructor(
255
255
}
256
256
}
257
257
258
- threadState.shouldMarkThreadAsSeen = thread.unseenMessagesCount > 0
258
+ if (! threadState.hasBeenMarkedAsSeen) {
259
+ threadState.hasBeenMarkedAsSeen = true
260
+ if (thread.unseenMessagesCount > 0 ) markThreadAsSeen(thread)
261
+ }
259
262
260
263
emit(thread)
261
264
}
262
265
263
- fun markThreadAsSeen () = viewModelScope.launch(ioCoroutineContext) {
264
- threadLive.value?. let { sharedUtils.markAsSeen(mailbox, listOf (it)) }
266
+ private fun markThreadAsSeen (thread : Thread ) = viewModelScope.launch(ioCoroutineContext) {
267
+ sharedUtils.markAsSeen(mailbox, listOf (thread))
265
268
}
266
269
267
270
private fun sendMatomoAndSentryAboutThreadMessagesCount (thread : Thread ) {
You can’t perform that action at this time.
0 commit comments