From 27ff7985cbd4b7a8cdfa5b8e338ca7fdf9142072 Mon Sep 17 00:00:00 2001 From: Closarias Date: Thu, 23 Oct 2025 14:13:37 +0200 Subject: [PATCH] =?UTF-8?q?App=20M=C3=B3vil?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../es/fpsumma/dam2/intro/MainActivity.kt | 5 +- .../dam2/intro/ui/screens/CounterScreen.kt | 74 ++++++++++++------- .../es/fpsumma/dam2/intro/ui/theme/Color.kt | 10 ++- .../es/fpsumma/dam2/intro/ui/theme/Theme.kt | 23 ++++-- .../es/fpsumma/dam2/intro/ui/theme/Type.kt | 2 +- app/src/main/res/layout/activity_main.xml | 1 - gradle/libs.versions.toml | 2 +- gradle/wrapper/gradle-wrapper.properties | 4 +- 8 files changed, 75 insertions(+), 46 deletions(-) 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..523cc14 100644 --- a/app/src/main/java/es/fpsumma/dam2/intro/MainActivity.kt +++ b/app/src/main/java/es/fpsumma/dam2/intro/MainActivity.kt @@ -7,17 +7,16 @@ 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() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { - IntroTheme(){ + IntroTheme(darkTheme = true){ Surface( modifier = Modifier.fillMaxSize(), - color = MaterialTheme.colorScheme.background ) { CounterScreen() } 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..0136521 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,51 +5,69 @@ import androidx.compose.material.icons.Icons import androidx.compose.material.icons.outlined.Refresh import androidx.compose.material3.* +import androidx.compose.material3.darkColorScheme import androidx.compose.runtime.* +import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color 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 android.content.res.Configuration.UI_MODE_NIGHT_YES +import es.fpsumma.dam2.intro.ui.theme.Green2 +import es.fpsumma.dam2.intro.ui.theme.IntroTheme @Composable -fun CounterScreen() { - var count by remember { mutableStateOf(0) } +fun CounterScreen(modifier: Modifier = Modifier) { + var count by rememberSaveable { mutableStateOf(5) } + Column( + modifier = Modifier + .fillMaxSize() + .padding(24.dp), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(16.dp) + ) { + Text("Hola mi amig@!", style = MaterialTheme.typography.headlineMedium) + Text("Contador: $count", style = MaterialTheme.typography.titleLarge) + Row(horizontalArrangement = Arrangement.spacedBy(12.dp)) { + Button( + onClick = { count++ }, + colors = ButtonDefaults.buttonColors( + containerColor = Green2, + ), + modifier = Modifier.semantics { contentDescription = "Incrementar" } + ) { Text("+") } - Column( - modifier = Modifier - .fillMaxSize() - .padding(24.dp), - horizontalAlignment = Alignment.CenterHorizontally, - verticalArrangement = Arrangement.spacedBy(16.dp) - ) { - Text("Hola mi amig@!", 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 = { + if (count == 0) { + count = 0; + } else { + count-- + } + }, + modifier = Modifier.semantics { contentDescription = "Decrementar" } + ) { Text("-") } - FilledTonalButton( - onClick = {}, - modifier = Modifier.semantics { contentDescription = "Decrementar" } - ) { Text("-1") } - - IconButton( - onClick = {}, - modifier = Modifier.size(48.dp) - ) { - Icon(Icons.Outlined.Refresh, contentDescription = "Reiniciar contador") + IconButton( + onClick = { count = 0 }, + modifier = Modifier.size(48.dp) + ) { + Icon(Icons.Outlined.Refresh, contentDescription = "Reiniciar contador") + } } } } -} @Preview(showBackground = true) @Composable private fun CounterPreview() { - CounterScreen() + IntroTheme(darkTheme = true){ + Surface { + CounterScreen() + } + } } 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..d1cbb4f 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,10 @@ 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(0xFF009106) + +val Green2 = Color(0xFF006505) + +val Green3 = Color(0xFF004804) \ 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..2985260 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,18 +1,18 @@ -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.runtime.SideEffect +import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.platform.LocalContext -import com.ivancorrales.basicjetpackcompose.ui.theme.LightColorScheme +import androidx.compose.ui.platform.LocalView +import androidx.core.view.ViewCompat private val DarkColorScheme = darkColorScheme( primary = Purple80, @@ -21,9 +21,9 @@ private val DarkColorScheme = darkColorScheme( ) private val LightColorScheme = lightColorScheme( - primary = Purple40, - secondary = PurpleGrey40, - tertiary = Pink40 + primary = Green, + secondary = Green2, + tertiary = Green3, ) @Composable @@ -40,6 +40,13 @@ fun IntroTheme( darkTheme -> DarkColorScheme else -> LightColorScheme } + val view = LocalView.current + if (!view.isInEditMode) { + SideEffect { + (view.context as Activity).window.statusBarColor = colorScheme.primary.toArgb() + ViewCompat.getWindowInsetsController(view)?.isAppearanceLightStatusBars = darkTheme + } + } MaterialTheme( colorScheme = colorScheme, 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/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 9affce0..d0e5c75 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -6,5 +6,4 @@ android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> - \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 64452d1..ebcea8c 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -agp = "8.12.3" +agp = "8.13.0" kotlin = "2.0.21" coreKtx = "1.17.0" junit = "4.13.2" diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 2ae5af1..5fe33cd 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Wed Oct 15 11:01:44 CEST 2025 +#Wed Oct 22 11:12:45 CEST 2025 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists