From d83950f2b9c294c4502e8282d24ad16747dfadc8 Mon Sep 17 00:00:00 2001 From: Nishant Mishra Date: Tue, 1 Jul 2025 20:22:05 +0530 Subject: [PATCH] Show app name in title bar on app start --- .../java/org/nsh07/pomodoro/ui/AppScreen.kt | 16 +++++++++++++++ .../pomodoro/ui/timerScreen/TimerScreen.kt | 20 ++++++++++++++++--- .../nsh07/pomodoro/ui/viewModel/UiState.kt | 2 +- .../pomodoro/ui/viewModel/UiViewModel.kt | 2 +- 4 files changed, 35 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/nsh07/pomodoro/ui/AppScreen.kt b/app/src/main/java/org/nsh07/pomodoro/ui/AppScreen.kt index 300bb95..fd45258 100644 --- a/app/src/main/java/org/nsh07/pomodoro/ui/AppScreen.kt +++ b/app/src/main/java/org/nsh07/pomodoro/ui/AppScreen.kt @@ -3,10 +3,17 @@ package org.nsh07.pomodoro.ui import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember import androidx.compose.runtime.rememberUpdatedState +import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.lifecycle.compose.collectAsStateWithLifecycle +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.delay +import kotlinx.coroutines.withContext import org.nsh07.pomodoro.ui.timerScreen.TimerScreen import org.nsh07.pomodoro.ui.viewModel.UiViewModel @@ -20,9 +27,18 @@ fun AppScreen( val remainingTime by viewModel.time.collectAsStateWithLifecycle() val progress by rememberUpdatedState((uiState.totalTime.toFloat() - remainingTime) / uiState.totalTime) + var showBrandTitle by remember { mutableStateOf(true) } + + LaunchedEffect(Unit) { + withContext(Dispatchers.IO) { + delay(1500) + showBrandTitle = false + } + } TimerScreen( uiState = uiState, + showBrandTitle = showBrandTitle, progress = { progress }, resetTimer = viewModel::resetTimer, toggleTimer = viewModel::toggleTimer, diff --git a/app/src/main/java/org/nsh07/pomodoro/ui/timerScreen/TimerScreen.kt b/app/src/main/java/org/nsh07/pomodoro/ui/timerScreen/TimerScreen.kt index ea719d3..0b19323 100644 --- a/app/src/main/java/org/nsh07/pomodoro/ui/timerScreen/TimerScreen.kt +++ b/app/src/main/java/org/nsh07/pomodoro/ui/timerScreen/TimerScreen.kt @@ -62,6 +62,7 @@ import org.nsh07.pomodoro.ui.viewModel.UiState @Composable fun TimerScreen( uiState: UiState, + showBrandTitle: Boolean, progress: () -> Float, resetTimer: () -> Unit, toggleTimer: () -> Unit, @@ -95,7 +96,7 @@ fun TimerScreen( TopAppBar( title = { AnimatedContent( - uiState.timerMode, + if (!showBrandTitle) uiState.timerMode else TimerMode.BRAND, transitionSpec = { slideInVertically( animationSpec = motionScheme.slowSpatialSpec(), @@ -109,6 +110,19 @@ fun TimerScreen( } ) { when (it) { + TimerMode.BRAND -> + Text( + "Tomato", + style = TextStyle( + fontFamily = interDisplayBlack, + fontSize = 32.sp, + lineHeight = 32.sp, + color = colorScheme.onErrorContainer + ), + textAlign = TextAlign.Center, + modifier = Modifier.width(200.dp) + ) + TimerMode.FOCUS -> Text( "Focus", @@ -289,7 +303,7 @@ fun TimerScreen( when (uiState.nextTimerMode) { TimerMode.FOCUS -> "Focus" TimerMode.SHORT_BREAK -> "Short Break" - TimerMode.LONG_BREAK -> "Long Break" + else -> "Long Break" }, style = typography.titleMediumEmphasized ) @@ -309,6 +323,6 @@ fun TimerScreenPreview() { timeStr = "03:34", nextTimeStr = "5:00", timerMode = TimerMode.SHORT_BREAK ) TomatoTheme { - TimerScreen(uiState, { 0.3f }, {}, {}) + TimerScreen(uiState, false,{ 0.3f }, {}, {}) } } diff --git a/app/src/main/java/org/nsh07/pomodoro/ui/viewModel/UiState.kt b/app/src/main/java/org/nsh07/pomodoro/ui/viewModel/UiState.kt index 8e963f2..f1a330f 100644 --- a/app/src/main/java/org/nsh07/pomodoro/ui/viewModel/UiState.kt +++ b/app/src/main/java/org/nsh07/pomodoro/ui/viewModel/UiState.kt @@ -10,5 +10,5 @@ data class UiState( ) enum class TimerMode { - FOCUS, SHORT_BREAK, LONG_BREAK + FOCUS, SHORT_BREAK, LONG_BREAK, BRAND } \ No newline at end of file diff --git a/app/src/main/java/org/nsh07/pomodoro/ui/viewModel/UiViewModel.kt b/app/src/main/java/org/nsh07/pomodoro/ui/viewModel/UiViewModel.kt index 528eeac..73ecbc0 100644 --- a/app/src/main/java/org/nsh07/pomodoro/ui/viewModel/UiViewModel.kt +++ b/app/src/main/java/org/nsh07/pomodoro/ui/viewModel/UiViewModel.kt @@ -76,7 +76,7 @@ class UiViewModel : ViewModel() { focusTime - (SystemClock.elapsedRealtime() - startTime - pauseDuration).toInt() TimerMode.SHORT_BREAK -> shortBreakTime - (SystemClock.elapsedRealtime() - startTime - pauseDuration).toInt() - TimerMode.LONG_BREAK -> + else -> longBreakTime - (SystemClock.elapsedRealtime() - startTime - pauseDuration).toInt() } }