Browse Source

Avoid initial loading indicator on book info

HapeLee 4 tháng trước cách đây
mục cha
commit
a5516245fe

+ 1 - 1
app/src/main/java/io/legado/app/ui/book/info/BookInfoContract.kt

@@ -25,7 +25,7 @@ data class BookInfoUiState(
     val inBookshelf: Boolean = false,
     val inBookshelf: Boolean = false,
     val bookSource: BookInfoSourceUi? = null,
     val bookSource: BookInfoSourceUi? = null,
     val relatedBooks: ImmutableList<RelatedBooksUi> = persistentListOf(),
     val relatedBooks: ImmutableList<RelatedBooksUi> = persistentListOf(),
-    val isTocLoading: Boolean = true,
+    val isTocLoading: Boolean = false,
     val isBusy: Boolean = false,
     val isBusy: Boolean = false,
     val deleteAlertEnabled: Boolean = true,
     val deleteAlertEnabled: Boolean = true,
     val deleteOriginal: Boolean = false,
     val deleteOriginal: Boolean = false,

+ 1 - 3
app/src/main/java/io/legado/app/ui/book/info/BookInfoScreen.kt

@@ -182,9 +182,7 @@ private fun BookInfoScreenContent(
     ) { paddingValues ->
     ) { paddingValues ->
         val book = state.book
         val book = state.book
         if (book == null) {
         if (book == null) {
-            Box(modifier = Modifier.fillMaxSize(), contentAlignment = Alignment.Center) {
-                AppCircularProgressIndicator()
-            }
+            Box(modifier = Modifier.fillMaxSize())
         } else {
         } else {
             Box(modifier = Modifier.fillMaxSize()) {
             Box(modifier = Modifier.fillMaxSize()) {
                 BookInfoBackdrop(
                 BookInfoBackdrop(

+ 12 - 10
app/src/main/java/io/legado/app/ui/book/info/BookInfoViewModel.kt

@@ -705,13 +705,14 @@ class BookInfoViewModel(
         canReName: Boolean = true,
         canReName: Boolean = true,
         runPreUpdateJs: Boolean = true,
         runPreUpdateJs: Boolean = true,
         scope: CoroutineScope = viewModelScope,
         scope: CoroutineScope = viewModelScope,
+        showLoading: Boolean = true,
     ) {
     ) {
-        syncUiState(isTocLoading = true)
+        syncUiState(isTocLoading = showLoading)
         if (book.isLocal) {
         if (book.isLocal) {
             LocalBook.upBookInfo(book)
             LocalBook.upBookInfo(book)
             currentBook = book
             currentBook = book
-            syncUiState(isTocLoading = true)
-            loadChapter(book)
+            syncUiState(isTocLoading = showLoading)
+            loadChapter(book, showLoading = showLoading)
         } else {
         } else {
             val source = bookSource ?: run {
             val source = bookSource ?: run {
                 currentChapterList = emptyList()
                 currentChapterList = emptyList()
@@ -730,14 +731,14 @@ class BookInfoViewModel(
                     if (inBookshelf) {
                     if (inBookshelf) {
                         loadedBook.save()
                         loadedBook.save()
                     }
                     }
-                    syncUiState(isTocLoading = true)
+                    syncUiState(isTocLoading = showLoading)
                     refreshMeta(loadedBook)
                     refreshMeta(loadedBook)
                     if (loadedBook.isWebFile) {
                     if (loadedBook.isWebFile) {
                         loadWebFile(loadedBook)
                         loadWebFile(loadedBook)
                         currentChapterList = emptyList()
                         currentChapterList = emptyList()
                         syncUiState(isTocLoading = false)
                         syncUiState(isTocLoading = false)
                     } else {
                     } else {
-                        loadChapter(loadedBook, runPreUpdateJs)
+                        loadChapter(loadedBook, runPreUpdateJs, showLoading = showLoading)
                     }
                     }
                     scheduleRelatedBooksLoad(loadedBook, source)
                     scheduleRelatedBooksLoad(loadedBook, source)
                 }.onError {
                 }.onError {
@@ -786,11 +787,11 @@ class BookInfoViewModel(
         currentGroupNames = null
         currentGroupNames = null
         currentHasCustomGroup = false
         currentHasCustomGroup = false
         bookSource = source
         bookSource = source
-        syncUiState(isTocLoading = true)
+        syncUiState(isTocLoading = false)
         refreshMeta(book)
         refreshMeta(book)
         upCoverByRule(book)
         upCoverByRule(book)
         if (book.tocUrl.isEmpty() && !book.isLocal) {
         if (book.tocUrl.isEmpty() && !book.isLocal) {
-            loadBookInfo(book, runPreUpdateJs = inBookshelf)
+            loadBookInfo(book, runPreUpdateJs = inBookshelf, showLoading = false)
         } else {
         } else {
             execute {
             execute {
                 appDb.bookChapterDao.getChapterList(book.bookUrl)
                 appDb.bookChapterDao.getChapterList(book.bookUrl)
@@ -800,10 +801,10 @@ class BookInfoViewModel(
                     syncUiState(isTocLoading = false)
                     syncUiState(isTocLoading = false)
                     source?.let { scheduleRelatedBooksLoad(book, it) }
                     source?.let { scheduleRelatedBooksLoad(book, it) }
                 } else {
                 } else {
-                    loadChapter(book)
+                    loadChapter(book, showLoading = false)
                 }
                 }
             }.onError {
             }.onError {
-                loadChapter(book)
+                loadChapter(book, showLoading = false)
             }
             }
         }
         }
     }
     }
@@ -851,8 +852,9 @@ class BookInfoViewModel(
         book: Book,
         book: Book,
         runPreUpdateJs: Boolean = true,
         runPreUpdateJs: Boolean = true,
         scope: CoroutineScope = viewModelScope,
         scope: CoroutineScope = viewModelScope,
+        showLoading: Boolean = true,
     ) {
     ) {
-        syncUiState(isTocLoading = true)
+        syncUiState(isTocLoading = showLoading)
         if (book.isLocal) {
         if (book.isLocal) {
             execute(scope) {
             execute(scope) {
                 LocalBook.getChapterList(book).also {
                 LocalBook.getChapterList(book).also {