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 ab3991e854..88fdfe45d8 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 @@ -656,25 +656,27 @@ public final class KMManager { String languageID = lexicalModelInfo.get(KMKey_LanguageID); String path = "file://" + getLexicalModelsDir() + pkgID + File.separator + modelID + ".model.js"; - JSONObject m = new JSONObject(); - JSONArray languageArray = new JSONArray(); + JSONObject modelObj = new JSONObject(); + JSONArray languageJSONArray = new JSONArray(); try { - m.put("id", modelID); - languageArray.put(languageID); - m.put("languages", languageArray); - m.put("path", path); + modelObj.put("id", modelID); + languageJSONArray.put(languageID); + modelObj.put("languages", languageJSONArray); + modelObj.put("path", path); } catch (JSONException e) { } - // Escape quotes for javascript call - String model = String.valueOf(m).replaceAll("\"", "\\\\\""); + // Use single quotes in JSONobject for javascript call + String model = String.valueOf(modelObj); + model = model.replaceAll("\"", "'"); + //model = "{'id': 'example.en.custom', 'languages': ['en'], 'path': 'file:///data/user/0/com.tavultesoft.kmapro.debug/app_data/models/example.en.custom.model/example.en.custom.model.js'}"; if (InAppKeyboard != null && InAppKeyboardLoaded && !InAppKeyboardShouldIgnoreTextChange) { - InAppKeyboard.loadUrl(String.format("javascript:registerModel('%s')", model)); + InAppKeyboard.loadUrl(String.format("javascript:registerModel(%s)", model)); } if (SystemKeyboard != null && SystemKeyboardLoaded && !SystemKeyboardShouldIgnoreTextChange) { - SystemKeyboard.loadUrl(String.format("javascript:registerModel('%s')", model)); + SystemKeyboard.loadUrl(String.format("javascript:registerModel(%s)", model)); } return true; } diff --git a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KeyboardPickerActivity.java b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KeyboardPickerActivity.java index c2647accf1..389e313258 100644 --- a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KeyboardPickerActivity.java +++ b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/KeyboardPickerActivity.java @@ -134,6 +134,7 @@ public final class KeyboardPickerActivity extends AppCompatActivity implements O } } + lexicalModelsList = getLexicalModelsList(context); if (lexicalModelsList == null) { lexicalModelsList = new ArrayList>(); @@ -623,11 +624,13 @@ public final class KeyboardPickerActivity extends AppCompatActivity implements O } protected static HashMap getAssociatedLexicalModel(String langId) { - int length = lexicalModelsList.size(); - for( int i=0; i < length; i++) { - HashMap lmInfo = lexicalModelsList.get(i); - if (langId.equalsIgnoreCase(lmInfo.get(KMManager.KMKey_LanguageID))) { - return lmInfo; + if (lexicalModelsList != null) { + int length = lexicalModelsList.size(); + for (int i = 0; i < length; i++) { + HashMap lmInfo = lexicalModelsList.get(i); + if (langId.equalsIgnoreCase(lmInfo.get(KMManager.KMKey_LanguageID))) { + return lmInfo; + } } }