Relates to #949.
* Adds setSpacebarText() API to Keyman Engine for Android
* Adds displayName API to Keyman Engine for Android
* Adds Preference for spacebar text to Keyman for Android
* Sets default spacebar text to keyboard name for FirstVoices Keyboards
When working on a new build script, I tripped over the `-?` question
mark help parameter here, as it needs to be escaped. Opted to fix all
the instances in our scripts, although AFAICT there would not have been
current bugs arising from this, as there were no conflicting one
character options lower in the case list.
Fixes#4019.
Rolls back #3009 and fixes base issue in alternative manner.
The core issue here was twofold:
1. We needed to set the window size to the whole screen in order for the
popups to visible and touchable. We implement this in
`onConfigureWindow`.
2. Once our window size is the whole screen, we need to tell the apps
which part of the window is our keyboard UI, in `onComputeInsets`.
This is the only part of the window which impacts the layout of the
underlying app. We had not set the `visibleTopInsets` property and
this caused the WeChat problems.
Finally, in order for this to work, we roll back the original fix
in #3009 as that one breaks the full-screen layout requirement.
Tested with a wide range of apps on Android 10, including WeChat and
Telegram. If @kienwt, @ericjding have capacity, would love to know if
this fix works for them also.
Note that this fix requires changes to consumers of Keyman Engine, so
sample and FV Keyboards updated accordingly.
This updates the gradle-wrappers for KMEA, KMAPro, and FV app. Gradle version kept at 5.6.4
gradle files auto-generated with:
```
./gradlew wrapper --gradle-version 5.6.4
```
(And changing shebang to `#!/bin/bash`)
* Update FV build to download nrc.str.sencoten.model.kmp
* Update FV app to install the model
* Rebuild active keyboards list using keyboard info from kmp.json
getDefaultKeyboard()
* Assert `context`is not null
setDefaultKeyboard()
* Allow null Keyboard to revert to sil_euro_latin
FV MainActivity
* Define constant for default package ID
The FV Android app has a workflow where it's possible on a fresh install for the user to set FV as a system keyboard before checking (adding) any of the FV keyboards.
This makes the keyboard list empty, and KMManager throws an exception trying to set a keyboard.
This PR adds `Keyboard.setDefaultKeyboard()` so an app can specify a fallback keyboard. If never set, KMEA uses sil_euro_latin/sil_euro_latin.
The FV app will fall back to fv_all/sil_euro_latin
Follow-on to #3300
* Update the FV Android app to use the same build script to download its default keyboard package. (fv_all.kmp)
* This means downloading fv_all.kmp is the only valid option for the build (remove option to copy/rebuild keyboards)
* Reduce the number of exports in the Bash scripts
* Also removes sil_euro_latin.kmp since the app will fallback to fv_all/sil_euro_latin (in a future PR)
On sentry.keymanc.om, we're moving the OEM FirstVoices Android app from *#keyman-apps* to the *#keyman-oem-apps* team.
This PR updates the Sentry DSN accordingly
Incorporate changes from #3040 into oem/firstvoices/common/build_keyboards.sh
I had to include sil_euro_latin.kmp because KMManager reverts to default package ID (sil_euro_latin) on KMW exceptions.
This will also need a keyboards build of fv_all.kmp (next version 12.2 should include touch keyboards)