diff --git a/app/src/main/java/io/legado/app/ui/main/MainViewModel.kt b/app/src/main/java/io/legado/app/ui/main/MainViewModel.kt index a5637b599..cea73eeea 100644 --- a/app/src/main/java/io/legado/app/ui/main/MainViewModel.kt +++ b/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() diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/style1/books/BooksFragment.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/style1/books/BooksFragment.kt index 81d65ef17..5a31a761a 100644 --- a/app/src/main/java/io/legado/app/ui/main/bookshelf/style1/books/BooksFragment.kt +++ b/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(EventBus.BOOKSHELF_REFRESH) { booksAdapter.notifyDataSetChanged() startLastUpdateTimeJob() - binding.rvBookshelf.setFastScrollEnabled(AppConfig.showBookshelfFastScroller) + upFastScrollerBar() } } }