Set password

Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
This commit is contained in:
sowjanyakch 2024-08-28 22:34:10 +02:00 committed by Marcel Hibbe
parent cb6fdf6fe1
commit 1187b41e51
No known key found for this signature in database
GPG Key ID: C793F8B59F43CE7B
2 changed files with 55 additions and 6 deletions

View File

@ -32,6 +32,7 @@ import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll import androidx.compose.foundation.verticalScroll
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.automirrored.filled.ArrowBack import androidx.compose.material.icons.automirrored.filled.ArrowBack
import androidx.compose.material3.AlertDialog
import androidx.compose.material3.Button import androidx.compose.material3.Button
import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.HorizontalDivider
@ -42,10 +43,14 @@ import androidx.compose.material3.OutlinedTextField
import androidx.compose.material3.Scaffold import androidx.compose.material3.Scaffold
import androidx.compose.material3.Switch import androidx.compose.material3.Switch
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.material3.TextField
import androidx.compose.material3.TopAppBar import androidx.compose.material3.TopAppBar
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.collectAsState import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
@ -345,13 +350,15 @@ fun RoomCreationOptions(conversationCreationViewModel: ConversationCreationViewM
conversationCreationViewModel.isGuestsAllowed.value = it conversationCreationViewModel.isGuestsAllowed.value = it
} }
) )
} },
showDialog = false
) )
if (isGuestsAllowed) { if (isGuestsAllowed) {
ConversationOptions( ConversationOptions(
icon = R.drawable.ic_lock_grey600_24px, icon = R.drawable.ic_lock_grey600_24px,
text = R.string.nc_set_password text = R.string.nc_set_password,
showDialog = true
) )
} }
@ -365,7 +372,8 @@ fun RoomCreationOptions(conversationCreationViewModel: ConversationCreationViewM
conversationCreationViewModel.isConversationAvailableForRegisteredUsers.value = it conversationCreationViewModel.isConversationAvailableForRegisteredUsers.value = it
} }
) )
} },
showDialog = false
) )
if (isConversationAvailableForRegisteredUsers) { if (isConversationAvailableForRegisteredUsers) {
@ -378,17 +386,26 @@ fun RoomCreationOptions(conversationCreationViewModel: ConversationCreationViewM
conversationCreationViewModel.openForGuestAppUsers.value = it conversationCreationViewModel.openForGuestAppUsers.value = it
} }
) )
} },
showDialog = false
) )
} }
} }
@Composable @Composable
fun ConversationOptions(icon: Int? = null, text: Int, switch: @Composable (() -> Unit)? = null) { fun ConversationOptions(icon: Int? = null, text: Int, switch: @Composable (() -> Unit)? = null, showDialog: Boolean) {
Row( Row(
modifier = Modifier modifier = Modifier
.fillMaxWidth() .fillMaxWidth()
.padding(start = 16.dp, end = 16.dp, bottom = 8.dp), .padding(start = 16.dp, end = 16.dp, bottom = 8.dp)
.then(
if (showDialog) {
Modifier.clickable {
}
} else {
Modifier
}
),
horizontalArrangement = Arrangement.SpaceBetween, horizontalArrangement = Arrangement.SpaceBetween,
verticalAlignment = Alignment.CenterVertically verticalAlignment = Alignment.CenterVertically
) { ) {
@ -412,6 +429,32 @@ fun ConversationOptions(icon: Int? = null, text: Int, switch: @Composable (() ->
} }
} }
@Composable
fun ShowPasswordDialog() {
var password by remember { mutableStateOf("") }
AlertDialog(
onDismissRequest = { /*TODO*/ },
confirmButton = {
Button(onClick = {
}) {
Text(text = stringResource(id = R.string.nc_cancel))
}
},
title = { Text(text = "Set Password") },
text = {
TextField(value = password, onValueChange = {
password = it
})
},
dismissButton = {
Button(onClick = { /* Handle cancel */ }) {
Text(text = stringResource(id = R.string.nc_cancel))
}
}
)
}
@Composable @Composable
fun CreateConversation(conversationCreationViewModel: ConversationCreationViewModel, context: Context) { fun CreateConversation(conversationCreationViewModel: ConversationCreationViewModel, context: Context) {
val selectedParticipants by conversationCreationViewModel.selectedParticipants.collectAsState() val selectedParticipants by conversationCreationViewModel.selectedParticipants.collectAsState()

View File

@ -34,6 +34,8 @@ class ConversationCreationViewModel @Inject constructor(
private val _roomName = MutableStateFlow("") private val _roomName = MutableStateFlow("")
val roomName: StateFlow<String> = _roomName val roomName: StateFlow<String> = _roomName
private val _password = MutableStateFlow("")
val password: StateFlow<String> = _password
private val _conversationDescription = MutableStateFlow("") private val _conversationDescription = MutableStateFlow("")
val conversationDescription: StateFlow<String> = _conversationDescription val conversationDescription: StateFlow<String> = _conversationDescription
var isGuestsAllowed = mutableStateOf(false) var isGuestsAllowed = mutableStateOf(false)
@ -50,6 +52,10 @@ class ConversationCreationViewModel @Inject constructor(
_roomName.value = roomName _roomName.value = roomName
} }
fun updatePassword(password: String) {
_password.value = password
}
fun updateConversationDescription(conversationDescription: String) { fun updateConversationDescription(conversationDescription: String) {
_conversationDescription.value = conversationDescription _conversationDescription.value = conversationDescription
} }