Skip to content

Commit aea89e1

Browse files
Clean ThreadListAdapterCallback code
1 parent 09ffc09 commit aea89e1

File tree

5 files changed

+25
-16
lines changed

5 files changed

+25
-16
lines changed

.idea/codeStyles/Project.xml

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/src/main/java/com/infomaniak/mail/ui/MainViewModel.kt

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1047,16 +1047,16 @@ class MainViewModel @Inject constructor(
10471047
snackbarManager.postValue(appContext.getString(snackbarTitleRes))
10481048
}
10491049

1050-
private fun threadHasOnlyOneMessageLeftInCurrentFolder(threadUid: String): Boolean {
1051-
val folderId = currentFolderId ?: return false
1052-
return messageController.getMessageCountInThreadForFolder(threadUid, folderId, mailboxContentRealm()) == 1L
1053-
}
1054-
10551050
private fun shouldAutoAdvance(message: Message?, threadsUids: List<String>): Boolean {
10561051
val isWorkingWithThread = message == null
10571052
return isWorkingWithThread || threadHasOnlyOneMessageLeftInCurrentFolder(threadsUids.first())
10581053
}
10591054

1055+
private fun threadHasOnlyOneMessageLeftInCurrentFolder(threadUid: String): Boolean {
1056+
val folderId = currentFolderId ?: return false
1057+
return messageController.getMessageCountInThreadForFolder(threadUid, folderId, mailboxContentRealm()) == 1L
1058+
}
1059+
10601060
companion object {
10611061
private val TAG: String = MainViewModel::class.java.simpleName
10621062
private val DEFAULT_SELECTED_FOLDER = FolderRole.INBOX

app/src/main/java/com/infomaniak/mail/ui/main/folder/ThreadListAdapterCallback.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ import com.infomaniak.mail.data.models.thread.Thread
2121

2222
interface ThreadListAdapterCallback {
2323
var onSwipeFinished: (() -> Unit)?
24-
var onThreadClicked: ((thread: Thread) -> Unit)
24+
var onThreadClicked: (thread: Thread) -> Unit
2525
var onFlushClicked: ((dialogTitle: String) -> Unit)?
26-
var onLoadMoreClicked: (() -> Unit)?
27-
var onPositionClickedChanged: ((position: Int, previousPosition: Int) -> Unit)?
26+
var onLoadMoreClicked: () -> Unit
27+
var onPositionClickedChanged: (position: Int, previousPosition: Int) -> Unit
2828
}

app/src/main/java/com/infomaniak/mail/ui/main/folder/ThreadListFragment.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -286,8 +286,11 @@ class ThreadListFragment : TwoPaneFragment(), SwipeRefreshLayout.OnRefreshListen
286286
threadListAdapter(
287287
folderRole = mainViewModel.currentFolder.value?.role,
288288
threadListAdapterCallback = object : ThreadListAdapterCallback {
289+
289290
override var onSwipeFinished: (() -> Unit)? = { threadListViewModel.isRecoveringFinished.value = true }
291+
290292
override var onThreadClicked: (Thread) -> Unit = ::navigateToThread
293+
291294
override var onFlushClicked: ((dialogTitle: String) -> Unit)? = { dialogTitle ->
292295
val trackerName = when {
293296
isCurrentFolderRole(FolderRole.TRASH) -> "emptyTrash"
@@ -307,12 +310,13 @@ class ThreadListFragment : TwoPaneFragment(), SwipeRefreshLayout.OnRefreshListen
307310
},
308311
)
309312
}
310-
override var onLoadMoreClicked: (() -> Unit)? = {
313+
314+
override var onLoadMoreClicked: () -> Unit = {
311315
trackThreadListEvent("loadMore")
312316
mainViewModel.getOnePageOfOldMessages()
313317
}
314-
override var onPositionClickedChanged: ((position: Int, previousPosition: Int) -> Unit)? =
315-
::updateAutoAdvanceNaturalThread
318+
319+
override var onPositionClickedChanged: (Int, Int) -> Unit = ::updateAutoAdvanceNaturalThread
316320
},
317321
multiSelection = object : MultiSelectionListener<Thread> {
318322
override var isEnabled by mainViewModel::isMultiSelectOn

app/src/main/java/com/infomaniak/mail/ui/main/search/SearchFragment.kt

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,9 @@ class SearchFragment : TwoPaneFragment() {
150150
folderRole = null,
151151
isFolderNameVisible = true,
152152
threadListAdapterCallback = object : ThreadListAdapterCallback {
153+
153154
override var onSwipeFinished: (() -> Unit)? = null
155+
154156
override var onThreadClicked: (Thread) -> Unit = { thread ->
155157
with(searchViewModel) {
156158
if (!isLengthTooShort(currentSearchQuery)) history.value = currentSearchQuery
@@ -161,14 +163,16 @@ class SearchFragment : TwoPaneFragment() {
161163
navigateToThread(thread)
162164
}
163165
}
164-
override var onFlushClicked: ((dialogTitle: String) -> Unit)? = null
165-
override var onLoadMoreClicked: (() -> Unit)? = {
166+
167+
override var onFlushClicked: ((String) -> Unit)? = null
168+
169+
override var onLoadMoreClicked: () -> Unit = {
166170
trackThreadListEvent("loadMore")
167171
mainViewModel.getOnePageOfOldMessages()
168172
}
169-
override var onPositionClickedChanged: ((position: Int, previousPosition: Int) -> Unit)? =
170-
::updateAutoAdvanceNaturalThread
171-
}
173+
174+
override var onPositionClickedChanged: (Int, Int) -> Unit = ::updateAutoAdvanceNaturalThread
175+
},
172176
)
173177

174178
threadListAdapter.stateRestorationPolicy = StateRestorationPolicy.PREVENT_WHEN_EMPTY

0 commit comments

Comments
 (0)