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 {