Fix migration's selected sources order not preserved (#2993)

(cherry picked from commit 47816d4b218e6a62ef9fcd3097b6b0b8f2f95b17)

# Conflicts:
#	CHANGELOG.md
This commit is contained in:
AntsyLich
2026-02-25 17:04:24 +06:00
committed by Jobobby04
parent 73e4982ffb
commit 73258e9e05
@@ -331,13 +331,13 @@ class MigrationConfigScreen(private val mangaIds: Collection<Long>) : Screen() {
} }
} }
private fun updateSources(save: Boolean = true, action: (List<MigrationSource>) -> List<MigrationSource>) { private fun updateSources(action: (List<MigrationSource>) -> List<MigrationSource>) {
mutableState.update { state -> mutableState.update { state ->
val updatedSources = action(state.sources) val updatedSources = action(state.sources)
val includedSources = updatedSources.mapNotNull { if (!it.isSelected) null else it.id } val includedSources = updatedSources.mapNotNull { if (!it.isSelected) null else it.id }
state.copy(sources = updatedSources.sortedWith(sourcesComparator(includedSources))) state.copy(sources = updatedSources.sortedWith(sourcesComparator(includedSources)))
} }
if (save) saveSources() saveSources()
} }
private fun initSources() { private fun initSources() {
@@ -370,7 +370,9 @@ class MigrationConfigScreen(private val mangaIds: Collection<Long>) : Screen() {
} }
.toList() .toList()
updateSources(save = false) { sources } mutableState.update { state ->
state.copy(sources = sources.sortedWith(sourcesComparator(includedSources)))
}
} }
fun toggleSelection(id: Long) { fun toggleSelection(id: Long) {