From 35080c208becdfeee34cabc0e36b901468089d32 Mon Sep 17 00:00:00 2001
From: jonasgaudian <43753916+jonasgaudian@users.noreply.github.com>
Date: Tue, 17 Feb 2026 11:13:00 +0100
Subject: [PATCH] update `VocabularyProgressOptionsScreen` layout and expand
motivational phrases
---
.../VocabularyProgressOptionsScreen.kt | 110 +++++++++---------
app/src/main/res/values-de-rDE/strings.xml | 3 -
app/src/main/res/values-pt-rBR/strings.xml | 2 -
app/src/main/res/values/arrays.xml | 48 ++++++--
app/src/main/res/values/strings.xml | 4 +-
5 files changed, 92 insertions(+), 75 deletions(-)
diff --git a/app/src/main/java/eu/gaudian/translator/view/settings/VocabularyProgressOptionsScreen.kt b/app/src/main/java/eu/gaudian/translator/view/settings/VocabularyProgressOptionsScreen.kt
index 10d2610..6949483 100644
--- a/app/src/main/java/eu/gaudian/translator/view/settings/VocabularyProgressOptionsScreen.kt
+++ b/app/src/main/java/eu/gaudian/translator/view/settings/VocabularyProgressOptionsScreen.kt
@@ -91,44 +91,27 @@ fun VocabularyProgressOptionsScreen(
.padding(16.dp),
verticalArrangement = Arrangement.spacedBy(16.dp)
) {
- // Interval Settings
- AppCard(
- expandable = true,
- initiallyExpanded = true,
- title = stringResource(R.string.text_interval_settings_in_days),
- text = stringResource(R.string.text_customize_the_intervals),
-
-
-
- ) {
- val intervals by settingsViewModel.intervals.collectAsStateWithLifecycle()
+ // Daily Goal Settings
+ AppCard {
+ val dailyGoal by settingsViewModel.dailyGoal.collectAsStateWithLifecycle()
Column(
- modifier = Modifier
- .padding(16.dp)
- .animateContentSize(),
- verticalArrangement = Arrangement.spacedBy(16.dp)
+ modifier = Modifier.padding(16.dp),
+ verticalArrangement = Arrangement.spacedBy(8.dp)
) {
- IntervalTimeline(intervals = intervals)
- intervals.forEach { (stageKey, days) ->
- val displayLabel = labelForStage(stageKey)
- IntervalSlider(
- label = displayLabel,
- value = days,
- onValueChange = { newValue ->
- settingsViewModel.setInterval(stageKey, newValue)
- }
- )
- }
- Spacer(Modifier.height(8.dp))
- Row(
- modifier = Modifier.fillMaxWidth(),
- horizontalArrangement = Arrangement.End
- ) {
- TextButton(onClick = { settingsViewModel.resetIntervalsToDefaults() }) {
- Text(stringResource(R.string.reset_to_defaults))
- }
- }
+ @Suppress("USELESS_ELVIS", "HardCodedStringLiteral")
+ SettingsSlider(
+ label = stringResource(R.string.target_correct_answers_per_day),
+ value = dailyGoal ?: 10,
+ onValueChange = { settingsViewModel.setDailyGoal(it) },
+ valueRange = 10f..100f,
+ steps = 17 // Allows snapping in steps of 5
+ )
+ Text(
+ text = stringResource(R.string.text_daily_goal_description),
+ style = MaterialTheme.typography.bodyMedium,
+ color = MaterialTheme.colorScheme.onSurfaceVariant
+ )
}
}
@@ -163,30 +146,41 @@ fun VocabularyProgressOptionsScreen(
}
}
- // Daily Goal Settings
- AppCard {
- val dailyGoal by settingsViewModel.dailyGoal.collectAsStateWithLifecycle()
- Column(
- modifier = Modifier.padding(16.dp),
- verticalArrangement = Arrangement.spacedBy(8.dp)
+ // Interval Settings
+ AppCard(
+ expandable = true,
+ initiallyExpanded = true,
+ title = stringResource(R.string.label_interval_settings_in_days),
+ text = stringResource(R.string.text_customize_the_intervals),
) {
- Text(
- text = stringResource(R.string.daily_learning_goal),
- style = MaterialTheme.typography.titleMedium
- )
- @Suppress("USELESS_ELVIS", "HardCodedStringLiteral")
- SettingsSlider(
- label = stringResource(R.string.target_correct_answers_per_day),
- value = dailyGoal ?: 10,
- onValueChange = { settingsViewModel.setDailyGoal(it) },
- valueRange = 10f..100f,
- steps = 17 // Allows snapping in steps of 5
- )
- Text(
- text = stringResource(R.string.text_daily_goal_description),
- style = MaterialTheme.typography.bodySmall,
- color = MaterialTheme.colorScheme.onSurfaceVariant
- )
+ val intervals by settingsViewModel.intervals.collectAsStateWithLifecycle()
+ Column(
+ modifier = Modifier
+ .padding(16.dp)
+ .animateContentSize(),
+ verticalArrangement = Arrangement.spacedBy(16.dp)
+ ) {
+ IntervalTimeline(intervals = intervals)
+ intervals.forEach { (stageKey, days) ->
+ val displayLabel = labelForStage(stageKey)
+ IntervalSlider(
+ label = displayLabel,
+ value = days,
+ onValueChange = { newValue ->
+ settingsViewModel.setInterval(stageKey, newValue)
+ }
+ )
+ }
+
+ Spacer(Modifier.height(8.dp))
+ Row(
+ modifier = Modifier.fillMaxWidth(),
+ horizontalArrangement = Arrangement.End
+ ) {
+ TextButton(onClick = { settingsViewModel.resetIntervalsToDefaults() }) {
+ Text(stringResource(R.string.reset_to_defaults))
+ }
+ }
}
}
}
diff --git a/app/src/main/res/values-de-rDE/strings.xml b/app/src/main/res/values-de-rDE/strings.xml
index ff9e2b9..8966f6a 100644
--- a/app/src/main/res/values-de-rDE/strings.xml
+++ b/app/src/main/res/values-de-rDE/strings.xml
@@ -83,7 +83,6 @@
Sprachen mischen
Trainingsmodus
Anzahl der Karten
- Intervall-Einstellungen (in Tagen)
Gib ein Wort ein
Gib die Übersetzung ein
Nur heute fällige
@@ -233,12 +232,10 @@
Übrig
Beispiele
- Vokabular-Einstellungen
Lernkriterien
Min. richtig zum Aufsteigen
Max. falsch zum Absteigen
Tägliches Lernziel
- Ziel: Richtige Antworten pro Tag
Sicherung & Wiederherstellung
Vokabeldaten exportieren
Vokabeldaten importieren
diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml
index 0d5cda0..3f60a06 100644
--- a/app/src/main/res/values-pt-rBR/strings.xml
+++ b/app/src/main/res/values-pt-rBR/strings.xml
@@ -83,7 +83,6 @@
Embaralhar Idiomas
Modo de Treino
Quantidade de cartões
- Intervalos (em dias)
Insira uma palavra
Insira a tradução
Apenas para hoje
@@ -230,7 +229,6 @@
Restantes
Exemplos
- Configurações de Vocabulário
Critérios de Aprendizagem
Mín. de Acertos para Avançar
Máx. de Erros para Regredir
diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml
index b188d0f..0c51e90 100644
--- a/app/src/main/res/values/arrays.xml
+++ b/app/src/main/res/values/arrays.xml
@@ -59,14 +59,44 @@
- - Your inner parrot is learning new words! Keep talking! 🦜
- - Even parrots start with one word. You\'re doing great! 🌟
- - Time to spread your wings and learn something new! 🪶
- - Your feathered friend is proud of your progress! 💚
- - Repeat after me: You\'re getting better every day! 🗣️
- - Fly high! Every new word is a new trick! 🎯
- - Your vocabulary is taking flight! Keep it up! 🦜
- - Sing a new song! Learn a new word today! 🎵
+ - Your vocabulary is gathering crumbs. Time for a bigger cracker! 🦜
+ - You\'re basically a parrot with a thesaurus. Impressive. 🪞
+ - Copy that: you\'re getting better at this whole language thing. 📢
+ - One day you\'ll squawk fluently. Keep practicing! 🎤
+ - Your brain\'s getting fluffier. That\'s a good thing, right? 🧠💚
+ - Stealing words from dictionaries is our thing. You\'re welcome. 🦜
+ - Less chattering, more learning. Wait... no, both. Both is good. 🗣️
+ - Today\'s word count: one more than yesterday. Peak performance! 📈
+ - You\'re not just a pretty bird. You\'re a smart bird now! 🪶✨
+ - Perch yourself on some new vocabulary. It\'s more fun than it sounds. 🌳
+ - Polly wants a cracker... of knowledge. Treat yourself! 🍪
+ - Your memory span is longer than 3 seconds. Growth! 💪
+ - Who needs a cage when you have a vocabulary of 50+ words? Freedom! 🗝️
+ - Mimicry is an art. You\'re basically Picasso with words. 🎨
+ - Feed your head. It\'s hungrier than your stomach. 🍽️
+ - You\'re not repeating, you\'re... reinforcing. Definitely that. 🔁
+ - Preening your lexicon one word at a time. Sleek! 😎
+ - Talk to yourself. It\'s called practice, not crazy. We support it. 🦜
+ - Your wingspan of knowledge is expanding. Flaunt it! 🪭
+ - Seed by seed, word by word. Building a vocabulary empire! 👑
+ - Soaring through sentences! Your vocabulary is finally taking flight! 🦜🌤️
+ - High flyer detected! Your word count is reaching new altitudes! 🦅⬆️
+ - Ready for takeoff? Your brain is about to leave the runway! ✈️💨
+ - Flying high on vocabulary! Watch out, clouds! ☁️🚀
+ - Your lexical wings are spreading. Time for lift-off! 🪶🔝
+ - Gliding through grammar like a parrot on a thermal! 🌀📚
+ - Every expert was once a beginner who didn\'t quit. You\'re on your way! 🌟
+ - Small steps, big results. Today\'s word is tomorrow\'s fluency! 🚀
+ - Your brain is a muscle. Time to work out those vocab gains! 💪🧠
+ - Consistency beats intensity. Keep showing up! 📅✅
+ - Words are your weapons. Arm yourself daily! ⚔️📖
+ - Today\'s struggle is tomorrow\'s strength. Push through! 🔥
+ - Learning a language is a marathon, not a sprint. Pace yourself! 🏃♂️🎯
+ - Your future self will thank you for every word learned today. ⏰🙏
+ - Progress isn\'t always linear. Every step forward counts! 📈⬆️
+ - 10 words a day × 365 = 3,650 words a year. Math doesn\'t lie! 🧮✨
+ - Small numbers add up: 5 words/day = 1,825 new words/year. Boom! 💥📚
+ - Your future vocabulary is just the sum of today\'s small efforts. Calculate success! 🧠➕
@@ -77,6 +107,4 @@
-
-
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index e3b2b76..9724e61 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -818,7 +818,7 @@
In Progress
Incorrect!
Rare
- Interval Settings (in days)
+ Interval Settings
Key Active
Key Optional
Enter a word\n
@@ -988,7 +988,7 @@
Vocabulary Added
Vocabulary Repository
- Vocabulary Settings
+ Progress Settings
Website URL