diff --git a/app/src/main/java/eu/kanade/presentation/browse/FeedOrderScreen.kt b/app/src/main/java/eu/kanade/presentation/browse/FeedOrderScreen.kt index 6bdb645da..3f91b77c9 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/FeedOrderScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/browse/FeedOrderScreen.kt @@ -10,6 +10,7 @@ import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.remember +import androidx.compose.runtime.toMutableStateList import androidx.compose.ui.Modifier import eu.kanade.presentation.browse.components.FeedOrderListItem import eu.kanade.tachiyomi.ui.browse.feed.FeedScreenState @@ -39,7 +40,7 @@ fun FeedOrderScreen( val lazyListState = rememberLazyListState() val feeds = state.items - val feedsState = remember { feeds.toMutableList() } + val feedsState = remember { feeds.toMutableStateList() } val reorderableState = rememberReorderableLazyListState(lazyListState) { from, to -> val item = feedsState.removeAt(from.index) feedsState.add(to.index, item) diff --git a/app/src/main/java/eu/kanade/presentation/browse/SourceFeedOrderScreen.kt b/app/src/main/java/eu/kanade/presentation/browse/SourceFeedOrderScreen.kt index 3cd31f983..d29d39273 100644 --- a/app/src/main/java/eu/kanade/presentation/browse/SourceFeedOrderScreen.kt +++ b/app/src/main/java/eu/kanade/presentation/browse/SourceFeedOrderScreen.kt @@ -10,6 +10,7 @@ import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.remember +import androidx.compose.runtime.toMutableStateList import androidx.compose.ui.Modifier import eu.kanade.presentation.browse.components.FeedOrderListItem import eu.kanade.presentation.components.AppBar @@ -60,7 +61,7 @@ fun SourceFeedOrderScreen( val feeds = state.items .filterIsInstance() - val feedsState = remember { feeds.toMutableList() } + val feedsState = remember { feeds.toMutableStateList() } val reorderableState = rememberReorderableLazyListState(lazyListState, paddingValues) { from, to -> val item = feedsState.removeAt(from.index) feedsState.add(to.index, item) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/feed/FeedScreenModel.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/feed/FeedScreenModel.kt index c9ab48fd2..8267fffdb 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/browse/feed/FeedScreenModel.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/browse/feed/FeedScreenModel.kt @@ -93,7 +93,10 @@ open class FeedScreenModel( } mutableState.update { state -> state.copy( - items = items, + items = items + // KMK --> + .toImmutableList(), + // KMK <-- ) } getFeed(items) @@ -108,7 +111,10 @@ open class FeedScreenModel( val newItems = state.value.items?.map { it.copy(results = null) } ?: return@launchIO mutableState.update { state -> state.copy( - items = newItems, + items = newItems + // KMK --> + .toImmutableList(), + // KMK <-- ) } getFeed(newItems) @@ -306,7 +312,10 @@ open class FeedScreenModel( mutableState.update { state -> state.copy( - items = state.items?.map { if (it.feed.id == result.feed.id) result else it }, + items = state.items?.map { if (it.feed.id == result.feed.id) result else it } + // KMK --> + ?.toImmutableList(), + // KMK <-- ) } } @@ -379,7 +388,7 @@ open class FeedScreenModel( data class FeedScreenState( val dialog: FeedScreenModel.Dialog? = null, - val items: List? = null, + val items: ImmutableList? = null, ) { val isLoading get() = items == null