diff --git a/app/src/main/java/eu/gaudian/translator/view/home/HomeScreen.kt b/app/src/main/java/eu/gaudian/translator/view/home/HomeScreen.kt index cea118a..d50bb6c 100644 --- a/app/src/main/java/eu/gaudian/translator/view/home/HomeScreen.kt +++ b/app/src/main/java/eu/gaudian/translator/view/home/HomeScreen.kt @@ -1,5 +1,6 @@ package eu.gaudian.translator.view.home +import androidx.compose.foundation.Image import androidx.compose.foundation.background import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box @@ -20,7 +21,6 @@ import androidx.compose.material.icons.filled.AddCircle import androidx.compose.material.icons.filled.CheckCircle import androidx.compose.material.icons.filled.ChevronRight import androidx.compose.material.icons.filled.LocalFireDepartment -import androidx.compose.material.icons.filled.Person import androidx.compose.material.icons.filled.Psychology import androidx.compose.material.icons.filled.Settings import androidx.compose.material.icons.filled.TrendingUp @@ -33,16 +33,19 @@ import androidx.compose.material3.TextButton import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState import androidx.compose.runtime.getValue +import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.vector.ImageVector import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel import androidx.navigation.NavHostController +import eu.gaudian.translator.R import eu.gaudian.translator.utils.findActivity import eu.gaudian.translator.view.composable.AppCard import eu.gaudian.translator.view.composable.Screen @@ -99,33 +102,37 @@ fun HomeScreen( @Composable fun TopProfileSection(navController: NavHostController) { + val context = LocalContext.current + val motivationalPhrases = remember { + context.resources.getStringArray(R.array.motivational_phrases) + } + val randomPhrase = remember { motivationalPhrases.random() } + Row( verticalAlignment = Alignment.CenterVertically, - modifier = Modifier.fillMaxWidth() + modifier = Modifier.fillMaxWidth().padding(8.dp) ) { - // Dummy Avatar + // Parrot App Icon Box( modifier = Modifier .size(56.dp) .clip(CircleShape) - .background(MaterialTheme.colorScheme.surfaceVariant), + .background(MaterialTheme.colorScheme.primaryContainer), contentAlignment = Alignment.Center ) { - Icon(Icons.Default.Person, contentDescription = "Profile", tint = MaterialTheme.colorScheme.onSurfaceVariant) + Image( + painter = painterResource(id = R.mipmap.ic_launcher_foreground), + contentDescription = "Polly Parrot", + ) } Spacer(modifier = Modifier.width(16.dp)) Column(modifier = Modifier.weight(1f)) { Text( - text = "Welcome back,", - style = MaterialTheme.typography.bodyMedium, - color = MaterialTheme.colorScheme.onSurface.copy(alpha = 0.7f) - ) - Text( - text = "Alex Rivera 👋", - style = MaterialTheme.typography.titleLarge, - fontWeight = FontWeight.Bold, + text = randomPhrase, + style = MaterialTheme.typography.titleMedium, + fontWeight = FontWeight.SemiBold, color = MaterialTheme.colorScheme.onSurface ) } diff --git a/app/src/main/java/eu/gaudian/translator/view/vocabulary/VocabularyHeatMapScreen.kt b/app/src/main/java/eu/gaudian/translator/view/vocabulary/VocabularyHeatMapScreen.kt index 82755b7..84a60a0 100644 --- a/app/src/main/java/eu/gaudian/translator/view/vocabulary/VocabularyHeatMapScreen.kt +++ b/app/src/main/java/eu/gaudian/translator/view/vocabulary/VocabularyHeatMapScreen.kt @@ -22,8 +22,6 @@ import androidx.compose.foundation.lazy.LazyRow import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll -import androidx.compose.material3.Card -import androidx.compose.material3.CardDefaults import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.LinearProgressIndicator @@ -53,6 +51,7 @@ import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel import androidx.navigation.NavController import eu.gaudian.translator.R import eu.gaudian.translator.utils.findActivity +import eu.gaudian.translator.view.composable.AppCard import eu.gaudian.translator.view.composable.AppIcons import eu.gaudian.translator.view.composable.AppScaffold import eu.gaudian.translator.view.composable.AppTopAppBar @@ -68,6 +67,7 @@ import kotlinx.datetime.plus import kotlinx.datetime.todayIn import java.time.YearMonth import java.time.format.DateTimeFormatter +import java.util.Locale.getDefault import kotlin.math.log2 import kotlin.time.Clock import kotlin.time.ExperimentalTime @@ -263,7 +263,8 @@ private fun MonthHeader( Icon(AppIcons.ArrowLeft, contentDescription = stringResource(R.string.previous_month)) } Text( - text = month.format(formatter), + text = month.format(formatter) + .replaceFirstChar { if (it.isLowerCase()) it.titlecase(getDefault()) else it.toString() }, style = MaterialTheme.typography.titleMedium, fontWeight = FontWeight.Bold, modifier = Modifier.padding(horizontal = 16.dp) @@ -385,7 +386,7 @@ private fun Legend(modifier: Modifier = Modifier) { Row( modifier = modifier, verticalAlignment = Alignment.CenterVertically, - horizontalArrangement = Arrangement.End + horizontalArrangement = Arrangement.Center ) { Text( text = stringResource(R.string.less), @@ -467,12 +468,11 @@ fun StatsOverview( @Composable private fun StatCard(title: String, value: String, modifier: Modifier = Modifier) { - Card( - modifier = modifier, - elevation = CardDefaults.cardElevation(defaultElevation = 2.dp) + AppCard( + modifier = modifier.padding(0.dp), ) { Column( - modifier = Modifier.padding(16.dp), + modifier = Modifier.padding(8.dp), horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center ) { diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index 632beb7..b188d0f 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -58,6 +58,17 @@ + + 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! 🎵 + + Version 0.3.0 \n• Enabled CSV Import for Vocabulary\n• Option to use a translation server for translations instead of AI models for some supported langugaes\n• UI bug fixes \n• Show word frequency \n• Performance optimizations \n• Improved translations (German and Portuguese) Version 0.4.0 \n• Added dictionary download (beta) \n• UI enhancements \n• Bugfixes \n• Re-designed vocabulary card with improved UI \n• More pre-configured providers \n• Improved performance