From 9fce3b5a75849c1fd92bb9fe9cc16972fa24f314 Mon Sep 17 00:00:00 2001 From: Marc Durdin Date: Mon, 14 Oct 2019 11:33:19 +0700 Subject: [PATCH 1/3] [Android] Fixes #2202. If analytics is disabled, the app may crash. --- README.md | 20 ++++++++++--------- android/.gitignore | 5 ++++- .../java/com/tavultesoft/kmea/KMKeyboard.java | 10 ++++++---- 3 files changed, 21 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 7c66d5413b..d960d43f67 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,13 @@ -![Keyman](https://keyman.com/cdn/dev/img/logo2.png) +![Keyman](https://keyman.com/cdn/dev/img/logo2.png) Open Source +[Keyman](https://keyman.com) makes it possible for you to type in over 1,000 languages on Windows, iPhone, iPad, Android tablets and phones, and even instantly in your web browser. + [comment]: # (CI Build statuses) +Development Status on [status.keyman.com](https://status.keyman.com) + | Platform | Master | Nightly | Beta | Stable | | -------- | :----: | :-----: | :--: | :----: | | Windows | ![Build Status](https://build.palaso.org/app/rest/builds/buildType:(id:Keyman_Build)/statusIcon) | ![Build Status](https://build.palaso.org/app/rest/builds/buildType:(id:KeymanDesktop_Nightly)/statusIcon) | ![Build Status](https://build.palaso.org/app/rest/builds/buildType:(id:KeymanDesktop_Beta)/statusIcon)| ![Build Status](https://build.palaso.org/app/rest/builds/buildType:(id:KeymanDesktop_Stable),branch:(default:false)/statusIcon) | @@ -13,19 +17,17 @@ Open Source | iOS | ![Build Status](https://build.palaso.org/app/rest/builds/buildType:(id:Keyman_iOS_Master)/statusIcon) | ![Build Status](https://build.palaso.org/app/rest/builds/buildType:(id:Keyman_iOS_Nightly)/statusIcon) | ![Build Status](https://build.palaso.org/app/rest/builds/buildType:(id:Keyman_iOS_Beta)/statusIcon) | ![Build Status](https://build.palaso.org/app/rest/builds/buildType:(id:Keyman_iOS_Stable),branch:(default:false)/statusIcon) | | Linux | ![Build Status](https://build.palaso.org/app/rest/builds/buildType:(id:KeymanLinux_Master)/statusIcon) | ![Build Status](https://build.palaso.org/app/rest/builds/buildType:(id:KeymanLinux_Nightly)/statusIcon) | ![Build Status](https://build.palaso.org/app/rest/builds/buildType:(id:KeymanLinux_Beta)/statusIcon) | ![Build Status](https://build.palaso.org/app/rest/builds/buildType:(id:KeymanLinux_Stable),branch:(default:false)/statusIcon) | -[Keyman](https://keyman.com) makes it possible for you to type in over 1,000 languages on Windows, iPhone, iPad, Android tablets and phones, and even instantly in your web browser. - # Getting Started ## Desktop Platforms ## -[Windows](./windows/src/README.md) -[macOS](./mac/README.md) -[Linux](./linux/README.md) +* [Windows](./windows/src/README.md) +* [macOS](./mac/README.md) +* [Linux](./linux/README.md) ## Web & Mobile Platforms ## -[Web](./web/README.md) -[Android](./android/README.md) -[iOS](./ios/README.md) +* [Web](./web/README.md) +* [Android](./android/README.md) +* [iOS](./ios/README.md) # Release Types diff --git a/android/.gitignore b/android/.gitignore index d744a84f2e..f6777a8383 100644 --- a/android/.gitignore +++ b/android/.gitignore @@ -31,4 +31,7 @@ gradle_models.ser KMEA/app/src/main/assets/ KMAPro/assets/keyman.js - +# Eclipse files +.project +.settings/ +.classpath \ No newline at end of file diff --git a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KMKeyboard.java b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KMKeyboard.java index a5a614a34b..4096de0a12 100644 --- a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KMKeyboard.java +++ b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KMKeyboard.java @@ -616,7 +616,9 @@ final class KMKeyboard extends WebView { params.putString("keyboardName", this.keyboardName); params.putString("keyboardVersion", this.keyboardVersion); - mFirebaseAnalytics.logEvent("kmw_console_error", params); + if(mFirebaseAnalytics != null) { + mFirebaseAnalytics.logEvent("kmw_console_error", params); + } } // Extract Unicode numbers (\\uxxxx) from a layer to character string. @@ -1300,12 +1302,12 @@ final class KMKeyboard extends WebView { popupKeysList = null; } break; - } + } } */ - /* - * Override onDraw method to render missing characters for Android API 17 & 18 font rendering bug. + /* + * Override onDraw method to render missing characters for Android API 17 & 18 font rendering bug. private Bitmap keyboardImage; private Canvas keyboardCanvas; private Paint paint; From d5eee457a29bebe6e2bf3dcb8e4f0343bcc3d135 Mon Sep 17 00:00:00 2001 From: Marc Durdin Date: Mon, 14 Oct 2019 13:15:31 +0700 Subject: [PATCH 2/3] [Android] history.md --- android/history.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/android/history.md b/android/history.md index 024ad9e9f5..580a5c1c0c 100644 --- a/android/history.md +++ b/android/history.md @@ -3,6 +3,10 @@ ## 13.0 alpha * Start version 13.0 +## 2019-10-14 12.0.4204 stable +* Bug Fix: + * FirstVoices app may crash if analytics is not present (#2204) + ## 2019-10-10 12.0.4201 stable * Bug Fix: * Use lexical model package version for lexical model version (#2195) From 8700a2e38d1cf933dfafd46bed4af1dd28f2f903 Mon Sep 17 00:00:00 2001 From: Marc Durdin Date: Mon, 14 Oct 2019 13:18:49 +0700 Subject: [PATCH 3/3] [Android] One more check in another file for analytics --- .../app/src/main/java/com/tavultesoft/kmea/KMManager.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KMManager.java b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KMManager.java index 0814fcbcd4..702d5db683 100644 --- a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KMManager.java +++ b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KMManager.java @@ -323,7 +323,7 @@ public final class KMManager { if (parent != null) parent.removeView(SystemKeyboard); keyboardLayout.addView(SystemKeyboard); - + mainLayout.addView(keyboardLayout); //mainLayout.addView(overlayLayout); return mainLayout; @@ -812,7 +812,10 @@ public final class KMManager { params.putString("keyboardID", keyboardInfo.get(KMManager.KMKey_KeyboardID)); params.putString("keyboardName", keyboardInfo.get(KMManager.KMKey_KeyboardName)); params.putString("keyboardVersion", keyboardInfo.get(KMManager.KMKey_KeyboardVersion)); - mFirebaseAnalytics.logEvent("km_add_keyboard", params); + + if(mFirebaseAnalytics != null) { + mFirebaseAnalytics.logEvent("km_add_keyboard", params); + } return KeyboardPickerActivity.addKeyboard(context, keyboardInfo); }