diff --git a/README.md b/README.md new file mode 100644 index 0000000..413971b --- /dev/null +++ b/README.md @@ -0,0 +1,16 @@ +# Tomato + +### THIS PROJECT IS IN A VERY EARLY DEVELOPMENT STAGE. MOST FEATURES ARE NOT YET READY + +### About + +Tomato is a minimalist Pomodoro timer for Android based on Material 3 Expressive + +### Screenshots + +

+ + + + +

\ No newline at end of file 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 069724f..f0264d3 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 @@ -29,9 +29,12 @@ import androidx.compose.material3.Scaffold import androidx.compose.material3.Text import androidx.compose.material3.TopAppBar import androidx.compose.runtime.Composable +import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.hapticfeedback.HapticFeedbackType +import androidx.compose.ui.platform.LocalHapticFeedback import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.font.FontWeight @@ -55,6 +58,8 @@ fun TimerScreen( modifier: Modifier = Modifier ) { val motionScheme = motionScheme + val haptic = LocalHapticFeedback.current + val color by animateColorAsState( if (uiState.timerMode == TimerMode.FOCUS) colorScheme.primary else colorScheme.tertiary, @@ -71,6 +76,10 @@ fun TimerScreen( animationSpec = motionScheme.slowEffectsSpec() ) + LaunchedEffect(uiState.timerMode) { + haptic.performHapticFeedback(HapticFeedbackType.LongPress) + } + Scaffold( topBar = { TopAppBar( 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 3db5ed4..c0167f1 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 @@ -10,11 +10,12 @@ import kotlinx.coroutines.flow.asStateFlow import kotlinx.coroutines.flow.update import kotlinx.coroutines.launch import java.util.Locale +import kotlin.math.ceil class UiViewModel : ViewModel() { - val focusTime = 10000 - val shortBreakTime = 5000 - val longBreakTime = 20000 + val focusTime = 25 * 60 * 1000 + val shortBreakTime = 5 * 60 * 1000 + val longBreakTime = 15 * 60 * 1000 private val _uiState = MutableStateFlow( UiState( @@ -57,7 +58,7 @@ class UiViewModel : ViewModel() { timerJob = viewModelScope.launch { while (true) { if (!uiState.value.timerRunning) break - _time.update { it - 10 } + _time.update { it - 100 } if (time.value < 0) { cycles++ @@ -97,15 +98,15 @@ class UiViewModel : ViewModel() { } } - delay(10) + delay(100) } } } } private fun millisecondsToStr(t: Int): String { - val min = (t / 1000) / 60 - val sec = (t / 1000) % 60 + val min = (ceil(t / 1000.0).toInt() / 60) + val sec = (ceil(t / 1000.0).toInt() % 60) return String.format(locale = Locale.getDefault(), "%02d:%02d", min, sec) } } \ No newline at end of file diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/1.jpg b/fastlane/metadata/android/en-US/images/phoneScreenshots/1.jpg new file mode 100644 index 0000000..0e03a2a Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/1.jpg differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/2.jpg b/fastlane/metadata/android/en-US/images/phoneScreenshots/2.jpg new file mode 100644 index 0000000..7dd924a Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/2.jpg differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/3.jpg b/fastlane/metadata/android/en-US/images/phoneScreenshots/3.jpg new file mode 100644 index 0000000..1bd086f Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/3.jpg differ diff --git a/fastlane/metadata/android/en-US/images/phoneScreenshots/4.jpg b/fastlane/metadata/android/en-US/images/phoneScreenshots/4.jpg new file mode 100644 index 0000000..3e04656 Binary files /dev/null and b/fastlane/metadata/android/en-US/images/phoneScreenshots/4.jpg differ