feat: add auto-capitalization toolbar and JSON toggles - #578
Merged
LeanBitLab merged 1 commit intoOct 1, 2026
Merged
Conversation
Toggle the existing saved capitalization preferences from optional toolbar, pinned and custom layout controls. Refresh effective state immediately while preserving manual Shift, Caps Lock, composition and selection. Add accessible saved-but-inactive states and regression coverage. Adapted from 0e8232e33a6e3043839fa0c1c2cfddfda02926f0 onto current upstream without fork-only feature dependencies. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Owner
|
i can do some of it, but not all, ill check again |
Owner
hmm actually i completely understand the scenario where it helps |
Owner
|
ill merge it on 4.2.8 beta |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add optional Auto-capitalization and Force auto-capitalization controls for the toolbar, pinned keys, and custom JSON layouts/popups:
{"label":"auto_cap"}/TOGGLE_AUTO_CAP(-10079){"label":"force_auto_caps"}/TOGGLE_FORCE_AUTO_CAPS(-10080)Both toggle the existing saved Text correction preferences through the common keyboard action listener. The controls immediately refresh automatic shift and toolbar/pinned state while preserving explicit one-shot Shift, Caps Lock, selection, the composing word, pending correction, and per-app autocorrect overrides. Existing toolbar order/remaps are retained and the new entries start disabled. Keywords follow toolbar remaps; explicit numeric codes retain their fixed actions. The force keyword is plural only.
All three icon styles are supported. Highlights reflect effective enablement; accessible state descriptions distinguish off, on, saved-on while the master Auto-capitalization setting is off, and saved-on in a language without uppercase letters. Turning the master off does not clear the saved force preference.
This exposes existing settings; it does not change capitalization policy, correction ranking, or the existing autocorrect action. No dependency, minimum-SDK, branding, or unrelated feature changes. The feature/keycode guide is updated.
Validation
:app:testStandardDebugUnitTestselecting allhelium314.keyboard.latin.InputLogicTestcases plushelium314.keyboard.ParserTest.caps*: 110 tests, 109 passed, 0 failed, 1 pre-existing ignored Hangul test (insertLetterIntoWordHangulFails).:app:externalNativeBuildStandardDebugpassed for arm64-v8a and armeabi-v7a;:app:compileOfflineDebugKotlinpassed.LayoutUtils.getContent,NoSuchElementException) on this Windows/Robolectric host. A clean run on unchanged upstream65a6e782276b25ff1065e66e9dda7a60f31cfd71reproduced the same eight test names and errors (46 baseline parser tests versus 50 after this change). No production asset workaround or additional test skip was added.The new integration cases run against Robolectric views and the common action path; no device installation or full APK handoff was performed.