feat: Set segment colors for progress segments in notification
This commit is contained in:
@@ -5,6 +5,7 @@ import androidx.activity.ComponentActivity
|
|||||||
import androidx.activity.compose.setContent
|
import androidx.activity.compose.setContent
|
||||||
import androidx.activity.enableEdgeToEdge
|
import androidx.activity.enableEdgeToEdge
|
||||||
import androidx.activity.viewModels
|
import androidx.activity.viewModels
|
||||||
|
import androidx.compose.material3.MaterialTheme.colorScheme
|
||||||
import org.nsh07.pomodoro.ui.AppScreen
|
import org.nsh07.pomodoro.ui.AppScreen
|
||||||
import org.nsh07.pomodoro.ui.NavItem
|
import org.nsh07.pomodoro.ui.NavItem
|
||||||
import org.nsh07.pomodoro.ui.Screen
|
import org.nsh07.pomodoro.ui.Screen
|
||||||
@@ -22,6 +23,7 @@ class MainActivity : ComponentActivity() {
|
|||||||
enableEdgeToEdge()
|
enableEdgeToEdge()
|
||||||
setContent {
|
setContent {
|
||||||
TomatoTheme {
|
TomatoTheme {
|
||||||
|
timerViewModel.setCompositionLocals(colorScheme)
|
||||||
AppScreen(timerViewModel = timerViewModel, statsViewModel = statsViewModel)
|
AppScreen(timerViewModel = timerViewModel, statsViewModel = statsViewModel)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import android.app.PendingIntent
|
|||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
import android.os.SystemClock
|
import android.os.SystemClock
|
||||||
import androidx.annotation.RequiresPermission
|
import androidx.annotation.RequiresPermission
|
||||||
|
import androidx.compose.material3.ColorScheme
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
import androidx.compose.ui.graphics.toArgb
|
import androidx.compose.ui.graphics.toArgb
|
||||||
import androidx.core.app.NotificationCompat
|
import androidx.core.app.NotificationCompat
|
||||||
@@ -72,6 +73,8 @@ class TimerViewModel(
|
|||||||
private var pauseTime = 0L
|
private var pauseTime = 0L
|
||||||
private var pauseDuration = 0L
|
private var pauseDuration = 0L
|
||||||
|
|
||||||
|
private lateinit var cs: ColorScheme
|
||||||
|
|
||||||
init {
|
init {
|
||||||
viewModelScope.launch(Dispatchers.IO) {
|
viewModelScope.launch(Dispatchers.IO) {
|
||||||
timerRepository.focusTime =
|
timerRepository.focusTime =
|
||||||
@@ -117,6 +120,10 @@ class TimerViewModel(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun setCompositionLocals(colorScheme: ColorScheme) {
|
||||||
|
cs = colorScheme
|
||||||
|
}
|
||||||
|
|
||||||
fun onAction(action: TimerAction) {
|
fun onAction(action: TimerAction) {
|
||||||
when (action) {
|
when (action) {
|
||||||
TimerAction.ResetTimer -> resetTimer()
|
TimerAction.ResetTimer -> resetTimer()
|
||||||
@@ -299,15 +306,17 @@ class TimerViewModel(
|
|||||||
if (i % 2 == 0) it.addProgressSegment(
|
if (i % 2 == 0) it.addProgressSegment(
|
||||||
NotificationCompat.ProgressStyle.Segment(
|
NotificationCompat.ProgressStyle.Segment(
|
||||||
timerRepository.focusTime.toInt()
|
timerRepository.focusTime.toInt()
|
||||||
)
|
).setColor(cs.primary.toArgb())
|
||||||
)
|
)
|
||||||
else if (i != (timerRepository.sessionLength * 2 - 1)) it.addProgressSegment(
|
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(
|
else it.addProgressSegment(
|
||||||
NotificationCompat.ProgressStyle.Segment(
|
NotificationCompat.ProgressStyle.Segment(
|
||||||
timerRepository.longBreakTime.toInt()
|
timerRepository.longBreakTime.toInt()
|
||||||
)
|
).setColor(cs.tertiary.toArgb())
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user