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 29fc51956..a4a213558 100644
--- a/app/src/main/java/com/nextcloud/talk/conversationcreation/ConversationCreationActivity.kt
+++ b/app/src/main/java/com/nextcloud/talk/conversationcreation/ConversationCreationActivity.kt
@@ -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()
+ }
+}
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 32679fbf4..8c3d0f3ef 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -242,6 +242,8 @@ How to translate with transifex:
Remove from favorites
Create a new conversation
Join open conversations
+ Open conversation to registered users
+ Also open to guest app users
Added conversation %1$s to favorites
Removed conversation %1$s from favorites
@@ -430,6 +432,7 @@ How to translate with transifex:
Allow guests
Allow guests to share a public link to join this conversation.
Cannot enable/disable guest access.
+ Set Password
Password protection
Set a password to restrict who can use the public link.
Guest access password