diff --git a/app/src/main/java/com/uniandes/ecobites/MainActivity.kt b/app/src/main/java/com/uniandes/ecobites/MainActivity.kt index 1916d8d..d41b905 100644 --- a/app/src/main/java/com/uniandes/ecobites/MainActivity.kt +++ b/app/src/main/java/com/uniandes/ecobites/MainActivity.kt @@ -3,27 +3,14 @@ package com.uniandes.ecobites import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent -import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.Spacer -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding -import androidx.compose.material3.Button -import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.Scaffold -import androidx.compose.material3.Text import androidx.compose.runtime.* -import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier -import androidx.compose.ui.text.input.PasswordVisualTransformation -import androidx.compose.ui.unit.dp -import androidx.compose.ui.unit.sp +import com.uniandes.ecobites.ui.screens.ProfileScreen import com.uniandes.ecobites.ui.screens.CartScreen import com.uniandes.ecobites.ui.screens.home.HomeScreen -import com.uniandes.ecobites.ui.screens.ProfileScreen import com.uniandes.ecobites.ui.theme.AppTheme import com.uniandes.ecobites.ui.components.NavBar import com.uniandes.ecobites.ui.SplashScreen @@ -87,7 +74,7 @@ fun MainContent() { when (selectedTab) { 0 -> HomeScreen() 1 -> CartScreen() - 2 -> ProfileScreen() + 3 -> ProfileScreen() } } } diff --git a/app/src/main/java/com/uniandes/ecobites/ui/navigation/NavigationHost.kt b/app/src/main/java/com/uniandes/ecobites/ui/navigation/NavigationHost.kt index 90d9de8..0d057e8 100644 --- a/app/src/main/java/com/uniandes/ecobites/ui/navigation/NavigationHost.kt +++ b/app/src/main/java/com/uniandes/ecobites/ui/navigation/NavigationHost.kt @@ -1,10 +1,10 @@ package com.uniandes.ecobites.ui.navigation import androidx.compose.runtime.Composable +import com.uniandes.ecobites.ui.screens.ProfileScreen import com.uniandes.ecobites.ui.screens.CartScreen import com.uniandes.ecobites.ui.screens.home.HomeScreen import com.uniandes.ecobites.ui.screens.OrdersScreen -import com.uniandes.ecobites.ui.screens.ProfileScreen @Composable fun NavigationHost(selectedTab: Int) { diff --git a/app/src/main/java/com/uniandes/ecobites/ui/screens/ProfileScreen.kt b/app/src/main/java/com/uniandes/ecobites/ui/screens/ProfileScreen.kt index f1b0b1d..38ae7e5 100644 --- a/app/src/main/java/com/uniandes/ecobites/ui/screens/ProfileScreen.kt +++ b/app/src/main/java/com/uniandes/ecobites/ui/screens/ProfileScreen.kt @@ -1,9 +1,104 @@ package com.uniandes.ecobites.ui.screens -import androidx.compose.material3.Text -import androidx.compose.runtime.Composable +import androidx.compose.foundation.Image +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.shape.CircleShape +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.outlined.DateRange +import androidx.compose.material3.* +import androidx.compose.runtime.* +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.ColorFilter +import androidx.compose.ui.res.painterResource +import androidx.compose.ui.text.input.VisualTransformation +import androidx.compose.ui.unit.dp +import androidx.compose.ui.unit.sp +import androidx.compose.ui.tooling.preview.Preview +import com.uniandes.ecobites.R @Composable fun ProfileScreen() { - Text(text = "Profile Screen") + var name by remember { mutableStateOf("Pepito Andrés") } + var surname by remember { mutableStateOf("Rincon Arismendy") } + var citizenId by remember { mutableStateOf("1005634120") } + var email by remember { mutableStateOf("p.rincon@uniandes.edu.co") } + var phone by remember { mutableStateOf("p.rincon@uniandes.edu.co") } + var birthdate by remember { mutableStateOf("08/17/2023") } + + Column( + modifier = Modifier + .fillMaxSize() + .padding(16.dp), + horizontalAlignment = Alignment.CenterHorizontally + ) { + // Greeting Text + Text(text = "¡Hi, Pepito!", fontSize = 28.sp, color = MaterialTheme.colorScheme.onSurface, style = MaterialTheme.typography.titleLarge) + Text( + text = "You can edit your personal information here.", + fontSize = 16.sp, + color = Color.Gray, + modifier = Modifier.padding(bottom = 16.dp) + ) + + // Profile Image + Image( + painter = painterResource(id = R.drawable.profile_image), // Replace with actual image + contentDescription = "Profile Image", + modifier = Modifier + .size(120.dp) + .clip(CircleShape) + .background(MaterialTheme.colorScheme.primaryContainer) + ) + + Spacer(modifier = Modifier.height(32.dp)) + + // Text Fields for Profile Information + ProfileTextField(label = "Name", value = name, onValueChange = { name = it }) + ProfileTextField(label = "Surname", value = surname, onValueChange = { surname = it }) + ProfileTextField(label = "Citizen ID", value = citizenId, onValueChange = { citizenId = it }) + ProfileTextField(label = "Email", value = email, onValueChange = { email = it }) + ProfileTextField(label = "Phone", value = phone, onValueChange = { phone = it }) + + // Birthdate field with icon + TextField( + value = birthdate, + onValueChange = { birthdate = it }, + label = { Text("Birthdate") }, + trailingIcon = { + Icon( + imageVector = Icons.Outlined.DateRange, + contentDescription = "Calendar Icon" + ) + }, + singleLine = true, + modifier = Modifier + .fillMaxWidth() + .padding(vertical = 8.dp), + placeholder = { Text("MM/DD/YYYY") } + ) + } +} + +@Composable +fun ProfileTextField(label: String, value: String, onValueChange: (String) -> Unit) { + TextField( + value = value, + onValueChange = onValueChange, + label = { Text(label) }, + modifier = Modifier + .fillMaxWidth() + .padding(vertical = 8.dp), // Adds space between text fields + singleLine = true, + + ) +} + +@Preview(showBackground = true) +@Composable +fun PreviewProfileScreen() { + ProfileScreen() } diff --git a/app/src/main/res/drawable/profile_image.png b/app/src/main/res/drawable/profile_image.png new file mode 100644 index 0000000..44d0277 Binary files /dev/null and b/app/src/main/res/drawable/profile_image.png differ