From a2bb67da2182b1befb767c6bb5f8f905b9e6bc29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl?= Date: Thu, 23 Oct 2025 13:24:54 +0200 Subject: [PATCH 1/3] Problemas con Icons --- app/build.gradle.kts | 2 + .../es/fpsumma/dam2/intro/MainActivity.kt | 2 +- .../dam2/intro/ui/screens/CounterScreen.kt | 53 ++++++++++++------- .../dam2/intro/ui/screens/InputDemoScreen.kt | 14 ++--- .../es/fpsumma/dam2/intro/ui/theme/Color.kt | 6 ++- .../es/fpsumma/dam2/intro/ui/theme/Theme.kt | 18 +++---- .../es/fpsumma/dam2/intro/ui/theme/Type.kt | 2 +- app/src/main/res/values-night/themes.xml | 4 +- app/src/main/res/values/colors.xml | 2 + app/src/main/res/values/themes.xml | 2 +- build.gradle.kts | 8 ++- gradle/libs.versions.toml | 2 + 12 files changed, 73 insertions(+), 42 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 738afb7..99c36b1 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -52,6 +52,7 @@ dependencies { implementation(libs.material) implementation(libs.androidx.activity) implementation(libs.androidx.constraintlayout) + implementation(libs.androidx.compose.material3) testImplementation(libs.junit) androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.espresso.core) @@ -59,4 +60,5 @@ dependencies { androidTestImplementation(libs.androidx.ui.test.junit4) debugImplementation(libs.androidx.ui.tooling) debugImplementation(libs.androidx.ui.test.manifest) + testImplementation(kotlin("test")) } \ No newline at end of file diff --git a/app/src/main/java/es/fpsumma/dam2/intro/MainActivity.kt b/app/src/main/java/es/fpsumma/dam2/intro/MainActivity.kt index 0462544..5d5f7f2 100644 --- a/app/src/main/java/es/fpsumma/dam2/intro/MainActivity.kt +++ b/app/src/main/java/es/fpsumma/dam2/intro/MainActivity.kt @@ -7,7 +7,7 @@ import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Surface import androidx.compose.ui.Modifier -import com.ivancorrales.basicjetpackcompose.ui.theme.IntroTheme +import es.fpsumma.dam2.intro.ui.theme.IntroTheme import es.fpsumma.dam2.intro.ui.screens.CounterScreen class MainActivity : ComponentActivity() { diff --git a/app/src/main/java/es/fpsumma/dam2/intro/ui/screens/CounterScreen.kt b/app/src/main/java/es/fpsumma/dam2/intro/ui/screens/CounterScreen.kt index 404c688..5a0f5cd 100644 --- a/app/src/main/java/es/fpsumma/dam2/intro/ui/screens/CounterScreen.kt +++ b/app/src/main/java/es/fpsumma/dam2/intro/ui/screens/CounterScreen.kt @@ -5,6 +5,7 @@ import androidx.compose.material.icons.Icons import androidx.compose.material.icons.outlined.Refresh import androidx.compose.material3.* +import androidx.compose.material3.FilledTonalButton import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -12,12 +13,13 @@ import androidx.compose.ui.semantics.contentDescription import androidx.compose.ui.semantics.semantics import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp +import es.fpsumma.dam2.intro.ui.theme.IntroTheme @Composable fun CounterScreen() { - var count by remember { mutableStateOf(0) } - + var count by remember { mutableStateOf(5) } + var user : String="Raúl"; Column( modifier = Modifier .fillMaxSize() @@ -25,29 +27,42 @@ fun CounterScreen() { horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.spacedBy(16.dp) ) { - Text("Hola mi amig@!", style = MaterialTheme.typography.headlineMedium) + Text("Hola $user!", style = MaterialTheme.typography.headlineMedium) Text("Contador: $count", style = MaterialTheme.typography.titleLarge) Row(horizontalArrangement = Arrangement.spacedBy(12.dp)) { - Button( - onClick = {}, - modifier = Modifier.semantics { contentDescription = "Incrementar" } - ) { Text("+1") } - - FilledTonalButton( - onClick = {}, - modifier = Modifier.semantics { contentDescription = "Decrementar" } - ) { Text("-1") } - - IconButton( - onClick = {}, - modifier = Modifier.size(48.dp) - ) { - Icon(Icons.Outlined.Refresh, contentDescription = "Reiniciar contador") - } + /*IntroTheme*/ Surface(color=){ + Button( + onClick = { count = count + 1 }, + modifier = Modifier.semantics { contentDescription = "Incrementar" } + ) { Text("+1") } + + FilledTonalButton( + onClick = { + if (count > 0) { + count = count - 1 + } + }, + modifier = Modifier.semantics { contentDescription = "Decrementar" } + ) { Text("-1") }} + IconButton( + onClick = { count = 0 }, + modifier = Modifier.size(48.dp) + ) { + Icon(Icons.Outlined.Refresh, contentDescription = "Reiniciar contador") + + } + } } } + + +@Composable +fun IntoTheme(content: @Composable () -> Unit) { + TODO("Not yet implemented") +} + @Preview(showBackground = true) @Composable private fun CounterPreview() { diff --git a/app/src/main/java/es/fpsumma/dam2/intro/ui/screens/InputDemoScreen.kt b/app/src/main/java/es/fpsumma/dam2/intro/ui/screens/InputDemoScreen.kt index c11ccc9..04c37e3 100644 --- a/app/src/main/java/es/fpsumma/dam2/intro/ui/screens/InputDemoScreen.kt +++ b/app/src/main/java/es/fpsumma/dam2/intro/ui/screens/InputDemoScreen.kt @@ -1,5 +1,7 @@ package es.fpsumma.dam2.intro.ui.screens +import android.R.attr.label +import android.R.attr.onClick import androidx.compose.foundation.layout.* import androidx.compose.foundation.text.KeyboardActions import androidx.compose.foundation.text.KeyboardOptions @@ -16,12 +18,12 @@ import androidx.compose.ui.unit.dp fun InputDemoScreen() { val focusManager = LocalFocusManager.current - var name by rememberSaveable { mutableStateOf("") } + var user by rememberSaveable { mutableStateOf("") } var greeting by remember { mutableStateOf(null) } // Calcula el error en función del texto (sin estado extra) Pista -> derivedStateOf // TODO: valida name: no vacío, mínimo 3 caracteres (trim). - val error: String? by remember(name) { + val error: String? by remember(user) { derivedStateOf { null } @@ -29,15 +31,15 @@ fun InputDemoScreen() { fun submit() { if (error == null) { - greeting = "Hola, 👋" + greeting = "Hola, $user 👋" focusManager.clearFocus() } } Column(Modifier.fillMaxSize().padding(24.dp)) { OutlinedTextField( - value = name, - onValueChange = { name = it }, + value = user, + onValueChange = { user = it }, label = { Text("Tu nombre") }, isError = error != null, supportingText = { if (error != null) Text(error!!) }, @@ -54,7 +56,7 @@ fun InputDemoScreen() { Text("Saludar") } Spacer(Modifier.height(16.dp)) - if (error == null && name.isNotBlank()) { + if (error == null && user.isNotBlank()) { Text(greeting?: "" ) } } diff --git a/app/src/main/java/es/fpsumma/dam2/intro/ui/theme/Color.kt b/app/src/main/java/es/fpsumma/dam2/intro/ui/theme/Color.kt index c45da49..9549b2a 100644 --- a/app/src/main/java/es/fpsumma/dam2/intro/ui/theme/Color.kt +++ b/app/src/main/java/es/fpsumma/dam2/intro/ui/theme/Color.kt @@ -1,4 +1,4 @@ -package com.ivancorrales.basicjetpackcompose.ui.theme +package es.fpsumma.dam2.intro.ui.theme import androidx.compose.ui.graphics.Color @@ -8,4 +8,6 @@ val Pink80 = Color(0xFFEFB8C8) val Purple40 = Color(0xFF6650a4) val PurpleGrey40 = Color(0xFF625b71) -val Pink40 = Color(0xFF7D5260) \ No newline at end of file +val Pink40 = Color(0xFF7D5260) + +val Green = Color(0xFF5DFF00) \ No newline at end of file diff --git a/app/src/main/java/es/fpsumma/dam2/intro/ui/theme/Theme.kt b/app/src/main/java/es/fpsumma/dam2/intro/ui/theme/Theme.kt index cb6c5d5..6eb6d8e 100644 --- a/app/src/main/java/es/fpsumma/dam2/intro/ui/theme/Theme.kt +++ b/app/src/main/java/es/fpsumma/dam2/intro/ui/theme/Theme.kt @@ -1,28 +1,28 @@ -package com.ivancorrales.basicjetpackcompose.ui.theme +package es.fpsumma.dam2.intro.ui.theme -import android.app.Activity import android.os.Build -import androidx.compose.foundation.isSystemInDarkTheme -import androidx.compose.material3.ColorScheme import androidx.compose.material3.MaterialTheme import androidx.compose.material3.darkColorScheme import androidx.compose.material3.dynamicDarkColorScheme import androidx.compose.material3.dynamicLightColorScheme import androidx.compose.material3.lightColorScheme import androidx.compose.runtime.Composable -import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext -import com.ivancorrales.basicjetpackcompose.ui.theme.LightColorScheme +import es.fpsumma.dam2.intro.ui.theme.Green +import es.fpsumma.dam2.intro.ui.theme.Pink40 +import es.fpsumma.dam2.intro.ui.theme.Pink80 +import es.fpsumma.dam2.intro.ui.theme.PurpleGrey40 +import es.fpsumma.dam2.intro.ui.theme.PurpleGrey80 private val DarkColorScheme = darkColorScheme( - primary = Purple80, + primary = Green, //Purple80, secondary = PurpleGrey80, tertiary = Pink80 ) private val LightColorScheme = lightColorScheme( - primary = Purple40, - secondary = PurpleGrey40, + primary = Green, //Purple40, + secondary = Green, //PurpleGrey40, tertiary = Pink40 ) diff --git a/app/src/main/java/es/fpsumma/dam2/intro/ui/theme/Type.kt b/app/src/main/java/es/fpsumma/dam2/intro/ui/theme/Type.kt index 7128d5f..d0fa6ea 100644 --- a/app/src/main/java/es/fpsumma/dam2/intro/ui/theme/Type.kt +++ b/app/src/main/java/es/fpsumma/dam2/intro/ui/theme/Type.kt @@ -1,4 +1,4 @@ -package com.ivancorrales.basicjetpackcompose.ui.theme +package es.fpsumma.dam2.intro.ui.theme import androidx.compose.material3.Typography import androidx.compose.ui.text.TextStyle diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml index 5a0be97..9c45af4 100644 --- a/app/src/main/res/values-night/themes.xml +++ b/app/src/main/res/values-night/themes.xml @@ -2,8 +2,8 @@