老牛 2 лет назад
Родитель
Сommit
0ce4064636

+ 3 - 0
app/src/main/java/io/legado/app/data/dao/RssArticleDao.kt

@@ -23,6 +23,9 @@ interface RssArticleDao {
     @Insert(onConflict = OnConflictStrategy.REPLACE)
     fun insert(vararg rssArticle: RssArticle)
 
+    @Insert(onConflict = OnConflictStrategy.IGNORE)
+    fun append(vararg rssArticle: RssArticle)
+
     @Query("delete from rssArticles where origin = :origin and sort = :sort and `order` < :order")
     fun clearOld(origin: String, sort: String, order: Long)
 

+ 5 - 3
app/src/main/java/io/legado/app/ui/rss/article/RssArticlesViewModel.kt

@@ -80,14 +80,16 @@ class RssArticlesViewModel(application: Application) : BaseViewModel(application
             return
         }
         val firstArticle = articles.first()
-        val dbArticle = appDb.rssArticleDao.get(firstArticle.origin, firstArticle.link)
-        if (dbArticle != null) {
+        val dbFirstArticle = appDb.rssArticleDao.get(firstArticle.origin, firstArticle.link)
+        val lastArticle = articles.last()
+        val dbLastArticle = appDb.rssArticleDao.get(lastArticle.origin, lastArticle.link)
+        if (dbFirstArticle != null && dbLastArticle != null) {
             loadFinallyLiveData.postValue(false)
         } else {
             articles.forEach {
                 it.order = order--
             }
-            appDb.rssArticleDao.insert(*articles.toTypedArray())
+            appDb.rssArticleDao.append(*articles.toTypedArray())
         }
     }