Commit graph

1099 commits

Author SHA1 Message Date
Darcy Wong
fcc75ec00e fix(android/engine): Clear WebView cache on package install 2022-03-28 13:44:30 +07:00
Darcy Wong
30b67646f4
Merge pull request #6399 from keymanapp/chore/common/crowdin-ha-2
chore(common): Update Hausa strings
2022-03-25 08:19:52 +07:00
Darcy Wong
19f1d4f5a7 chore(android): Merge remote-tracking branch 'origin/beta' into fix/android/subkey-move 2022-03-23 13:05:25 +07:00
Darcy Wong
a6186489b5 Merge remote-tracking branch 'origin/beta' into chore/common/crowdin-ha-2 2022-03-22 21:15:28 +07:00
Darcy Wong
6b01ba7003
Merge pull request #6370 from keymanapp/fix/android/keyboard-picker-display-artifacts
chore(android/engine): Remove visual gaps in keyboard picker menu
2022-03-21 18:07:11 +07:00
Darcy Wong
2d52719a00 chore(common): Update Hausa strings 2022-03-18 08:24:55 +07:00
Darcy Wong
1a413bcb6a fix(android/engine): Fix ACTION_DOWN returns 2022-03-16 14:01:48 +07:00
Darcy Wong
328175deba chore(android): Merge remote-tracking branch 'origin/beta' into fix/android/subkey-move 2022-03-16 09:29:32 +07:00
Darcy Wong
c3da55d9ae
Merge pull request #6369 from keymanapp/fix/fv/dictionary-keyboard-list
fix(oem/fv/android): Consolidate dictionary and keyboard settings
2022-03-15 21:03:32 +07:00
Darcy Wong
812e6040e2
Merge pull request #6356 from keymanapp/fix/android/hold-globe-longpress-menu
fix(android/engine): Activate menu on globe longpress before release
2022-03-15 05:56:44 +07:00
Darcy Wong
103e618680 chore(android/engine): Remove visual gaps in keyboard picker menu 2022-03-14 13:01:20 +07:00
Darcy Wong
738b3cc08a fix(oem/fv/android): Fold model picker into Keyboard settings menu 2022-03-14 06:56:55 +07:00
Darcy Wong
c3c8c219d7 chore(android/engine): Tweak handling globe key 2022-03-10 19:41:03 +07:00
Darcy Wong
6a622b4255 fix(android/engine): Activate menu on globe longpress before release 2022-03-10 15:24:21 +07:00
Darcy Wong
b213c3b829 fix(android/engine): Test fileVersion during package install 2022-03-10 13:15:59 +07:00
Darcy Wong
6c6b899b49 chore(android/engine): Remove bold styling in lists 2022-03-08 14:16:45 +07:00
Darcy Wong
39cb6dad01 fix(android/engine): Fix longpress on move gesture 2022-03-02 12:57:36 +07:00
Darcy Wong
d85af16858 feat(oem/fv/android): Add keyboard and dictionary controls 2022-03-02 12:30:51 +07:00
Marc Durdin
db9822147f
chore(android): disable debugging 2022-02-28 15:06:32 +11:00
Marc Durdin
e0bba0da02 fix(android): count number of surrogate pairs correctly when deleting
The system keyboard, when deleting-left, would not count the number of
surrogate pairs correctly in the text to delete. This would often leave
it deleting half a surrogate pair.

Rather than change the countSurrogatePairs function, I opted to write
this inline. The countSurrogatePairs function is used elsewhere, it
appears correctly.
2022-02-25 16:05:51 +11:00
Marc Durdin
e7be5f62a4 fix(android): ignore delete-left if selection exists in-app
If there is an active selection, we delete the selection before
inserting text. In this case, we also ignore the deleteLeft value coming
from KeymanWeb, so we won't delete twice.

Note: in the future, we will hopefully refactor this to use
OutputTarget, which will change the way this function works and will
probably clean up some of the spaghetti.
2022-02-25 16:04:05 +11:00
Marc Durdin
9ba4b9645c fix(android): further selection tweaks 2022-02-23 15:16:23 +11:00
Marc Durdin
c389ad0df8 fix(android): selection on Android
Part of #5853.

Building on the fixes in KeymanWeb, we do similar patches for Android.
2022-02-23 15:16:21 +11:00
Marc Durdin
4d37fd0a5b chore(android): separate android-host.js
This is part of the fix chain for #5853. Split android-host.js out from
keyboard.html in order to make it easier to debug and mock. No changes
to the content of the script, just moving it here.
2022-02-23 15:15:22 +11:00
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
8c9014ced9 chore(android): Upgrade gradle-wrapper version to 6.8 2022-02-09 08:59:56 +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
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
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
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