Skip to content

Commit 384ba77

Browse files
committed
Merge remote-tracking branch 'origin/develop' into develop
2 parents 1e19635 + 15b245d commit 384ba77

9 files changed

Lines changed: 38 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
## Added
66

7+
- #2067 add action to select all text in the focused field.
78
- #2045 add action to input on-screen keyboard enter/send button.
89
- #2106 disable the keyboard auto-switching setting when manually switching the keyboard in the Key Mapper homescreen menu.
910
- #1029 add action to show a toast message.

base/src/main/java/io/github/sds100/keymapper/base/actions/ActionData.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -858,6 +858,11 @@ sealed class ActionData : Comparable<ActionData> {
858858
override val id = ActionId.SELECT_WORD_AT_CURSOR
859859
}
860860

861+
@Serializable
862+
data object SelectAllText : ActionData() {
863+
override val id = ActionId.SELECT_ALL_TEXT
864+
}
865+
861866
@Serializable
862867
data object VoiceAssistant : ActionData() {
863868
override val id = ActionId.OPEN_VOICE_ASSISTANT

base/src/main/java/io/github/sds100/keymapper/base/actions/ActionDataEntityMapper.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -625,6 +625,8 @@ object ActionDataEntityMapper {
625625

626626
ActionId.SELECT_WORD_AT_CURSOR -> ActionData.SelectWordAtCursor
627627

628+
ActionId.SELECT_ALL_TEXT -> ActionData.SelectAllText
629+
628630
ActionId.TOGGLE_AIRPLANE_MODE -> ActionData.AirplaneMode.Toggle
629631

630632
ActionId.ENABLE_AIRPLANE_MODE -> ActionData.AirplaneMode.Enable
@@ -1478,6 +1480,7 @@ object ActionDataEntityMapper {
14781480
ActionId.TEXT_COPY to "text_copy",
14791481
ActionId.TEXT_PASTE to "text_paste",
14801482
ActionId.SELECT_WORD_AT_CURSOR to "select_word_at_cursor",
1483+
ActionId.SELECT_ALL_TEXT to "select_all_text",
14811484

14821485
ActionId.SWITCH_KEYBOARD to "switch_keyboard",
14831486

base/src/main/java/io/github/sds100/keymapper/base/actions/ActionId.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ enum class ActionId {
121121
TEXT_PASTE,
122122
MOVE_CURSOR,
123123
SELECT_WORD_AT_CURSOR,
124+
SELECT_ALL_TEXT,
124125
TOGGLE_KEYBOARD,
125126
SHOW_KEYBOARD,
126127
HIDE_KEYBOARD,

base/src/main/java/io/github/sds100/keymapper/base/actions/ActionUiHelper.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -593,6 +593,7 @@ class ActionUiHelper(
593593
ActionData.Screenshot -> getString(R.string.action_screenshot)
594594
ActionData.SecureLock -> getString(R.string.action_secure_lock_device)
595595
ActionData.SelectWordAtCursor -> getString(R.string.action_select_word_at_cursor)
596+
ActionData.SelectAllText -> getString(R.string.action_select_all_text)
596597
ActionData.ShowKeyboard -> getString(R.string.action_show_keyboard)
597598
ActionData.ShowKeyboardPicker -> getString(R.string.action_show_keyboard_picker)
598599
ActionData.PerformImeAction -> getString(R.string.action_perform_ime_action)

base/src/main/java/io/github/sds100/keymapper/base/actions/ActionUtils.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ import androidx.compose.material.icons.outlined.PowerSettingsNew
5454
import androidx.compose.material.icons.outlined.Replay30
5555
import androidx.compose.material.icons.outlined.ScreenLockRotation
5656
import androidx.compose.material.icons.outlined.ScreenRotation
57+
import androidx.compose.material.icons.outlined.SelectAll
5758
import androidx.compose.material.icons.outlined.Settings
5859
import androidx.compose.material.icons.outlined.SignalCellular4Bar
5960
import androidx.compose.material.icons.outlined.SignalCellularOff
@@ -225,6 +226,7 @@ object ActionUtils {
225226
ActionId.HIDE_KEYBOARD -> ActionCategory.KEYBOARD
226227
ActionId.SHOW_KEYBOARD_PICKER -> ActionCategory.KEYBOARD
227228
ActionId.SELECT_WORD_AT_CURSOR -> ActionCategory.KEYBOARD
229+
ActionId.SELECT_ALL_TEXT -> ActionCategory.KEYBOARD
228230
ActionId.PERFORM_IME_ACTION -> ActionCategory.KEYBOARD
229231
ActionId.SWITCH_KEYBOARD -> ActionCategory.KEYBOARD
230232
ActionId.LOCK_DEVICE -> ActionCategory.INTERFACE
@@ -426,6 +428,8 @@ object ActionUtils {
426428

427429
ActionId.SELECT_WORD_AT_CURSOR -> R.string.action_select_word_at_cursor
428430

431+
ActionId.SELECT_ALL_TEXT -> R.string.action_select_all_text
432+
429433
ActionId.PERFORM_IME_ACTION -> R.string.action_perform_ime_action
430434

431435
ActionId.SWITCH_KEYBOARD -> R.string.action_switch_keyboard
@@ -604,6 +608,7 @@ object ActionUtils {
604608
ActionId.TEXT_COPY -> R.drawable.ic_content_copy
605609
ActionId.TEXT_PASTE -> R.drawable.ic_content_paste
606610
ActionId.SELECT_WORD_AT_CURSOR -> null
611+
ActionId.SELECT_ALL_TEXT -> null
607612
ActionId.PERFORM_IME_ACTION -> null
608613
ActionId.SWITCH_KEYBOARD -> R.drawable.ic_outline_keyboard_24
609614
ActionId.TOGGLE_AIRPLANE_MODE -> R.drawable.ic_outline_airplanemode_active_24
@@ -682,6 +687,7 @@ object ActionUtils {
682687
ActionId.TEXT_COPY,
683688
ActionId.TEXT_PASTE,
684689
ActionId.SELECT_WORD_AT_CURSOR,
690+
ActionId.SELECT_ALL_TEXT,
685691
-> Build.VERSION_CODES.JELLY_BEAN_MR2
686692

687693
ActionId.PERFORM_IME_ACTION -> Build.VERSION_CODES.TIRAMISU
@@ -1038,6 +1044,7 @@ object ActionUtils {
10381044
ActionId.TEXT_COPY -> Icons.Rounded.ContentCopy
10391045
ActionId.TEXT_PASTE -> Icons.Rounded.ContentPaste
10401046
ActionId.SELECT_WORD_AT_CURSOR -> KeyMapperIcons.MatchWord
1047+
ActionId.SELECT_ALL_TEXT -> Icons.Outlined.SelectAll
10411048
ActionId.PERFORM_IME_ACTION -> Icons.Outlined.Keyboard
10421049
ActionId.SWITCH_KEYBOARD -> Icons.Outlined.Keyboard
10431050
ActionId.TOGGLE_AIRPLANE_MODE -> Icons.Outlined.AirplanemodeActive

base/src/main/java/io/github/sds100/keymapper/base/actions/CreateActionDelegate.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1097,6 +1097,8 @@ class CreateActionDelegate(
10971097

10981098
ActionId.SELECT_WORD_AT_CURSOR -> return ActionData.SelectWordAtCursor
10991099

1100+
ActionId.SELECT_ALL_TEXT -> return ActionData.SelectAllText
1101+
11001102
ActionId.TOGGLE_AIRPLANE_MODE -> return ActionData.AirplaneMode.Toggle
11011103

11021104
ActionId.ENABLE_AIRPLANE_MODE -> return ActionData.AirplaneMode.Enable

base/src/main/java/io/github/sds100/keymapper/base/actions/PerformActionsUseCase.kt

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -820,6 +820,23 @@ class PerformActionsUseCaseImpl @AssistedInject constructor(
820820
}
821821
}
822822

823+
is ActionData.SelectAllText -> {
824+
result = service.performActionOnNode({ it.isFocused }) { node ->
825+
val text = node.text?.toString().orEmpty()
826+
if (text.isEmpty()) return@performActionOnNode null
827+
828+
val extras = mapOf(
829+
AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_START_INT to 0,
830+
AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_END_INT to text.length,
831+
)
832+
833+
AccessibilityNodeAction(
834+
AccessibilityNodeInfo.ACTION_SET_SELECTION,
835+
extras,
836+
)
837+
}
838+
}
839+
823840
is ActionData.AirplaneMode.Toggle -> {
824841
result = if (airplaneModeAdapter.isEnabled()) {
825842
airplaneModeAdapter.disable()

base/src/main/res/values/strings.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1098,6 +1098,7 @@
10981098
<string name="action_text_copy">Copy</string>
10991099
<string name="action_text_paste">Paste</string>
11001100
<string name="action_select_word_at_cursor">Select word at cursor</string>
1101+
<string name="action_select_all_text">Select all text</string>
11011102

11021103
<string name="action_open_settings">Open settings</string>
11031104
<string name="action_show_power_menu">Show power menu</string>

0 commit comments

Comments
 (0)