Skip to content

Commit 0627a11

Browse files
committed
Auto capitalize first letter of sentences for messages, room topic and bug report description. (#948)
1 parent 0366582 commit 0627a11

File tree

5 files changed

+20
-0
lines changed
  • features
    • createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/configureroom
    • rageshake/impl/src/main/kotlin/io/element/android/features/rageshake/impl/bugreport
    • roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/edit
  • libraries
    • designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components
    • textcomposer/src/main/kotlin/io/element/android/libraries/textcomposer

5 files changed

+20
-0
lines changed

features/createroom/impl/src/main/kotlin/io/element/android/features/createroom/impl/configureroom/ConfigureRoomView.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import androidx.compose.foundation.layout.imePadding
2929
import androidx.compose.foundation.layout.padding
3030
import androidx.compose.foundation.rememberScrollState
3131
import androidx.compose.foundation.selection.selectableGroup
32+
import androidx.compose.foundation.text.KeyboardOptions
3233
import androidx.compose.foundation.verticalScroll
3334
import androidx.compose.material.ExperimentalMaterialApi
3435
import androidx.compose.material.ModalBottomSheetValue
@@ -43,6 +44,7 @@ import androidx.compose.ui.focus.FocusManager
4344
import androidx.compose.ui.input.pointer.pointerInput
4445
import androidx.compose.ui.platform.LocalFocusManager
4546
import androidx.compose.ui.res.stringResource
47+
import androidx.compose.ui.text.input.KeyboardCapitalization
4648
import androidx.compose.ui.tooling.preview.Preview
4749
import androidx.compose.ui.tooling.preview.PreviewParameter
4850
import androidx.compose.ui.unit.dp
@@ -247,6 +249,9 @@ fun RoomTopic(
247249
placeholder = stringResource(CommonStrings.common_topic_placeholder),
248250
onValueChange = onTopicChanged,
249251
maxLines = 3,
252+
keyboardOptions = KeyboardOptions(
253+
capitalization = KeyboardCapitalization.Sentences,
254+
),
250255
)
251256
}
252257

features/rageshake/impl/src/main/kotlin/io/element/android/features/rageshake/impl/bugreport/BugReportView.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import androidx.compose.ui.Modifier
3131
import androidx.compose.ui.platform.LocalContext
3232
import androidx.compose.ui.res.stringResource
3333
import androidx.compose.ui.text.input.ImeAction
34+
import androidx.compose.ui.text.input.KeyboardCapitalization
3435
import androidx.compose.ui.text.input.KeyboardType
3536
import androidx.compose.ui.tooling.preview.Preview
3637
import androidx.compose.ui.tooling.preview.PreviewParameter
@@ -97,6 +98,7 @@ fun BugReportView(
9798
eventSink(BugReportEvents.SetDescription(it))
9899
},
99100
keyboardOptions = KeyboardOptions(
101+
capitalization = KeyboardCapitalization.Sentences,
100102
keyboardType = KeyboardType.Text,
101103
imeAction = ImeAction.Next
102104
),

features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/edit/RoomDetailsEditView.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ import androidx.compose.foundation.layout.padding
3434
import androidx.compose.foundation.layout.size
3535
import androidx.compose.foundation.rememberScrollState
3636
import androidx.compose.foundation.shape.CircleShape
37+
import androidx.compose.foundation.text.KeyboardOptions
3738
import androidx.compose.foundation.verticalScroll
3839
import androidx.compose.material.ExperimentalMaterialApi
3940
import androidx.compose.material.ModalBottomSheetValue
@@ -52,6 +53,7 @@ import androidx.compose.ui.focus.FocusManager
5253
import androidx.compose.ui.input.pointer.pointerInput
5354
import androidx.compose.ui.platform.LocalFocusManager
5455
import androidx.compose.ui.res.stringResource
56+
import androidx.compose.ui.text.input.KeyboardCapitalization
5557
import androidx.compose.ui.tooling.preview.Preview
5658
import androidx.compose.ui.tooling.preview.PreviewParameter
5759
import androidx.compose.ui.unit.dp
@@ -164,6 +166,9 @@ fun RoomDetailsEditView(
164166
placeholder = stringResource(CommonStrings.common_topic_placeholder),
165167
maxLines = 10,
166168
onValueChange = { state.eventSink(RoomDetailsEditEvents.UpdateRoomTopic(it)) },
169+
keyboardOptions = KeyboardOptions(
170+
capitalization = KeyboardCapitalization.Sentences,
171+
),
167172
)
168173
} else {
169174
LabelledReadOnlyField(

libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/LabelledTextField.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import androidx.compose.foundation.layout.Arrangement
2020
import androidx.compose.foundation.layout.Column
2121
import androidx.compose.foundation.layout.fillMaxWidth
2222
import androidx.compose.foundation.layout.padding
23+
import androidx.compose.foundation.text.KeyboardOptions
2324
import androidx.compose.material3.MaterialTheme
2425
import androidx.compose.runtime.Composable
2526
import androidx.compose.ui.Modifier
@@ -39,6 +40,7 @@ fun LabelledTextField(
3940
placeholder: String? = null,
4041
singleLine: Boolean = false,
4142
maxLines: Int = if (singleLine) 1 else Int.MAX_VALUE,
43+
keyboardOptions: KeyboardOptions = KeyboardOptions.Default,
4244
onValueChange: (String) -> Unit = {},
4345
) {
4446
Column(
@@ -59,6 +61,7 @@ fun LabelledTextField(
5961
onValueChange = onValueChange,
6062
singleLine = singleLine,
6163
maxLines = maxLines,
64+
keyboardOptions = keyboardOptions,
6265
)
6366
}
6467
}

libraries/textcomposer/src/main/kotlin/io/element/android/libraries/textcomposer/TextComposer.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ import androidx.compose.foundation.layout.width
3838
import androidx.compose.foundation.shape.CircleShape
3939
import androidx.compose.foundation.shape.RoundedCornerShape
4040
import androidx.compose.foundation.text.BasicTextField
41+
import androidx.compose.foundation.text.KeyboardOptions
4142
import androidx.compose.material.icons.Icons
4243
import androidx.compose.material.icons.filled.Close
4344
import androidx.compose.material.ripple.rememberRipple
@@ -65,6 +66,7 @@ import androidx.compose.ui.layout.ContentScale
6566
import androidx.compose.ui.platform.LocalSoftwareKeyboardController
6667
import androidx.compose.ui.res.painterResource
6768
import androidx.compose.ui.res.stringResource
69+
import androidx.compose.ui.text.input.KeyboardCapitalization
6870
import androidx.compose.ui.text.input.VisualTransformation
6971
import androidx.compose.ui.text.style.TextAlign
7072
import androidx.compose.ui.text.style.TextOverflow
@@ -155,6 +157,9 @@ fun TextComposer(
155157
onTextLayout = {
156158
lineCount = it.lineCount
157159
},
160+
keyboardOptions = KeyboardOptions(
161+
capitalization = KeyboardCapitalization.Sentences,
162+
),
158163
textStyle = defaultTypography.copy(color = MaterialTheme.colorScheme.primary),
159164
cursorBrush = SolidColor(ElementTheme.colors.iconAccentTertiary),
160165
decorationBox = { innerTextField ->

0 commit comments

Comments
 (0)