refactor(web): improve naming of `_SetTargetDir` function
`_SetTargetDir` deals with setting the text direction of the target, not the target directory. This change mainly renames the private function to `setTargetTextDirection`.
refactor(web): fix return type of `currentKeyboardSrcTextStore`
`currentKeyboardSrcTextStore` can return `null` if the global `textStore` should be used. This change reflects this in the return type.
`currentKeyboardSrcTextStore` can return `null` if the global
`textStore` should be used. This change reflects this in the return
type.
Build-bot: skip build:web
Test-bot: skip
`_SetTargetDir` deals with setting the text direction of the target,
not the target directory. This change mainly renames the private function
to `setTargetTextDirection`.
Build-bot: skip build:web
Test-bot: skip
fix(android): show updates for lexical models
With this change the model info activity will show an available update to the lexical model.
PR partially drafted by AI (Gemini 3 Flash Preview).
Fixes: #16226
chore(web): fire `keyboardloaded` event only once per keyboard
Previously we fired `keyboardloaded` twice for each loaded keyboard. This change fixes this.
Fixes: #16292
maint(android): update Android Target API to 36
This change updates the Android Target API to 36 to satisfy the upcoming annual Play Store Aug 31 requirement. It updates Keyman for Android to use API level 36 by changing the compileSdk and targetSdkVersion properties to 36.
Changes made by AI (Gemini 3 Flash Preview).
Fixes: #16279
chore(web): update help links to use latest version
This updates three in-code help links to point to `current-version` instead of an outdated version page.
fix(web): ignore exception trying to access cookie
This change works around the problem where third-party cookies are blocked when using the keymanweb bookmark by ignoring the exception. The cookie is used to store a previous state; if we ignore the exception the user will always get the initial state of the keyboard, but at least the bookmark is usable.
Fixes: #keymanapp/r.keymanweb.com/9
This change works around the problem where third-party cookies are
blocked when using the keymanweb bookmark by ignoring the exception.
The cookie is used to store a previous state; if we ignore the exception
the user will always get the initial state of the keyboard, but at
least the bookmark is usable.
Fixes: #keymanapp/r.keymanweb.com/9
Build-bot: skip build:web
Test-bot: skip
This change updates the Android Target API to 36 to satisfy the upcoming
annual Play Store Aug 31 requirement. It updates Keyman for Android to
use API level 36 by changing the compileSdk and targetSdkVersion
properties to 36.
Also update `compileSdkVersion` and some reformatting in `README.md`.
Changes made by AI (Gemini 3 Flash Preview).
Fixes: #16279
Build-bot: release:android
when vectors are resized the memory is realocated so all the option
pointers become invalid. Using a deque avoids this it has all the same
methods so it is straight replacement.
fixes: #15961
With this change the model info activity will show an available update
to the lexical model.
Commit partially drafted by AI (Gemini 3 Flash Preview).
Fixes: #16226
Build-bot: release:android
# Keyman Conventional Commit suggestions:
#
# - Link to a Sentry issue with git trailer:
# Fixes: _MODULE_-_ID_
# - Give credit to co-authors:
# Co-authored-by: _Name_ <_email_>
# - Use imperative, present tense ('attach' not 'attaches', 'attached' etc)
# - Don't include a period at the end of the title
# - Always include a blank line before trailers
# - More: https://github.com/keymanapp/keyman/wiki/Pull-Request-and-Commit-workflow-notes