Commit graph

30465 commits

Author SHA1 Message Date
Marc Durdin
13a413b6fa
Merge pull request #16630 from keymanapp/revert-16604-fix/web/13862-retry-networkerror-on-importScripts
chore: revert "fix(web): retry importScripts NetworkErrors in attempt to mitigate errors loading models" 🏠
2026-09-22 14:52:55 +07:00
Marc Durdin
7930e15630
Merge pull request #16628 from keymanapp/change/android/cherrypick/use-webview-asset-loader
change(android): use webview asset loader 🍒  🏠
2026-09-22 14:42:01 +07:00
Marc Durdin
bebc0db7d8
Revert "fix(web): retry importScripts NetworkErrors in attempt to mitigate errors loading models 🏠" 2026-09-22 07:32:35 +02:00
Eberhard Beilharz
dc47e32b87 fix(android): address code review comments
Co-authored-by: Marc Durdin <marc@durdin.net>
2026-09-22 06:08:50 +02:00
Eberhard Beilharz
8fdbf04ce8 fix(android): rename method to getKeyboardTextFontFilenameOnly
This addresses a code review comment.
2026-09-22 06:08:49 +02:00
Eberhard Beilharz
30063da5ce Apply suggestions from code review
Co-authored-by: Marc Durdin <marc@durdin.net>
Co-authored-by: Eberhard Beilharz <ermshiperete@users.noreply.github.com>
2026-09-22 06:08:48 +02:00
Eberhard Beilharz
a89dd1bed0 fix(android): fix setting font
PR #16146 introduced a problem with selecting a different font as
display font so that we always ended up with not setting the font.
This was caused by the font filenames now being a URL (which is necessary
because they get processed by the web engine). However, the Android code
checks for the existence of the font in order to create the typeface,
which only works for local paths.

This PR modifies and simplifies `KMKeyboard.getFontFilename` to return the
full path, renames `KMKeyboard.txtFont` and `KMKeyboard.oskFont` to make
it clearer that they contain a path and not a URL.

Also initialize `KMKeyboard.oskFontPath` with empty string instead of
`null`. This makes it consistent with` txtFontPath` and with the
documented behavior of `KMManager.getKeyboardOskFontFilename()` (which
returns `KMKeyboard.oskFontPath`).

Follows: #16146
Fixes: #16187
Build-bot: release:android
2026-09-22 06:08:48 +02:00
Marc Durdin
65b02ae75f fix(android): skip test on Windows that triggers androidx WebKit bug
Fixes: #16183
Test-bot: skip
2026-09-22 06:08:19 +02:00
Eberhard Beilharz
bdef84ebb4 fix(android): suppress error for fallback keyboard
Cherry-pick-of: #16146

We use SIL EuroLatin as fallback keyboard. If that is not installed,
previously we output an error which showed up as a toast for the user.
This change now outputs a warning instead of the error for the default
keyboard.

Also changed the KeyboardHarness test app to set a different keyoard as
default.
2026-09-21 10:14:52 -05:00
Eberhard Beilharz
9a04726d3a fix(android): fix typo 2026-09-21 10:10:06 -05:00
Eberhard Beilharz
ed21a0f780 fix(android): fix problem with fonts
The default fonts (DejaVueSans.ttf and keymanweb-osk.ttf) are located in
the root directory, not the package directory. This fixes the
KeyboardHarness test app.

Also some improvements with variable and function names to better match
what they do.
2026-09-21 10:10:06 -05:00
Eberhard Beilharz
052b40a90f fix(android): add missing dependency for KeyboardHarness app 2026-09-21 10:10:06 -05:00
Eberhard Beilharz
3e087ac186 fix(android): add missing dependency for FirstVoices and Samples
Fixes: FV-ANDROID-20E
Build-bot: release:android
2026-09-21 10:10:06 -05:00
Eberhard Beilharz
8f3ce341f8 fix(android): fix failing test on Windows
On Windows the tests failed because the AppData directory doesn't yet
exist under an allowed app internal storage path. This change creates
the directory first when running tests.
2026-09-21 10:10:05 -05:00
Eberhard Beilharz
aee5620dbf fix(android): add tests for WebViewUtils.buildAssertUrl
Also fix `assertEquals` in that test file - the parameter ordering is
`expected, actual` but we had it the other way round which gives a
confusing message if the test fails.
2026-09-21 10:09:59 -05:00
Eberhard Beilharz
48b03579f3 chore(android): address code review comments
Co-authored-by: Marc Durdin <marc@durdin.net>
2026-09-21 10:04:41 -05:00
Eberhard Beilharz
1f3fabda78 fix(android): fix loading of keyboards on Android
This change moves to using `WebViewAssetLoader` for loading files from
the device instead of using file:// URLs. This fixes the blank keyboard
problem reported in #16096 for Android.

Also make `KMKeyboard.getKeyboardRoot()` private, and rename public
`Keyboard.getKeyboardPath()` to private `Keyboard.getKeyboardUrl()`.

Part-of: #16096
2026-09-21 10:04:38 -05:00
Keyman Server
4e84cbd0fe
Merge pull request #16621 from keymanapp/auto/version-stable-18.0-18.0.252
auto: increment stable-18.0 version to 18.0.252
2026-09-21 11:45:48 +02:00
Keyman Build Agent
9b7bd4ec0f auto: increment stable-18.0 version to 18.0.252 2026-09-21 04:45:13 -05:00
Marc Durdin
264fa9fa0f
Merge pull request #16620 from keymanapp/chore/android/cherry-pick/16279-api36
maint(android): update Android Target API to 36 🍒 🏠
2026-09-21 16:43:22 +07:00
Eberhard Beilharz
3d7cbbef41 maint(android): update FV Android Target API to 36
Follows: #16280
Fixes: #16346
Build-bot: release:android
Cherry-pick-of: #16355
2026-09-21 10:36:38 +02:00
Eberhard Beilharz
3202632780 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.

Also update `compileSdkVersion` and some reformatting in `README.md`.

Changes made by AI (Gemini 3 Flash Preview).

Fixes: #16279
Build-bot: release:android
Cherry-pick-of: #16280
2026-09-21 10:35:27 +02:00
Keyman Server
92dd4feca4
Merge pull request #16617 from keymanapp/auto/version-stable-18.0-18.0.251
auto: increment stable-18.0 version to 18.0.251
2026-09-21 10:07:04 +02:00
Keyman Build Agent
a0a09a93e6 auto: increment stable-18.0 version to 18.0.251 2026-09-21 03:06:28 -05:00
Marc Durdin
87e87e1ff8
Merge pull request #16604 from keymanapp/fix/web/13862-retry-networkerror-on-importScripts
fix(web): retry importScripts NetworkErrors in attempt to mitigate errors loading models 🏠
2026-09-21 15:02:45 +07:00
Marc Durdin
34dd234e44
Merge branch 'stable-18.0' into fix/web/13862-retry-networkerror-on-importScripts 2026-09-21 13:56:18 +07:00
Marc Durdin
54db963190
Merge pull request #16609 from keymanapp/fix/web/cherry-pick/unexpected-worker-unload-msg
fix(web): handle 'unload' message while attempting model 'load' 🍒  🏠
2026-09-21 13:40:17 +07:00
Marc Durdin
56cda959de chore(web): remove TypeScript type annotation from .js cherry-pick 2026-09-21 06:01:36 +02:00
Joshua Horton
2272cb3411 fix(web): handle 'unload' message while attempting model 'load'
Fixes: KEYMAN-WEB-MD
Fixes: KEYMAN-ANDROID-6W9
Cherry-pick-of: #16548

Build-bot: skip build:web
Test-bot: skip
2026-09-18 09:56:09 -05:00
Marc Durdin
3e0e9a437b fix(web): retry importScripts NetworkErrors in attempt to mitigate errors loading models
A deeper workaround is applied in 19.0 (see for example #16565, #16586)
but for 18.0, this is an attempt to bypass the constant issue of models
failing to load with Chrome 152 and later versions, by retrying on
failure.

Relates-to: #13862 (may fix)
2026-09-18 15:18:26 +02:00
Eberhard Beilharz
9ec518103d
Merge pull request #16243 from keymanapp/chore/android/cherry-pick/loglegacy
chore(android): log legacy cloud keyboards 🍒 🏠

This adds a Sentry log if a user is still using legacy cloud keyboards. We do this so that we will learn if there are still users out there or if we can remove the code that deals with those keyboards.

Cherry-pick-of: #16237
2026-07-15 08:34:47 +02:00
Eberhard Beilharz
5883c9092f
chore(android): log legacy cloud keyboards 🍒
This adds a Sentry log if a user is still using legacy cloud keyboards.
We do this so that we will learn if there are still users out there
or if we can remove the code that deals with those keyboards.

Cherry-pick-of: #16237
Test-bot: skip
2026-07-14 18:13:52 +02:00
Marc Durdin
8a04e4b95d
Merge pull request #16101 from keymanapp/chore/stable/1607-multi-labeler-5.0.0
chore: update multi-labeler to 5.0.0 🏠
2026-06-16 23:47:38 +10:00
Marc Durdin
5024200fd5 chore: update multi-labeler to 5.0.0
This moves to node v24.

Relates-to: keymanapp/s.keyman.com#1607
Test-bot: skip
Build-bot: skip
2026-06-16 10:44:09 +02:00
Eberhard Beilharz
0ec2406305
Merge pull request #16078 from keymanapp/chore/linux/resolute
chore(linux): release v18 on Ubuntu 26.04 Resolute 🏠

This adds Ubuntu 26.04 Resolute to the list of distributions we deploy.
2026-06-08 17:51:33 +02:00
Eberhard Beilharz
038944babe
chore(linux): release v18 on Ubuntu 26.04 Resolute
This adds Ubuntu 26.04 Resolute to the list of distributions we deploy on.

Build-bot: skip
Test-bot: skip
2026-06-08 12:22:58 +02:00
Marc Durdin
7752c2cf98
Merge pull request #16007 from keymanapp/chore/ios/cherry-pick/15993-fv-cert
chore(ios): update first voices distribution certificate 🍒 🏠
2026-05-26 16:53:11 +10:00
Shawn Schantz
7597bfee30 chore(ios): update first voices distribution certificate 2026-05-22 12:10:52 -04:00
Eberhard Beilharz
d58327a760
Merge pull request #15980 from keymanapp/fix/linux/cherry-pick/15965_packaging2
fix(linux): add dependency on `procps` 🍒 🏠

In the near future `pidof` will be provided by the `procps` package which isn't installed by default. This change adds a dependency on `procps` to fix this problem. Fixes Debian bug #1136515.

This PR supersedes the identical PR #15968 which had problems with the source verification check because it was created at a time when the check was broken.

Fixes: #15965
Cherry-pick-of: #15967
Supersedes: #15968
2026-05-20 12:20:51 +02:00
Eberhard Beilharz
c58af1f293
fix(linux): add dependency on procps 🍒
In the near future `pidof` will be provided by the `procps` package
which isn't installed by default. This change adds a dependency on
`procps` to fix this problem. Fixes Debian bug #1136515.

Fixes: #15965
Cherry-pick-of: #15967
Build-bot: skip
Test-bot: skip
2026-05-20 11:32:05 +02:00
Marc Durdin
ebd02d6ecf
Merge pull request #15953 from keymanapp/chore/stable/fast-xml-parser-5.7.1
chore: update fast-xml-parser to 5.8.0 🏠
2026-05-19 22:47:13 +10:00
Marc Durdin
95f4d44165 chore(developer): address review comments, move to fxp 5.8.0
Cherry-pick-of: #15868
2026-05-13 14:48:36 +02:00
Marc Durdin
ccafab4bf4 chore: update fast-xml-parser to 5.7.1
Test-bot: skip
2026-05-13 07:35:28 +02:00
Marc Durdin
f224c3c8fc chore(developer): update fast-xml-parser type references
Test-bot: skip
2026-05-13 07:35:15 +02:00
Eberhard Beilharz
f7c76d8279
Merge pull request #15828 from keymanapp/fix/linux/cherry-pick/memmove
fix(linux): fix memory problem 🍒

This fixes a problem identified by devin.ai: Because of the operator precedence the previous code caused `memmove` to read `sizeof(commit_queue_item) - 1` bytes past the end of `commit_queue`. With this change `memmove` now reads the intended `MAX_QUEUE_SIZE - 1` `commit_queue_items`.

Cherry-pick-of: #15823
2026-04-09 09:11:57 +02:00
Eberhard Beilharz
c0d6d09309
fix(linux): fix memory problem 🍒
This fixes a problem identified by devin.ai: Because of the operator
precedence the previous code caused `memmove` to read
`sizeof(commit_queue_item) - 1` bytes past the end of `commit_queue`.
With this change `memmove` now reads the intended `MAX_QUEUE_SIZE - 1`
`commit_queue_items`.

Cherry-pick-of: #15823
Test-bot: skip
2026-04-08 17:59:06 +02:00
Keyman Server
c60c775895
Merge pull request #15806 from keymanapp/auto/version-stable-18.0-18.0.250
auto: increment stable-18.0 version to 18.0.250
2026-03-27 11:44:01 +01:00
Keyman Build Agent
a1c4c5c729 auto: increment stable-18.0 version to 18.0.250 2026-03-27 05:43:27 -05:00
Marc Durdin
44b6aced58
Merge pull request #15792 from keymanapp/fix/cherry-pick/keyman-touch-layout-spec-default-prop
fix(common): add missing `default` property to keyman-touch-layout.clean.spec.json 🍒 🏠
2026-03-27 18:16:37 +11:00
Marc Durdin
01ee4a75a0 fix(common): add missing default property to keyman-touch-layout.clean.spec.json 🍒
Matches property in keyman-touch-layout.spec.json. Update to version 2.1.2.

Test-bot: skip
See-also: keymanapp/api.keyman.com#338
Cherry-pick-of: #15787
2026-03-27 06:17:59 +01:00