Skip to content

Commit 69fb9a0

Browse files
Merge pull request #1707 from Infomaniak/format-threadAdapter-code
Reformat ThreadAdapter `onBindViewHolder(payload)`
2 parents 4fdd090 + 9988357 commit 69fb9a0

File tree

1 file changed

+19
-13
lines changed

1 file changed

+19
-13
lines changed

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

+19-13
Original file line numberDiff line numberDiff line change
@@ -142,24 +142,30 @@ class ThreadAdapter(
142142
val item = items[position]
143143
if (item is Message && holder is MessageViewHolder) with(holder.binding) {
144144
when (payload) {
145-
NotifyType.TOGGLE_LIGHT_MODE -> {
146-
isThemeTheSameMap[item.uid] = !isThemeTheSameMap[item.uid]!!
147-
holder.toggleContentAndQuoteTheme(item.uid)
148-
}
145+
NotifyType.TOGGLE_LIGHT_MODE -> holder.handleToggleLightModePayload(item.uid)
149146
NotifyType.RE_RENDER -> reloadVisibleWebView()
150-
NotifyType.FAILED_MESSAGE -> {
151-
messageLoader.isGone = true
152-
failedLoadingErrorMessage.isVisible = true
153-
if (isExpandedMap[item.uid] == true) onExpandedMessageLoaded(item.uid)
154-
}
155-
NotifyType.ONLY_REBIND_CALENDAR_ATTENDANCE -> {
156-
val attendees = item.latestCalendarEventResponse?.calendarEvent?.attendees ?: emptyList()
157-
holder.binding.calendarEvent.onlyUpdateAttendance(attendees)
158-
}
147+
NotifyType.FAILED_MESSAGE -> handleFailedMessagePayload(item.uid)
148+
NotifyType.ONLY_REBIND_CALENDAR_ATTENDANCE -> handleCalendarAttendancePayload(item)
159149
}
160150
}
161151
}.getOrDefault(Unit)
162152

153+
private fun MessageViewHolder.handleToggleLightModePayload(messageUid: String) {
154+
isThemeTheSameMap[messageUid] = !isThemeTheSameMap[messageUid]!!
155+
toggleContentAndQuoteTheme(messageUid)
156+
}
157+
158+
private fun ItemMessageBinding.handleFailedMessagePayload(messageUid: String) {
159+
messageLoader.isGone = true
160+
failedLoadingErrorMessage.isVisible = true
161+
if (isExpandedMap[messageUid] == true) onExpandedMessageLoaded(messageUid)
162+
}
163+
164+
private fun ItemMessageBinding.handleCalendarAttendancePayload(message: Message) {
165+
val attendees = message.latestCalendarEventResponse?.calendarEvent?.attendees ?: emptyList()
166+
calendarEvent.onlyUpdateAttendance(attendees)
167+
}
168+
163169
override fun onBindViewHolder(holder: ThreadAdapterViewHolder, position: Int) {
164170

165171
val item = items[position]

0 commit comments

Comments
 (0)