Skip to content

Commit 4b59d03

Browse files
FabianDevelKevinBoulongne
authored andcommitted
chores(PR): Apply suggestions
1 parent dcc61aa commit 4b59d03

File tree

5 files changed

+21
-25
lines changed

5 files changed

+21
-25
lines changed

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ class ThreadAdapter(
165165
val item = items[position]
166166

167167
holder.binding.root.tag = if (item is SuperCollapsedBlock || (item is Message && item.shouldHideDivider)) {
168-
holder.binding.context.getString(R.string.ignoreDivider)
168+
IGNORE_DIVIDER_TAG
169169
} else {
170170
null
171171
}
@@ -631,9 +631,7 @@ class ThreadAdapter(
631631
newItem is SuperCollapsedBlock &&
632632
newItem.messagesUids.count() == oldItem.messagesUids.count()
633633
}
634-
else -> {
635-
false
636-
}
634+
else -> false
637635
}
638636
}
639637

@@ -771,6 +769,8 @@ class ThreadAdapter(
771769

772770
companion object {
773771

772+
const val IGNORE_DIVIDER_TAG = "ignoreDividerTag"
773+
774774
private val contextMenuTypeForHitTestResultType = mapOf(
775775
HitTestResult.PHONE_TYPE to ContextMenuType.PHONE,
776776
HitTestResult.EMAIL_TYPE to ContextMenuType.EMAIL,

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -318,9 +318,7 @@ class ThreadFragment : Fragment() {
318318
addItemDecoration(
319319
DividerItemDecorator(
320320
divider = InsetDrawable(dividerDrawable(context), 0),
321-
shouldIgnoreView = { view ->
322-
view.tag == context.getString(R.string.ignoreDivider)
323-
},
321+
shouldIgnoreView = { view -> view.tag == ThreadAdapter.IGNORE_DIVIDER_TAG },
324322
),
325323
)
326324
recycledViewPool.setMaxRecycledViews(0, 0)
@@ -396,7 +394,8 @@ class ThreadFragment : Fragment() {
396394
}
397395

398396
threadAdapter.submitList(items)
399-
fetchMessagesHeavyData(messagesToFetch)
397+
if (messagesToFetch.isNotEmpty()) fetchMessagesHeavyData(messagesToFetch)
398+
400399
fetchCalendarEvents(items)
401400
}
402401
}

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

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ import kotlinx.coroutines.flow.map
5050
import javax.inject.Inject
5151
import kotlin.collections.set
5252

53+
typealias ThreadAdapterItems = List<Any>
54+
typealias MessagesWithoutHeavyData = List<Message>
55+
5356
@HiltViewModel
5457
class ThreadViewModel @Inject constructor(
5558
application: Application,
@@ -78,7 +81,7 @@ class ThreadViewModel @Inject constructor(
7881
val failedMessagesUids = SingleLiveEvent<List<String>>()
7982

8083
val threadLive = MutableLiveData<Thread?>()
81-
val messagesLive = MutableLiveData<Pair<List<Any>, List<Message>>>()
84+
val messagesLive = MutableLiveData<Pair<ThreadAdapterItems, MessagesWithoutHeavyData>>()
8285

8386
private var cachedSplitBodies = mutableMapOf<String, SplitBody>()
8487
private var superCollapsedBlock: MutableSet<String>? = null
@@ -110,21 +113,21 @@ class ThreadViewModel @Inject constructor(
110113
messageController.getSortedAndNotDeletedMessagesAsync(threadUid)
111114
?.map(::mapRealmMessagesResult)
112115
?.collect(messagesLive::postValue)
113-
}
114116
}
117+
}
115118

116-
private suspend fun mapRealmMessagesResult(results: ResultsChange<Message>): Pair<List<Any>, List<Message>> {
119+
private suspend fun mapRealmMessagesResult(results: ResultsChange<Message>): Pair<ThreadAdapterItems, MessagesWithoutHeavyData> {
120+
121+
val messagesCount = results.list.count()
122+
val items = mutableListOf<Any>()
123+
val messagesToFetch = mutableListOf<Message>()
117124

118125
val shouldDisplaySuperCollapsedBlock =
119-
results.list.count() >= SUPER_COLLAPSE_BLOCK_MESSAGES_LIMIT && !hasUserClickedTheSuperCollapsedBlock
126+
messagesCount >= SUPER_COLLAPSE_BLOCK_MESSAGES_LIMIT && !hasUserClickedTheSuperCollapsedBlock
120127
val shouldCreateSuperCollapsedBlock = (shouldDisplaySuperCollapsedBlock && superCollapsedBlock == null).also {
121128
if (it) superCollapsedBlock = mutableSetOf()
122129
}
123130

124-
val messagesCount = results.list.count()
125-
val items = mutableListOf<Any>()
126-
val messagesToFetch = mutableListOf<Message>()
127-
128131
suspend fun addMessage(message: Message) {
129132
splitBody(message).let {
130133
items += it
@@ -176,15 +179,11 @@ class ThreadViewModel @Inject constructor(
176179
}
177180

178181
suspend fun mapFullList() {
179-
results.list.map { addMessage(it) }
182+
results.list.forEach { addMessage(it) }
180183
}
181184

182185
if (shouldDisplaySuperCollapsedBlock) {
183-
if (shouldCreateSuperCollapsedBlock) {
184-
mapListWithNewSuperCollapsedBlock()
185-
} else {
186-
mapListWithExistingSuperCollapsedBlock()
187-
}
186+
if (shouldCreateSuperCollapsedBlock) mapListWithNewSuperCollapsedBlock() else mapListWithExistingSuperCollapsedBlock()
188187
} else {
189188
mapFullList()
190189
}

app/src/main/res/layout/item_super_collapsed_block.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@
1919
xmlns:app="http://schemas.android.com/apk/res-auto"
2020
xmlns:tools="http://schemas.android.com/tools"
2121
android:layout_width="match_parent"
22-
android:layout_height="wrap_content"
23-
android:paddingVertical="@dimen/marginStandardSmall">
22+
android:layout_height="wrap_content">
2423

2524
<View
2625
android:layout_width="match_parent"

app/src/main/res/values/strings.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
<string name="notification_channel_id_draft_service" translatable="false">draft_service_channel_id</string>
2222
<string name="notification_channel_id_general" translatable="false">general_channel_id</string>
2323
<string name="notification_channel_id_sync_messages_service" translatable="false">sync_messages_service_channel_id</string>
24-
<string name="ignoreDivider" translatable="false">IGNORE_DIVIDER</string>
2524

2625
<string name="accentColorBlueTitle">Blue</string>
2726
<string name="accentColorPinkTitle">Pink</string>

0 commit comments

Comments
 (0)