diff --git a/android-app/app/src/main/java/com/korexlabs/dhinspeccion/ui/LoginGate.kt b/android-app/app/src/main/java/com/korexlabs/dhinspeccion/ui/LoginGate.kt index b6fefa6..f33a6f4 100644 --- a/android-app/app/src/main/java/com/korexlabs/dhinspeccion/ui/LoginGate.kt +++ b/android-app/app/src/main/java/com/korexlabs/dhinspeccion/ui/LoginGate.kt @@ -3,12 +3,14 @@ package com.korexlabs.dhinspeccion.ui import android.content.Context import androidx.biometric.BiometricManager import androidx.biometric.BiometricPrompt +import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Visibility import androidx.compose.material.icons.filled.VisibilityOff @@ -30,6 +32,7 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.input.PasswordVisualTransformation import androidx.compose.ui.text.input.VisualTransformation @@ -37,6 +40,7 @@ import androidx.compose.ui.unit.dp import androidx.core.content.ContextCompat import androidx.fragment.app.FragmentActivity import com.korexlabs.dhinspeccion.MainViewModel +import com.korexlabs.dhinspeccion.R private const val BIOMETRIC_PREFS = "dh_v2_biometric" private const val BIOMETRIC_ENABLED = "enabled" @@ -98,6 +102,23 @@ fun DhRoot(model: MainViewModel, activity: FragmentActivity) { } } +@Composable +private fun MendozaBrand() { + Column( + modifier = Modifier.fillMaxWidth(), + horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.spacedBy(8.dp), + ) { + Image( + painter = painterResource(R.drawable.logo_mendoza_oficial), + contentDescription = "Gobierno de Mendoza", + modifier = Modifier.size(156.dp), + ) + Text("DH Inspección", style = MaterialTheme.typography.headlineMedium, fontWeight = FontWeight.Bold) + Text("Dirección de Hidrocarburos · Aplicación de campo") + } +} + @Composable private fun EnhancedLoginScreen(model: MainViewModel, onPasswordLogin: () -> Unit) { var identifier by rememberSaveable { mutableStateOf("") } @@ -106,14 +127,13 @@ private fun EnhancedLoginScreen(model: MainViewModel, onPasswordLogin: () -> Uni Box(Modifier.fillMaxSize().padding(24.dp), contentAlignment = Alignment.Center) { Column(Modifier.fillMaxWidth(), verticalArrangement = Arrangement.spacedBy(14.dp)) { - Text("DH Inspección", style = MaterialTheme.typography.headlineMedium, fontWeight = FontWeight.Bold) - Text("Aplicación de campo · Dirección de Hidrocarburos") + MendozaBrand() model.error?.let { Text(it, color = MaterialTheme.colorScheme.error) } model.notice?.let { Text(it, color = MaterialTheme.colorScheme.primary) } OutlinedTextField( value = identifier, onValueChange = { identifier = it }, - label = { Text("Usuario o email") }, + label = { Text("Usuario o correo electrónico") }, modifier = Modifier.fillMaxWidth(), singleLine = true, ) @@ -198,6 +218,11 @@ private fun BiometricUnlockScreen( verticalArrangement = Arrangement.spacedBy(14.dp), horizontalAlignment = Alignment.CenterHorizontally, ) { + Image( + painter = painterResource(R.drawable.logo_mendoza_oficial), + contentDescription = "Gobierno de Mendoza", + modifier = Modifier.size(120.dp), + ) Text("DH Inspección", style = MaterialTheme.typography.headlineMedium, fontWeight = FontWeight.Bold) Text("Ingresá con tu huella") error?.let { Text(it, color = MaterialTheme.colorScheme.error) }