Skip to content

Commit

Permalink
Text Replacement dialog improvements
Browse files Browse the repository at this point in the history
- Prevent keyboard covering bottom buttons
- Scroll all dialog content, with sticky header for text columns
  • Loading branch information
pilot51 committed Jan 26, 2025
1 parent 681a1ae commit b4c8a5c
Showing 1 changed file with 46 additions and 37 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@
package com.pilot51.voicenotify.ui.dialog.tts

import android.widget.Toast
import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.itemsIndexed
Expand Down Expand Up @@ -68,6 +70,7 @@ fun TextReplaceDialog(
}
}
AlertDialog(
modifier = Modifier.imePadding(),
onDismissRequest = onDismiss,
confirmButton = {
TextButton(
Expand Down Expand Up @@ -97,55 +100,61 @@ fun TextReplaceDialog(
replaceList = replaceList
)
},
properties = DialogProperties(usePlatformDefaultWidth = false)
properties = DialogProperties(
usePlatformDefaultWidth = false,
decorFitsSystemWindows = false
)
)
}

@Composable
private fun TextReplaceList(replaceList: MutableList<Pair<String, String>?>) {
Column(modifier = Modifier.fillMaxWidth()) {
Text(
text = stringResource(R.string.tts_text_replace_dialog) + stringResource(R.string.regex_message),
modifier = Modifier
.fillMaxWidth()
.padding(bottom = 20.dp),
color = MaterialTheme.colorScheme.secondary,
style = MaterialTheme.typography.bodyMedium
)
Row(
modifier = Modifier
.fillMaxWidth()
.padding(bottom = 4.dp),
horizontalArrangement = fieldSpacingArrangement
) {
LazyColumn(
modifier = Modifier.fillMaxWidth(),
verticalArrangement = fieldSpacingArrangement
) {
item {
Text(
text = stringResource(R.string.text_to_replace),
modifier = Modifier
.fillMaxWidth()
.weight(1f),
textAlign = TextAlign.Center
text = stringResource(R.string.tts_text_replace_dialog)
+ stringResource(R.string.regex_message),
modifier = Modifier.fillMaxWidth(),
color = MaterialTheme.colorScheme.secondary,
style = MaterialTheme.typography.bodyMedium
)
Text(
text = stringResource(R.string.replacement_text),
}
@OptIn(ExperimentalFoundationApi::class)
stickyHeader {
Row(
modifier = Modifier
.fillMaxWidth()
.weight(1f),
textAlign = TextAlign.Center
)
Spacer(modifier = Modifier.width(48.dp))
}
LazyColumn(
modifier = Modifier.fillMaxWidth(),
verticalArrangement = fieldSpacingArrangement
) {
itemsIndexed(replaceList) { index, item ->
TextReplaceListItem(
pair = item,
index = index,
replaceList = replaceList
.background(MaterialTheme.colorScheme.surfaceContainerHigh)
.padding(bottom = 4.dp),
horizontalArrangement = fieldSpacingArrangement
) {
Text(
text = stringResource(R.string.text_to_replace),
modifier = Modifier
.fillMaxWidth()
.weight(1f),
textAlign = TextAlign.Center
)
Text(
text = stringResource(R.string.replacement_text),
modifier = Modifier
.fillMaxWidth()
.weight(1f),
textAlign = TextAlign.Center
)
Spacer(modifier = Modifier.width(48.dp))
}
}
itemsIndexed(replaceList) { index, item ->
TextReplaceListItem(
pair = item,
index = index,
replaceList = replaceList
)
}
}
}

Expand Down

0 comments on commit b4c8a5c

Please sign in to comment.