Horis 3 лет назад
Родитель
Сommit
f62866e183

+ 3 - 3
app/src/main/java/io/legado/app/ui/main/MainViewModel.kt

@@ -138,7 +138,7 @@ class MainViewModel(application: Application) : BaseViewModel(application) {
         }
         waitUpTocBooks.remove(bookUrl)
         upTocAdd(bookUrl)
-        execute(context = upTocPool, executeContext = IO) {
+        execute(context = upTocPool, executeContext = upTocPool) {
             kotlin.runCatching {
                 val oldBook = book.copy()
                 WebBook.runPreUpdateJs(source, book)
@@ -170,10 +170,10 @@ class MainViewModel(application: Application) : BaseViewModel(application) {
                     appDb.bookDao.update(book)
                 }
             }
-        }.onCancel(upTocPool) {
+        }.onCancel {
             upTocCancel(bookUrl)
             upTocCancel(book.bookUrl)
-        }.onFinally(upTocPool) {
+        }.onFinally {
             upTocFinally(bookUrl)
             upTocFinally(book.bookUrl)
             postUpBooksLiveData()

+ 14 - 2
app/src/main/java/io/legado/app/ui/main/bookshelf/style1/books/BooksFragment.kt

@@ -71,6 +71,7 @@ class BooksFragment() : BaseFragment(R.layout.fragment_books),
     var bookSort = 0
         private set
     private var upLastUpdateTimeJob: Job? = null
+    private var defaultScrollBarSize = 0
 
     override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) {
         this.savedInstanceState = savedInstanceState
@@ -86,7 +87,8 @@ class BooksFragment() : BaseFragment(R.layout.fragment_books),
 
     private fun initRecyclerView() {
         binding.rvBookshelf.setEdgeEffectColor(primaryColor)
-        binding.rvBookshelf.setFastScrollEnabled(AppConfig.showBookshelfFastScroller)
+        defaultScrollBarSize = binding.rvBookshelf.scrollBarSize
+        upFastScrollerBar()
         binding.refreshLayout.setColorSchemeColors(accentColor)
         binding.refreshLayout.setOnRefreshListener {
             binding.refreshLayout.isRefreshing = false
@@ -118,6 +120,16 @@ class BooksFragment() : BaseFragment(R.layout.fragment_books),
         startLastUpdateTimeJob()
     }
 
+    private fun upFastScrollerBar() {
+        val showBookshelfFastScroller = AppConfig.showBookshelfFastScroller
+        binding.rvBookshelf.setFastScrollEnabled(showBookshelfFastScroller)
+        if (showBookshelfFastScroller) {
+            binding.rvBookshelf.scrollBarSize = 0
+        } else {
+            binding.rvBookshelf.scrollBarSize = defaultScrollBarSize
+        }
+    }
+
     fun upBookSort(sort: Int) {
         binding.root.post {
             arguments?.putInt("bookSort", sort)
@@ -276,7 +288,7 @@ class BooksFragment() : BaseFragment(R.layout.fragment_books),
         observeEvent<String>(EventBus.BOOKSHELF_REFRESH) {
             booksAdapter.notifyDataSetChanged()
             startLastUpdateTimeJob()
-            binding.rvBookshelf.setFastScrollEnabled(AppConfig.showBookshelfFastScroller)
+            upFastScrollerBar()
         }
     }
 }