Skip to content

Commit e701ce6

Browse files
Rename block into superCollapsedBlock
1 parent ba65364 commit e701ce6

File tree

2 files changed

+31
-19
lines changed

2 files changed

+31
-19
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -592,7 +592,7 @@ class ThreadFragment : Fragment() {
592592
}
593593

594594
private fun expandSuperCollapsedBlock() = with(threadViewModel) {
595-
block?.hasBeenClicked = true
595+
superCollapsedBlock?.hasBeenClicked = true
596596
reassignMessagesLive(twoPaneViewModel.currentThreadUid.value!!)
597597
}
598598

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

Lines changed: 30 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ class ThreadViewModel @Inject constructor(
8888

8989
var shouldMarkThreadAsSeen: Boolean = false
9090

91-
var block: SuperCollapsedBlock? = null
91+
var superCollapsedBlock: SuperCollapsedBlock? = null
9292

9393
private val mailbox by lazy { mailboxController.getMailbox(AccountUtils.currentUserId, AccountUtils.currentMailboxId)!! }
9494

@@ -100,7 +100,7 @@ class ThreadViewModel @Inject constructor(
100100
fun resetMessagesCache() {
101101
cachedSplitBodies = mutableMapOf()
102102
shouldMarkThreadAsSeen = false
103-
block = null
103+
superCollapsedBlock = null
104104
}
105105

106106
fun reassignThreadLive(threadUid: String) {
@@ -124,13 +124,13 @@ class ThreadViewModel @Inject constructor(
124124
threadUid: String,
125125
): Pair<ThreadAdapterItems, MessagesWithoutHeavyData> {
126126

127-
if (block == null) block = SuperCollapsedBlock()
127+
if (superCollapsedBlock == null) superCollapsedBlock = SuperCollapsedBlock()
128128

129129
val items = mutableListOf<Any>()
130130
val messagesToFetch = mutableListOf<Message>()
131131
val thread = messages.firstOrNull()?.threads?.firstOrNull { it.uid == threadUid } ?: return items to messagesToFetch
132132
val firstIndexAfterBlock = computeFirstIndexAfterBlock(thread, messages)
133-
block!!.shouldBeDisplayed = shouldBlockBeDisplayed(messages.count(), firstIndexAfterBlock)
133+
superCollapsedBlock!!.shouldBeDisplayed = shouldBlockBeDisplayed(messages.count(), firstIndexAfterBlock)
134134

135135
suspend fun addMessage(message: Message) {
136136
splitBody(message).let {
@@ -142,34 +142,46 @@ class ThreadViewModel @Inject constructor(
142142
suspend fun mapListWithNewBlock() {
143143
messages.forEachIndexed { index, message ->
144144
when (index) {
145-
0 -> addMessage(message) // First Message
146-
in 1..<firstIndexAfterBlock -> block!!.messagesUids.add(message.uid) // All Messages that should go in block
145+
0 -> { // First Message
146+
addMessage(message)
147+
}
148+
in 1..<firstIndexAfterBlock -> { // All Messages that should go in block
149+
superCollapsedBlock!!.messagesUids.add(message.uid)
150+
}
147151
firstIndexAfterBlock -> { // First Message not in block
148-
items += block!!
152+
items += superCollapsedBlock!!
149153
addMessage(message.apply { shouldHideDivider = true })
150154
}
151-
else -> addMessage(message) // All following Messages
155+
else -> { // All following Messages
156+
addMessage(message)
157+
}
152158
}
153159
}
154160
}
155161

156162
suspend fun mapListWithExistingBlock() {
157163

158164
var isStillInBlock = true
159-
val previousBlock = block!!.messagesUids.toSet()
165+
val previousBlock = superCollapsedBlock!!.messagesUids.toSet()
160166

161-
block!!.messagesUids.clear()
167+
superCollapsedBlock!!.messagesUids.clear()
162168

163169
messages.forEachIndexed { index, message ->
164170
when {
165-
index == 0 -> addMessage(message) // First Message
166-
previousBlock.contains(message.uid) && isStillInBlock -> block!!.messagesUids.add(message.uid) // All Messages already in block
171+
index == 0 -> { // First Message
172+
addMessage(message)
173+
}
174+
previousBlock.contains(message.uid) && isStillInBlock -> { // All Messages already in block
175+
superCollapsedBlock!!.messagesUids.add(message.uid)
176+
}
167177
!previousBlock.contains(message.uid) && isStillInBlock -> { // First Message not in block
168178
isStillInBlock = false
169-
items += block!!
179+
items += superCollapsedBlock!!
170180
addMessage(message.apply { shouldHideDivider = true })
171181
}
172-
else -> addMessage(message) // All following Messages
182+
else -> { // All following Messages
183+
addMessage(message)
184+
}
173185
}
174186
}
175187
}
@@ -178,8 +190,8 @@ class ThreadViewModel @Inject constructor(
178190
messages.forEach { addMessage(it) }
179191
}
180192

181-
if (block!!.shouldBeDisplayed) {
182-
if (block!!.isFirstTime()) mapListWithNewBlock() else mapListWithExistingBlock()
193+
if (superCollapsedBlock!!.shouldBeDisplayed) {
194+
if (superCollapsedBlock!!.isFirstTime()) mapListWithNewBlock() else mapListWithExistingBlock()
183195
} else {
184196
mapFullList()
185197
}
@@ -205,8 +217,8 @@ class ThreadViewModel @Inject constructor(
205217
*/
206218
private fun shouldBlockBeDisplayed(messagesCount: Int, firstIndexAfterBlock: Int): Boolean {
207219

208-
return block?.shouldBeDisplayed == true && // If the Block was hidden for any reason, we mustn't ever display it again
209-
block?.hasBeenClicked == false && // Block hasn't been expanded by the user
220+
return superCollapsedBlock?.shouldBeDisplayed == true && // If the Block was hidden for any reason, we mustn't ever display it again
221+
superCollapsedBlock?.hasBeenClicked == false && // Block hasn't been expanded by the user
210222
messagesCount >= SUPER_COLLAPSED_BLOCK_MINIMUM_MESSAGES_LIMIT && // At least 5 Messages in the Thread
211223
firstIndexAfterBlock >= SUPER_COLLAPSED_BLOCK_FIRST_INDEX_LIMIT // At least 2 Messages in the Block
212224
}

0 commit comments

Comments
 (0)