From e3af12daf7e598a6f673cd47d4e5f77cb2d0d39e Mon Sep 17 00:00:00 2001 From: Darcy Wong Date: Thu, 22 Oct 2020 13:42:23 +0700 Subject: [PATCH] fix(android/engine): Only get keyboard version for cloud/ --- .../java/com/tavultesoft/kmea/KMKeyboard.java | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 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 cc46ea0437..5286b813cd 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 @@ -466,8 +466,13 @@ final class KMKeyboard extends WebView { } boolean retVal = true; - String keyboardVersion = KMManager.getLatestKeyboardFileVersion(getContext(), packageID, keyboardID); - if (!KMManager.shouldAllowSetKeyboard() || keyboardVersion == null) { + // keyboardVersion only needed for legacy cloud/ keyboards. + // Otherwise, no need for the JSON overhead of determining the keyboard version from kmp.json + String keyboardVersion = packageID.equals(KMManager.KMDefault_UndefinedPackageID) ? + KMManager.getLatestKeyboardFileVersion(getContext(), packageID, keyboardID) : null; + + if (!KMManager.shouldAllowSetKeyboard() || + (packageID.equals(KMManager.KMDefault_UndefinedPackageID) && keyboardVersion == null)) { sendError(packageID, keyboardID, languageID); Keyboard kbInfo = KeyboardController.getInstance().getKeyboardInfo(0); packageID = kbInfo.getPackageID(); @@ -478,13 +483,13 @@ final class KMKeyboard extends WebView { kFont = kbInfo.getFont(); kOskFont = kbInfo.getOSKFont(); retVal = false; + + // Keyboard changed, so determine version again + keyboardVersion = packageID.equals(KMManager.KMDefault_UndefinedPackageID) ? + KMManager.getLatestKeyboardFileVersion(getContext(), packageID, keyboardID) : null; } String kbKey = String.format("%s_%s", languageID, keyboardID); - //if (kbKey.equals(currentKeyboard)) - // return false; - - keyboardVersion = KMManager.getLatestKeyboardFileVersion(getContext(), packageID, keyboardID); setKeyboardRoot(packageID); String keyboardPath = makeKeyboardPath(packageID, keyboardID, keyboardVersion);