Skip to content

#2045 Add 'Perform IME action' action (Android 13+)#2111

Open
sds100 wants to merge 4 commits intodevelopfrom
claude/affectionate-einstein-lEt25
Open

#2045 Add 'Perform IME action' action (Android 13+)#2111
sds100 wants to merge 4 commits intodevelopfrom
claude/affectionate-einstein-lEt25

Conversation

@sds100
Copy link
Copy Markdown
Collaborator

@sds100 sds100 commented Apr 12, 2026

Closes #2045

Summary

  • Adds a new Perform IME action entry to the Keyboard category in the action picker
  • When triggered, uses AccessibilityNodeInfo.ACTION_IME_ENTER on the currently focused input field to fire whatever IME action the field declares (Send, Done, Go, Search, Next, etc.)
  • Requires Android 13+ (API 33 / TIRAMISU) — shows "SDK version too low" error on older devices, matching the approach described in the issue comments
  • No Key Mapper IME required

Changes

File Change
ActionId.kt Added PERFORM_IME_ACTION enum value
ActionData.kt Added PerformImeAction data object
PerformActionsUseCase.kt Added execution logic using AccessibilityNodeInfo.ACTION_IME_ENTER with Android 13+ guard
ActionUtils.kt Added category (KEYBOARD), title string ref, compose icon (Send), min API (TIRAMISU)
ActionUiHelper.kt Added title in getTitle()
ActionDataEntityMapper.kt Added fromEntity mapping and SYSTEM_ACTION_ID_MAP entry ("perform_ime_action")
strings.xml Added action_perform_ime_action string resource

https://claude.ai/code/session_01WYByQnTBo1Hudb7zmGkfj3

Adds a new keyboard action that triggers the IME action (e.g. Send,
Submit, Done) on the currently focused input field. Uses the
accessibility service's ACTION_IME_ENTER node action, which requires
Android 13+ (API 33 / TIRAMISU).

https://claude.ai/code/session_01WYByQnTBo1Hudb7zmGkfj3
@sds100 sds100 changed the base branch from master to develop April 12, 2026 12:46
claude added 3 commits April 12, 2026 12:49
Replace the AccessibilityNodeInfo.ACTION_IME_ENTER node action with
inputMethod.currentInputConnection.performEditorAction(), following the
same pattern as injectText(). Adds performImeAction() to
IAccessibilityService and implements it in BaseAccessibilityService.

https://claude.ai/code/session_01WYByQnTBo1Hudb7zmGkfj3
Replace Icons.AutoMirrored.Outlined.Send (which may not resolve in this
icon set) with Icons.Outlined.Keyboard which is already imported and
used by other keyboard actions.

https://claude.ai/code/session_01WYByQnTBo1Hudb7zmGkfj3
The exhaustive when(actionId) block in configAction() was missing a
case for the new PERFORM_IME_ACTION, causing build and test failures.

https://claude.ai/code/session_01WYByQnTBo1Hudb7zmGkfj3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants