From 9e312f60bf7c7b441f5bb09520e6aa85d9d9a668 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kuba=20Szczodrzy=C5=84ski?= Date: Fri, 10 Jan 2020 21:34:55 +0100 Subject: [PATCH] [APIService] Fix showing notification with no service running. --- .../java/pl/szczodrzynski/edziennik/data/api/ApiService.kt | 5 ++++- .../edziennik/data/api/EdziennikNotification.kt | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/ApiService.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/ApiService.kt index d1d01e83..bbf3dbb8 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/ApiService.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/ApiService.kt @@ -49,6 +49,7 @@ class ApiService : Service() { private val errorList = mutableListOf() private var serviceClosed = false + set(value) { field = value; notification.serviceClosed = value } private var taskCancelled = false private var taskIsRunning = false private var taskRunning: IApiTask? = null // for debug purposes @@ -132,7 +133,6 @@ class ApiService : Service() { if (taskIsRunning) return if (taskCancelled || serviceClosed || (taskQueue.isEmpty() && finishingTaskQueue.isEmpty())) { - serviceClosed = false allCompleted() return } @@ -214,6 +214,7 @@ class ApiService : Service() { } private fun allCompleted() { + serviceClosed = true EventBus.getDefault().postSticky(ApiTaskAllFinishedEvent()) stopSelf() } @@ -298,6 +299,8 @@ class ApiService : Service() { } override fun onDestroy() { + d(TAG, "Service destroyed") + serviceClosed = true EventBus.getDefault().unregister(this) } diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/EdziennikNotification.kt b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/EdziennikNotification.kt index a78f8ab1..cd4adf21 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/data/api/EdziennikNotification.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/data/api/EdziennikNotification.kt @@ -35,6 +35,7 @@ class EdziennikNotification(val context: Context) { private var errorCount = 0 private var criticalErrorCount = 0 + var serviceClosed = false private fun cancelPendingIntent(taskId: Int): PendingIntent { val intent = Intent("pl.szczodrzynski.edziennik.SZKOLNY_MAIN") @@ -134,6 +135,8 @@ class EdziennikNotification(val context: Context) { } fun post() { + if (serviceClosed) + return notificationManager.notify(NOTIFICATION_ID, notification) }