On Windows the tests failed because the AppData directory doesn't yet
exist under an allowed app internal storage path. This change creates
the directory first when running tests.
Also fix `assertEquals` in that test file - the parameter ordering is
`expected, actual` but we had it the other way round which gives a
confusing message if the test fails.
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
This adds a Sentry log if a user is still using legacy cloud keyboards.
We do this so that we will learn if there are still users out there
or if we can remove the code that deals with those keyboards.
Cherry-pick-of: #16237
Test-bot: skip
Cherry-pick-of: #13983
To facilitate code investigation and issue repro attempts, we should log the
engine's current keyboard, language code, and model when reporting errors.
Fixes: KEYMAN-ANDROID-71V
(As this adds Sentry logging, I needed a reliable error with inspectable logs
for development.)
Test-bot: skip
# Keyman Conventional Commit suggestions:
#
# - Link to a Sentry issue with git trailer:
# Fixes: _MODULE_-_ID_
# - Give credit to co-authors:
# Co-authored-by: _Name_ <_email_>
# - Use imperative, present tense ('attach' not 'attaches', 'attached' etc)
# - Don't include a period at the end of the title
# - Always include a blank line before trailers
# - More: https://github.com/keymanapp/keyman/wiki/Pull-Request-and-Commit-workflow-notes
User requested a taller default keyboard height for a Pixel 8a device in landscape (430dpi corresponding to xhdpi). The next tier xxhdpi is for 480+ dpi.
Reference
https://developer.android.com/guide/topics/resources/providing-resources.html#table2
Based on `values/sw600dp-land/dimens.xml`, create `values-land-xhdpi/dimens.xml`
This allows a taller landscape keyboard height.
Refactor mayPredictOverride so the banner toggle is handled independently for `KeyboardType.KEYBOARD_TYPE_INAPP` and `KeyboardType.KEYBOARD_TYPE_SYSTEM` keyboards.
Pre-existing override API calls are now for `KeyboardType.KEYBOARD_TYPE_SYSTEM`