From d37dde69c60ae5a02d04dd286d07022850898540 Mon Sep 17 00:00:00 2001 From: Nishant Mishra Date: Thu, 21 Aug 2025 23:06:58 +0530 Subject: [PATCH] feat: Set segment colors for progress segments in notification --- .../main/java/org/nsh07/pomodoro/MainActivity.kt | 2 ++ .../ui/timerScreen/viewModel/TimerViewModel.kt | 15 ++++++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/nsh07/pomodoro/MainActivity.kt b/app/src/main/java/org/nsh07/pomodoro/MainActivity.kt index 9e10f0f..f55cb02 100644 --- a/app/src/main/java/org/nsh07/pomodoro/MainActivity.kt +++ b/app/src/main/java/org/nsh07/pomodoro/MainActivity.kt @@ -5,6 +5,7 @@ import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.activity.enableEdgeToEdge import androidx.activity.viewModels +import androidx.compose.material3.MaterialTheme.colorScheme import org.nsh07.pomodoro.ui.AppScreen import org.nsh07.pomodoro.ui.NavItem import org.nsh07.pomodoro.ui.Screen @@ -22,6 +23,7 @@ class MainActivity : ComponentActivity() { enableEdgeToEdge() setContent { TomatoTheme { + timerViewModel.setCompositionLocals(colorScheme) AppScreen(timerViewModel = timerViewModel, statsViewModel = statsViewModel) } } diff --git a/app/src/main/java/org/nsh07/pomodoro/ui/timerScreen/viewModel/TimerViewModel.kt b/app/src/main/java/org/nsh07/pomodoro/ui/timerScreen/viewModel/TimerViewModel.kt index 877106e..63b46f7 100644 --- a/app/src/main/java/org/nsh07/pomodoro/ui/timerScreen/viewModel/TimerViewModel.kt +++ b/app/src/main/java/org/nsh07/pomodoro/ui/timerScreen/viewModel/TimerViewModel.kt @@ -14,6 +14,7 @@ import android.app.PendingIntent import android.content.Intent import android.os.SystemClock import androidx.annotation.RequiresPermission +import androidx.compose.material3.ColorScheme import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.toArgb import androidx.core.app.NotificationCompat @@ -72,6 +73,8 @@ class TimerViewModel( private var pauseTime = 0L private var pauseDuration = 0L + private lateinit var cs: ColorScheme + init { viewModelScope.launch(Dispatchers.IO) { timerRepository.focusTime = @@ -117,6 +120,10 @@ class TimerViewModel( } } + fun setCompositionLocals(colorScheme: ColorScheme) { + cs = colorScheme + } + fun onAction(action: TimerAction) { when (action) { TimerAction.ResetTimer -> resetTimer() @@ -299,15 +306,17 @@ class TimerViewModel( if (i % 2 == 0) it.addProgressSegment( NotificationCompat.ProgressStyle.Segment( timerRepository.focusTime.toInt() - ) + ).setColor(cs.primary.toArgb()) ) else if (i != (timerRepository.sessionLength * 2 - 1)) it.addProgressSegment( - NotificationCompat.ProgressStyle.Segment(timerRepository.shortBreakTime.toInt()) + NotificationCompat.ProgressStyle.Segment( + timerRepository.shortBreakTime.toInt() + ).setColor(cs.tertiary.toArgb()) ) else it.addProgressSegment( NotificationCompat.ProgressStyle.Segment( timerRepository.longBreakTime.toInt() - ) + ).setColor(cs.tertiary.toArgb()) ) } }