Skip to content

Commit 4fdd090

Browse files
Merge pull request #1708 from Infomaniak/reset-calendar
Reset Calendar data when switching Threads
2 parents 2118bcb + eca15f3 commit 4fdd090

File tree

2 files changed

+8
-6
lines changed

2 files changed

+8
-6
lines changed

app/src/main/java/com/infomaniak/mail/ui/main/thread/ThreadFragment.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,7 @@ class ThreadFragment : Fragment() {
313313

314314
twoPaneViewModel.currentThreadUid.distinctUntilChanged().observeNotNull(viewLifecycleOwner) { threadUid ->
315315

316-
resetMessagesCache()
316+
resetMessagesRelatedCache()
317317
displayThreadView()
318318

319319
openThread(threadUid).observe(viewLifecycleOwner) { result ->

app/src/main/java/com/infomaniak/mail/ui/main/thread/ThreadViewModel.kt

+7-5
Original file line numberDiff line numberDiff line change
@@ -75,16 +75,18 @@ class ThreadViewModel @Inject constructor(
7575

7676
val quickActionBarClicks = SingleLiveEvent<QuickActionBarResult>()
7777

78+
//region Calendar Events
7879
private val treatedMessagesForCalendarEvent = mutableSetOf<String>()
7980
val isCalendarEventExpandedMap = mutableMapOf<String, Boolean>()
81+
//endregion
8082

8183
var deletedMessagesUids = mutableSetOf<String>()
8284
val failedMessagesUids = SingleLiveEvent<List<String>>()
8385

8486
val threadLive = MutableLiveData<Thread?>()
8587
val messagesLive = MutableLiveData<Pair<ThreadAdapterItems, MessagesWithoutHeavyData>>()
8688

87-
private var cachedSplitBodies = mutableMapOf<String, SplitBody>()
89+
private val cachedSplitBodies = mutableMapOf<String, SplitBody>()
8890

8991
var shouldMarkThreadAsSeen: Boolean = false
9092

@@ -97,8 +99,10 @@ class ThreadViewModel @Inject constructor(
9799
AccountUtils.currentMailboxId,
98100
).map { it.obj }.asLiveData(ioCoroutineContext)
99101

100-
fun resetMessagesCache() {
101-
cachedSplitBodies = mutableMapOf()
102+
fun resetMessagesRelatedCache() {
103+
treatedMessagesForCalendarEvent.clear()
104+
isCalendarEventExpandedMap.clear()
105+
cachedSplitBodies.clear()
102106
shouldMarkThreadAsSeen = false
103107
superCollapsedBlock = null
104108
}
@@ -394,8 +398,6 @@ class ThreadViewModel @Inject constructor(
394398
}
395399
}
396400

397-
fun getCalendarEventTreatedMessageCount(): Int = treatedMessagesForCalendarEvent.count()
398-
399401
fun replyToCalendarEvent(attendanceState: AttendanceState, message: Message) = liveData(ioCoroutineContext) {
400402
val calendarEventResponse = message.latestCalendarEventResponse!!
401403

0 commit comments

Comments
 (0)