浏览代码

Only show unread entries in widget

Closes #9083
arkon 2 年之前
父节点
当前提交
3634b52e3a

+ 6 - 0
data/src/main/sqldelight/tachiyomi/view/updatesView.sq

@@ -24,3 +24,9 @@ updates:
 SELECT *
 FROM updatesView
 WHERE dateUpload > :after;
+
+getUpdatesByReadStatus:
+SELECT *
+FROM updatesView
+WHERE read = :read
+AND dateUpload > :after;

+ 6 - 1
presentation-widget/src/main/java/tachiyomi/presentation/widget/TachiyomiWidgetManager.kt

@@ -16,7 +16,12 @@ class TachiyomiWidgetManager(
 ) {
 
     fun Context.init(scope: LifecycleCoroutineScope) {
-        database.subscribeToList { updatesViewQueries.updates(after = UpdatesGridGlanceWidget.DateLimit.timeInMillis) }
+        database.subscribeToList {
+            updatesViewQueries.getUpdatesByReadStatus(
+                read = false,
+                after = UpdatesGridGlanceWidget.DateLimit.timeInMillis,
+            )
+        }
             .drop(1)
             .distinctUntilChanged()
             .onEach {

+ 6 - 1
presentation-widget/src/main/java/tachiyomi/presentation/widget/UpdatesGridGlanceWidget.kt

@@ -72,7 +72,12 @@ class UpdatesGridGlanceWidget : GlanceAppWidget() {
 
             val processList = list
                 ?: Injekt.get<DatabaseHandler>()
-                    .awaitList { updatesViewQueries.updates(after = DateLimit.timeInMillis) }
+                    .awaitList {
+                        updatesViewQueries.getUpdatesByReadStatus(
+                            read = false,
+                            after = DateLimit.timeInMillis,
+                        )
+                    }
             val (rowCount, columnCount) = ids
                 .flatMap { manager.getAppWidgetSizes(it) }
                 .maxBy { it.height.value * it.width.value }