From 8e844149e1d4f5e576e5b7e4f112751aa3839a3d Mon Sep 17 00:00:00 2001 From: darcywong00 Date: Thu, 1 Mar 2018 14:41:02 +0700 Subject: [PATCH] Fix path of special OSK font used for longpress of special keys --- .../main/java/com/tavultesoft/kmea/KMKeyboard.java | 12 +++++++++++- .../main/java/com/tavultesoft/kmea/KMManager.java | 4 ++-- android/history.md | 1 + 3 files changed, 14 insertions(+), 3 deletions(-) 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 21a3cfbe29..b9501cd761 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 @@ -242,6 +242,16 @@ final class KMKeyboard extends WebView { return keyboardRoot + oskFont; } + /** + * Return the full path to the special OSK font, + * which is with all the keyboard assets at the root app_data folder + * @param String filename + * @return String + */ + public String specialOSKFontFilename(String filename) { + return context.getDir("data", Context.MODE_PRIVATE).toString() + File.separator + filename; + } + public boolean setKeyboard(String packageID, String keyboardID, String languageID) { if (packageID == null || keyboardID == null || languageID == null) return false; @@ -635,7 +645,7 @@ final class KMKeyboard extends WebView { button.setText(title); if (!specialOskFont.isEmpty()) { - button.setTypeface(KMManager.getFontTypeface(context, specialOskFont)); + button.setTypeface(KMManager.getFontTypeface(context, specialOSKFontFilename(specialOskFont))); } else { Typeface font = KMManager.getFontTypeface(context, (oskFont != null) ? oskFontFilename() : textFontFilename()); if (font != null) { 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 58be5706c1..4cceec811d 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 @@ -1388,7 +1388,7 @@ public final class KMManager { end = url.length(); InAppKeyboard.specialOskFont = ""; } else { - InAppKeyboard.specialOskFont = "keymanweb-osk.ttf"; + InAppKeyboard.specialOskFont = KMFilename_Osk_Ttf_Font; } String keys = url.substring(start, end); @@ -1562,7 +1562,7 @@ public final class KMManager { end = url.length(); SystemKeyboard.specialOskFont = ""; } else { - SystemKeyboard.specialOskFont = "keymanweb-osk.ttf"; + SystemKeyboard.specialOskFont = KMFilename_Osk_Ttf_Font; } String keys = url.substring(start, end); diff --git a/android/history.md b/android/history.md index 12ac442ba1..1dc4ec3e29 100644 --- a/android/history.md +++ b/android/history.md @@ -12,6 +12,7 @@ * Add feature to install ad-hoc keyboards via .kmp packages * Add [Firebase Crashlytics](https://firebase.google.com/docs/crashlytics/) for generating crash reports * Add Material Design [icons](https://material.io/icons/) +* Fix path to special OSK font for longpress of special keys (#239) ## 2017-08-10 2.8.300 stable * No changes, just published latest beta as stable