Icon in text field

This commit is contained in:
Avently
2022-10-04 17:21:23 +03:00
parent 38640697af
commit 1cfe133dfa
5 changed files with 34 additions and 34 deletions
@@ -208,11 +208,11 @@ fun ChatInfoHeader(cInfo: ChatInfo, contact: Contact) {
}
@Composable
fun LocalAliasEditor(initialValue: String, center: Boolean = true, updateValue: (String) -> Unit) {
fun LocalAliasEditor(initialValue: String, center: Boolean = true, leadingIcon: Boolean = false, updateValue: (String) -> Unit) {
var value by rememberSaveable { mutableStateOf(initialValue) }
Row(Modifier.fillMaxWidth(), horizontalArrangement = if (center) Arrangement.Center else Arrangement.Start) {
DefaultBasicTextField(
Modifier.padding(horizontal = DEFAULT_PADDING).widthIn(min = 100.dp),
Modifier.padding(horizontal = if (!leadingIcon) DEFAULT_PADDING else 0.dp).widthIn(min = 100.dp),
value,
{
Text(
@@ -221,6 +221,7 @@ fun LocalAliasEditor(initialValue: String, center: Boolean = true, updateValue:
color = HighOrLowlight
)
},
leadingIcon = if (leadingIcon) {{ Icon(Icons.Default.Edit, null) }} else null,
color = HighOrLowlight,
textStyle = TextStyle.Default.copy(textAlign = if (value.isEmpty() || !center) TextAlign.Start else TextAlign.Center),
keyboardActions = KeyboardActions(onDone = { updateValue(value) })
@@ -28,6 +28,7 @@ fun DefaultBasicTextField(
modifier: Modifier,
initialValue: String,
placeholder: (@Composable () -> Unit)? = null,
leadingIcon: (@Composable () -> Unit)? = null,
focus: Boolean = false,
color: Color = MaterialTheme.colors.onBackground,
textStyle: TextStyle = TextStyle.Default,
@@ -100,6 +101,7 @@ fun DefaultBasicTextField(
placeholder = placeholder,
singleLine = true,
enabled = enabled,
leadingIcon = leadingIcon,
interactionSource = interactionSource,
contentPadding = TextFieldDefaults.textFieldWithLabelPadding(start = 0.dp, end = 0.dp),
visualTransformation = VisualTransformation.None,
@@ -24,7 +24,7 @@ import chat.simplex.app.ui.theme.*
import chat.simplex.app.views.helpers.*
@Composable
fun AddContactView(chatModel: ChatModel, connReqInvitation: String) {
fun AddContactView(chatModel: ChatModel, connReqInvitation: String, connIncognito: Boolean) {
val cxt = LocalContext.current
LaunchedEffect(connReqInvitation) {
if (connReqInvitation.isNotEmpty()) {
@@ -35,14 +35,14 @@ fun AddContactView(chatModel: ChatModel, connReqInvitation: String) {
onDispose { chatModel.connReqInv.value = null }
}
AddContactLayout(
chatModelIncognito = chatModel.incognito.value,
connReq = connReqInvitation,
connIncognito = connIncognito,
share = { shareText(cxt, connReqInvitation) }
)
}
@Composable
fun AddContactLayout(chatModelIncognito: Boolean, connReq: String, share: () -> Unit) {
fun AddContactLayout(connReq: String, connIncognito: Boolean, share: () -> Unit) {
BoxWithConstraints {
val screenHeight = maxHeight
Column(
@@ -57,7 +57,7 @@ fun AddContactLayout(chatModelIncognito: Boolean, connReq: String, share: () ->
)
Row {
InfoAboutIncognito(
chatModelIncognito,
connIncognito,
true,
generalGetString(R.string.incognito_random_profile_description),
generalGetString(R.string.your_profile_will_be_sent)
@@ -140,8 +140,8 @@ fun InfoAboutIncognito(chatModelIncognito: Boolean, supportedIncognito: Boolean
fun PreviewAddContactView() {
SimpleXTheme {
AddContactLayout(
chatModelIncognito = false,
connReq = "https://simplex.chat/contact#/?v=1&smp=smp%3A%2F%2FPQUV2eL0t7OStZOoAsPEV2QYWt4-xilbakvGUGOItUo%3D%40smp6.simplex.im%2FK1rslx-m5bpXVIdMZg9NLUZ_8JBm8xTt%23MCowBQYDK2VuAyEALDeVe-sG8mRY22LsXlPgiwTNs9dbiLrNuA7f3ZMAJ2w%3D",
connIncognito = false,
share = {}
)
}
@@ -3,7 +3,6 @@ package chat.simplex.app.views.newchat
import SectionDivider
import SectionView
import android.content.res.Configuration
import androidx.activity.compose.BackHandler
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
@@ -55,7 +54,7 @@ fun ContactConnectionInfoView(chatModel: ChatModel, connReqInvitation: String?,
.padding(horizontal = DEFAULT_PADDING),
verticalArrangement = Arrangement.SpaceBetween
) {
AddContactView(chatModel, connReqInvitation ?: return@showModal)
AddContactView(chatModel, connReqInvitation ?: return@showModal, contactConnection.incognito)
}
}
}
@@ -72,33 +71,31 @@ private fun ContactConnectionInfoLayout(
onLocalAliasChanged: (String) -> Unit,
showQr: () -> Unit,
) {
BoxWithConstraints {
Column(
Modifier
.verticalScroll(rememberScrollState()),
) {
AppBarTitle(
stringResource(
if (connectionInitiated) R.string.you_invited_your_contact
else R.string.you_accepted_connection
)
Column(
Modifier
.verticalScroll(rememberScrollState()),
) {
AppBarTitle(
stringResource(
if (connectionInitiated) R.string.you_invited_your_contact
else R.string.you_accepted_connection
)
Text(
stringResource(
if (connectionViaContactUri) R.string.you_will_be_connected_when_your_connection_request_is_accepted
else R.string.you_will_be_connected_when_your_contacts_device_is_online
),
Modifier.padding(horizontal = DEFAULT_PADDING)
)
LocalAliasEditor(localAlias, center = false, updateValue = onLocalAliasChanged)
)
Text(
stringResource(
if (connectionViaContactUri) R.string.you_will_be_connected_when_your_connection_request_is_accepted
else R.string.you_will_be_connected_when_your_contacts_device_is_online
),
Modifier.padding(horizontal = DEFAULT_PADDING)
)
LocalAliasEditor(localAlias, center = false, leadingIcon = true, updateValue = onLocalAliasChanged)
SectionView {
if (!connReq.isNullOrEmpty() && connectionInitiated) {
ShowQrButton(showQr)
SectionDivider()
}
DeleteButton(deleteConnection)
SectionView {
if (!connReq.isNullOrEmpty() && connectionInitiated) {
ShowQrButton(showQr)
SectionDivider()
}
DeleteButton(deleteConnection)
}
}
}
@@ -46,7 +46,7 @@ fun CreateLinkView(m: ChatModel, initialSelection: CreateLinkTab) {
Column(Modifier.weight(1f)) {
when (selection.value) {
CreateLinkTab.ONE_TIME -> {
AddContactView(m, connReqInvitation.value)
AddContactView(m, connReqInvitation.value, m.incognito.value)
}
CreateLinkTab.LONG_TERM -> {
UserAddressView(m)