From ce23303b9729b7c909a5f7330c1e2da2de39c592 Mon Sep 17 00:00:00 2001 From: Claire G Date: Thu, 11 Aug 2022 11:53:43 +0200 Subject: [PATCH 1/4] Add inputType for room name creation and settings --- changelog.d/6645.misc | 1 + .../features/roomdirectory/createroom/CreateRoomController.kt | 2 ++ .../app/features/roomprofile/settings/RoomSettingsController.kt | 2 ++ 3 files changed, 5 insertions(+) create mode 100644 changelog.d/6645.misc diff --git a/changelog.d/6645.misc b/changelog.d/6645.misc new file mode 100644 index 0000000000..b24655879d --- /dev/null +++ b/changelog.d/6645.misc @@ -0,0 +1 @@ +Enable auto-capitalization for Room creation Title field diff --git a/vector/src/main/java/im/vector/app/features/roomdirectory/createroom/CreateRoomController.kt b/vector/src/main/java/im/vector/app/features/roomdirectory/createroom/CreateRoomController.kt index 71c83946d0..a5c3106f26 100644 --- a/vector/src/main/java/im/vector/app/features/roomdirectory/createroom/CreateRoomController.kt +++ b/vector/src/main/java/im/vector/app/features/roomdirectory/createroom/CreateRoomController.kt @@ -16,6 +16,7 @@ package im.vector.app.features.roomdirectory.createroom +import android.text.InputType import com.airbnb.epoxy.TypedEpoxyController import com.airbnb.mvrx.Fail import com.airbnb.mvrx.Loading @@ -67,6 +68,7 @@ class CreateRoomController @Inject constructor( enabled(enableFormElement) value(viewState.roomName) hint(host.stringProvider.getString(R.string.create_room_name_hint)) + inputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES) onTextChange { text -> host.listener?.onNameChange(text) diff --git a/vector/src/main/java/im/vector/app/features/roomprofile/settings/RoomSettingsController.kt b/vector/src/main/java/im/vector/app/features/roomprofile/settings/RoomSettingsController.kt index 31c3e86671..100670b3b0 100644 --- a/vector/src/main/java/im/vector/app/features/roomprofile/settings/RoomSettingsController.kt +++ b/vector/src/main/java/im/vector/app/features/roomprofile/settings/RoomSettingsController.kt @@ -16,6 +16,7 @@ package im.vector.app.features.roomprofile.settings +import android.text.InputType import com.airbnb.epoxy.TypedEpoxyController import im.vector.app.R import im.vector.app.core.epoxy.dividerItem @@ -91,6 +92,7 @@ class RoomSettingsController @Inject constructor( enabled(data.actionPermissions.canChangeName) value(data.newName ?: roomSummary.displayName) hint(host.stringProvider.getString(R.string.room_settings_name_hint)) + inputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES) onTextChange { text -> host.callback?.onNameChanged(text) From d9fbc4a0112a84923e6187ac1ba80935de9169cc Mon Sep 17 00:00:00 2001 From: Claire G Date: Thu, 11 Aug 2022 15:59:26 +0200 Subject: [PATCH 2/4] add autoCapitalize in FormEditTextItem --- .../im/vector/app/features/form/FormEditTextItem.kt | 13 +++++++++++-- .../createroom/CreateRoomController.kt | 2 +- .../roomprofile/settings/RoomSettingsController.kt | 2 +- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/vector/src/main/java/im/vector/app/features/form/FormEditTextItem.kt b/vector/src/main/java/im/vector/app/features/form/FormEditTextItem.kt index 9f32980874..fd7c4424ad 100644 --- a/vector/src/main/java/im/vector/app/features/form/FormEditTextItem.kt +++ b/vector/src/main/java/im/vector/app/features/form/FormEditTextItem.kt @@ -58,6 +58,9 @@ abstract class FormEditTextItem : VectorEpoxyModel(R.la @EpoxyAttribute var singleLine: Boolean = true + @EpoxyAttribute + var autoCapitalize: Boolean = false + @EpoxyAttribute var imeOptions: Int? = null @@ -133,8 +136,14 @@ abstract class FormEditTextItem : VectorEpoxyModel(R.la private fun configureInputType(holder: Holder) { val newInputType = inputType ?: when (singleLine) { - true -> InputType.TYPE_CLASS_TEXT - false -> InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_MULTI_LINE + true -> { + if (autoCapitalize) InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_CAP_SENTENCES + else InputType.TYPE_CLASS_TEXT + } + false -> { + if (autoCapitalize) InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_MULTI_LINE or InputType.TYPE_TEXT_FLAG_CAP_SENTENCES + else InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_MULTI_LINE + } } // This is a must in order to avoid extreme lag in some devices, on fast typing diff --git a/vector/src/main/java/im/vector/app/features/roomdirectory/createroom/CreateRoomController.kt b/vector/src/main/java/im/vector/app/features/roomdirectory/createroom/CreateRoomController.kt index a5c3106f26..4d2b0c5e47 100644 --- a/vector/src/main/java/im/vector/app/features/roomdirectory/createroom/CreateRoomController.kt +++ b/vector/src/main/java/im/vector/app/features/roomdirectory/createroom/CreateRoomController.kt @@ -68,7 +68,7 @@ class CreateRoomController @Inject constructor( enabled(enableFormElement) value(viewState.roomName) hint(host.stringProvider.getString(R.string.create_room_name_hint)) - inputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES) + autoCapitalize(true) onTextChange { text -> host.listener?.onNameChange(text) diff --git a/vector/src/main/java/im/vector/app/features/roomprofile/settings/RoomSettingsController.kt b/vector/src/main/java/im/vector/app/features/roomprofile/settings/RoomSettingsController.kt index 100670b3b0..7e07bd8ad5 100644 --- a/vector/src/main/java/im/vector/app/features/roomprofile/settings/RoomSettingsController.kt +++ b/vector/src/main/java/im/vector/app/features/roomprofile/settings/RoomSettingsController.kt @@ -92,7 +92,7 @@ class RoomSettingsController @Inject constructor( enabled(data.actionPermissions.canChangeName) value(data.newName ?: roomSummary.displayName) hint(host.stringProvider.getString(R.string.room_settings_name_hint)) - inputType(InputType.TYPE_TEXT_FLAG_CAP_SENTENCES) + autoCapitalize(true) onTextChange { text -> host.callback?.onNameChanged(text) From 5bb67ec253cb1c82afb70b04d5a7e54907431fea Mon Sep 17 00:00:00 2001 From: Claire G Date: Thu, 11 Aug 2022 16:01:07 +0200 Subject: [PATCH 3/4] clean imports --- .../features/roomdirectory/createroom/CreateRoomController.kt | 1 - .../app/features/roomprofile/settings/RoomSettingsController.kt | 1 - 2 files changed, 2 deletions(-) diff --git a/vector/src/main/java/im/vector/app/features/roomdirectory/createroom/CreateRoomController.kt b/vector/src/main/java/im/vector/app/features/roomdirectory/createroom/CreateRoomController.kt index 4d2b0c5e47..56d04aeaa1 100644 --- a/vector/src/main/java/im/vector/app/features/roomdirectory/createroom/CreateRoomController.kt +++ b/vector/src/main/java/im/vector/app/features/roomdirectory/createroom/CreateRoomController.kt @@ -16,7 +16,6 @@ package im.vector.app.features.roomdirectory.createroom -import android.text.InputType import com.airbnb.epoxy.TypedEpoxyController import com.airbnb.mvrx.Fail import com.airbnb.mvrx.Loading diff --git a/vector/src/main/java/im/vector/app/features/roomprofile/settings/RoomSettingsController.kt b/vector/src/main/java/im/vector/app/features/roomprofile/settings/RoomSettingsController.kt index 7e07bd8ad5..f8efe73ebf 100644 --- a/vector/src/main/java/im/vector/app/features/roomprofile/settings/RoomSettingsController.kt +++ b/vector/src/main/java/im/vector/app/features/roomprofile/settings/RoomSettingsController.kt @@ -16,7 +16,6 @@ package im.vector.app.features.roomprofile.settings -import android.text.InputType import com.airbnb.epoxy.TypedEpoxyController import im.vector.app.R import im.vector.app.core.epoxy.dividerItem From 2364b68907b2badee2d2ea1e48300968d3023d2f Mon Sep 17 00:00:00 2001 From: Claire G Date: Thu, 11 Aug 2022 16:13:36 +0200 Subject: [PATCH 4/4] improve configure InputType --- .../im/vector/app/features/form/FormEditTextItem.kt | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/vector/src/main/java/im/vector/app/features/form/FormEditTextItem.kt b/vector/src/main/java/im/vector/app/features/form/FormEditTextItem.kt index fd7c4424ad..7618a84bb1 100644 --- a/vector/src/main/java/im/vector/app/features/form/FormEditTextItem.kt +++ b/vector/src/main/java/im/vector/app/features/form/FormEditTextItem.kt @@ -135,16 +135,9 @@ abstract class FormEditTextItem : VectorEpoxyModel(R.la */ private fun configureInputType(holder: Holder) { val newInputType = - inputType ?: when (singleLine) { - true -> { - if (autoCapitalize) InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_CAP_SENTENCES - else InputType.TYPE_CLASS_TEXT - } - false -> { - if (autoCapitalize) InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_MULTI_LINE or InputType.TYPE_TEXT_FLAG_CAP_SENTENCES - else InputType.TYPE_CLASS_TEXT or InputType.TYPE_TEXT_FLAG_MULTI_LINE - } - } + inputType ?: InputType.TYPE_CLASS_TEXT + .let { if (autoCapitalize) it or InputType.TYPE_TEXT_FLAG_CAP_SENTENCES else it } + .let { if (!singleLine) it or InputType.TYPE_TEXT_FLAG_MULTI_LINE else it } // This is a must in order to avoid extreme lag in some devices, on fast typing if (holder.textInputEditText.inputType != newInputType) {