Commit graph

1591 commits

Author SHA1 Message Date
Marc Durdin
c1c6c8ac84 feat(android): Android web-based test harness
This small harness simulates the Android app. I used it to try and
dig deeper into the interactions with selected text in #5853.

It is very rough, but with some extra effort we could use this
relatively easily for some low-level testing of KeymanWeb embedded
integration.
2022-02-22 10:38:20 +11:00
Darcy Wong
3237a4c6ae chore(common): Update French strings 2022-02-18 10:06:33 +07:00
Darcy Wong
4ed1e04d26 chore(android/app): Clarify help on switching keyboards 2022-02-10 15:54:23 +07:00
Darcy Wong
8c9014ced9 chore(android): Upgrade gradle-wrapper version to 6.8 2022-02-09 08:59:56 +07:00
Darcy Wong
9972747542
Merge pull request #6206 from keymanapp/feat/android/globe-single-keyboard
feat(android/engine): Single tap globe switch to previous system IME
2022-02-08 20:20:08 +07:00
Darcy Wong
ce1e672f10 chore(android): Update Play publishing plugin to 3.5.0 2022-02-08 08:49:37 +07:00
Darcy Wong
c32c298849 feat(android/engine): Single tap globe switch to previous system IME 2022-02-04 11:32:42 +07:00
Darcy Wong
87c18b2434
Merge pull request #6100 from keymanapp/fix/web/execute-popup-layer
fix(web): Use regex to determine display layer and functional layers
2022-01-18 11:17:21 +07:00
Darcy Wong
24364dc5af
Merge pull request #6048 from keymanapp/chore/common/crowdin-ckl
chore(common): Check in crowdin strings for Kibaku 📜
2022-01-17 10:28:54 +07:00
Darcy Wong
c5178649e6
Merge pull request #6050 from keymanapp/chore/common/crowdin-hia
chore(common): Check in crowdin strings for Waha 📜
2022-01-14 12:48:41 +07:00
Darcy Wong
9eb2916d51
Merge pull request #6049 from keymanapp/chore/common/crowdin-mrt
chore(common): Check in crowdin strings for Marghi 📜
2022-01-13 15:04:34 +07:00
Darcy Wong
5769c80d12 fix(web): Fix layers for embedded longpress keys 2022-01-12 14:58:35 +07:00
Darcy Wong
065fdbc434
Merge pull request #6047 from keymanapp/chore/common/crowdin-kr
chore(common): Check in crowdin strings for Kanuri 📜
2022-01-12 09:42:07 +07:00
Darcy Wong
4b29959897
Merge pull request #6082 from keymanapp/chore/android/lint-kmsample2
chore(android/samples): Add -no-daemon flag to KMSample2 build script
2022-01-10 14:00:37 +07:00
Darcy Wong
e0ef491cdd
Update android/Samples/KMSample2/build.sh
Co-authored-by: Marc Durdin <marc@durdin.net>
2022-01-06 06:59:45 +07:00
Darcy Wong
97c2a61870 chore(android): Add no-daemon flag to build script 2022-01-05 14:59:31 +07:00
Darcy Wong
c5238f026e chore(common): Check in crowdin strings for Waha 2021-12-15 15:57:26 +07:00
Darcy Wong
c98ce761b2 chore(common): Check in crowdin strings for Marghi
This checks in the crowdin strings for the locale `mrt` for Marghi.
Does not include macOS.

TODO: Check on adding mrt locale in XCode
2021-12-15 12:48:09 +07:00
Darcy Wong
06835125e6 chore(common): Check in crowdin strings for Kibaku
This checks in the crowdin strings for the locale `kr` for Kanuri.
Does not include macOS.

TODO: Check on adding ckl locale in XCode
2021-12-15 10:42:18 +07:00
Darcy Wong
57d8929eca chore(common): Check in crowdin strings for Kanuri
This checks in the crowdin strings for the locale `kr` for Kanuri.
Does not include macOS.

TODO: Check on adding kr-NG locale in XCode
2021-12-15 09:57:54 +07:00
Darcy Wong
2a2ed6c01a chore(common): Update crowdin strings for Amharic 2021-12-13 13:38:00 +07:00
Darcy Wong
aa75e6b583
Merge pull request #5987 from keymanapp/fix/android/smp-longpress-api-21
fix(android/engine): Fix font paths
2021-12-02 10:14:46 +07:00
Darcy Wong
349074d58f chore(android): Document switching to other system keyboard 2021-12-01 10:13:10 +07:00
Darcy Wong
46d5964587
Merge pull request #5979 from keymanapp/fix/android/lint-error-kmsample
chore(android): Specify build tools version on other projects
2021-12-01 09:51:10 +07:00
Darcy Wong
f9b9a0bd2b
Merge pull request #5973 from keymanapp/feat/android/keyboard-picker-plus-ime
feat(android/engine): Add other IME's to the Keyboard Picker menu
2021-12-01 08:28:41 +07:00
Darcy Wong
7aa1576347 fix(android/engine): Fix font paths 2021-11-30 15:14:53 +07:00
Darcy Wong
3dcb2ea268 chore(android): Specify build tools version on other projects
While Android Studio Gradle plugin should automatically use a default version of build tools, we can specify it:
https://developer.android.com/studio/releases/build-tools

Attempting to resolve lint exceptions on the build agent.
2021-11-29 10:57:54 +07:00
Darcy Wong
7b80c25dfe chore(android/engine): Add note about removing "Close Keyman" button 2021-11-25 13:13:01 +07:00
Darcy Wong
951ee7f6f7 feat(android/engine): Add permission to query other IME's
Permission needed for Android 11
See https://developer.android.com/training/package-visibility/declaring#intent-filter-signature
2021-11-25 13:13:01 +07:00
Darcy Wong
cff749559e feat(android/engine): Add other input methods to Keyboard Picker 2021-11-25 13:13:01 +07:00
Marc Durdin
909d833474 fix(web): improve keyboard switch performance
Summary of these changes:

Two targeted improvements; more optimization is possible but IMO this is
a significant enough improvement to go through test:

1. In oskView.ts, avoid calling `VisualKeyboard.refreshLayout` twice
   from `OSKView.refreshLayout`. This roughly halves the time spent in
   `VisualKeyboard.refreshLayout` for a keyboard switch.
2. In modelManager.ts, we avoid a very expensive `unloadModel` /
   `loadModel` sequence from `registerModel` by checking to see if the
   model spec we are passed is already registered. This avoids an
   expensive callback to Keyman for Android which causes the banner to
   'bounce'.

Longer notes:

So `VisualKeyboard.refreshLayout` is called 20+ times during a keyboard
switch. It is a very expensive call. It is the bulk of the time spent
when you press the globe key in Keyman for Android. This seems ripe for
optimization; see the following functions in keyboard.html:

* `setKeymanLanguage` -> `setActiveKeyboard` -> 6 calls
* `enableSuggestions` -> `registerModel` -> 8 calls
* `stateChange` -> 6+ calls

`OSKView.refreshLayout` always seems to call
`VisualKeyboard.refreshLayout` twice: first with `setSize`, and then
again itself.

Keyman for Android and KeymanWeb seem to fight over who is responsible
for selecting models (KMW first calls `loadModel`, then Keyman for
Android calls `unloadModel`, `loadModel`, through `enableSuggestions`).

The fix for rotation (`correctOSKTextSize()`), as called from
`stateChange()`, is expensive as well, because it rebuilds the entire
keyboard from scratch.

Along with that, we have the size of the webview changing as the model
is unloaded and reloaded and lots of back-and-forth between the
KeymanWeb and KMEA which seems unnecessary.

Shouldn't KeymanWeb be responsible for loading and unloading models,
once they are all registered? We should only need to register the models
once at page load time (when config changes, do we just reload the
page?).
2021-11-22 10:47:05 +11:00
Darcy Wong
1e50270b5b
Merge pull request #5913 from keymanapp/fix/android/2858-key-text
fix(android/engine): Support for U_xxxx_yyyy subkeys
2021-11-18 11:47:53 +07:00
Darcy Wong
ec079a9373 fix(android/engine): Add additional check 2021-11-18 11:00:57 +07:00
Darcy Wong
c98ac9880c
Merge pull request #5841 from keymanapp/chore/common/crowdin-ff-ng
chore(common): Check in crowdin strings for Fulfulde Nigeria
2021-11-17 09:24:35 +07:00
Darcy Wong
31b4fee7d0
Merge pull request #5857 from keymanapp/common/crowdin-mfi
chore(common): Check in crowdin strings for Mandara (Wandala)
2021-11-16 09:24:07 +07:00
Darcy Wong
190e2ed356 chore(android/engine): Reformat preamble 2021-11-16 09:01:02 +07:00
Darcy Wong
1105839199 fix(android/engine): Split U_XXXX_YYYY key cap 2021-11-15 15:31:32 +07:00
Darcy Wong
a44b300adb Merge remote-tracking branch 'origin/master' into chore/common/crowdin-ff-ng 2021-11-15 09:15:43 +07:00
Darcy Wong
0c03a8b65a
Merge pull request #5839 from keymanapp/chore/common/crowdin-bwr
chore(android,linux,windows): Check in crowdin strings for Bura-Pabir
2021-11-15 08:10:31 +07:00
Darcy Wong
5aba540ca3 fix(android/app): Revert test code 2021-11-12 09:20:57 +07:00
Darcy Wong
ad4412fe44
Merge pull request #5849 from keymanapp/fix/android/file-not-found
fix(android/app): Check KMP file exists before attempting to extract
2021-11-12 07:34:12 +07:00
Darcy Wong
73d7f43736
Merge pull request #5878 from keymanapp/fix/android/truncate-name-keyboard-picker
fix(android/engine): Truncate language name in list
2021-11-12 07:33:48 +07:00
Darcy Wong
7de5c724d8 Merge remote-tracking branch 'origin/master' into common/crowdin-mfi 2021-11-08 07:50:59 +07:00
Darcy Wong
5b9cc959fe chore(common): Merge remote-tracking branch 'origin/master' into chore/common/crowdin-ff-ng 2021-11-08 07:30:10 +07:00
Darcy Wong
0c19f04245 chore(common): Merge remote-tracking branch 'origin/master' into chore/common/crowdin-bwr 2021-11-08 07:28:53 +07:00
Darcy Wong
bc9573abea fix(android/engine): Truncate language name in list 2021-11-03 16:23:59 +07:00
Darcy Wong
330111124f
Merge pull request #5838 from keymanapp/feat/android/uninstall-sil-euro-latin
feat(android): Allow uninstall of sil_euro_latin keyboard
2021-11-03 09:02:43 +07:00
Darcy Wong
a0228c6c30 chore(common): Check in crowdin strings for Mandara (Wandala) 2021-10-26 15:18:51 +07:00
Darcy Wong
6fb6238ea9 chore(android): Add test code to remove kmp file 2021-10-22 15:17:00 +07:00
Darcy Wong
016b724d16 fix(android): Check kmp file exists before extracting 2021-10-22 15:16:33 +07:00