ConversationCreationActivity - Refactoring

Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
This commit is contained in:
sowjanyakch 2024-08-05 21:52:54 +02:00 committed by Marcel Hibbe
parent cd01c80d71
commit d32bc74559
No known key found for this signature in database
GPG Key ID: C793F8B59F43CE7B
2 changed files with 80 additions and 18 deletions

View File

@ -19,6 +19,7 @@ import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.automirrored.filled.ArrowBack
import androidx.compose.material3.ExperimentalMaterial3Api
@ -193,7 +194,7 @@ fun AddParticipants(contactsViewModel: ContactsViewModel) {
Text(
text = stringResource(id = R.string.nc_participants).uppercase(),
fontSize = 14.sp,
modifier = Modifier.padding(top = 24.dp, start = 16.dp, end = 16.dp)
modifier = Modifier.padding(top = 24.dp, start = 16.dp, end = 16.dp, bottom = 16.dp)
)
Row(
@ -217,30 +218,88 @@ fun AddParticipants(contactsViewModel: ContactsViewModel) {
@Composable
fun RoomCreationOptions(conversationCreationViewModel: ConversationCreationViewModel) {
val isChecked = conversationCreationViewModel.isGuestsAllowed.value
var isGuestsAllowed = conversationCreationViewModel.isGuestsAllowed.value
var isConversationAvailableForRegisteredUsers = conversationCreationViewModel
.isConversationAvailableForRegisteredUsers.value
var isOpenForGuestAppUsers = conversationCreationViewModel.openForGuestAppUsers.value
Text(
text = stringResource(id = R.string.nc_visible).uppercase(),
fontSize = 14.sp,
modifier = Modifier.padding(top = 24.dp, start = 16.dp, end = 16.dp)
)
Row(
modifier = Modifier.padding(start = 16.dp, top = 16.dp, end = 16.dp).fillMaxWidth(),
verticalAlignment = Alignment
.CenterVertically
) {
Icon(
painter = painterResource(id = R.drawable.ic_avatar_link),
contentDescription = null,
modifier = Modifier.size(24.dp)
)
Text(text = stringResource(id = R.string.nc_guest_access_allow_title))
Spacer(modifier = Modifier.weight(1f))
Switch(
checked = isChecked,
onCheckedChange = {
conversationCreationViewModel.isGuestsAllowed.value = it
ConversationOptions(
icon = R.drawable.ic_avatar_link,
text = R.string.nc_guest_access_allow_title,
switch = {
Switch(
checked = isGuestsAllowed,
onCheckedChange = {
conversationCreationViewModel.isGuestsAllowed.value = it
}
)
}
)
if (isGuestsAllowed) {
ConversationOptions(
icon = R.drawable.ic_lock_grey600_24px,
text = R.string.nc_set_password
)
}
ConversationOptions(
icon = R.drawable.baseline_format_list_bulleted_24,
text = R.string.nc_open_conversation_to_registered_users,
switch = {
Switch(
checked = isConversationAvailableForRegisteredUsers,
onCheckedChange = {
conversationCreationViewModel.isConversationAvailableForRegisteredUsers.value = it
}
)
}
)
if (isConversationAvailableForRegisteredUsers) {
ConversationOptions(
text = R.string.nc_open_to_guest_app_users,
switch = {
Switch(
checked = isOpenForGuestAppUsers,
onCheckedChange = {
conversationCreationViewModel.openForGuestAppUsers.value = it
}
)
}
)
}
}
@Composable
fun ConversationOptions(icon: Int? = null, text: Int, switch: @Composable (() -> Unit)? = null) {
Row(
modifier = Modifier
.fillMaxWidth()
.padding(start = 16.dp, end = 16.dp, bottom = 8.dp),
horizontalArrangement = Arrangement.SpaceBetween,
verticalAlignment = Alignment.CenterVertically
) {
if (icon != null) {
Icon(
painter = painterResource(id = icon),
contentDescription = null,
modifier = Modifier.size(24.dp)
)
Spacer(modifier = Modifier.width(16.dp))
} else {
Spacer(modifier = Modifier.width(40.dp))
}
Text(
text = stringResource(id = text),
modifier = Modifier.weight(1f)
)
switch?.invoke()
}
}

View File

@ -242,6 +242,8 @@ How to translate with transifex:
<string name="nc_remove_from_favorites">Remove from favorites</string>
<string name="nc_create_new_conversation">Create a new conversation</string>
<string name="nc_join_open_conversations">Join open conversations</string>
<string name="nc_open_conversation_to_registered_users">Open conversation to registered users</string>
<string name="nc_open_to_guest_app_users">Also open to guest app users</string>
<string name="added_to_favorites">Added conversation %1$s to favorites</string>
<string name="removed_from_favorites">Removed conversation %1$s from favorites</string>
@ -430,6 +432,7 @@ How to translate with transifex:
<string name="nc_guest_access_allow_title">Allow guests</string>
<string name="nc_guest_access_allow_summary">Allow guests to share a public link to join this conversation.</string>
<string name="nc_guest_access_allow_failed">Cannot enable/disable guest access.</string>
<string name="nc_set_password">Set Password</string>
<string name="nc_guest_access_password_title">Password protection</string>
<string name="nc_guest_access_password_summary">Set a password to restrict who can use the public link.</string>
<string name="nc_guest_access_password_dialog_title">Guest access password</string>