Remove invalid track logs

This commit is contained in:
Koitharu
2023-08-07 17:59:26 +03:00
parent cf9aab9afe
commit 6cc13784e4
4 changed files with 15 additions and 5 deletions

View File

@@ -49,7 +49,7 @@ abstract class TracksDao {
@Query("DELETE FROM tracks WHERE manga_id = :mangaId")
abstract suspend fun delete(mangaId: Long)
@Query("DELETE FROM tracks WHERE manga_id NOT IN (SELECT manga_id FROM history UNION SELECT manga_id FROM favourites)")
@Query("DELETE FROM tracks WHERE manga_id NOT IN (SELECT manga_id FROM history UNION SELECT manga_id FROM favourites WHERE category_id IN (SELECT category_id FROM favourite_categories WHERE track = 1))")
abstract suspend fun gc()
@Upsert

View File

@@ -104,10 +104,8 @@ class TrackingRepository @Inject constructor(
suspend fun clearCounters() = db.tracksDao.clearCounters()
suspend fun gc() {
db.withTransaction {
db.tracksDao.gc()
db.trackLogsDao.gc()
}
db.tracksDao.gc()
db.trackLogsDao.gc()
}
suspend fun saveUpdates(updates: MangaUpdates) {

View File

@@ -59,6 +59,12 @@ class FeedViewModel @Inject constructor(
}
}.stateIn(viewModelScope + Dispatchers.Default, SharingStarted.Eagerly, listOf(LoadingState))
init {
launchJob(Dispatchers.Default) {
repository.gc()
}
}
fun clearFeed(clearCounters: Boolean) {
launchLoadingJob(Dispatchers.Default) {
repository.clearLogs()

View File

@@ -56,6 +56,12 @@ class UpdatesViewModel @Inject constructor(
emit(listOf(it.toErrorState(canRetry = false)))
}.stateIn(viewModelScope + Dispatchers.Default, SharingStarted.Eagerly, listOf(LoadingState))
init {
launchJob(Dispatchers.Default) {
repository.gc()
}
}
override fun onRefresh() = Unit
override fun onRetry() = Unit