diff --git a/app/src/main/java/org/koitharu/kotatsu/tracker/data/TracksDao.kt b/app/src/main/java/org/koitharu/kotatsu/tracker/data/TracksDao.kt
index d248de40e..d00ce5fc5 100644
--- a/app/src/main/java/org/koitharu/kotatsu/tracker/data/TracksDao.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/tracker/data/TracksDao.kt
@@ -43,6 +43,9 @@ abstract class TracksDao {
@Query("DELETE FROM tracks")
abstract suspend fun clear()
+ @Query("UPDATE tracks SET chapters_new = 0")
+ abstract suspend fun clearCounters()
+
@Insert(onConflict = OnConflictStrategy.IGNORE)
abstract suspend fun insert(entity: TrackEntity): Long
diff --git a/app/src/main/java/org/koitharu/kotatsu/tracker/domain/TrackingRepository.kt b/app/src/main/java/org/koitharu/kotatsu/tracker/domain/TrackingRepository.kt
index a9aac2ce1..c1038f83e 100644
--- a/app/src/main/java/org/koitharu/kotatsu/tracker/domain/TrackingRepository.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/tracker/domain/TrackingRepository.kt
@@ -98,6 +98,8 @@ class TrackingRepository @Inject constructor(
suspend fun clearLogs() = db.trackLogsDao.clear()
+ suspend fun clearCounters() = db.tracksDao.clearCounters()
+
suspend fun gc() {
db.withTransaction {
db.tracksDao.gc()
diff --git a/app/src/main/java/org/koitharu/kotatsu/tracker/ui/feed/FeedMenuProvider.kt b/app/src/main/java/org/koitharu/kotatsu/tracker/ui/feed/FeedMenuProvider.kt
index e20d67933..e25f83428 100644
--- a/app/src/main/java/org/koitharu/kotatsu/tracker/ui/feed/FeedMenuProvider.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/tracker/ui/feed/FeedMenuProvider.kt
@@ -6,9 +6,9 @@ import android.view.MenuInflater
import android.view.MenuItem
import android.view.View
import androidx.core.view.MenuProvider
-import com.google.android.material.dialog.MaterialAlertDialogBuilder
import com.google.android.material.snackbar.Snackbar
import org.koitharu.kotatsu.R
+import org.koitharu.kotatsu.base.ui.dialog.CheckBoxAlertDialog
import org.koitharu.kotatsu.settings.SettingsActivity
import org.koitharu.kotatsu.tracker.work.TrackWorker
@@ -39,13 +39,15 @@ class FeedMenuProvider(
}
R.id.action_clear_feed -> {
- MaterialAlertDialogBuilder(context)
+ CheckBoxAlertDialog.Builder(context)
.setTitle(R.string.clear_updates_feed)
.setMessage(R.string.text_clear_updates_feed_prompt)
.setNegativeButton(android.R.string.cancel, null)
- .setPositiveButton(R.string.clear) { _, _ ->
- viewModel.clearFeed()
- }.show()
+ .setCheckBoxChecked(true)
+ .setCheckBoxText(R.string.clear_new_chapters_counters)
+ .setPositiveButton(R.string.clear) { _, isChecked ->
+ viewModel.clearFeed(isChecked)
+ }.create().show()
true
}
diff --git a/app/src/main/java/org/koitharu/kotatsu/tracker/ui/feed/FeedViewModel.kt b/app/src/main/java/org/koitharu/kotatsu/tracker/ui/feed/FeedViewModel.kt
index 1401873e8..12dbdf497 100644
--- a/app/src/main/java/org/koitharu/kotatsu/tracker/ui/feed/FeedViewModel.kt
+++ b/app/src/main/java/org/koitharu/kotatsu/tracker/ui/feed/FeedViewModel.kt
@@ -50,9 +50,12 @@ class FeedViewModel @Inject constructor(
}
}.asFlowLiveData(viewModelScope.coroutineContext + Dispatchers.Default, listOf(LoadingState))
- fun clearFeed() {
+ fun clearFeed(clearCounters: Boolean) {
launchLoadingJob(Dispatchers.Default) {
repository.clearLogs()
+ if (clearCounters) {
+ repository.clearCounters()
+ }
onFeedCleared.postCall(Unit)
}
}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index dd35152c6..e3e1ef469 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -396,4 +396,5 @@
Network is not available
Turn on Wi-Fi or mobile network to read manga online
Server side error (%1$d). Please try again later
+ Also clear information about new chapters