From 569022795e71f4c78cf76b47dc3c0e3dc53f9626 Mon Sep 17 00:00:00 2001 From: Syer10 Date: Wed, 28 Apr 2021 14:12:23 -0400 Subject: [PATCH] Fix a few reader bugs --- src/main/kotlin/ca/gosyer/ui/reader/ReaderMenu.kt | 13 +++++-------- .../ca/gosyer/ui/reader/ReaderMenuViewModel.kt | 4 ++-- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/main/kotlin/ca/gosyer/ui/reader/ReaderMenu.kt b/src/main/kotlin/ca/gosyer/ui/reader/ReaderMenu.kt index 3eea49e9..5ab7f7b5 100644 --- a/src/main/kotlin/ca/gosyer/ui/reader/ReaderMenu.kt +++ b/src/main/kotlin/ca/gosyer/ui/reader/ReaderMenu.kt @@ -77,12 +77,8 @@ fun ReaderImage( imageModifier: Modifier = Modifier.fillMaxSize(), loadingModifier: Modifier = imageModifier, contentScale: ContentScale = ContentScale.Fit, - onImage: (Int) -> Unit, retry: (Int) -> Unit ) { - SideEffect { - onImage(imageIndex) - } if (drawable != null) { Image( @@ -102,7 +98,7 @@ fun PagerReader(readerVM: ReaderMenuViewModel, chapter: Chapter, currentPage: In PagerState( currentPage = currentPage, minPage = 1, - maxPage = chapter.pageCount + maxPage = chapter.pageCount - 1 ) } LaunchedEffect(state.currentPage) { @@ -111,14 +107,13 @@ fun PagerReader(readerVM: ReaderMenuViewModel, chapter: Chapter, currentPage: In } } Pager(state) { - val image = pages[this.currentPage - 1] + val image = pages[page - 1] ReaderImage( image.index, image.bitmap.collectAsState().value, image.loading.collectAsState().value, image.error.collectAsState().value, loadingModifier = pageModifier, - onImage = readerVM::progress, retry = readerVM::retry ) } @@ -128,13 +123,15 @@ fun PagerReader(readerVM: ReaderMenuViewModel, chapter: Chapter, currentPage: In fun ContinuesReader(readerVM: ReaderMenuViewModel, pages: List, pageModifier: Modifier) { LazyColumn { items(pages) { image -> + LaunchedEffect(image.index) { + readerVM.progress(image.index) + } ReaderImage( image.index, image.bitmap.collectAsState().value, image.loading.collectAsState().value, image.error.collectAsState().value, loadingModifier = pageModifier, - onImage = readerVM::progress, retry = readerVM::retry ) } diff --git a/src/main/kotlin/ca/gosyer/ui/reader/ReaderMenuViewModel.kt b/src/main/kotlin/ca/gosyer/ui/reader/ReaderMenuViewModel.kt index aa2ab02f..cf241988 100644 --- a/src/main/kotlin/ca/gosyer/ui/reader/ReaderMenuViewModel.kt +++ b/src/main/kotlin/ca/gosyer/ui/reader/ReaderMenuViewModel.kt @@ -50,8 +50,6 @@ class ReaderMenuViewModel @Inject constructor( scope.launch(Dispatchers.Default) { val chapter: Chapter _chapter.value = chapterHandler.getChapter(params.mangaId, params.chapterIndex).also { chapter = it } - _isLoading.value = false - val pageRange = 1..(chapter.pageCount ?: 1) _pages.value = listOf( *pageRange.map { @@ -63,6 +61,8 @@ class ReaderMenuViewModel @Inject constructor( ) }.toTypedArray() ) + _isLoading.value = false + val semaphore = Semaphore(3) pageRange.map { async {