(Screen.Settings.Main)
+
private val _preferencesState = MutableStateFlow(PreferencesState())
val preferencesState = _preferencesState.asStateFlow()
@@ -80,12 +94,15 @@ class SettingsViewModel(
?: preferenceRepository.saveStringPreference("color_scheme", Color.White.toString())
val blackTheme = preferenceRepository.getBooleanPreference("black_theme")
?: preferenceRepository.saveBooleanPreference("black_theme", false)
+ val aodEnabled = preferenceRepository.getBooleanPreference("aod_enabled")
+ ?: preferenceRepository.saveBooleanPreference("aod_enabled", false)
_preferencesState.update { currentState ->
currentState.copy(
theme = theme,
colorScheme = colorScheme,
- blackTheme = blackTheme
+ blackTheme = blackTheme,
+ aodEnabled = aodEnabled
)
}
}
@@ -196,6 +213,15 @@ class SettingsViewModel(
}
}
+ fun saveAodEnabled(aodEnabled: Boolean) {
+ viewModelScope.launch {
+ _preferencesState.update { currentState ->
+ currentState.copy(aodEnabled = aodEnabled)
+ }
+ preferenceRepository.saveBooleanPreference("aod_enabled", aodEnabled)
+ }
+ }
+
companion object {
val Factory: ViewModelProvider.Factory = viewModelFactory {
initializer {
diff --git a/app/src/main/java/org/nsh07/pomodoro/ui/theme/Color.kt b/app/src/main/java/org/nsh07/pomodoro/ui/theme/Color.kt
index 738f989..064d7d8 100644
--- a/app/src/main/java/org/nsh07/pomodoro/ui/theme/Color.kt
+++ b/app/src/main/java/org/nsh07/pomodoro/ui/theme/Color.kt
@@ -1,9 +1,28 @@
+/*
+ * Copyright (c) 2025 Nishant Mishra
+ *
+ * This file is part of Tomato - a minimalist pomodoro timer for Android.
+ *
+ * Tomato is free software: you can redistribute it and/or modify it under the terms of the GNU
+ * General Public License as published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * Tomato is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+ * Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with Tomato.
+ * If not, see .
+ */
+
package org.nsh07.pomodoro.ui.theme
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.ListItemColors
import androidx.compose.material3.ListItemDefaults
import androidx.compose.material3.MaterialTheme.colorScheme
+import androidx.compose.material3.SwitchColors
+import androidx.compose.material3.SwitchDefaults
import androidx.compose.material3.TopAppBarColors
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.runtime.Composable
@@ -41,4 +60,9 @@ object CustomColors {
supportingColor = colorScheme.onSecondaryFixedVariant,
trailingIconColor = colorScheme.onSecondaryFixedVariant
)
+
+ val switchColors: SwitchColors
+ @Composable get() = SwitchDefaults.colors(
+ checkedIconColor = colorScheme.primary,
+ )
}
\ No newline at end of file
diff --git a/app/src/main/java/org/nsh07/pomodoro/ui/timerScreen/AlarmDialog.kt b/app/src/main/java/org/nsh07/pomodoro/ui/timerScreen/AlarmDialog.kt
index 9b27779..7d13fa7 100644
--- a/app/src/main/java/org/nsh07/pomodoro/ui/timerScreen/AlarmDialog.kt
+++ b/app/src/main/java/org/nsh07/pomodoro/ui/timerScreen/AlarmDialog.kt
@@ -1,8 +1,18 @@
/*
* Copyright (c) 2025 Nishant Mishra
*
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
+ * This file is part of Tomato - a minimalist pomodoro timer for Android.
+ *
+ * Tomato is free software: you can redistribute it and/or modify it under the terms of the GNU
+ * General Public License as published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * Tomato is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+ * the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+ * Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with Tomato.
+ * If not, see .
*/
package org.nsh07.pomodoro.ui.timerScreen
@@ -75,4 +85,4 @@ fun AlarmDialog(
}
}
}
-}
\ 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 bdb563d..68b9094 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
@@ -13,6 +13,8 @@ import androidx.activity.compose.rememberLauncherForActivityResult
import androidx.activity.result.contract.ActivityResultContracts
import androidx.compose.animation.AnimatedContent
import androidx.compose.animation.AnimatedVisibility
+import androidx.compose.animation.SharedTransitionLayout
+import androidx.compose.animation.SharedTransitionScope
import androidx.compose.animation.animateColorAsState
import androidx.compose.animation.expandVertically
import androidx.compose.animation.fadeIn
@@ -81,6 +83,7 @@ import androidx.compose.ui.tooling.preview.Devices
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
+import androidx.navigation3.ui.LocalNavAnimatedContentScope
import org.nsh07.pomodoro.R
import org.nsh07.pomodoro.ui.theme.AppFonts.openRundeClock
import org.nsh07.pomodoro.ui.theme.AppFonts.robotoFlexTopBar
@@ -91,7 +94,7 @@ import org.nsh07.pomodoro.ui.timerScreen.viewModel.TimerState
@OptIn(ExperimentalMaterial3Api::class, ExperimentalMaterial3ExpressiveApi::class)
@Composable
-fun TimerScreen(
+fun SharedTransitionScope.TimerScreen(
timerState: TimerState,
progress: () -> Float,
onAction: (TimerAction) -> Unit,
@@ -209,6 +212,12 @@ fun TimerScreen(
CircularProgressIndicator(
progress = progress,
modifier = Modifier
+ .sharedBounds(
+ sharedContentState = this@TimerScreen.rememberSharedContentState(
+ "focus progress"
+ ),
+ animatedVisibilityScope = LocalNavAnimatedContentScope.current
+ )
.widthIn(max = 350.dp)
.fillMaxWidth(0.9f)
.aspectRatio(1f),
@@ -221,6 +230,12 @@ fun TimerScreen(
CircularWavyProgressIndicator(
progress = progress,
modifier = Modifier
+ .sharedBounds(
+ sharedContentState = this@TimerScreen.rememberSharedContentState(
+ "break progress"
+ ),
+ animatedVisibilityScope = LocalNavAnimatedContentScope.current
+ )
.widthIn(max = 350.dp)
.fillMaxWidth(0.9f)
.aspectRatio(1f),
@@ -261,7 +276,11 @@ fun TimerScreen(
letterSpacing = (-2).sp
),
textAlign = TextAlign.Center,
- maxLines = 1
+ maxLines = 1,
+ modifier = Modifier.sharedBounds(
+ sharedContentState = this@TimerScreen.rememberSharedContentState("clock"),
+ animatedVisibilityScope = LocalNavAnimatedContentScope.current
+ )
)
AnimatedVisibility(
expanded,
@@ -519,11 +538,13 @@ fun TimerScreenPreview() {
)
TomatoTheme {
Surface {
- TimerScreen(
- timerState,
- { 0.3f },
- {}
- )
+ SharedTransitionLayout {
+ TimerScreen(
+ timerState,
+ { 0.3f },
+ {}
+ )
+ }
}
}
}
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 2202d42..53c23b5 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
@@ -95,6 +95,9 @@ class TimerViewModel(
)
).toUri()
+ preferenceRepository.getBooleanPreference("aod_enabled")
+ ?: preferenceRepository.saveBooleanPreference("aod_enabled", false)
+
_time.update { timerRepository.focusTime }
cycles = 0
startTime = 0L
diff --git a/app/src/main/res/drawable/aod.xml b/app/src/main/res/drawable/aod.xml
new file mode 100644
index 0000000..ab821c8
--- /dev/null
+++ b/app/src/main/res/drawable/aod.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
diff --git a/app/src/main/res/drawable/arrow_back.xml b/app/src/main/res/drawable/arrow_back.xml
new file mode 100644
index 0000000..d867d93
--- /dev/null
+++ b/app/src/main/res/drawable/arrow_back.xml
@@ -0,0 +1,21 @@
+
+
+
+
+
diff --git a/app/src/main/res/drawable/arrow_forward_big.xml b/app/src/main/res/drawable/arrow_forward_big.xml
new file mode 100644
index 0000000..eac1368
--- /dev/null
+++ b/app/src/main/res/drawable/arrow_forward_big.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
diff --git a/app/src/main/res/drawable/coffee.xml b/app/src/main/res/drawable/coffee.xml
new file mode 100644
index 0000000..05b913c
--- /dev/null
+++ b/app/src/main/res/drawable/coffee.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/discord.xml b/app/src/main/res/drawable/discord.xml
new file mode 100644
index 0000000..e0b6446
--- /dev/null
+++ b/app/src/main/res/drawable/discord.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/github.xml b/app/src/main/res/drawable/github.xml
new file mode 100644
index 0000000..c60cd31
--- /dev/null
+++ b/app/src/main/res/drawable/github.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/play_store.xml b/app/src/main/res/drawable/play_store.xml
new file mode 100644
index 0000000..fc7ef76
--- /dev/null
+++ b/app/src/main/res/drawable/play_store.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/values-ckb/strings.xml b/app/src/main/res/values-ckb/strings.xml
index b5a25e8..c22541d 100644
--- a/app/src/main/res/values-ckb/strings.xml
+++ b/app/src/main/res/values-ckb/strings.xml
@@ -36,4 +36,7 @@
ئامار
زانیاری زیاتر
وەستاندن
+ پشوو
+ تەواوکراو
+ دوای ئەمە
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index 5a729c0..9c43c91 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -16,7 +16,7 @@
Duración de la concentración en diferentes momentos del día
Sonido de la alarma
Tema negro
- Utiliza un tema oscuro negro puro
+ Utilizar un tema oscuro negro puro
Sonar alarma cuando el temporizador finalice
Vibrar
Vibrar cuando el temporizador finalice
@@ -30,7 +30,7 @@
Descanso
Semana pasada
concentración por día (avg)
- Más informes
+ Más información
Análisis de productividad semanal
Mes pasado
Análisis de productividad mensual
@@ -56,4 +56,5 @@
Color
Luz
Oscuro
+ Año pasado
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
new file mode 100644
index 0000000..60b8b1d
--- /dev/null
+++ b/app/src/main/res/values-fr/strings.xml
@@ -0,0 +1,62 @@
+
+
+ Démarrer
+ Arrêter
+ Concentration
+ Pause courte
+ Pause longue
+ Quitter
+ Passer
+ Arrêter l\'alarme
+ %1$s minutes restantes
+ En pause
+ Terminé
+ À venir : %1$s (%2$s)
+ Démarrer l\'intervalle suivant
+ Choisir le thème de couleurs
+ OK
+ Thème de couleurs
+ Dynamique
+ Couleur
+ Valeur par défaut du système
+ Alarme
+ Clair
+ Sombre
+ Choisir le thème
+ Analyse de productivité
+ Durée de concentration selon les moments de la journée
+ Son de l\'alarme
+ Thème noir
+ Utiliser un thème sombre noir pur
+ Faire sonner l’alarme à la fin du minuteur
+ Vibrer
+ Faire vibrer à la fin du minuteur
+ Thème
+ Paramètres
+ Durée de la session
+ Intervalles de concentration par session : %1$d
+ Une \"session\" est une séquence d’intervalles Pomodoro comprenant des phases de concentration, des pauses courtes et une pause longue. La dernière pause d’une session est toujours une pause longue.
+ Statistiques
+ Aujourd\'hui
+ Pause
+ 7 derniers jours
+ concentration moyenne par jour
+ Plus d\'infos
+ Analyse hebdomadaire de la productivité
+ 30 derniers jours
+ Analyse mensuelle de la productivité
+ Arrêter l\'alarme ?
+ La session actuelle est terminée. Touchez n’importe où pour arrêter l’alarme.
+ %1$d sur %2$d
+ Plus
+ Mettre en pause
+ Démarrer la session
+ Redémarrer
+ Passer au suivant
+ À venir
+ Minuteur
+ Progression du minuteur
+ 12 derniers mois
+ Appuyez n\'importe où lors de l\'affichage du minuteur pour passer en mode AOD
+ Affichage Permanent
+
diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml
new file mode 100644
index 0000000..a06754d
--- /dev/null
+++ b/app/src/main/res/values-tr/strings.xml
@@ -0,0 +1,64 @@
+
+
+ Başlat
+ Durdur
+ Odaklan
+ Kısa Mola
+ Uzun Mola
+ Çıkış
+ Atla
+ Alarmı Durdur
+ %1$s dk kaldı
+ Duraklatıldı
+ Tamamlandı
+ Sırada: %1$s (%2$s)
+ Sıradakini Başlat
+ Renk şeması seçin
+ Tamam
+ Renk şeması
+ Dinamik
+ Renk
+ Sistem varsayılanı
+ Açık
+ Koyu
+ Tema seçin
+ Verimlilik analizi
+ Günün farklı saatlerindeki odaklanma süreleri
+ Alarm sesi
+ Siyah tema
+ Tam siyah koyu tema kullan
+ Zamanlayıcı bittiğinde alarm çal
+ Titreşim
+ Zamanlayıcı bittiğinde titre
+ Tema
+ Ayarlar
+ Oturum uzunluğu
+ Bir oturumdaki odaklanma aralığı: %1$d
+ \"Oturum\", odaklanma aralıkları, kısa mola aralıkları ve bir uzun mola aralığı içeren bir pomodoro aralıkları dizisidir. Bir oturumun son molası her zaman uzun moladır.
+ İstatistikler
+ Bugün
+ Mola
+ Geçen hafta
+ günlük odaklanma (ortalama)
+ Daha fazla bilgi
+ Haftalık verimlilik analizi
+ Geçen ay
+ Aylık verimlilik analizi
+ Alarmı Durdur?
+ Mevcut zamanlayıcı oturumu tamamlandı. Alarmı durdurmak için herhangi bir yere dokunun.
+ %1$d / %2$d
+ Daha fazla
+ Duraklat
+ Devam Et
+ Yeniden Başlat
+ Sıradakine Atla
+ Sıradaki
+ Zamanlayıcı
+ Zamanlayıcı İlerlemesi
+ Geçen yıl
+ Alarm
+ Her zaman açık ekran
+ Zamanlayıcıyı görüntülerken AOD moduna geçmek için herhangi bir yere dokunun
+ Görünüm
+ Süreler
+
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index fcc8a7d..ad99d0d 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -55,5 +55,8 @@
接下来是
计时
计时器进度
- %1$d 的 %2$d
+ %2$d 中的 %1$d
+ 去年
+ 息屏显示
+ 查看计时器时点击任意位置切换至 AOD 模式
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 067cff5..cf51e15 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,60 +1,82 @@
+
+
- Tomato
- Start
- Stop
- Focus
- Short break
- Long break
- Exit
- Skip
- Stop alarm
- %1$s min remaining
- Paused
- Completed
- Up next: %1$s (%2$s)
- Start next
- Choose color scheme
- OK
- Color scheme
- Dynamic
- Color
- System default
Alarm
- Light
- Dark
- Choose theme
- Productivity analysis
- Focus durations at different times of the day
+ Ring alarm when a timer completes
Alarm sound
+ Always On Display
+ Tap anywhere when viewing the timer to switch to AOD mode
+ Tomato
Black theme
Use a pure black dark theme
- Ring alarm when a timer completes
- Vibrate
- Vibrate when a timer completes
- Theme
- Settings
+ Break
+ Choose color scheme
+ Choose theme
+ Color
+ Color scheme
+ Completed
+ Dark
+ Dynamic
+ Exit
+ Focus
+ focus per day (avg)
+ Last month
+ Last week
+ Last year
+ Light
+ Long break
+ %1$s min remaining
+ Monthly productivity analysis
+ More
+ More info
+ OK
+ Pause
+ Paused
+ Play
+ A \"session\" is a sequence of pomodoro intervals that contain focus intervals, short break intervals, and a long break interval. The last break of a session is always a long break.
+ Productivity analysis
+ Focus durations at different times of the day
+ Restart
Session length
Focus intervals in one session: %1$d
- A \"session\" is a sequence of pomodoro intervals that contain focus intervals, short break intervals, and a long break interval. The last break of a session is always a long break.
- Stats
- Today
- Break
- Last week
- focus per day (avg)
- More info
- Weekly productivity analysis
- Last month
- Monthly productivity analysis
- Stop Alarm?
- Current timer session is complete. Tap anywhere to stop the alarm.
- %1$d of %2$d
- More
- Pause
- Play
- Restart
+ Settings
+ Short break
+ Skip
Skip to next
- Up next
+ Start
+ Start next
+ Stats
+ Stop
+ Stop alarm
+ Current timer session is complete. Tap anywhere to stop the alarm.
+ Stop Alarm?
+ System
+ Theme
Timer
Timer progress
- Last year
+ %1$d of %2$d
+ Today
+ Up next
+ Up next: %1$s (%2$s)
+ Vibration
+ Vibrate when a timer completes
+ Weekly productivity analysis
+ Appearance
+ Durations
+ Sound
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/14.txt b/fastlane/metadata/android/en-US/changelogs/14.txt
new file mode 100644
index 0000000..a028e30
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/14.txt
@@ -0,0 +1,6 @@
+New features:
+- New Always On Display option: click anywhere while on the Timer screen to turn on Always On Display mode, tap again to turn it off
+
+Translators on Weblate helped add support for French and Turkish in this update
+
+The AOD feature is still in development. Suggest features and report bugs at https://github.com/nsh07/tomato/issues
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/15.txt b/fastlane/metadata/android/en-US/changelogs/15.txt
new file mode 100644
index 0000000..c2ac46f
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/15.txt
@@ -0,0 +1,8 @@
+New features:
+- New Always On Display option
+- Redesigned and simplified Settings screen
+ - New theme and color scheme selector
+- You can now dismiss alarms without unlocking your phone
+
+Enhancements:
+- Alarms now automatically stop ringing after 1 minute
\ No newline at end of file
diff --git a/fastlane/metadata/android/fr-FR/full_description.txt b/fastlane/metadata/android/fr-FR/full_description.txt
new file mode 100644
index 0000000..28e0d00
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/full_description.txt
@@ -0,0 +1,12 @@
+Tomato est un minuteur Pomodoro minimaliste pour Android, conçu selon les principes de Material 3 Expressive.
+
+Tomato est entièrement gratuit et open-source, pour toujours. Le code source est disponible sur GitHub : https://github.com/nsh07/Tomato, où vous pouvez aussi signaler des bugs ou proposer de nouvelles fonctionnalités.
+
+Fonctionnalités:
+- Interface simple et minimaliste, conforme aux dernières recommandations Material 3 Expressive
+- Statistiques détaillées du temps de travail/étude, présentées de manière claire et intuitive
+ - Statistiques du jour accessibles immédiatement
+ - Graphiques simple et lisibles de votre semaine et votre mois
+ - Analyse de vos heures les plus productives dans la semaine et le mois
+- Paramètres du minuteur entièrement personnalisables
+- Compatibilité avec les Live Updates d’Android 16
diff --git a/fastlane/metadata/android/fr-FR/short_description.txt b/fastlane/metadata/android/fr-FR/short_description.txt
new file mode 100644
index 0000000..1185050
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/short_description.txt
@@ -0,0 +1 @@
+Minuteur Pomodoro minimaliste
diff --git a/fastlane/metadata/android/tr-TR/full_description.txt b/fastlane/metadata/android/tr-TR/full_description.txt
new file mode 100644
index 0000000..e61dc3e
--- /dev/null
+++ b/fastlane/metadata/android/tr-TR/full_description.txt
@@ -0,0 +1,12 @@
+Tomato, Material 3 Expressive tabanlı, Android için minimalist bir Pomodoro sayacıdır.
+
+Tomato tamamen ücretsizdir ve sonsuza kadar açık kaynaklı kalacaktır. Kaynak koduna ulaşmak, hata bildirmek veya özellik önermek için: https://github.com/nsh07/Tomato
+
+Özellikler:
+- En son Material 3 Expressive yönergelerine dayalı basit, minimalist kullanıcı arayüzü
+- Çalışma/ders çalışma sürelerinizin kolay anlaşılır şekilde sunulan ayrıntılı istatistikleri
+ - Güncel güne ait istatistikler bir bakışta görülebilir
+ - Son hafta ve son aya ait istatistikler, okunması kolay ve temiz bir grafikte gösterilir
+ - Son hafta ve son aya ait, günün hangi saatinde en üretken olduğunuzu gösteren ek istatistikler
+- Özelleştirilebilir zamanlayıcı parametreleri
+- Android 16 Canlı Güncellemeler (Live Updates) desteği
diff --git a/fastlane/metadata/android/tr-TR/short_description.txt b/fastlane/metadata/android/tr-TR/short_description.txt
new file mode 100644
index 0000000..bac83fe
--- /dev/null
+++ b/fastlane/metadata/android/tr-TR/short_description.txt
@@ -0,0 +1 @@
+Minimalist Pomodoro sayacı
diff --git a/fastlane/metadata/android/uk/full_description.txt b/fastlane/metadata/android/uk/full_description.txt
index 5c73fb5..175d3c5 100644
--- a/fastlane/metadata/android/uk/full_description.txt
+++ b/fastlane/metadata/android/uk/full_description.txt
@@ -1 +1,12 @@
-Tomato - мінімалістичний Pomodoro таймер для Android на базі Material 3 Expressive.
Особливості:
- Простий, мінімалістичний інтерфейс на основі останніх рекомендацій Material 3 Expressive
- Детальна статистика робочого/навчального часу в зрозумілій формі
- Статистика за поточний день, доступна з одного погляду
- Статистика за останній тиждень і останній місяць, представлена у вигляді зручного для сприйняття чіткого графіку
- Додаткова статистика за останній тиждень і місяць, що показує, в який час дня ви були найбільш продуктивні
- Настроювані параметри таймера
+Tomato - мінімалістичний Pomodoro таймер для Android на базі Material 3 Expressive.
+
+Tomato повністю безкоштовний та з відкритим вихідним кодом. Ви можете знайти вихідний код і повідомляти про помилки й пропонувати функції на GitHub: https://github.com/nsh07/Tomato.
+
+Особливості:
+- Простий, мінімалістичний інтерфейс на основі останніх рекомендацій Material 3 Expressive
+- Детальна статистика робочого/навчального часу в зрозумілій формі
+ - Статистика за поточний день, доступна з одного погляду
+ - Статистика за останній тиждень і останній місяць, представлена у вигляді зручного для сприйняття чіткого графіку
+ - Додаткова статистика за останній тиждень і місяць, що показує, в який час дня ви були найбільш продуктивні
+- Настроювані параметри таймера
+- Підтримка Live Updates (для пристроїв на Android 16)
diff --git a/fastlane/metadata/android/zh-CN/full_description.txt b/fastlane/metadata/android/zh-CN/full_description.txt
index 08a5f6c..a1505f3 100644
--- a/fastlane/metadata/android/zh-CN/full_description.txt
+++ b/fastlane/metadata/android/zh-CN/full_description.txt
@@ -1 +1,12 @@
-Tomato 是一个基于Material 3 Expressive的安卓极简主义番茄钟.
功能:
- 基于最新Material 3 Expressive指南的简洁用户界面
- 以便于理解的方式提供工作/学习的详细统计数据
- 当日统计数据一目了然
- 清楚易读的上周和上月统计图表
- 上周和上月的额外统计数据帮您找到一天中最高效的时间段
- 可自定义的计时器参数
+Tomato 是一个基于Material 3 Expressive的安卓极简主义番茄钟.
+
+Tomato 将永远保持完全免费和开源。如果你想获取源代码、报告程序错误(bug)或建议新功能,请访问 https://github.com/nsh07/Tomato。
+
+功能:
+- 基于最新Material 3 Expressive指南的简洁用户界面
+- 以便于理解的方式提供工作/学习的详细统计数据
+ - 当日统计数据一目了然
+ - 清楚易读的上周和上月统计图表
+ - 上周和上月的额外统计数据帮您找到一天中最高效的时间段
+- 可自定义的计时器参数
+- 支持 Android 16 即時更新 (Android 16 Live Updates)
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 0e776d2..783dd5d 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -1,18 +1,18 @@
[versions]
activityCompose = "1.11.0"
-adaptive = "1.1.0"
+adaptive = "1.2.0"
agp = "8.11.2"
-composeBom = "2025.10.00"
+composeBom = "2025.10.01"
coreKtx = "1.17.0"
espressoCore = "3.7.0"
junit = "4.13.2"
junitVersion = "1.3.0"
-kotlin = "2.2.20"
+kotlin = "2.2.21"
ksp = "2.2.20-2.0.4"
lifecycleRuntimeKtx = "2.9.4"
materialKolor = "3.0.1"
-navigation3 = "1.0.0-alpha11"
-room = "2.8.2"
+navigation3 = "1.0.0-beta01"
+room = "2.8.3"
vico = "2.2.1"
[libraries]