UI improvements

Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
This commit is contained in:
sowjanyakch 2024-09-23 18:35:38 +02:00 committed by Marcel Hibbe
parent 31c0d74356
commit c165e9fe0c
No known key found for this signature in database
GPG key ID: C793F8B59F43CE7B
2 changed files with 43 additions and 30 deletions

View file

@ -26,6 +26,7 @@ import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxHeight
@ -37,13 +38,11 @@ import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.width
import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.CircleShape
import androidx.compose.foundation.shape.RoundedCornerShape
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.AlertDialog
import androidx.compose.material3.Button import androidx.compose.material3.Button
import androidx.compose.material3.Card
import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.HorizontalDivider
import androidx.compose.material3.Icon import androidx.compose.material3.Icon
@ -51,6 +50,7 @@ import androidx.compose.material3.IconButton
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.OutlinedTextField import androidx.compose.material3.OutlinedTextField
import androidx.compose.material3.Scaffold import androidx.compose.material3.Scaffold
import androidx.compose.material3.Surface
import androidx.compose.material3.Switch import androidx.compose.material3.Switch
import androidx.compose.material3.Text import androidx.compose.material3.Text
import androidx.compose.material3.TextButton import androidx.compose.material3.TextButton
@ -74,6 +74,7 @@ import androidx.compose.ui.platform.LocalView
import androidx.compose.ui.res.colorResource import androidx.compose.ui.res.colorResource
import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.painterResource
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
@ -580,62 +581,73 @@ fun ShowChangePassword(onDismiss: () -> Unit, conversationCreationViewModel: Con
Dialog(onDismissRequest = { Dialog(onDismissRequest = {
onDismiss() onDismiss()
}) { }) {
Card( Surface(
modifier = Modifier modifier = Modifier
.fillMaxWidth() .fillMaxWidth()
.height(375.dp) .height(375.dp)
.padding(16.dp) .padding(32.dp)
.background(color = colorResource(id = R.color.appbar)), .background(color = colorResource(id = R.color.appbar))
shape = RoundedCornerShape(16.dp)
) { ) {
Column( Column(
modifier = Modifier modifier = Modifier
.fillMaxSize(), .fillMaxSize()
.padding(vertical = 16.dp, horizontal = 16.dp),
verticalArrangement = Arrangement.Center, verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally horizontalAlignment = Alignment.CenterHorizontally
) { ) {
Text(text = stringResource(id = R.string.nc_change_password)) Text(text = stringResource(id = R.string.nc_set_new_password), fontWeight = FontWeight.SemiBold)
Spacer(modifier = Modifier.height(16.dp))
OutlinedTextField( OutlinedTextField(
value = changedPassword, value = changedPassword,
onValueChange = { onValueChange = {
changedPassword = it changedPassword = it
}, },
label = { Text(text = stringResource(id = R.string.nc_set_new_password)) }, label = { Text(text = stringResource(id = R.string.nc_password)) },
singleLine = true singleLine = true
) )
if (changedPassword.isNotEmpty() && changedPassword.isNotBlank()) { Spacer(modifier = Modifier.height(16.dp))
Column(
modifier = Modifier.fillMaxWidth()
.padding(vertical = 8.dp),
verticalArrangement = Arrangement.Center,
horizontalAlignment = Alignment.CenterHorizontally
) {
TextButton( TextButton(
onClick = { onClick = {
conversationCreationViewModel.updatePassword(changedPassword) conversationCreationViewModel.updatePassword(changedPassword)
conversationCreationViewModel.isPasswordEnabled.value = true conversationCreationViewModel.isPasswordEnabled.value = true
onDismiss() onDismiss()
}, },
modifier = Modifier.padding(8.dp) enabled = changedPassword.isNotEmpty() && changedPassword.isNotBlank(),
contentPadding = PaddingValues(horizontal = 16.dp, vertical = 8.dp)
) { ) {
Text(text = stringResource(id = R.string.nc_change_password)) Text(text = stringResource(id = R.string.nc_change_password))
} }
} Spacer(modifier = Modifier.height(4.dp))
TextButton( TextButton(
onClick = { onClick = {
conversationCreationViewModel.isPasswordEnabled.value = true conversationCreationViewModel.isPasswordEnabled.value = false
onDismiss() onDismiss()
}, },
modifier = Modifier.padding(8.dp) contentPadding = PaddingValues(horizontal = 16.dp, vertical = 8.dp)
) { ) {
Text(text = stringResource(id = R.string.nc_remove_password)) Text(
text = stringResource(id = R.string.nc_remove_password),
color = colorResource(id = R.color.nc_darkRed)
)
} }
Spacer(modifier = Modifier.height(4.dp))
TextButton( TextButton(
onClick = { onClick = { onDismiss() },
conversationCreationViewModel.isPasswordEnabled.value = true contentPadding = PaddingValues(horizontal = 16.dp, vertical = 8.dp)
onDismiss()
},
modifier = Modifier.padding(8.dp)
) { ) {
Text(text = stringResource(id = R.string.nc_cancel)) Text(text = stringResource(id = R.string.nc_cancel))
} }
} }
} }
} }
}
} }
@Composable @Composable

View file

@ -434,9 +434,10 @@ How to translate with transifex:
<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_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_guest_access_allow_failed">Cannot enable/disable guest access.</string>
<string name="nc_set_password">Set Password</string> <string name="nc_set_password">Set Password</string>
<string name="nc_password">Password</string>
<string name="nc_change_password">Change Password</string> <string name="nc_change_password">Change Password</string>
<string name="nc_remove_password">Remove Password</string> <string name="nc_remove_password">Remove Password</string>
<string name="nc_set_new_password">Set a new password</string> <string name="nc_set_new_password">Set new password</string>
<string name="nc_guest_access_password_title">Password protection</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_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> <string name="nc_guest_access_password_dialog_title">Guest access password</string>