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
Relates to #5230, #5219.
[Draft]
Adds a silent parameter to the `downloadKMP` function and makes the
install silent for referred keyboards.
However, this is incomplete:
1. We need to be able to control silent levels:
* Completely silent
* Only welcome
* Full install
2. When silentInstall is true, currently welcome is still shown, but the
paging controls are not configured correctly and a blank screen is
shown after install.
Resolves#5219.
Uses the Google Play Install Referrer API to automatically discover the
keyboard to install together with Keyman; this keyboard is passed in a
`referrer` parameter to the Play Store page for the Keyman app from the
Keyman website.
To comply with upcoming Play Store requirement, this updates targetSDKVersion to 30.
* Also sets appropriate webView permissions to access local file (except for WebBrowserActivity, the in-app browser).
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.