Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
Fechadura_Inteligente
Mobile
Commits
ad86b2b9
Commit
ad86b2b9
authored
7 months ago
by
Vinicius Monteiro
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fazendo ajustes para visualizar as portas que o usuario tem acesso na tela de visualziar usuario
parent
290a8b3e
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
167 additions
and
67 deletions
+167
-67
app/src/main/java/com/br/fechadura/mobile/ui/screens/CarregamentoScreen.kt
.../com/br/fechadura/mobile/ui/screens/CarregamentoScreen.kt
+20
-20
app/src/main/java/com/br/fechadura/mobile/ui/screens/usuario/VisualizarUsuarioScreen.kt
...dura/mobile/ui/screens/usuario/VisualizarUsuarioScreen.kt
+147
-47
No files found.
app/src/main/java/com/br/fechadura/mobile/ui/screens/CarregamentoScreen.kt
View file @
ad86b2b9
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
This diff is collapsed.
Click to expand it.
app/src/main/java/com/br/fechadura/mobile/ui/screens/usuario/VisualizarUsuarioScreen.kt
View file @
ad86b2b9
...
...
@@ -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
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment