Commit graph

69 commits

Author SHA1 Message Date
Shawn Schantz
88fdaeff6d feat(mac): minor changes after review 2026-09-15 16:35:47 -04:00
Shawn Schantz
74cee6f064 Merge branch 'feat/mac/kmp-inf' of https://github.com/keymanapp/keyman into feat/mac/kmp-inf
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-09-11 16:13:42 -04:00
Shawn Schantz
6307410a8e feat(mac): fixed unit tests 2026-09-11 16:12:45 -04:00
Shawn Schantz
8b9c78d45a
Merge branch 'epic/mac-config' into feat/mac/kmp-inf
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
2026-09-11 13:58:44 -04:00
Shawn Schantz
bae4480530 feat(mac): removed commented-out code 2026-09-11 13:47:02 -04:00
Shawn Schantz
c0c5c84329 feat(mac): more fixes based on re-review 2026-09-11 13:40:47 -04:00
Shawn Schantz
7906533806 feat(mac): update for review comments
get graphic file name from correct location
improved handling of parse error
bounds check for value array on website url
2026-09-11 13:31:48 -04:00
Shawn Schantz
be97f1e046
Merge pull request #16514 from keymanapp/feat/mac/localize
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
feat(mac): localization support for Keyman config app 🍎
2026-09-10 13:53:49 -04:00
Shawn Schantz
78e3008a6b feat(mac): implemented parser from scratch instead of
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
basing on Objective C code

added default for readMe and Help files
added validation for required fields
2026-09-10 12:18:59 -04:00
Shawn Schantz
2d4a1d8683 feat(mac): conver KMPackageReader to swift 2026-09-04 15:14:02 -04:00
Shawn Schantz
b19c85350e feat(mac): remove logging of legacy paths 2026-09-03 10:50:36 -04:00
Shawn Schantz
dc3c1bce95 feat(mac): minor text change and filename change 2026-09-03 09:24:47 -04:00
Shawn Schantz
ab30341f59 feat(mac): localization support
added localizable types where necessary
created Localizable.xcstrings for both the
config app and the Keyman settings package
2026-09-02 22:05:53 -04:00
Shawn Schantz
7d622997cb feat(mac): ensure that home directory is not written to logs
also replace references to URL.path with
URL.path(percentEncoded: false) because FileManager
operation do not expect percent encoding
2026-09-02 15:36:19 -04:00
Shawn Schantz
af6806666a feat(mac): added Sentry logging
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
2026-09-01 22:37:51 -04:00
Shawn Schantz
5250a84c04 feat(mac): replaced print statements with OSLog calls 2026-09-01 10:38:18 -04:00
Shawn Schantz
fa24b00e7a feat(mac): reload packages after migrate
moved InputMethodUtil to Settings
2026-08-25 20:47:22 -04:00
Shawn Schantz
f006f0512d feat(mac): remove dependence on name of .kmp file
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
promote delete package code to main view to avoid
race condition
2026-08-25 09:25:49 -04:00
Shawn Schantz
bb2613314b feat(mac): improve font installation error handling
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
revise comments
2026-08-24 19:57:30 -04:00
Shawn Schantz
95ae54ed23 feat(mac): added font validation and installation
wait to unzip package before determining installation
directory because the package name must be used
for the final installation directory name
2026-08-24 16:32:22 -04:00
Shawn Schantz
7c5bc212ab feat(mac): added internalError for debugging
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
removed packageNotFound installationType
2026-08-22 18:54:47 -04:00
Shawn Schantz
3064a3d3ef feat(mac): added error handling for failed downloads 2026-08-21 19:07:17 -04:00
Shawn Schantz
a58f6f9ffc feat(mac): strip obsolete code
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
2026-08-21 15:21:17 -04:00
Shawn Schantz
751dc0bfae feat(mac): package download and drag and drop use common code
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
for installation and confirmation UI

added DownloadCoordinator to link webview to
SwiftUI views
2026-08-21 09:29:45 -04:00
Shawn Schantz
504e8678ac feat(mac): classified four different package installation types
new package
package replacement (version matches)
package upgrade
package downgrade
2026-08-20 20:41:25 -04:00
Shawn Schantz
52d41e7932 feat(mac): used shared webview for help and readme
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
added default and min size for config view
2026-08-19 22:02:23 -04:00
Shawn Schantz
f194a15c7b feat(mac): enforce minimum keyman version for package
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-08-18 17:36:20 -04:00
Shawn Schantz
a18c740d8a rename PackageDownload to PackageInstallHelper
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
modifying the class to handle not just installation
of packages being downloaded but also installation
due to drag and drop or opening a .kmp from the
file menu

also added boolean to distinguish a download and
install operation because that is the only case
where we delete the original .kmp file that was
downloaded to the temp directory
2026-08-18 09:43:32 -04:00
Shawn Schantz
d9705067d8 feat(mac): handled drag and drop errors
display alert when drag and drop fails
handle installation errors
clean up un-installable .kmp files
2026-08-15 17:46:35 -04:00
Shawn Schantz
7ba1081c6c feat(mac): remove repeated loadURL call
also fixed typos, removed a few print statements
2026-08-14 19:52:06 -04:00
Shawn Schantz
04aa433bb6 feat(mac): show confirm restart view correctly for state
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
listen to correct notifications for permission granted
standardize file URLs
use correct loadFileURl to load help file URL as it
it is not loading over HTTP
2026-08-14 16:20:09 -04:00
Shawn Schantz
beba554feb feat(mac): load help and readme if not listed in options
If the help file (welcome.htm) and readme file
(readme.htm) are not listed in the options element
of the kmp.json, check the file list. Read them
from the package using their default filenames if
they are found there.
2026-08-14 14:03:34 -04:00
Shawn Schantz
895151d89a feat(mac): refactor to allow package removal after install
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
When installed, packages keep a reference to their
location on disk so that they can delete their
associated files if removed. However, installation
from the internet now happens via a temp directory.
The directory must be updated when moved to the
install directory and there can be no trace of the
temp directory path anywhere when loading other
data from the package.

The cleanest way to accomplish this was to use
computed properties for the locations of all the
data like welcome.htm and the graphic image. These
properties are based on the single package
directory URL, and this URL is updated when the
package is moved.
2026-08-13 21:08:03 -04:00
Shawn Schantz
00b67123f4 feat(mac): clean up downloaded package when install fails
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
2026-08-13 14:25:30 -04:00
Shawn Schantz
6b59fd6780 feat(mac): cache qrcode image and lazily load
also fixed bug blocking removal of packages that
were installed during the same session
2026-08-13 12:04:41 -04:00
Shawn Schantz
5089ce42db feat(mac): define InstallationPhase enum for UI
provides a simple way for UI to determine what to
present to the user
also generates events, but these could be generated
before the UI has a chance to listen for them
2026-07-20 18:04:38 -04:00
Shawn Schantz
fc340866ad feat(mac): change keyboardsChanged notification to deliver immediately
also explict call default() to be sure that
we get back a DistributedNotificationCenter
2026-07-16 17:14:20 -04:00
Shawn Schantz
7cbb5851d7 feat(mac): update input method after keyboard config change
Sendsend a distributed notification from the config app
whenever a change to the enabled keyboards occurs.
In response, the input method loads the list of
enabled keyboards and updates the Keyman menu.
2026-07-16 12:38:33 -04:00
Shawn Schantz
b1d73b4427 feat(mac): added several fields to package, including QR Code 2026-07-13 18:47:40 -04:00
Shawn Schantz
44bd0178b4 feat(mac): minor updates to address review comments
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-07-08 16:01:46 -04:00
Shawn Schantz
db63276f11 feat(mac): added check for keyboard package downgrade
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
compares version numbers between new package and the
currently installed package of the same type

also added function comments throughout new code
2026-07-07 18:10:03 -04:00
Shawn Schantz
80130d261d feat(mac): changes in response to ai review
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-07-04 16:23:12 -04:00
Shawn Schantz
95443603be
Merge branch 'epic/mac-config' into feat/mac/install-keyboard
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
2026-07-04 12:40:15 -04:00
Shawn Schantz
560f29d1b0 feat(mac): add support for downgrade and cancelation of downgrade 2026-07-04 12:23:46 -04:00
Shawn Schantz
5cb255a7b6 feat(mac): on install, write package to temp folder in group container
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
download .kmp and unzip in temp folder
then decide whether to replace existing package
2026-07-02 22:29:02 -04:00
Shawn Schantz
6af1dcd05b feat(mac): added install keyboard functionality with webview 2026-06-25 17:39:58 -04:00
Shawn Schantz
6d58005bd2 feat(mac): remove unused function 2026-06-16 17:25:34 -04:00
Shawn Schantz
ddabddd720 feat(mac): repair installation support
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
created installation task list instead of incrementing state
2026-06-05 18:12:50 -04:00
Shawn Schantz
7c07775d67 Merge branch 'feat/mac/new-app' into feat/mac/detect-install 2026-05-29 16:43:25 -04:00
Shawn Schantz
b77b255ac6 feat(mac): throw error for missing kmx file
add TODO comments and change their format
2026-05-29 11:44:49 -04:00