From daf7411c369e5f02918b271cfed290442de9fcf8 Mon Sep 17 00:00:00 2001 From: Matthias Urhahn Date: Sat, 11 Mar 2023 13:00:55 +0100 Subject: [PATCH] Show worker foreground notification early. (#110) --- .../eu/darken/capod/monitor/core/worker/MonitorWorker.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/darken/capod/monitor/core/worker/MonitorWorker.kt b/app/src/main/java/eu/darken/capod/monitor/core/worker/MonitorWorker.kt index d61aff02..91988edc 100644 --- a/app/src/main/java/eu/darken/capod/monitor/core/worker/MonitorWorker.kt +++ b/app/src/main/java/eu/darken/capod/monitor/core/worker/MonitorWorker.kt @@ -5,6 +5,7 @@ import android.bluetooth.BluetoothDevice import android.content.Context import androidx.hilt.work.HiltWorker import androidx.work.CoroutineWorker +import androidx.work.ForegroundInfo import androidx.work.WorkerParameters import dagger.assisted.Assisted import dagger.assisted.AssistedInject @@ -59,10 +60,16 @@ class MonitorWorker @AssistedInject constructor( log(TAG, VERBOSE) { "init(): workerId=$id" } } + override suspend fun getForegroundInfo(): ForegroundInfo { + return monitorNotifications.getForegroundInfo(null) + } + override suspend fun doWork(): Result = try { val start = System.currentTimeMillis() log(TAG, VERBOSE) { "Executing $inputData now (runAttemptCount=$runAttemptCount)" } + setForeground(monitorNotifications.getForegroundInfo(null)) + doDoWork() val duration = System.currentTimeMillis() - start @@ -91,7 +98,6 @@ class MonitorWorker @AssistedInject constructor( val monitorJob = podMonitor.mainDevice .setupCommonEventHandlers(TAG) { "PodMonitor" } - .onStart { setForeground(monitorNotifications.getForegroundInfo(null)) } .distinctUntilChanged() .throttleLatest(1000) .onEach { currentDevice ->