Commit graph

71 commits

Author SHA1 Message Date
darcywong00
e582632c97 Disable text suggestions in app text field 2018-04-24 16:25:08 +07:00
darcywong00
cfdb2b6591 Hide system OSK when resuming Keyman app
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
2018-04-24 13:41:23 +07:00
darcywong00
0d2c951265 Tweak back button for WebBrowserActivity
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.
2018-04-11 21:54:04 +07:00
darcywong00
f25300644f Update Android info in-app content for 10.0 2018-03-20 16:03:59 +07:00
darcywong00
4807abfeb4 Replace some menu icons 2018-02-18 23:51:43 +07:00
darcywong00
bd36179c4b Update hdpi navigation_cancel 2018-02-18 16:22:55 +07:00
darcywong00
beb886bf40 Update drawable-hdpi 2018-02-18 15:58:35 +07:00
darcywong00
76a3242676 Update drawable-mdpi 2018-02-18 15:45:54 +07:00
darcywong00
c12e82f351 Update drawable-xxhdpi 2018-02-18 15:30:04 +07:00
darcywong00
78dbde2bdc Update drawable-xhdpi 2018-02-18 15:29:50 +07:00
Darcy Wong
b8e4617820
Merge pull request #603 from keymanapp/android-crash-reporting-samples
[Android] Add Crashlytics dependencies to Samples and Test projects
2018-02-16 12:59:42 +07:00
darcywong00
6152b5e467 Remove test button that forced crashes
Now that Crashlytics is verified to run on nightly Release builds, the test button to force crashes can be removed.
2018-02-16 11:14:12 +07:00
darcywong00
32853aa162 Add Crashlytics dependencies to Samples and Test projects
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.
2018-02-15 14:02:59 +07:00
darcywong00
028f9a4764 Cleanup unused Release dir
Originally, the kMAPro/src/Release folder was intended for the CI server to copy the google-services.json file, but that won't be where it gets placed now.
2018-02-15 07:46:24 +07:00
darcywong00
067b43cfd3 Remove Answers
Removing Answers because of the setup involved with Fabric IO. Keeping this feature to Crashlytics
2018-02-14 20:48:26 +07:00
darcywong00
9cd8eed976 Tweak Crashlytics / Firebase
Using Crashlytics for crash reporting.
Trying Firebase and Crashlytics.Answers for logging events (like km_add_keyboard) for analytics

Firebase events don't persist between app launches
2018-02-14 19:37:21 +07:00
darcywong00
84ddf0c990 Add Firebase Crashlytics for crash reporting
While legacy stable kmapro releases have analytics on the Google Play Console, Google recommends [Firebase Crashlytics](https://firebase.google.com/docs/crash/) for crash reporting.
This requires a `google-services.json` file for gradle builds. A sanitized version intended for developers/Debug variant is checked into the repo, and is associated with an appliction ID `com.tavultesoft.kmapro.debug`. The one for `com.tavultesoft.kmapro` releaeses will go on the CI servers.

Breaking change: Consuming apps of KMEA will be responsible for including the Firebase dependencies. At the moment, only kmapro has been updated.
TBD: Registering KMSamples and the Test Harness with Firebase for their own `google.services.json` file.

- Log addKeyboard as an analytic event 
- Update kmapro build.sh script to allow debug-only variant
- Add info to history.md and README.md
- Add Gradle setting so CI server can use production `google-services.json` file
- Temporarily add a menu button to force a crash. This is engineering code that will be removed once analytics in a Release build is confirmed.
2018-02-14 19:37:21 +07:00
Marc Durdin
a6bd7106c3 Use version parameter in all cloud API calls 2018-02-12 19:22:49 +07:00
darcywong00
f231f84258 Clarify comment to fileProvider path 2018-02-12 08:16:24 +07:00
darcywong00
c85e5991e6 Display welcome.htm for keyboard information
For keyboards installed via keyboard packages, use the welcome.htm if it exists for keyboard information

- Update PackageProcessorTest to include CustomHelpLink info

- Renamed Welcome.htm to welcome.htm in test_resources/**/gff_amh_7_test_json.kmp.
2018-02-12 06:54:08 +07:00
darcywong00
4d51b1a666 Address review comments
Refactor duplicate code in `useLocalKMP()`
2018-02-06 11:20:19 +07:00
darcywong00
f85ef3e3e4 Improve UX for KMP distribution
Due to Android's limited set of regex characters for intent actions, any local `.kmp*` file triggers the Keyman app. (e.g. `.kmp` is treated the same as `.kmpo`). Added Toast notifications for when the intent inadvertently triggers the Keyman app.

Also updated PackageActivity to display the package name when no `welcome.htm`  file exists.
2018-02-05 16:36:12 +07:00
darcywong00
90529e5239 Fix KMAPro/build.sh to use bash instead of sh
A Linux user reports issues building KMAPro because the script uses bash syntax instead of sh.
```
while [[ $# -gt 0 ]] ; do
```

KMEA is already using `#!/bin/bash`
2018-02-02 15:51:42 +07:00
darcywong00
913e58a60a Request storage permissions at runtime to install local KMP file
Starting with Android 6.0 Marshmallow (API 23), apps need to request permissions for "dangerous" (Storage) access at runtime. Previous versions of Android granted permissions at installation. Normal permissions declared in the manifest are granted automatically.

This doesn't affect Keyman running on older versions of Android

[Reference](https://developer.android.com/training/permissions/requesting.html)

[Runtime Permissions Sample](https://github.com/googlesamples/android-RuntimePermissions) provided by Google
2018-02-02 08:28:15 +07:00
darcywong00
686bb50bc0 Stop warnings being reported during CI builds
-Also updated link to logo2 and copyright date in root readme
2018-02-01 10:35:48 +07:00
darcywong00
9211f66c36 Cleanup to address review comments 2018-01-31 10:57:33 +07:00
darcywong00
09e0f4aa98 Merge branch 'android-peer-distribution'
Conflicts:
	android/KMAPro/kMAPro/src/main/java/com/tavultesoft/kmapro/MainActivity.java
2018-01-29 18:18:17 +07:00
darcywong00
61bf0410a8 Deprecate non-direct links for ad-hoc keyboards 2018-01-29 16:25:10 +07:00
darcywong00
9bc7b43493 Handle kmp files passed from Android DownloadManager
Intents from the DownloadManager use paths like `/document/number/` so additional code needed to determine the kmp filename.

protocols also separated in switch statement for maintainability.
2018-01-28 23:04:14 +07:00
darcywong00
e4c88ed09b Try to refine intent filters for file:// and content:// 2018-01-28 23:01:40 +07:00
darcywong00
a7fa26e472 Add Toast notification when File access to KMP denied 2018-01-28 23:01:12 +07:00
darcywong00
0afd5796ba Improve UI and check kmp for touch keyboards
- Changed PackageProcessor to skip processing keyboard ID's if JS not found
- Fix a PackageProcessorTest to use the correct package ID
- Added a dialog for when Packge install fails
-
2018-01-27 20:20:00 +07:00
darcywong00
0e220c6797 Begin addressing review issues
- clean up stray code from earlier development
- give some clear notifications to user when package install fails
2018-01-26 16:07:53 +07:00
darcywong00
35c43da0f3 Associate kmp with keyman app
Add intent-filter and storage permissions so Keyman app will process keyman://, http://, https:// protocols, along with local KMP file. Also add external storage permission
2018-01-24 06:12:03 +07:00
darcywong00
40da15f44d Change check for welcome.htm to be case-insensitive 2018-01-23 13:16:29 +07:00
darcywong00
079376d9a6 Consolidate PackageActivity cleanup
Also removed unncessary storage permission
2018-01-23 09:13:08 +07:00
darcywong00
7e12f1a51c Force PackageActivity installs regardless of currently installed ver
Remove current package version so PackageActivity will always install the package.
2018-01-22 21:56:21 +07:00
darcywong00
67929b7c5f Clean up code 2018-01-22 19:10:37 +07:00
darcywong00
bac5acbe3f Use PackageActivity to install keyboard packages
Update MainActivity to pass the downloaded kmp file to PackageActivity.

PackageActivity then unzips and parses the package version, and displays the Welcome page with the package version. If Welcome.htm is not in the package, just display the package ID.

Lastly, copied package processing code from KMKeyboardDownloaderActivity to PackageActivity.

TODO: cleanup KMKeyboardDownloaderActivity
2018-01-22 16:20:35 +07:00
darcywong00
a57de55348 Display Welcome.htm 2018-01-21 21:55:40 +07:00
darcywong00
5a795edb3f Download kmp in background
Use IntentService to download KMP in the background
2018-01-21 16:22:27 +07:00
darcywong00
0b5646c722 Handle font paths and change PackageActivity button style 2018-01-20 22:12:59 +07:00
darcywong00
9c2b44fff2 Tweak more PackageActivity layout 2018-01-19 13:28:02 +07:00
darcywong00
71101af915 Add more styling to package activity 2018-01-19 06:35:36 +07:00
darcywong00
2af337de62 Break out package processing to separate activity
This is a placeholder for kmp
2018-01-18 17:03:42 +07:00
Joshua A. Horton
8c223a10ed Basic KMP integration success - it still has some glitches, though. 2018-01-18 17:00:59 +07:00
darcywong00
3a0134a758 Handle undefined packageID as "cloud"
Per design discussions, use "cloud" as the package ID when it's undefined. Those keyboards get stored physically at `/cloud/`.

Later on, keyboards installed via kmp will be installed at `/packages/packageID/`

Also update version checker depending on package ID:
1. cloud:  use the version string within the filename
2. all others: parse kmp.json for the keyboard version
2018-01-17 16:08:46 +07:00
darcywong00
4787245808 Round 1 of adding feature for ad-hoc keyboard distribution via kmp 2018-01-17 10:58:25 +07:00
darcywong00
82f78f005c Document why removeKeyboardDownloadEventListeners are removed
Calls to `removeKEyboardDownloadEventListener()` are removed to ensure `onKeyboardDownloadFinished()` gets called
2017-12-15 10:24:40 +07:00
darcywong00
27629a578b Tweaks for keyboard update
Include language name and keyboard name when updating keyboard version. Dismiss the updateProgress dialog when keyboard has finished downloading.

Also fixed a typo in comment
2017-12-14 13:38:15 +07:00