Fixes up scripts (except under /linux) to use `#!/usr/bin/env bash`
instead of `#!/bin/bash` or `#!/bin/sh` so that we don't end up with
the ancient version of bash supplied with macOS.
This became urgent with this PR, because of bash-4.xisms in
build-utils.sh, for example on line 572:
```
if [[ -v _builder_params[$e] ]]; then
```
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#2989
This updates the minimum supported Android SDK to 21 (Lollipop). This applies to KMEA, KMAPro, Sample Apps, KeyboardHarness, and FV Android app.
Tests/keyCode doesn't use KMEA so no change there.
On CI, the `android/` folder was getting locked because KeyboardHarness/build.sh would rebuild KMEA without passing `-no-daemon`.
This PR updates KeyboardHarness/build.sh to follow KMAPro and Sample apps build.sh scripts and not build KMEA.
KMEA/build.sh also updated to directly copy the artifact to the KeyboardHarness project
#2640 fixed the FirstVoices OEM app from crashing on Android 5.0 devices.
This applies the same fix (updating to `androidx.appcompat:appcompat:1.2.0-alpha02`) for all the other Android apps.
* Also fix up history.md entries
Android Studio is warning a call (from Firebase) will be deprecated end of 2019. This updates the versions of
* Frebase
* Gradle from 4.10.1 to 5.1.1
Also stubs a missing keyboard event handler in some of the sample/test projects.
Fixes#750
Currently, Keyman for Android targets SDK version 25 (Nougat).
This PR targets the latest Android API and updates all the Gradle dependencies to the latest. This will remove some lint Obsolete warnings.
Sample and Test projects needed to add
```
implementation 'com.android.support:support-v4:27.1.1'
```
to ensure all dependencies use the same version.
Consumers of KMEA need to include Firebase and Crashlytics dependencies, but don't need to run the Google services. This simplifies these projects of not neeeding google-services.json.
Also added `-no-daemon` and `-debug` options to Samples and Test `build.sh` scripts so they can be run on CI servers.