kunfei 4 lat temu
rodzic
commit
9c18d6b2ad

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

@@ -10,10 +10,7 @@ import androidx.recyclerview.widget.LinearLayoutManager
 import androidx.recyclerview.widget.RecyclerView
 import androidx.recyclerview.widget.RecyclerView
 import io.legado.app.R
 import io.legado.app.R
 import io.legado.app.base.BaseFragment
 import io.legado.app.base.BaseFragment
-import io.legado.app.constant.AppConst
-import io.legado.app.constant.BookType
-import io.legado.app.constant.EventBus
-import io.legado.app.constant.PreferKey
+import io.legado.app.constant.*
 import io.legado.app.data.appDb
 import io.legado.app.data.appDb
 import io.legado.app.data.entities.Book
 import io.legado.app.data.entities.Book
 import io.legado.app.databinding.FragmentBooksBinding
 import io.legado.app.databinding.FragmentBooksBinding
@@ -27,6 +24,7 @@ import io.legado.app.ui.main.MainViewModel
 import io.legado.app.utils.*
 import io.legado.app.utils.*
 import io.legado.app.utils.viewbindingdelegate.viewBinding
 import io.legado.app.utils.viewbindingdelegate.viewBinding
 import kotlinx.coroutines.Job
 import kotlinx.coroutines.Job
+import kotlinx.coroutines.flow.catch
 import kotlinx.coroutines.launch
 import kotlinx.coroutines.launch
 import kotlin.math.max
 import kotlin.math.max
 
 
@@ -109,6 +107,8 @@ class BooksFragment() : BaseFragment(R.layout.fragment_books),
                 AppConst.bookGroupAudioId -> appDb.bookDao.flowAudio()
                 AppConst.bookGroupAudioId -> appDb.bookDao.flowAudio()
                 AppConst.bookGroupNoneId -> appDb.bookDao.flowNoGroup()
                 AppConst.bookGroupNoneId -> appDb.bookDao.flowNoGroup()
                 else -> appDb.bookDao.flowByGroup(groupId)
                 else -> appDb.bookDao.flowByGroup(groupId)
+            }.catch {
+                AppLog.put("书架更新出错", it)
             }.collect { list ->
             }.collect { list ->
                 binding.tvEmptyMsg.isGone = list.isNotEmpty()
                 binding.tvEmptyMsg.isGone = list.isNotEmpty()
                 val books = when (getPrefInt(PreferKey.bookshelfSort)) {
                 val books = when (getPrefInt(PreferKey.bookshelfSort)) {

+ 6 - 5
app/src/main/java/io/legado/app/ui/main/bookshelf/style2/BookshelfFragment2.kt

@@ -9,10 +9,7 @@ import androidx.recyclerview.widget.GridLayoutManager
 import androidx.recyclerview.widget.LinearLayoutManager
 import androidx.recyclerview.widget.LinearLayoutManager
 import androidx.recyclerview.widget.RecyclerView
 import androidx.recyclerview.widget.RecyclerView
 import io.legado.app.R
 import io.legado.app.R
-import io.legado.app.constant.AppConst
-import io.legado.app.constant.BookType
-import io.legado.app.constant.EventBus
-import io.legado.app.constant.PreferKey
+import io.legado.app.constant.*
 import io.legado.app.data.appDb
 import io.legado.app.data.appDb
 import io.legado.app.data.entities.Book
 import io.legado.app.data.entities.Book
 import io.legado.app.data.entities.BookGroup
 import io.legado.app.data.entities.BookGroup
@@ -29,6 +26,8 @@ import io.legado.app.ui.main.bookshelf.BaseBookshelfFragment
 import io.legado.app.utils.*
 import io.legado.app.utils.*
 import io.legado.app.utils.viewbindingdelegate.viewBinding
 import io.legado.app.utils.viewbindingdelegate.viewBinding
 import kotlinx.coroutines.Job
 import kotlinx.coroutines.Job
+import kotlinx.coroutines.flow.catch
+import kotlinx.coroutines.flow.collectLatest
 import kotlinx.coroutines.launch
 import kotlinx.coroutines.launch
 import kotlin.math.max
 import kotlin.math.max
 
 
@@ -122,7 +121,9 @@ class BookshelfFragment2 : BaseBookshelfFragment(R.layout.fragment_bookshelf1),
                 AppConst.bookGroupAudioId -> appDb.bookDao.flowAudio()
                 AppConst.bookGroupAudioId -> appDb.bookDao.flowAudio()
                 AppConst.bookGroupNoneId -> appDb.bookDao.flowNoGroup()
                 AppConst.bookGroupNoneId -> appDb.bookDao.flowNoGroup()
                 else -> appDb.bookDao.flowByGroup(groupId)
                 else -> appDb.bookDao.flowByGroup(groupId)
-            }.collect { list ->
+            }.catch {
+                AppLog.put("书架更新出错", it)
+            }.collectLatest { list ->
                 books = when (getPrefInt(PreferKey.bookshelfSort)) {
                 books = when (getPrefInt(PreferKey.bookshelfSort)) {
                     1 -> list.sortedByDescending {
                     1 -> list.sortedByDescending {
                         it.latestChapterTime
                         it.latestChapterTime

+ 4 - 0
app/src/main/java/io/legado/app/ui/main/rss/RssFragment.kt

@@ -9,6 +9,7 @@ import androidx.appcompat.widget.SearchView
 import androidx.fragment.app.viewModels
 import androidx.fragment.app.viewModels
 import io.legado.app.R
 import io.legado.app.R
 import io.legado.app.base.VMBaseFragment
 import io.legado.app.base.VMBaseFragment
+import io.legado.app.constant.AppLog
 import io.legado.app.constant.AppPattern
 import io.legado.app.constant.AppPattern
 import io.legado.app.data.appDb
 import io.legado.app.data.appDb
 import io.legado.app.data.entities.RssSource
 import io.legado.app.data.entities.RssSource
@@ -26,6 +27,7 @@ import io.legado.app.ui.rss.subscription.RuleSubActivity
 import io.legado.app.utils.*
 import io.legado.app.utils.*
 import io.legado.app.utils.viewbindingdelegate.viewBinding
 import io.legado.app.utils.viewbindingdelegate.viewBinding
 import kotlinx.coroutines.Job
 import kotlinx.coroutines.Job
+import kotlinx.coroutines.flow.catch
 import kotlinx.coroutines.launch
 import kotlinx.coroutines.launch
 
 
 
 
@@ -139,6 +141,8 @@ class RssFragment : VMBaseFragment<RssSourceViewModel>(R.layout.fragment_rss),
                     appDb.rssSourceDao.flowEnabledByGroup("%$key%")
                     appDb.rssSourceDao.flowEnabledByGroup("%$key%")
                 }
                 }
                 else -> appDb.rssSourceDao.flowEnabled("%$searchKey%")
                 else -> appDb.rssSourceDao.flowEnabled("%$searchKey%")
+            }.catch {
+                AppLog.put("订阅界面更新数据出错", it)
             }.collect {
             }.collect {
                 adapter.setItems(it)
                 adapter.setItems(it)
             }
             }