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
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)
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
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
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
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
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
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
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
The boilerplate code for custom lexical models has never really been
tested. For use in a browser/worker context, we need to define
`exports`. The added unit test verifies that the model will build.
Test-bot: skip
Cherry-pick-of: #15777