@@ -142,24 +142,30 @@ class ThreadAdapter(
142
142
val item = items[position]
143
143
if (item is Message && holder is MessageViewHolder ) with (holder.binding) {
144
144
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)
149
146
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)
159
149
}
160
150
}
161
151
}.getOrDefault(Unit )
162
152
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
+
163
169
override fun onBindViewHolder (holder : ThreadAdapterViewHolder , position : Int ) {
164
170
165
171
val item = items[position]
0 commit comments