Skip to content

Commit

Permalink
Change logic emplacement to natural advance mode
Browse files Browse the repository at this point in the history
  • Loading branch information
NicolasBourdin88 committed May 13, 2024
1 parent c9eca18 commit 4346281
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,8 @@ class ThreadListAdapter @Inject constructor(
private var onFlushClicked: ((dialogTitle: String) -> Unit)? = null
private var onLoadMoreClicked: (() -> Unit)? = null

private var onPositionClickedChanged: ((position: Int, previousPosition: Int) -> Unit)? = null

private var folderRole: FolderRole? = null
private var onSwipeFinished: (() -> Unit)? = null
private var multiSelection: MultiSelectionListener<Thread>? = null
Expand Down Expand Up @@ -119,6 +121,7 @@ class ThreadListAdapter @Inject constructor(
onThreadClicked: ((thread: Thread) -> Unit),
onFlushClicked: ((dialogTitle: String) -> Unit)? = null,
onLoadMoreClicked: (() -> Unit)? = null,
onPositionClickedChanged: ((position: Int, previousPosition: Int) -> Unit)? = null,
) {
this.folderRole = folderRole
this.onSwipeFinished = onSwipeFinished
Expand All @@ -127,6 +130,7 @@ class ThreadListAdapter @Inject constructor(
this.onThreadClicked = onThreadClicked
this.onFlushClicked = onFlushClicked
this.onLoadMoreClicked = onLoadMoreClicked
this.onPositionClickedChanged = onPositionClickedChanged
}

override fun onAttachedToRecyclerView(recyclerView: RecyclerView) {
Expand Down Expand Up @@ -300,11 +304,10 @@ class ThreadListAdapter @Inject constructor(
toggleMultiSelectedThread(thread)
} else {
previousThreadClickedPosition?.let { previousPosition ->
localSettings.autoAdvanceIntelligentMode = if (position > previousPosition) {
AutoAdvanceMode.FOLLOWING_THREAD
} else {
AutoAdvanceMode.PREVIOUS_THREAD
}
onPositionClickedChanged?.invoke(
position,
previousPosition
)
}

previousThreadClickedPosition = position
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -320,6 +320,13 @@ class ThreadListFragment : TwoPaneFragment(), SwipeRefreshLayout.OnRefreshListen
trackThreadListEvent("loadMore")
mainViewModel.getOnePageOfOldMessages()
},
onPositionClickedChanged = { currentPosition, previousPosition ->
localSettings.autoAdvanceIntelligentMode = if (currentPosition > previousPosition) {
LocalSettings.AutoAdvanceMode.FOLLOWING_THREAD
} else {
LocalSettings.AutoAdvanceMode.PREVIOUS_THREAD
}
}
)

threadListAdapter.stateRestorationPolicy = StateRestorationPolicy.PREVENT_WHEN_EMPTY
Expand Down

0 comments on commit 4346281

Please sign in to comment.