Browse Source

Only update in-library manga chapter settings instead of all

arkon 3 years ago
parent
commit
776194f5b2

+ 16 - 20
app/src/main/java/eu/kanade/tachiyomi/data/database/queries/MangaQueries.kt

@@ -1,5 +1,6 @@
 package eu.kanade.tachiyomi.data.database.queries
 
+import com.pushtorefresh.storio.sqlite.operations.get.PreparedGetListOfObjects
 import com.pushtorefresh.storio.sqlite.queries.DeleteQuery
 import com.pushtorefresh.storio.sqlite.queries.Query
 import com.pushtorefresh.storio.sqlite.queries.RawQuery
@@ -14,15 +15,6 @@ import eu.kanade.tachiyomi.data.database.tables.MangaTable
 
 interface MangaQueries : DbProvider {
 
-    fun getMangas() = db.get()
-        .listOfObjects(Manga::class.java)
-        .withQuery(
-            Query.builder()
-                .table(MangaTable.TABLE)
-                .build()
-        )
-        .prepare()
-
     fun getLibraryMangas() = db.get()
         .listOfObjects(LibraryManga::class.java)
         .withQuery(
@@ -34,17 +26,21 @@ interface MangaQueries : DbProvider {
         .withGetResolver(LibraryMangaGetResolver.INSTANCE)
         .prepare()
 
-    fun getFavoriteMangas() = db.get()
-        .listOfObjects(Manga::class.java)
-        .withQuery(
-            Query.builder()
-                .table(MangaTable.TABLE)
-                .where("${MangaTable.COL_FAVORITE} = ?")
-                .whereArgs(1)
-                .orderBy(MangaTable.COL_TITLE)
-                .build()
-        )
-        .prepare()
+    fun getFavoriteMangas(sortByTitle: Boolean = true): PreparedGetListOfObjects<Manga> {
+        var queryBuilder = Query.builder()
+            .table(MangaTable.TABLE)
+            .where("${MangaTable.COL_FAVORITE} = ?")
+            .whereArgs(1)
+
+        if (sortByTitle) {
+            queryBuilder = queryBuilder.orderBy(MangaTable.COL_TITLE)
+        }
+
+        return db.get()
+            .listOfObjects(Manga::class.java)
+            .withQuery(queryBuilder.build())
+            .prepare()
+    }
 
     fun getManga(url: String, sourceId: Long) = db.get()
         .`object`(Manga::class.java)

+ 12 - 10
app/src/main/java/eu/kanade/tachiyomi/util/chapter/ChapterSettingsHelper.kt

@@ -44,17 +44,19 @@ object ChapterSettingsHelper {
      */
     fun updateAllMangasWithGlobalDefaults() {
         launchIO {
-            val updatedMangas = db.getMangas().executeAsBlocking().map { manga ->
-                with(manga) {
-                    readFilter = prefs.filterChapterByRead()
-                    downloadedFilter = prefs.filterChapterByDownloaded()
-                    bookmarkedFilter = prefs.filterChapterByBookmarked()
-                    sorting = prefs.sortChapterBySourceOrNumber()
-                    displayMode = prefs.displayChapterByNameOrNumber()
-                    setChapterOrder(prefs.sortChapterByAscendingOrDescending())
+            val updatedMangas = db.getFavoriteMangas(sortByTitle = false)
+                .executeAsBlocking()
+                .map { manga ->
+                    with(manga) {
+                        readFilter = prefs.filterChapterByRead()
+                        downloadedFilter = prefs.filterChapterByDownloaded()
+                        bookmarkedFilter = prefs.filterChapterByBookmarked()
+                        sorting = prefs.sortChapterBySourceOrNumber()
+                        displayMode = prefs.displayChapterByNameOrNumber()
+                        setChapterOrder(prefs.sortChapterByAscendingOrDescending())
+                    }
+                    manga
                 }
-                manga
-            }
 
             db.updateChapterFlags(updatedMangas).executeAsBlocking()
             db.updateViewerFlags(updatedMangas).executeAsBlocking()