Commit graph

1120 commits

Author SHA1 Message Date
Joshua Horton
a117672d50
Merge pull request #16392 from keymanapp/fix/android/load-external-kmp-file
fix(android): load KMP files from app-external sources
2026-09-11 20:18:33 +07:00
Joshua Horton
a9311a5899 change(android): more AndroidManifest refinements
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-09-10 09:05:59 -05:00
Joshua Horton
380f71212a change(web): fix previous commit's adjustments & add link to Android docs in filter comments
Some checks are pending
Keyman Build Summary / Summarize build status checks (push) Waiting to run
2026-09-09 14:39:59 -05:00
Joshua Horton
d2aa609db7 change(android): more AndroidManifest cleanup 2026-09-09 14:33:26 -05:00
Joshua Horton
c3bc3762aa change(android): remove added scheme=content duplication
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-09-08 07:58:01 -05:00
Joshua Horton
f0e79e2185 docs(android): shift comment text to retrigger build
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-09-04 09:03:19 -05:00
Joshua Horton
507512ba59 change(android): clean up site deep-link configuration
Build-bot: skip release:android
2026-08-25 15:45:12 -05:00
Joshua Horton
af0a2b601f change(android): revert autoVerify="true" change
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
2026-08-25 15:40:52 -05:00
Joshua Horton
ba767046b3 change(android): clean up AndroidManifest.xml MIME-type entries, remove empty else
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
- https://developer.android.com/reference/android/Manifest.permission#READ_EXTERNAL_STORAGE
- https://stackoverflow.com/a/73630987
2026-08-19 12:04:35 -05:00
Joshua Horton
90b2e45e6b change(web): add vnd.keyman.kmp+zip mime type to file-association intent-filters
Fixes: #14122
2026-08-18 09:07:09 -05:00
Joshua Horton
f4a67d8866 fix(android): load KMP files from app-external sources
This PR provides two main services:
- It allows on-device KMP file providers (such as Chrome downloads or the local Files app) to smoothly pass those KMP files into Keyman for Android for installation.
- It also removes wildcard-host http / https deep-links from the app manifest, as these are invalid.

Fixes: #14854
Fixes: #10133

Upon my investigation into related documentation, I've determined that with current versions of Android, setting up a general, "anywhere on the web" deep link for KMP files is not supported and should not be attempted.

How, then, do we facilitate external apps passing off KMP links or files to Keyman for Android?  Turns out... we've already done the work for downloaded files with `file:` and `content:` scheme deep-links.  The issue is that some of our permissions-checking code logic was bad.   With a little work to correct them - removing the bad checks that never should have existed anyway - the files load nicely!

Build-bot: skip release:android
2026-08-17 15:33:30 -05: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
e285b5aa39 chore(android): Update crowdin strings for Spanish - Latin America 2026-08-12 16:48:12 -05:00
Darcy Wong
e2249734ea chore(common): Update Crowdin strings for Spanish (Latin America) 2026-08-12 09:20:12 -05:00
Marc Durdin
176d031f1b
Merge pull request #15827 from memaynor/feat/dark-mode-and-settings
feat(android): design improvement for settings, add dark mode and tool menu
2026-08-11 16:27:27 +02:00
Keyman Server
0a868ac7ff
Merge branch 'epic/autocorrect' into auto/A19S34-merge-base-into-autocorrect 2026-08-10 09:54:03 +02:00
Eberhard Beilharz
c41544e8ed
Merge pull request #16266 from keymanapp/fix/android/16226_update
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
2026-08-06 16:15:23 +02:00
Eberhard Beilharz
e3ed30a309
chore(android): revert unnecessary parts of previous commit 2026-08-05 18:04:48 +02:00
Eberhard Beilharz
d87d104808
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
2026-07-24 10:55:45 +02:00
Eberhard Beilharz
a332c0d464
fix(android): show updates for lexical models
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
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
2026-07-23 13:18:37 +02:00
Keyman Server
c2a3fd8d7d
Merge branch 'epic/autocorrect' into auto/A19S33-merge-master-into-autocorrect 2026-07-20 07:26:08 +02:00
Mengchou97
d9717d634e updated sidebar title and move button and add a get started action button 2026-07-15 23:13:28 +07:00
Marc Durdin
f75a913698 chore: Merge branch 'master' into feat/dark-mode-and-settings 2026-07-14 16:16:23 +02:00
Marc Durdin
c9b11c052b chore(android): patch enable_system_keyboard string 2026-07-14 16:16:01 +02:00
Marc Durdin
a1c8e63cc8 chore(android): cleanup Android build scripts and artifact filenames
* Specify clearer filenames for Android samples and test KeyboardHarness
* Cleanup android/*/build.sh to match current patterns
* Remove obsolete jcenter dependency
* Export BUILDER_CONFIGURATION in builder.inc.sh

Fixes: #16137
Fixes: #16181
Test-bot: skip
Build-bot: skip release:android
2026-07-13 16:36:29 +02:00
mengchouchey@gmail.com
65b9316840 updated sidebar - removed checkboxes options 2026-07-12 15:28:39 +07:00
Marc Durdin
ab2d0a8e7a maint(android): use KEYMAN_TIER instead of TIER.md
This is consistent with other version variables in build.gradle.
Encountered an issue with loading TIER.md with Android Studio Quail 1 |
2026.1.1 Patch 2 version, and this was an expedient workaround.

Test-bot: skip
2026-07-10 15:50:46 +02:00
Mengchou97
0f5b0e65d9 resolved the navigation bar layover keyboard problem 2026-07-08 22:41:50 +07:00
Mengchou97
681fb1248a resolved the logo overlayed in arabic language 2026-07-08 15:29:50 +07:00
Mengchou97
812fca0d9e resolve the update option from always appearing 2026-07-08 13:24:07 +07:00
Mengchou97
8e55aec87b change the keybaord_banner to dark in dark mode 2026-07-07 22:02:03 +07:00
Mengchou97
176df82f04 removed the active keyboard helper in the bottom section as recommended 2026-07-07 22:02:03 +07:00
Mengchou97
bec72037f1 ondrawerclosed sidebar scroll back to top 2026-07-07 22:02:03 +07:00
Keyman Server
2dfa960f13
Merge branch 'epic/autocorrect' into auto/A19S32-merge-base-into-autocorrect 2026-07-04 13:19:27 +02:00
Eberhard Beilharz
70282bfd5b
fix(android): rename method to getKeyboardTextFontFilenameOnly
Some checks failed
Keyman Build Summary / Summarize build status checks (push) Has been cancelled
This addresses a code review comment.
2026-07-03 17:26:05 +02:00
Eberhard Beilharz
1191e4387f
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-07-02 19:52:35 +02:00
Marc Durdin
106d3eb62d chore(android): move v23 styles into v23 resource file
Current min Android SDK for Keyman is v21.

See: https://developer.android.com/develop/ui/views/theming/themes#Versions
2026-07-02 15:23:54 +02:00
Marc Durdin
3be3aa229d
Merge branch 'master' into feat/dark-mode-and-settings 2026-07-02 22:01:19 +10:00
Eberhard Beilharz
64abd5b690
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-06-26 20:01:30 +02:00
Mengchou97
bd693b8c8f restored master file 2026-06-24 15:48:54 +07:00
Mengchou97
9d42a5f0a7 remove whitespace on line 8 2026-06-24 14:48:39 +07:00
MengHeng
89b8cdeca8
Apply suggestions from code review
Co-authored-by: MengHeng <90595388+Meng-Heng@users.noreply.github.com>
2026-06-24 14:40:37 +07:00
MengHeng
cc4192529e
Apply suggestions from code review
Co-authored-by: MengHeng <90595388+Meng-Heng@users.noreply.github.com>
2026-06-24 14:38:42 +07:00
Mengchou97
82d558004a fixed whitespace problems 2026-06-24 13:45:09 +07:00
Mengchou97
8aa1d261f0 added one whitespace back to be exactly the same as master 2026-06-24 13:32:23 +07:00
Mengchou97
9813318022 removed whitespaces problems 2026-06-24 13:22:03 +07:00
Mengchou97
9dfc7b096c added the standard header 2026-06-11 13:57:34 +07:00
Mengchou97
d1e7839c08 reverted the splashscreenactivity 2026-06-10 17:00:17 +07:00
Mengchou97
2b54302257 reverted the ic_action_timelapse 2026-06-10 16:55:49 +07:00
Mengchou97
2f1f62aed4 fixed whitespace problems fragment_select_language 2026-06-10 16:53:14 +07:00