| author | Da Risk <da_risk@geekorum.com> |
| Mon, 15 Sep 2025 14:00:07 -0400 | |
| changeset 1370 | 13e39ef920a8 |
| parent 1174 | 731f6ee517b6 |
| permissions | -rw-r--r-- |
|
137
5464f07a306c
Update copyright headers for 2019
Da Risk <da_risk@geekorum.com>
parents:
93
diff
changeset
|
1 |
/* |
| 0 | 2 |
* Geekttrss is a RSS feed reader application on the Android Platform. |
3 |
* |
|
| 1370 | 4 |
* Copyright (C) 2017-2025 by Frederic-Charles Barthelery. |
| 0 | 5 |
* |
6 |
* This file is part of Geekttrss. |
|
7 |
* |
|
8 |
* Geekttrss is free software: you can redistribute it and/or modify |
|
9 |
* it under the terms of the GNU General Public License as published by |
|
10 |
* the Free Software Foundation, either version 3 of the License, or |
|
11 |
* (at your option) any later version. |
|
12 |
* |
|
13 |
* Geekttrss is distributed in the hope that it will be useful, |
|
14 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
15 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
16 |
* GNU General Public License for more details. |
|
17 |
* |
|
18 |
* You should have received a copy of the GNU General Public License |
|
19 |
* along with Geekttrss. If not, see <http://www.gnu.org/licenses/>. |
|
20 |
*/ |
|
21 |
package com.geekorum.ttrss.data |
|
22 |
||
23 |
import androidx.room.Dao |
|
24 |
import androidx.room.Delete |
|
25 |
import androidx.room.Insert |
|
26 |
import androidx.room.OnConflictStrategy |
|
27 |
import androidx.room.Query |
|
28 |
import androidx.room.Transaction |
|
|
700
9391ebf1b753
articles_list: use Flow instead of LiveData in FeedsRepository
Da Risk <da_risk@geekorum.com>
parents:
611
diff
changeset
|
29 |
import kotlinx.coroutines.flow.Flow |
| 0 | 30 |
|
31 |
/** |
|
32 |
* Dao to access Feeds and Categories |
|
33 |
*/ |
|
34 |
@Dao |
|
35 |
abstract class FeedsDao {
|
|
36 |
||
|
1032
fdca7174bdb7
app: use room-compiler with ksp
Da Risk <da_risk@geekorum.com>
parents:
943
diff
changeset
|
37 |
@Query("SELECT * FROM feeds WHERE unread_count > 0 ORDER BY title")
|
|
1034
267c33ff995f
app: Display favicon in FeedListNavigationMenu
Da Risk <da_risk@geekorum.com>
parents:
1032
diff
changeset
|
38 |
@Transaction |
|
267c33ff995f
app: Display favicon in FeedListNavigationMenu
Da Risk <da_risk@geekorum.com>
parents:
1032
diff
changeset
|
39 |
abstract fun getAllUnreadFeeds(): Flow<List<FeedWithFavIcon>> |
| 0 | 40 |
|
|
1032
fdca7174bdb7
app: use room-compiler with ksp
Da Risk <da_risk@geekorum.com>
parents:
943
diff
changeset
|
41 |
@Query("SELECT * FROM feeds ORDER BY title")
|
|
1034
267c33ff995f
app: Display favicon in FeedListNavigationMenu
Da Risk <da_risk@geekorum.com>
parents:
1032
diff
changeset
|
42 |
@Transaction |
|
267c33ff995f
app: Display favicon in FeedListNavigationMenu
Da Risk <da_risk@geekorum.com>
parents:
1032
diff
changeset
|
43 |
abstract fun getAllFeeds(): Flow<List<FeedWithFavIcon>> |
| 0 | 44 |
|
|
148
2911fd5b9abe
FeedsDao: use suspendable transactions
Da Risk <da_risk@geekorum.com>
parents:
137
diff
changeset
|
45 |
@Query("SELECT * FROM feeds")
|
|
2911fd5b9abe
FeedsDao: use suspendable transactions
Da Risk <da_risk@geekorum.com>
parents:
137
diff
changeset
|
46 |
internal abstract suspend fun getAllFeedsList(): List<Feed> |
| 0 | 47 |
|
|
1032
fdca7174bdb7
app: use room-compiler with ksp
Da Risk <da_risk@geekorum.com>
parents:
943
diff
changeset
|
48 |
@Query("SELECT * FROM categories ORDER BY title")
|
|
fdca7174bdb7
app: use room-compiler with ksp
Da Risk <da_risk@geekorum.com>
parents:
943
diff
changeset
|
49 |
abstract fun getAllCategories(): Flow<List<Category>> |
| 0 | 50 |
|
|
1032
fdca7174bdb7
app: use room-compiler with ksp
Da Risk <da_risk@geekorum.com>
parents:
943
diff
changeset
|
51 |
@Query("SELECT * FROM categories WHERE unread_count > 0 ORDER BY title")
|
|
fdca7174bdb7
app: use room-compiler with ksp
Da Risk <da_risk@geekorum.com>
parents:
943
diff
changeset
|
52 |
abstract fun getAllUnreadCategories(): Flow<List<Category>> |
| 0 | 53 |
|
|
61
4c99647b9a58
Make Room DAO functions suspendable when possible
Da Risk <da_risk@geekorum.com>
parents:
36
diff
changeset
|
54 |
@Query("SELECT * FROM categories")
|
|
4c99647b9a58
Make Room DAO functions suspendable when possible
Da Risk <da_risk@geekorum.com>
parents:
36
diff
changeset
|
55 |
internal abstract suspend fun getAllCategoriesList(): List<Category> |
| 0 | 56 |
|
57 |
@Insert(onConflict = OnConflictStrategy.REPLACE) |
|
|
61
4c99647b9a58
Make Room DAO functions suspendable when possible
Da Risk <da_risk@geekorum.com>
parents:
36
diff
changeset
|
58 |
abstract suspend fun insertFeeds(feeds: Collection<Feed>) |
| 0 | 59 |
|
60 |
@Delete |
|
|
61
4c99647b9a58
Make Room DAO functions suspendable when possible
Da Risk <da_risk@geekorum.com>
parents:
36
diff
changeset
|
61 |
internal abstract suspend fun deleteFeeds(feeds: Collection<Feed>) |
| 0 | 62 |
|
63 |
@Query("DELETE FROM ARTICLES where feed_id=:feedId")
|
|
|
148
2911fd5b9abe
FeedsDao: use suspendable transactions
Da Risk <da_risk@geekorum.com>
parents:
137
diff
changeset
|
64 |
internal abstract suspend fun deleteArticleFromFeed(feedId: Long) |
| 0 | 65 |
|
66 |
@Transaction |
|
|
148
2911fd5b9abe
FeedsDao: use suspendable transactions
Da Risk <da_risk@geekorum.com>
parents:
137
diff
changeset
|
67 |
open suspend fun deleteFeedsAndArticles(toBeDelete: List<Feed>) {
|
| 0 | 68 |
for ((id) in toBeDelete) {
|
69 |
deleteArticleFromFeed(id) |
|
70 |
} |
|
71 |
deleteFeeds(toBeDelete) |
|
72 |
} |
|
73 |
||
74 |
||
75 |
@Query("SELECT * FROM feeds WHERE _id=:id")
|
|
|
700
9391ebf1b753
articles_list: use Flow instead of LiveData in FeedsRepository
Da Risk <da_risk@geekorum.com>
parents:
611
diff
changeset
|
76 |
abstract fun getFeedById(id: Long): Flow<Feed?> |
| 0 | 77 |
|
78 |
@Insert(onConflict = OnConflictStrategy.REPLACE) |
|
|
61
4c99647b9a58
Make Room DAO functions suspendable when possible
Da Risk <da_risk@geekorum.com>
parents:
36
diff
changeset
|
79 |
abstract suspend fun insertCategories(categories: Collection<Category>) |
| 0 | 80 |
|
81 |
@Delete |
|
|
61
4c99647b9a58
Make Room DAO functions suspendable when possible
Da Risk <da_risk@geekorum.com>
parents:
36
diff
changeset
|
82 |
abstract suspend fun deleteCategories(categories: Collection<Category>) |
| 0 | 83 |
|
84 |
@Query("SELECT * FROM feeds WHERE unread_count > 0 AND cat_id=:catId ORDER BY title")
|
|
|
700
9391ebf1b753
articles_list: use Flow instead of LiveData in FeedsRepository
Da Risk <da_risk@geekorum.com>
parents:
611
diff
changeset
|
85 |
abstract fun getUnreadFeedsForCategory(catId: Long): Flow<List<Feed>> |
| 0 | 86 |
|
87 |
@Query("SELECT * FROM feeds WHERE cat_id=:catId ORDER BY title")
|
|
|
700
9391ebf1b753
articles_list: use Flow instead of LiveData in FeedsRepository
Da Risk <da_risk@geekorum.com>
parents:
611
diff
changeset
|
88 |
abstract fun getFeedsForCategory(catId: Long): Flow<List<Feed>> |
| 0 | 89 |
|
90 |
@Transaction |
|
|
148
2911fd5b9abe
FeedsDao: use suspendable transactions
Da Risk <da_risk@geekorum.com>
parents:
137
diff
changeset
|
91 |
open suspend fun setFeedsAndCategories(feeds: Collection<Feed>, categories: Collection<Category>) {
|
| 0 | 92 |
setCategories(categories) |
93 |
setFeeds(feeds) |
|
94 |
} |
|
95 |
||
|
61
4c99647b9a58
Make Room DAO functions suspendable when possible
Da Risk <da_risk@geekorum.com>
parents:
36
diff
changeset
|
96 |
private suspend fun setFeeds(feeds: Collection<Feed>) {
|
| 0 | 97 |
val feedsIds: List<Long> = feeds.map { it.id }
|
|
148
2911fd5b9abe
FeedsDao: use suspendable transactions
Da Risk <da_risk@geekorum.com>
parents:
137
diff
changeset
|
98 |
val toDelete = getAllFeedsList().filter { it.id !in feedsIds }
|
| 0 | 99 |
|
100 |
deleteFeedsAndArticles(toDelete) |
|
101 |
insertFeeds(feeds) |
|
102 |
} |
|
103 |
||
|
61
4c99647b9a58
Make Room DAO functions suspendable when possible
Da Risk <da_risk@geekorum.com>
parents:
36
diff
changeset
|
104 |
private suspend fun setCategories(categories: Collection<Category>) {
|
| 0 | 105 |
val categoriesIds: List<Long> = categories.map { category -> category.id }
|
|
61
4c99647b9a58
Make Room DAO functions suspendable when possible
Da Risk <da_risk@geekorum.com>
parents:
36
diff
changeset
|
106 |
val toDelete = getAllCategoriesList().filter { it.id !in categoriesIds }
|
| 0 | 107 |
deleteCategories(toDelete) |
108 |
insertCategories(categories) |
|
109 |
} |
|
|
445
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
110 |
|
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
111 |
@Query("UPDATE feeds SET unread_count=:unreadCount WHERE _id=:id")
|
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
112 |
abstract suspend fun updateFeedUnreadCount(id: Long, unreadCount: Int) |
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
113 |
|
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
114 |
@Query("UPDATE categories SET unread_count=:unreadCount WHERE _id=:id")
|
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
115 |
abstract suspend fun updateCategoryUnreadCount(id: Long, unreadCount: Int) |
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
116 |
|
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
117 |
|
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
118 |
@Transaction |
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
119 |
open suspend fun updateFeedsAndCategoriesUnreadCount( |
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
120 |
feeds: Collection<Feed>, categories: Collection<Category> |
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
121 |
) {
|
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
122 |
internalUpdateCategoriesUnreadCount(categories) |
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
123 |
internalUpdateFeedsUnreadCount(feeds) |
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
124 |
} |
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
125 |
|
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
126 |
private suspend fun internalUpdateFeedsUnreadCount(feeds: Collection<Feed>) {
|
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
127 |
val feedsIds: List<Long> = feeds.map { it.id }
|
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
128 |
val currentFeeds = getAllFeedsList() |
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
129 |
val currentFeedsIds = currentFeeds.map { it.id }
|
|
585
a0a0afe6b6ea
FeedsDao: fix update of feeds unread count
Da Risk <da_risk@geekorum.com>
parents:
445
diff
changeset
|
130 |
val (toDelete, toUpdateDb) = currentFeeds.partition { it.id !in feedsIds }
|
|
a0a0afe6b6ea
FeedsDao: fix update of feeds unread count
Da Risk <da_risk@geekorum.com>
parents:
445
diff
changeset
|
131 |
val toUpdateDbIds = toUpdateDb.map { it.id }
|
|
a0a0afe6b6ea
FeedsDao: fix update of feeds unread count
Da Risk <da_risk@geekorum.com>
parents:
445
diff
changeset
|
132 |
val toUpdate = feeds.filter { it.id in toUpdateDbIds }
|
|
445
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
133 |
val toInsert = feeds.filter {
|
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
134 |
it.id !in currentFeedsIds |
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
135 |
} |
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
136 |
// will be delete on next sync |
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
137 |
setFeedsUnreadCountTo0(toDelete) |
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
138 |
updateFeedsUnreadCount(toUpdate) |
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
139 |
insertFeeds(toInsert) |
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
140 |
} |
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
141 |
|
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
142 |
private suspend fun updateFeedsUnreadCount(feeds: Collection<Feed>) {
|
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
143 |
feeds.forEach {
|
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
144 |
updateFeedUnreadCount(it.id, it.unreadCount) |
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
145 |
} |
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
146 |
} |
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
147 |
|
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
148 |
private suspend fun setFeedsUnreadCountTo0(feeds: List<Feed>) {
|
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
149 |
feeds.forEach {
|
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
150 |
updateFeedUnreadCount(it.id, 0) |
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
151 |
} |
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
152 |
} |
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
153 |
|
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
154 |
private suspend fun internalUpdateCategoriesUnreadCount(categories: Collection<Category>) {
|
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
155 |
val categoriesIds: List<Long> = categories.map { it.id }
|
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
156 |
val currentCategories = getAllCategoriesList() |
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
157 |
val currentCategoriesIds = currentCategories.map { it.id }
|
|
585
a0a0afe6b6ea
FeedsDao: fix update of feeds unread count
Da Risk <da_risk@geekorum.com>
parents:
445
diff
changeset
|
158 |
val (toDelete, toUpdateDb) = currentCategories.partition { it.id !in categoriesIds }
|
|
a0a0afe6b6ea
FeedsDao: fix update of feeds unread count
Da Risk <da_risk@geekorum.com>
parents:
445
diff
changeset
|
159 |
val toUpdateDbIds = toUpdateDb.map { it.id }
|
|
a0a0afe6b6ea
FeedsDao: fix update of feeds unread count
Da Risk <da_risk@geekorum.com>
parents:
445
diff
changeset
|
160 |
val toUpdate = categories.filter { it.id in toUpdateDbIds }
|
|
445
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
161 |
val toInsert = categories.filter {
|
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
162 |
it.id !in currentCategoriesIds |
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
163 |
} |
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
164 |
|
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
165 |
// will be delete on next sync |
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
166 |
setCategoriesUnreadCountTo0(toDelete) |
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
167 |
updateCategoriesUnreadCount(toUpdate) |
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
168 |
insertCategories(toInsert) |
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
169 |
} |
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
170 |
|
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
171 |
private suspend fun updateCategoriesUnreadCount(categories: Collection<Category>) {
|
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
172 |
categories.forEach {
|
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
173 |
updateCategoryUnreadCount(it.id, it.unreadCount) |
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
174 |
} |
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
175 |
} |
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
176 |
|
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
177 |
private suspend fun setCategoriesUnreadCountTo0(categories: Collection<Category>) {
|
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
178 |
categories.forEach {
|
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
179 |
updateCategoryUnreadCount(it.id, 0) |
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
180 |
} |
|
e7ce32b3c43b
FeedsViewModel: only update unreadCount when refreshing feeds
Da Risk <da_risk@geekorum.com>
parents:
148
diff
changeset
|
181 |
} |
| 0 | 182 |
} |