From a2d4a63eb19031328f2fa445e2c2c9c42a40961b Mon Sep 17 00:00:00 2001 From: Koitharu Date: Sun, 29 Mar 2020 20:48:53 +0300 Subject: [PATCH] Tracker notifications option in settings --- .../kotatsu/core/prefs/AppSettings.kt | 5 +++++ .../kotatsu/ui/tracker/TrackerJobService.kt | 19 ++++++++++--------- app/src/main/res/values-ru/strings.xml | 1 + app/src/main/res/values/constants.xml | 1 + app/src/main/res/values/strings.xml | 1 + app/src/main/res/xml/pref_main.xml | 8 +++++++- 6 files changed, 25 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/org/koitharu/kotatsu/core/prefs/AppSettings.kt b/app/src/main/java/org/koitharu/kotatsu/core/prefs/AppSettings.kt index 57c887b62..dcdce740d 100644 --- a/app/src/main/java/org/koitharu/kotatsu/core/prefs/AppSettings.kt +++ b/app/src/main/java/org/koitharu/kotatsu/core/prefs/AppSettings.kt @@ -52,6 +52,11 @@ class AppSettings private constructor(resources: Resources, private val prefs: S 0L ) + val trackerNotifications by BoolPreferenceDelegate( + resources.getString(R.string.key_tracker_notifications), + true + ) + private var sourcesOrderStr by NullableStringPreferenceDelegate(resources.getString(R.string.key_sources_order)) var sourcesOrder: List diff --git a/app/src/main/java/org/koitharu/kotatsu/ui/tracker/TrackerJobService.kt b/app/src/main/java/org/koitharu/kotatsu/ui/tracker/TrackerJobService.kt index b091034cc..30acde27d 100644 --- a/app/src/main/java/org/koitharu/kotatsu/ui/tracker/TrackerJobService.kt +++ b/app/src/main/java/org/koitharu/kotatsu/ui/tracker/TrackerJobService.kt @@ -17,9 +17,11 @@ import coil.Coil import coil.api.get import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext +import org.koin.android.ext.android.inject import org.koitharu.kotatsu.R import org.koitharu.kotatsu.core.model.Manga import org.koitharu.kotatsu.core.model.MangaChapter +import org.koitharu.kotatsu.core.prefs.AppSettings import org.koitharu.kotatsu.domain.MangaProviderFactory import org.koitharu.kotatsu.domain.tracking.TrackingRepository import org.koitharu.kotatsu.ui.common.BaseJobService @@ -33,6 +35,8 @@ class TrackerJobService : BaseJobService() { getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager } + private val settings by inject() + override suspend fun doWork(params: JobParameters) { withContext(Dispatchers.IO) { val repo = TrackingRepository() @@ -63,9 +67,7 @@ class TrackerJobService : BaseJobService() { lastChapterId = 0L, newChapters = chapters.size ) - if (chapters.isNotEmpty()) { - showNotification(track.manga, chapters) - } + showNotification(track.manga, chapters) } chapters.size == track.knownChaptersCount -> { if (chapters.lastOrNull()?.id == track.lastChapterId) { @@ -90,9 +92,7 @@ class TrackerJobService : BaseJobService() { lastChapterId = track.lastChapterId, newChapters = newChapters ) - if (newChapters != 0) { - showNotification(track.manga, chapters.takeLast(newChapters)) - } + showNotification(track.manga, chapters.takeLast(newChapters)) } } } @@ -104,9 +104,7 @@ class TrackerJobService : BaseJobService() { lastChapterId = track.lastChapterId, newChapters = newChapters ) - if (newChapters != 0) { - showNotification(track.manga, chapters.takeLast(newChapters)) - } + showNotification(track.manga, chapters.takeLast(newChapters)) } } success++ @@ -118,6 +116,9 @@ class TrackerJobService : BaseJobService() { } private suspend fun showNotification(manga: Manga, newChapters: List) { + if (newChapters.isEmpty() || !settings.trackerNotifications) { + return + } val id = manga.url.hashCode() val colorPrimary = ContextCompat.getColor(this@TrackerJobService, R.color.blue_primary) val builder = NotificationCompat.Builder(this, CHANNEL_ID) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index c5775d26d..be9f73f97 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -114,4 +114,5 @@ Уведомления Включено %1$d из %2$d Новые главы + Уведомлять об обновлении манги, которую Вы читаете \ No newline at end of file diff --git a/app/src/main/res/values/constants.xml b/app/src/main/res/values/constants.xml index 2afde4b7e..d19a64420 100644 --- a/app/src/main/res/values/constants.xml +++ b/app/src/main/res/values/constants.xml @@ -14,6 +14,7 @@ reader_switchers app_update app_update_auto + tracker_notifications domain diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index da06c24fe..1081697f4 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -115,4 +115,5 @@ Notifications Enabled %1$d from %2$d New chapters + Notify about updates of manga you are reading \ No newline at end of file diff --git a/app/src/main/res/xml/pref_main.xml b/app/src/main/res/xml/pref_main.xml index dc81c5758..ba2be69c6 100644 --- a/app/src/main/res/xml/pref_main.xml +++ b/app/src/main/res/xml/pref_main.xml @@ -61,7 +61,13 @@ android:key="@string/key_app_update_auto" android:summary="@string/show_notification_app_update" android:title="@string/application_update" - app:allowDividerBelow="true" + app:iconSpaceReserved="false" /> + +