MangaPresenter: Fix incorrect range selection (#7709)

This commit is contained in:
Ivan Iskandar 2022-08-09 20:11:12 +07:00 committed by GitHub
parent b4e15263db
commit f7b11f2ce9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -753,13 +753,13 @@ class MangaPresenter(
fromLongPress: Boolean = false, fromLongPress: Boolean = false,
) { ) {
updateSuccessState { successState -> updateSuccessState { successState ->
val modifiedIndex = successState.chapters.indexOfFirst { it.chapter.id == item.chapter.id } val newChapters = successState.processedChapters.toMutableList().apply {
if (modifiedIndex < 0) return@updateSuccessState successState val modifiedIndex = successState.processedChapters.indexOfFirst { it == item }
if (modifiedIndex < 0) return@apply
val oldItem = successState.chapters[modifiedIndex] val oldItem = get(modifiedIndex)
if ((oldItem.selected && selected) || (!oldItem.selected && !selected)) return@updateSuccessState successState if ((oldItem.selected && selected) || (!oldItem.selected && !selected)) return@apply
val newChapters = successState.chapters.toMutableList().apply {
val firstSelection = none { it.selected } val firstSelection = none { it.selected }
var newItem = removeAt(modifiedIndex) var newItem = removeAt(modifiedIndex)
add(modifiedIndex, newItem.copy(selected = selected)) add(modifiedIndex, newItem.copy(selected = selected))