Skip to content

Commit 8ce8bec

Browse files
authored
Merge pull request #1969 from keymapperorg/develop
4.0.0 Beta 6
2 parents e049e75 + 2a99074 commit 8ce8bec

File tree

16 files changed

+710
-225
lines changed

16 files changed

+710
-225
lines changed

CHANGELOG.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,22 @@
1+
## [4.0.0 Beta 6](https://github.com/sds100/KeyMapper/releases/tag/v4.0.0-beta.06)
2+
3+
#### 4 January 2026
4+
5+
## Added
6+
7+
- #1964 show the command to start Expert Mode with a shell command.
8+
9+
## Bug fixes
10+
11+
- #1968 Device controls action no longer works on Android 16+ so it has been disabled on new Android versions.
12+
- #1967 Still start system bridge if granting WRITE_SECURE_SETTINGS fails.
13+
- #1965 Better system bridge support on Xiaomi devices and ask to enable "USB debugging security settings" in developer options.
14+
115
## [4.0.0 Beta 5](https://github.com/sds100/KeyMapper/releases/tag/v4.0.0-beta.05)
216

3-
#### TO BE RELEASED
17+
#### 1 January 2026
18+
19+
Happy new year!
420

521
## Added
622
- #1947 show tip to use expert mode where the old option for screen off remapping used to be

app/version.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
VERSION_NAME=4.0.0-beta.05
2-
VERSION_CODE=220
1+
VERSION_NAME=4.0.0-beta.06
2+
VERSION_CODE=226

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -694,6 +694,8 @@ object ActionUtils {
694694
// is not marked as deprecated even though it doesn't work.
695695
ActionId.TOGGLE_SPLIT_SCREEN -> Build.VERSION_CODES.S
696696

697+
ActionId.DEVICE_CONTROLS -> Build.VERSION_CODES.VANILLA_ICE_CREAM
698+
697699
else -> Constants.MAX_API
698700
}
699701

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

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -689,19 +689,24 @@ class PerformActionsUseCaseImpl @AssistedInject constructor(
689689
val actionType = when (action.direction) {
690690
ActionData.MoveCursor.Direction.START ->
691691
AccessibilityNodeInfo.ACTION_PREVIOUS_AT_MOVEMENT_GRANULARITY
692+
692693
ActionData.MoveCursor.Direction.END ->
693694
AccessibilityNodeInfo.ACTION_NEXT_AT_MOVEMENT_GRANULARITY
694695
}
695696

696697
val granularity = when (action.moveType) {
697698
ActionData.MoveCursor.Type.CHAR ->
698699
AccessibilityNodeInfo.MOVEMENT_GRANULARITY_CHARACTER
700+
699701
ActionData.MoveCursor.Type.WORD ->
700702
AccessibilityNodeInfo.MOVEMENT_GRANULARITY_WORD
703+
701704
ActionData.MoveCursor.Type.LINE ->
702705
AccessibilityNodeInfo.MOVEMENT_GRANULARITY_LINE
706+
703707
ActionData.MoveCursor.Type.PARAGRAPH ->
704708
AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PARAGRAPH
709+
705710
ActionData.MoveCursor.Type.PAGE ->
706711
AccessibilityNodeInfo.MOVEMENT_GRANULARITY_PAGE
707712
}
@@ -1040,10 +1045,13 @@ class PerformActionsUseCaseImpl @AssistedInject constructor(
10401045
is Success -> Timber.d(
10411046
"Performed action $action, input event type: $inputEventAction, key meta state: $keyMetaState",
10421047
)
1048+
10431049
is KMError -> Timber.d(
1044-
"Failed to perform action $action, reason: ${result.getFullMessage(
1045-
resourceProvider,
1046-
)}, action: $action, input event type: $inputEventAction, key meta state: $keyMetaState",
1050+
"Failed to perform action $action, reason: ${
1051+
result.getFullMessage(
1052+
resourceProvider,
1053+
)
1054+
}, action: $action, input event type: $inputEventAction, key meta state: $keyMetaState",
10471055
)
10481056
}
10491057

0 commit comments

Comments
 (0)