Commit ad86b2b9 authored by Vinicius Monteiro's avatar Vinicius Monteiro

fazendo ajustes para visualizar as portas que o usuario tem acesso na tela de visualziar usuario

parent 290a8b3e
package com.br.fechadura.mobile.ui.screens
import androidx.compose.foundation.Image
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.*
import androidx.compose.material3.Button
import androidx.compose.material3.ButtonDefaults
......@@ -21,19 +22,30 @@ import com.br.fechadura.mobile.R
import com.br.fechadura.mobile.ui.theme.BotaoAcesso
import com.br.fechadura.mobile.ui.theme.FechaduraColor
import com.br.fechadura.mobile.ui.theme.FechaduraMobileTheme
import kotlinx.coroutines.delay
@Composable
fun CarregamentoScreen(navController: NavController) {
var showLogin by remember { mutableStateOf(false) }
LaunchedEffect(Unit) {
delay(3000L) // 3 segundos de delay
showLogin = true
navController.navigate("login")
}
Surface(
modifier = Modifier.fillMaxSize(),
color = Color.White
) {
Column(
modifier = Modifier.fillMaxSize(),
modifier = Modifier
.clickable { navController.navigate("login")}
.fillMaxSize(),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
Spacer(modifier = Modifier.height(130.dp))
Image(
painter = painterResource(id = R.drawable.fechadura_logo),
contentDescription = null,
......@@ -42,24 +54,12 @@ fun CarregamentoScreen(navController: NavController) {
.size(350.dp)
)
Spacer(modifier = Modifier.height(40.dp))
Button(
onClick = { navController.navigate("login") }, //colocar a tela que vem depois do carregamento que é o login
modifier = Modifier
.padding(16.dp)
.height(50.dp)
.width(250.dp),
shape = MaterialTheme.shapes.large,
colors = ButtonDefaults.buttonColors(
containerColor = BotaoAcesso
)
) {
Text(
text = "Acessar a minha conta",
color = Color.White,
fontSize = 18.sp
)
}
}
}
}
@Preview(showSystemUi = true)
@Composable
private fun Sean() {
CarregamentoScreen(navController = rememberNavController())
}
\ No newline at end of file
......@@ -4,11 +4,16 @@ import android.icu.text.UnicodeSet.SpanCondition
import androidx.compose.foundation.BorderStroke
import androidx.compose.foundation.background
import androidx.compose.foundation.border
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.items
import androidx.compose.foundation.shape.CircleShape
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Add
import androidx.compose.material.icons.filled.ArrowDropDown
import androidx.compose.material.icons.filled.MoreVert
import androidx.compose.material.icons.filled.Person
import androidx.compose.material3.*
import androidx.compose.runtime.*
......@@ -28,7 +33,10 @@ import com.br.fechadura.mobile.ui.screens.LoadingScreen
import com.br.fechadura.mobile.viewModel.UsuariosViewModel
import com.br.vini.compose.api.ApiState
import com.br.fechadura.mobile.ui.components.TopAppBar
import com.br.fechadura.mobile.ui.theme.FechaduraColor
import kotlinx.coroutines.launch
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun VisualizarUsuario(
id: String,
......@@ -37,6 +45,10 @@ fun VisualizarUsuario(
val usuarioViewModel = viewModel<UsuariosViewModel>()
val usuarioState by usuarioViewModel.usuarioResponse
val sheetState = rememberModalBottomSheetState()
val scope = rememberCoroutineScope()
var showBottomSheet by remember { mutableStateOf(false) }
LaunchedEffect(id) {
usuarioViewModel.getUsuarioById(id)
}
......@@ -211,63 +223,150 @@ fun VisualizarUsuario(
}
Spacer(modifier = Modifier.height(15.dp))
Column {
Text(text = "Portas", color = Color.Black)
if (usuario.data.portas?.isNotEmpty() == true) {
usuario.data.portas.forEach { porta ->
Row(
Text(text = "Portas", color = Color.Black)
Box(modifier = Modifier.fillMaxSize()) {
Box(
modifier = Modifier
.fillMaxWidth()
.clickable { showBottomSheet = true }
.background(
Color.LightGray,
shape = RoundedCornerShape(8.dp)
)
) {
Row(
verticalAlignment = Alignment.CenterVertically,
modifier = Modifier
.fillMaxWidth()
.height(60.dp)
) {
Text(
text = "Ver portas com acesso",
modifier = Modifier.padding(start = 20.dp)
)
Icon(
imageVector = Icons.Default.ArrowDropDown,
contentDescription = "Abrir menu",
modifier = Modifier.size(24.dp)
)
}
}
}
}
// Column {
//
//
// Text(text = "Portas com acesso", color = Color.Black)
// if (usuario.data.portas?.isNotEmpty() == true) {
// usuario.data.portas.forEach { porta ->
// Row(
// modifier = Modifier
// .fillMaxWidth()
// .height(70.dp)
// .padding(bottom = 10.dp)
// .border(
// width = 1.dp,
// color = Color.LightGray,
// shape = RoundedCornerShape(8.dp)
// )
// .background(
// color = Color.LightGray,
// shape = RoundedCornerShape(8.dp)
// ),
// verticalAlignment = Alignment.CenterVertically
// ) {
// Text(
// text = porta.descricao,
// modifier = Modifier.padding(start = 20.dp)
// )
// }
// }
// } else {
// usuario.data.grupoUsuarios?.forEach { grupo ->
// grupo.grupoPortas.forEach { grupoPorta ->
// grupoPorta.portas.forEach { porta ->
// Row(
// modifier = Modifier
// .fillMaxWidth()
// .height(70.dp)
// .padding(bottom = 10.dp)
// .border(
// width = 1.dp,
// color = Color.LightGray,
// shape = RoundedCornerShape(8.dp)
// )
// .background(
// color = Color.LightGray,
// shape = RoundedCornerShape(8.dp)
// ),
// verticalAlignment = Alignment.CenterVertically
// ) {
// Text(
// text = porta.descricao,
// modifier = Modifier.padding(
// start = 20.dp
// )
// )
// }
// }
// }
// }
// }
//
// }
if (showBottomSheet) {
ModalBottomSheet(
onDismissRequest = {
showBottomSheet = false
},
sheetState = sheetState
) {
Column(
modifier = Modifier
.fillMaxWidth()
.height(60.dp)
.border(
width = 1.dp,
color = Color.LightGray,
shape = RoundedCornerShape(8.dp)
)
.background(
color = Color.LightGray,
shape = RoundedCornerShape(8.dp)
),
verticalAlignment = Alignment.CenterVertically
.padding(16.dp)
) {
Text(
text = porta.descricao,
modifier = Modifier.padding(start = 20.dp)
)
}
}
} else {
usuario.data.grupoUsuarios?.forEach { grupo ->
grupo.grupoPortas.forEach { grupoPorta ->
grupoPorta.portas.forEach { porta ->
Row(
modifier = Modifier
.fillMaxWidth()
.height(60.dp)
.border(
width = 1.dp,
color = Color.LightGray,
shape = RoundedCornerShape(8.dp)
)
.background(
color = Color.LightGray,
shape = RoundedCornerShape(8.dp)
),
verticalAlignment = Alignment.CenterVertically
Text(text = "Portas com acesso", fontSize = 20.sp, textAlign = TextAlign.Center, modifier = Modifier.fillMaxWidth())
if (usuario.data.portas?.isNotEmpty() == true) {
LazyColumn(
modifier = Modifier.fillMaxWidth()
) {
Text(
text = porta.descricao,
modifier = Modifier.padding(
start = 20.dp
items(usuario.data.portas) { porta ->
Text(
text = porta.descricao,
modifier = Modifier
.padding(vertical = 16.dp)
.fillMaxWidth()
)
)
}
}
} else {
LazyColumn(
modifier = Modifier.fillMaxWidth()
) {
usuario.data.grupoUsuarios?.forEach { grupo ->
items(grupo.grupoPortas) { grupoPorta ->
grupoPorta.portas.forEach { porta ->
Text(
text = porta.descricao,
modifier = Modifier
.padding(
vertical = 16.dp
)
.fillMaxWidth()
)
}
}
}
}
}
}
}
}
}
}
}
}
......@@ -302,7 +401,7 @@ private fun UserProfileScreen() {
.height(70.dp)
.border(
width = 1.dp,
color = Color.LightGray,
color = FechaduraColor,
shape = RoundedCornerShape(8.dp)
)
.background(
......@@ -317,5 +416,6 @@ private fun UserProfileScreen() {
modifier = Modifier.padding(start = 10.dp)
)
}
}
}
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment