Skip to content

Reject late suggestions after hardware keyboard suppression - #22

Merged
RioPlay merged 1 commit into
mainfrom
feat/android-latinime-foundation
Sep 11, 2026
Merged

Reject late suggestions after hardware keyboard suppression#22
RioPlay merged 1 commit into
mainfrom
feat/android-latinime-foundation

Conversation

@RioPlay

@RioPlay RioPlay commented Sep 11, 2026

Copy link
Copy Markdown
Owner

When a hardware keyboard suppresses the IME, the immediate cleanup path retired local input while leaving already-running suggestion requests valid. A late decoder could repopulate the retired UI. Invalidate through the existing batch-lock boundary before the composition-finish attempt, preserve the active framework session, and clear transient state in finally. The existing subtype path uses the extracted helper with unchanged behavior.

Validation: specialist implementation plus independent Terra review; 12 JVM / 121 API 35 x86-64 emulator tests passed, followed by both final-source focused regressions; lint zero errors (4,021 warnings, one hint), unsigned release assembly and 18-document notice checks passed. Controlled queues prove old pending and late results reject, a current request still completes, the existing single host finish call is retained, and a closed session is not reopened. The transient-cleanup spy verifies invocation only. No physical keyboard-attachment acceptance or new signed APK publication is claimed.

Remote acceptance: https://github.com/RioPlay/utterleaf/actions/runs/34616357289 passed at b75526a. Downloaded XML confirms 121 tests, zero failures/errors/skips; external IME process recovery and all six dictionary publication crash cases report pass. Merged as 4165ce0.

@RioPlay
RioPlay merged commit 4165ce0 into main Sep 11, 2026
1 check passed
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.

1 participant