From 85f74774509872c9f016f04b8f69ec2575f22392 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Sat, 20 Jun 2020 11:35:42 +0300 Subject: [PATCH] Cleaning up traks --- app/build.gradle | 10 +++++----- .../java/org/koitharu/kotatsu/core/db/TrackLogsDao.kt | 3 +++ .../java/org/koitharu/kotatsu/core/db/TracksDao.kt | 4 +++- .../kotatsu/domain/tracking/TrackingRepository.kt | 7 +++++++ .../org/koitharu/kotatsu/ui/tracker/TrackWorker.kt | 1 + build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 4 ++-- 7 files changed, 22 insertions(+), 9 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index d01996f3c..26ee37c35 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -61,12 +61,12 @@ dependencies { implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.6' implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.6' - implementation 'androidx.core:core-ktx:1.4.0-alpha01' + implementation 'androidx.core:core-ktx:1.5.0-alpha01' implementation 'androidx.appcompat:appcompat:1.3.0-alpha01' - implementation 'androidx.activity:activity-ktx:1.2.0-alpha05' - implementation 'androidx.fragment:fragment-ktx:1.3.0-alpha05' - implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.0-alpha03' - implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta6' + implementation 'androidx.activity:activity-ktx:1.2.0-alpha06' + implementation 'androidx.fragment:fragment-ktx:1.3.0-alpha06' + implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.3.0-alpha04' + implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta7' implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0-rc01' implementation 'androidx.recyclerview:recyclerview:1.2.0-alpha03' implementation 'androidx.viewpager2:viewpager2:1.1.0-alpha01' diff --git a/app/src/main/java/org/koitharu/kotatsu/core/db/TrackLogsDao.kt b/app/src/main/java/org/koitharu/kotatsu/core/db/TrackLogsDao.kt index 460205052..547fed576 100644 --- a/app/src/main/java/org/koitharu/kotatsu/core/db/TrackLogsDao.kt +++ b/app/src/main/java/org/koitharu/kotatsu/core/db/TrackLogsDao.kt @@ -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() } \ No newline at end of file diff --git a/app/src/main/java/org/koitharu/kotatsu/core/db/TracksDao.kt b/app/src/main/java/org/koitharu/kotatsu/core/db/TracksDao.kt index ae72b2c11..e3f0ea701 100644 --- a/app/src/main/java/org/koitharu/kotatsu/core/db/TracksDao.kt +++ b/app/src/main/java/org/koitharu/kotatsu/core/db/TracksDao.kt @@ -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) } } - } \ No newline at end of file diff --git a/app/src/main/java/org/koitharu/kotatsu/domain/tracking/TrackingRepository.kt b/app/src/main/java/org/koitharu/kotatsu/domain/tracking/TrackingRepository.kt index 28dedb15d..6b1a3bdde 100644 --- a/app/src/main/java/org/koitharu/kotatsu/domain/tracking/TrackingRepository.kt +++ b/app/src/main/java/org/koitharu/kotatsu/domain/tracking/TrackingRepository.kt @@ -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, diff --git a/app/src/main/java/org/koitharu/kotatsu/ui/tracker/TrackWorker.kt b/app/src/main/java/org/koitharu/kotatsu/ui/tracker/TrackWorker.kt index dd154a95e..68173f705 100644 --- a/app/src/main/java/org/koitharu/kotatsu/ui/tracker/TrackWorker.kt +++ b/app/src/main/java/org/koitharu/kotatsu/ui/tracker/TrackWorker.kt @@ -118,6 +118,7 @@ class TrackWorker(context: Context, workerParams: WorkerParameters) : } success++ } + repo.cleanup() if (success == 0) { Result.retry() } else { diff --git a/build.gradle b/build.gradle index 08e69a267..3219af198 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:4.1.0-alpha10' + classpath 'com.android.tools.build:gradle:4.2.0-alpha02' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" // NOTE: Do not place your application dependencies here; they belong diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 8a314251c..f8233caa7 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Sat May 30 09:45:56 EEST 2020 +#Sat Jun 20 11:05:53 EEST 2020 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-milestone-1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip