From 1187b41e51005178d0126a2f31df3bb1def17a81 Mon Sep 17 00:00:00 2001 From: sowjanyakch Date: Wed, 28 Aug 2024 22:34:10 +0200 Subject: [PATCH] Set password Signed-off-by: sowjanyakch --- .../ConversationCreationActivity.kt | 55 +++++++++++++++++-- .../ConversationCreationViewModel.kt | 6 ++ 2 files changed, 55 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/conversationcreation/ConversationCreationActivity.kt b/app/src/main/java/com/nextcloud/talk/conversationcreation/ConversationCreationActivity.kt index 4afb058b7..8b89b0dd2 100644 --- a/app/src/main/java/com/nextcloud/talk/conversationcreation/ConversationCreationActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/conversationcreation/ConversationCreationActivity.kt @@ -32,6 +32,7 @@ import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons import androidx.compose.material.icons.automirrored.filled.ArrowBack +import androidx.compose.material3.AlertDialog import androidx.compose.material3.Button import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.HorizontalDivider @@ -42,10 +43,14 @@ import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.Scaffold import androidx.compose.material3.Switch import androidx.compose.material3.Text +import androidx.compose.material3.TextField import androidx.compose.material3.TopAppBar import androidx.compose.runtime.Composable import androidx.compose.runtime.collectAsState 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.Modifier import androidx.compose.ui.graphics.Color @@ -345,13 +350,15 @@ fun RoomCreationOptions(conversationCreationViewModel: ConversationCreationViewM conversationCreationViewModel.isGuestsAllowed.value = it } ) - } + }, + showDialog = false ) if (isGuestsAllowed) { ConversationOptions( 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 } ) - } + }, + showDialog = false ) if (isConversationAvailableForRegisteredUsers) { @@ -378,17 +386,26 @@ fun RoomCreationOptions(conversationCreationViewModel: ConversationCreationViewM conversationCreationViewModel.openForGuestAppUsers.value = it } ) - } + }, + showDialog = false ) } } @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( modifier = Modifier .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, 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 fun CreateConversation(conversationCreationViewModel: ConversationCreationViewModel, context: Context) { val selectedParticipants by conversationCreationViewModel.selectedParticipants.collectAsState() diff --git a/app/src/main/java/com/nextcloud/talk/conversationcreation/ConversationCreationViewModel.kt b/app/src/main/java/com/nextcloud/talk/conversationcreation/ConversationCreationViewModel.kt index 7e16af01b..b69fc9b71 100644 --- a/app/src/main/java/com/nextcloud/talk/conversationcreation/ConversationCreationViewModel.kt +++ b/app/src/main/java/com/nextcloud/talk/conversationcreation/ConversationCreationViewModel.kt @@ -34,6 +34,8 @@ class ConversationCreationViewModel @Inject constructor( private val _roomName = MutableStateFlow("") val roomName: StateFlow = _roomName + private val _password = MutableStateFlow("") + val password: StateFlow = _password private val _conversationDescription = MutableStateFlow("") val conversationDescription: StateFlow = _conversationDescription var isGuestsAllowed = mutableStateOf(false) @@ -50,6 +52,10 @@ class ConversationCreationViewModel @Inject constructor( _roomName.value = roomName } + fun updatePassword(password: String) { + _password.value = password + } + fun updateConversationDescription(conversationDescription: String) { _conversationDescription.value = conversationDescription }