Cleaning up traks
This commit is contained in:
@@ -19,4 +19,7 @@ interface TrackLogsDao {
|
||||
|
||||
@Query("DELETE FROM track_logs WHERE manga_id = :mangaId")
|
||||
suspend fun removeAll(mangaId: Long)
|
||||
|
||||
@Query("DELETE FROM track_logs WHERE manga_id NOT IN (SELECT manga_id FROM tracks)")
|
||||
suspend fun cleanup()
|
||||
}
|
||||
@@ -25,11 +25,13 @@ 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)")
|
||||
abstract suspend fun cleanup()
|
||||
|
||||
@Transaction
|
||||
open suspend fun upsert(entity: TrackEntity) {
|
||||
if (update(entity) == 0) {
|
||||
insert(entity)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -44,6 +44,13 @@ class TrackingRepository : KoinComponent {
|
||||
}
|
||||
}
|
||||
|
||||
suspend fun cleanup() {
|
||||
db.withTransaction {
|
||||
db.tracksDao.cleanup()
|
||||
db.trackLogsDao.cleanup()
|
||||
}
|
||||
}
|
||||
|
||||
suspend fun storeTrackResult(
|
||||
mangaId: Long,
|
||||
knownChaptersCount: Int,
|
||||
|
||||
@@ -118,6 +118,7 @@ class TrackWorker(context: Context, workerParams: WorkerParameters) :
|
||||
}
|
||||
success++
|
||||
}
|
||||
repo.cleanup()
|
||||
if (success == 0) {
|
||||
Result.retry()
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user