Commit graph

1509 commits

Author SHA1 Message Date
Marc Durdin
d3ff993b94
Merge pull request #16401 from keymanapp/feat/ios/15540-pass-display-language-to-download
feat(ios): pass current display language to keyboard download
2026-08-20 12:54:00 +07:00
Marc Durdin
5f7c9793d6 feat(ios): pass current display language to keyboard download
Note that this information is also passed in via the HTTP
`Accept-Language` header, but for now we are using the `lang` parameter
to match implementation on all platforms. (We should consider moving to
use `Accept-Language` in a future version for more transparent
implementation).

Fixes: #15540
2026-08-19 10:21:32 +02:00
Keyman Server
90c10d5f34
Merge branch 'epic/autocorrect' into auto/A19S35-merge-base-into-autocorrect 2026-08-14 16:18:38 +02:00
Darcy Wong
190cde8fd0 chore(ios): Update crowdin for Spanish - Latin America
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-08-12 16:48:30 -05:00
Keyman Server
c2a3fd8d7d
Merge branch 'epic/autocorrect' into auto/A19S33-merge-master-into-autocorrect 2026-07-20 07:26:08 +02:00
Joshua Horton
ccb2e7057a fix(ios): further adjust + fix language toggle logic
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-07-09 10:48:00 -05:00
Joshua Horton
f1a6f6efdf change(ios): apply suggestions from review 2026-07-09 10:37:42 -05:00
Joshua Horton
86cf687519 fix(web): correct casing of autocorrect permission property name 2026-07-09 09:57:42 -05:00
Marc Durdin
c51657a5d6
Merge branch 'master' into feat/ios/325-add-keyman-version-check-to-package-version
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-07-09 17:44:45 +10:00
Joshua Horton
267cac21c2 fix(web): refresh model when "Enable predictions" is toggled
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-07-06 17:50:14 -05:00
Joshua Horton
03c8a4d679 Merge branch 'epic/autocorrect' into feat/ios/add-autocorrect-toggle 2026-07-06 08:21:16 -05:00
Joshua Horton
824925a387
Merge pull request #16136 from keymanapp/fix/ios/load-via-scheme-handler 2026-07-01 21:57:37 +07:00
Joshua Horton
700380ddc1 change(ios): pre-emptively denote utf-8 encoding for JSON
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
We don't actually pass JSON through our scheme handler yet, but just in case... we ensure we detect JSON's MIME type and annotate appropriately
2026-06-29 10:24:17 -05:00
Joshua Horton
fa435cbeae
docs(ios): change file header date format
Co-authored-by: Marc Durdin <marc@durdin.net>
2026-06-29 22:21:58 +07:00
Joshua Horton
a70861dad8
change(web): Fix ios/engine/build.sh comment
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Co-authored-by: Marc Durdin <marc@durdin.net>
2026-06-29 22:14:40 +07:00
Joshua Horton
b3ee271aee fix(ios): load host page, keyboards through a consistent WKURLSchemeHandler
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
This bypasses any need to modify KMW keyboard loading (say, via .fetch), though it does require a number of collateral changes to be made in order for CORS, etc to be satisfied.

Build-bot: skip build:ios
2026-06-26 14:37:11 -05:00
Joshua Horton
13e154f3a4 fix(ios): bundle in KMW's globe-hint.css
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
Pretty much just what the title says; it's been silently missing this whole time.

This doesn't fix iOS keyboard's display by itself, but it is a prerequisite for the full solution offered by #16136.

Build-bot: skip build:ios
Test-bot: skip
2026-06-26 14:36:27 -05:00
Marc Durdin
bbeb799ac2 feat(ios): add keyman-version to package-version check
For Keyman for iOS, add the new `keyman-version` parameter to the
api.keyman.com/package-version call so that updates to packages that are
not supported on the current version of Keyman will not be offered. This
supports the scenario where an updated keyboard or lexical model depends
on a newer version of Keyman. Note that an older version of the keyboard
or lexical model package will not be offered (the user can still
download and install an older version manually, but generally, the
recommended solution is to upgrade Keyman; there would be significant
cost to add support for querying and installation of older version
keyboards on the server side, for limited benefit).

Also change order of handling for response so that error responses are
recognized even if non-error fields are present. (The current api
endpoint, before keymanapp/api.keyman.com#325 lands, can return `kmp`
and `version` fields even when an `error` field was present, and the iOS
code would see that as a valid response for upgrade, when it shouldn't.
The keymanapp/api.keyman.com#325 change ensures that the additional
fields are not set if there is an `error` field.)

Relates-to: keymanapp/api.keyman.com#325
2026-06-25 11:27:00 +02:00
Joshua Horton
a7371ea3ec feat(ios): add per-language autocorrect toggle
Does not actually pass the toggle's setting to KMW yet.

Build-bot: skip build:ios
2026-06-23 13:18:42 -05:00
Marc Durdin
6a98a39b8a
Merge branch 'master' into chore/web-core-preflight 2026-05-27 22:37:12 +10:00
Marc Durdin
593aa1448b chore: move to .localhost for local server URLs
Match website-local-proxy nginx server setup.

Test-bot: skip
2026-05-18 13:15:51 +02:00
Keyman Server
e77d46f873
Merge branch 'epic/web-core' into auto/A19S21-merge-master-into-web-core 2026-01-31 06:31:15 +01:00
Darcy Wong
356ef54c86 chore(common): Update Crowdin strings for de 2026-01-29 16:38:12 +07:00
Marc Durdin
f6b8bfb463
Merge branch 'epic/web-core' into auto/A19S20-merge-master-into-web-core 2026-01-16 08:40:12 +01:00
Eberhard Beilharz
5b38557227
refactor(web): remove defaults in keyboard-storage
- Also renamed `prefixed` and `withoutPrefix` functions to use the name
  that was aliased on most cases: `toPrefixedKeyboardId` and
  `toUnprefixedKeyboardId`.
- Renamed `ModelManager` class to `ModelCache` which was the name used
  everywhere except in comments.

Part-of: #15292
Test-bot: skip
2025-12-19 18:43:02 +01:00
Darcy Wong
cbca7630e1 chore(common): Update crowdin strings for PT 2025-12-18 16:13:25 +07:00
Marc Durdin
86a903dcf5 refactor(web): move sentry-manager and es-bundling to common
sentry-manager is used by Keyman Engine for Android and Keyman Engine
for iOS, but not directly by KeymanWeb, nor does it have any
dependencies on /web. So it does not make sense to keep it under /web.

es-bundling is used by sentry-manager and potentially other /common/web
tools in the future, so moving it under /common/tools makes it more
consistent in the future.

This is part of simplifying the web source tree; these changes do not
make significant build performance differences at this time.

Test-bot: skip
2025-11-06 15:28:04 +01:00
Marc Durdin
0d27ac91f7 maint(mac): use mac_ prefix for functions in mac.inc.sh
* Also renames resources/environment.sh to resources/build/mac/xcode-environment.inc.sh.
* Adds a few more exclusions to linux/scripts/dist.sh

Fixes: #14478
Test-bot: skip
Build-bot: build
2025-08-20 05:40:32 +02:00
Marc Durdin
bdbd748d82
Merge pull request #14458 from keymanapp/maint/common/mac-scripts
maint(common): reorganize mac/ios build script includes 🐸
2025-08-12 10:41:35 +07:00
Marc Durdin
a81138c62b
Merge pull request #14449 from keymanapp/maint/common/14065-consolidate-builder-scripts
maint(common): consolidate builder scripts 🐸
2025-08-12 10:41:09 +07:00
Marc Durdin
f95b26ac1f
Merge pull request #14446 from keymanapp/maint/common/14275-rename-and-cleanup-shellHelperFunctions.sh
maint(common): rename shellHelperFunctions.sh to utils.inc.sh 🐸
2025-08-12 10:40:59 +07:00
Marc Durdin
d678215371
Merge branch 'maint/resources/14419-build-sh-style-build-bot' into maint/ios/14286-skip-publishing-on-build-buildlevel 2025-08-07 11:44:22 +07:00
Marc Durdin
bfd9fe85bd maint(ios): skip unnecessary network steps when buildLevel is build
Skips codesigning and upload to TestFlight in this case.

Fixes: #14286
2025-08-06 11:07:16 +08:00
Marc Durdin
f03be501a6 maint(common): reorganize mac/ios build script includes
Move mac-specific build scripts and functions into our established
patterns for scripts under resources/build:

* new mac/mac.inc.sh for mac-specific functions, from mac-utils.inc.sh,
  utils.inc.sh, builder-basic.inc.sh
* move other mac-specific scripts into mac/

Relates-to: #14065
Build-bot: build
Test-bot: skip
2025-08-05 12:57:32 +10:00
Marc Durdin
f394245636 maint(common): consolidate builder scripts
Clarifies the confusing builder.inc.sh / build-utils.sh distinction by
giving the scripts more appropriate names. Most build scripts should use
builder-full.inc.sh; some helper scripts can use builder-basic.inc.sh.
Documented in resources/build/README.md.

Renames:
* resources/build/builder.inc.sh to resources/build/builder-full.inc.sh
* resources/build/build-utils.sh to resources/build/builder-basic.inc.sh

Other changes:
* Moves Android-specific functions out of builder-basic.inc.sh and into
  android/build.sh.
* Renames functions in builder-basic.inc.sh

More functions may be moved from builder-basic.inc.sh into utils.inc.sh
or other scripts in the future.

Fixes: #14065
Build-bot: build all
Test-bot: skip
2025-08-02 08:11:24 +10:00
Marc Durdin
65158a0526 maint(common): rename shellHelperFunctions.sh to utils.inc.sh
Adds documentation for various functions, removes unused functions (a
couple of simple, very lightly used functions were unDRYed; these could
go back the other way across all shell scripts if necessary). TODO items
noted for follow-up refactoring.

Fixes: #14275
Relates-to: #14269
Build-bot: build all
Test-bot: skip
2025-08-02 06:58:40 +10:00
Joshua Horton
970d93c7f5 fix(ios): restore keyboard scale map for iPad Air 2
Fixes: KEYMAN-IOS-JC
2025-07-07 07:58:03 -05:00
Joshua Horton
bfb97ca0c6 maint(web): upgrade Sentry to 8.55.0
Fixes: KEYMAN-WEB-RX
(It was produced artificially after this PR's changes to validate them.)

Cross-reference with https://github.com/getsentry/sentry-javascript/blob/master/docs/migration/v7-to-v8.md in regard to minimum supported versions.

@keymanapp-test-bot skip
2025-05-22 14:02:16 +07:00
Joshua Horton
5942ce0bf6 change(ios): revert temp dev-changes to display "force error" option
Also adds minor documentation to new SentryManager.swift additions

Fixes: KEYMAN-IOS-MJ
This error was manually triggered to  validate this PR's actual changes, given that the aim is to enhance error logging.
2025-05-21 09:07:08 +07:00
Joshua Horton
bc39ed46a5 change(ios): temporarily display crash-forcing settings option 2025-05-20 13:44:32 +07:00
Joshua Horton
472ca9e1af feat(ios): log active keyboard, model IDs with reported errors 2025-05-20 13:44:16 +07:00
Eberhard Beilharz
4d81589f48
maint(common): use unique names for Keyman version variables
Previously the builder scripts defined a readonly `VERSION` environment
variable for the Keyman version. That caused problems when another
(external) script tried to define a `VERSION` variable. We encountered
this problem when trying to move the TC build steps of a configuration
into a single script (#13399) when we tried to source `~/.nvm/nvm.sh`.

This change uses a Keyman specific prefix for the version variables and
renames `VERSION` → `KEYMAN_VERSION` etc. Unfortunately these variables
are used in a lot of places, so this turned out to be a bit of a yak
shave.

Test-bot: skip
2025-05-07 18:46:51 +02:00
Joshua Horton
b80eef4a97 change(ios): limit reports about devices without predefined scaling entries
Warnings about known devices without predefined keyboard-scale map entries will be
limited to once per startup of the app and/or app-extension.

Test-bot: skip
See-also: #13769
2025-04-30 14:12:58 +07:00
Joshua Horton
cf85aca104 fix(ios): restore keyboard-scale settings for older, still-supported iOS devices
Fixes: #13769
Fixes: KEYMAN-IOS-JC
Fixes: KEYMAN-IOS-JG
Fixes: KEYMAN-IOS-JH
Fixes: KEYMAN-IOS-JJ
Fixes: KEYMAN-IOS-JY
Fixes: KEYMAN-IOS-JS
2025-04-28 13:26:06 +07:00
Joshua Horton
5004360743
Merge pull request #13701 from keymanapp/fix/ios/picker-dismissal-kbd-resummon
fix(ios): resummon keyboard when keyboard picker is dismissed
2025-04-21 08:46:58 +07:00
Joshua Horton
495aba3e71
Merge pull request #13698 from keymanapp/fix/ios/update-notification-background
fix(ios): ensure update notification does not go translucent/transparent
2025-04-21 08:46:44 +07:00
Joshua Horton
3d1f677407 fix(ios): dismissal of keyboard picker should resummon keyboard
Fixes: #13699
2025-04-11 08:32:52 +07:00
Joshua Horton
c132fe204e fix(ios): ensure update notification is consistently rendered
Fixes: #12589
Fixes: #13688

At some point, iOS seems to have enacted behavior that will cause a toolbar to go translucent/transparent in certain scenarios - such as when it would cover up the bottom of a fully-scrolled view.  This has been triggering on our keyboard-search page, directly causing the behavior seen in #12589.

Reference: https://stackoverflow.com/a/71985231

It appears fixing this thoroughly _also_ addresses #13688, so... yay for "two birds, one stone"!
2025-04-10 13:09:15 +07:00
Joshua Horton
6316684371 chore(ios): update keyboard-size data for current iOS devices
This PR updates the database that KeymanEngine uses to determine what size of keyboard to use for each device.  This should ensure the default size for the keyboard matches the system keyboard's dimensions.
2025-04-10 10:57:26 +07:00
Joshua Horton
8a97943152
Merge pull request #13687 from keymanapp/fix/ios/do-not-double-notify-keyboard-download
fix(ios): do not show notification for downloaded keyboard when showing its installer
2025-04-09 15:52:14 +07:00