From fa984216f37976d179db38f3f8ead200c062de2b Mon Sep 17 00:00:00 2001 From: Nishant Mishra Date: Sun, 14 Sep 2025 12:52:21 +0530 Subject: [PATCH] fix: Save time to database when foreground service is closed Potentially fixes #10, I still need to test it though --- .../main/java/org/nsh07/pomodoro/data/AppContainer.kt | 5 +++-- .../main/java/org/nsh07/pomodoro/service/TimerService.kt | 9 ++++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/nsh07/pomodoro/data/AppContainer.kt b/app/src/main/java/org/nsh07/pomodoro/data/AppContainer.kt index 51c3570..7056373 100644 --- a/app/src/main/java/org/nsh07/pomodoro/data/AppContainer.kt +++ b/app/src/main/java/org/nsh07/pomodoro/data/AppContainer.kt @@ -46,10 +46,11 @@ class DefaultAppContainer(context: Context) : AppContainer { override val notificationBuilder: NotificationCompat.Builder by lazy { NotificationCompat.Builder(context, "timer") .setSmallIcon(R.drawable.tomato_logo_notification) - .setOngoing(true) .setColor(Color.Red.toArgb()) - .setRequestPromotedOngoing(true) + .setShowWhen(true) + .setSilent(true) .setOngoing(true) + .setRequestPromotedOngoing(true) } override val timerState: MutableStateFlow by lazy { diff --git a/app/src/main/java/org/nsh07/pomodoro/service/TimerService.kt b/app/src/main/java/org/nsh07/pomodoro/service/TimerService.kt index 9e94929..976be41 100644 --- a/app/src/main/java/org/nsh07/pomodoro/service/TimerService.kt +++ b/app/src/main/java/org/nsh07/pomodoro/service/TimerService.kt @@ -22,6 +22,7 @@ import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.update import kotlinx.coroutines.launch +import kotlinx.coroutines.runBlocking import org.nsh07.pomodoro.TomatoApplication import org.nsh07.pomodoro.data.AppContainer import org.nsh07.pomodoro.data.StatRepository @@ -216,9 +217,7 @@ class TimerService : Service() { (totalTime - remainingTime) + ((cycles + 1) / 2) * timerRepository.focusTime.toInt() + (cycles / 2) * timerRepository.shortBreakTime.toInt() ) ) - .setShowWhen(true) .setWhen(System.currentTimeMillis() + remainingTime) // Sets the Live Activity/Now Bar chip time - .setSilent(true) .build() ) @@ -337,7 +336,11 @@ class TimerService : Service() { override fun onDestroy() { super.onDestroy() - timerJob.cancel() + runBlocking { + timerJob.cancel() + saveTimeToDb() + notificationManager.cancel(1) + } } enum class Actions {