From 407c55dbdc3e278b4a68e522ef80f4ebdafec726 Mon Sep 17 00:00:00 2001 From: tarsin Date: Mon, 10 Jul 2023 18:36:38 +0800 Subject: [PATCH] Properly store GalleryPreviewScreen data --- .../hippo/ehviewer/ui/scene/GalleryPreviewScreen.kt | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryPreviewScreen.kt b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryPreviewScreen.kt index d508690b7..ed35d8c30 100644 --- a/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryPreviewScreen.kt +++ b/app/src/main/java/com/hippo/ehviewer/ui/scene/GalleryPreviewScreen.kt @@ -32,7 +32,9 @@ import androidx.compose.ui.res.dimensionResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.dp import androidx.fragment.app.Fragment -import androidx.lifecycle.lifecycleScope +import androidx.fragment.app.viewModels +import androidx.lifecycle.ViewModel +import androidx.lifecycle.viewModelScope import androidx.navigation.fragment.findNavController import androidx.paging.Pager import androidx.paging.PagingConfig @@ -68,7 +70,10 @@ import kotlinx.coroutines.launch import moe.tarsin.coroutines.runSuspendCatching import my.nanihadesuka.compose.LazyGridScrollbar +class VMStorage1 : ViewModel() + class GalleryPreviewScreen : Fragment() { + private val vm: VMStorage1 by viewModels() override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?) = ComposeView(inflater.context).apply { setMD3Content { val galleryDetail = remember { requireArguments().getParcelableCompat(KEY_GALLERY_DETAIL)!! } @@ -100,8 +105,8 @@ class GalleryPreviewScreen : Fragment() { result.first.first } - val previewPagesMap = rememberMemorized { galleryDetail.previewList.associateBy { it.position } as MutableMap } - val data = remember { + val data = rememberMemorized { + val previewPagesMap = galleryDetail.previewList.associateBy { it.position } as MutableMap Pager(PagingConfig(pageSize = pgSize, initialLoadSize = pgSize, jumpThreshold = 2 * pgSize)) { object : PagingSource() { override fun getRefreshKey(state: PagingState) = state.getClippedRefreshKey() @@ -123,7 +128,7 @@ class GalleryPreviewScreen : Fragment() { } override val jumpingSupported = true } - }.flow.cachedIn(lifecycleScope) + }.flow.cachedIn(vm.viewModelScope) }.collectAsLazyPagingItems() Scaffold(