Fixes#913
In #848, we used [webView.pauseTimers()](https://developer.android.com/reference/android/webkit/WebView#pauseTimers()) to disable JavaScript for transitioning between in-app and system keyboards. Unfortunately, `pauseTimers()` globally affects all the WebViews, breaking the globe button in system keyboards.
(This worked going from the Keyman app to in-app browser because the browser "resumed" its keyboard)
Solution is removing calls to `pauseTimers()`.
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.
Updated `KMManager` to handle `pauseTimers()` and `resumeTimers()` for in-app and system keyboards. This fixes the globe button when transitioning from the WebBrowser activity back to the Main activity.
Also fixed KMKeyboard to return empty string when `txtFont` is empty (and not return a root path)
Fixes#819
* If package version undefined, use "1.0"
* Keyman Developer won't allow undefined package name, but just in case return package ID from the filename
* Check for null before String.toLowerCase()
* Added package processor test for undefined version
This fixes#304
Reference: https://jira.appcelerator.org/browse/TIMOB-16358
Older versions of WebView have an issue with transparent/gradient backgrounds. The symptom was the OSK slowly loading keys individually, and having the OSK be missing keys.
A workaround fix is styling the body `background-color` alpha to 1.0.
## Testing configuration
* Android API level 22
* Nexus One emulator
* French-French keyboard
This handles all transitions where an external app/dialog using the system OSK returns to the Keyman app such as resuming:
* from WebBrowserActivity
* from Android Oreo's "Add to dictionary" dialog
This is a follow-on to #220 that fixed 2 OSK that were appearing when exiting WebBrowserActivity.
* If navigation is possible, backButton navigates back.
* Hide the system OSK so returning to Keyman app won't have 2 keyboards visible
Also ignore build_file_checksums file that Android Gradle 3.1 generates.
The `.` character isn't allowed in parameter names passed to Firebase analytics. This was flagging Firebase errors when trying to view the events in the Firebase console.
Replacing `cm.` with `cm_` works. (cm is just the naming convention I used for JS ConsoleMessage properties)