diff --git a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/Keyboard.java b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/Keyboard.java index ce9284a2f5..a9f3850e2b 100644 --- a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/Keyboard.java +++ b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/Keyboard.java @@ -25,26 +25,24 @@ public class Keyboard extends LanguageResource implements Serializable { private String oskFont; // JSON keys - public static String KB_NEW_KEYBOARD_KEY = "isNewKeyboard"; - public static String KB_FONT_KEY = "font"; - public static String KB_OSK_FONT_KEY = "oskFont"; + private static String KB_NEW_KEYBOARD_KEY = "isNewKeyboard"; + private static String KB_FONT_KEY = "font"; + private static String KB_OSK_FONT_KEY = "oskFont"; /** * Constructor using JSON Objects from installed keyboards list * @param installedObj */ public Keyboard(JSONObject installedObj) { - super(installedObj); this.fromJSON(installedObj); } /** - * Constructor usong JSON Objects from keyboard cloud catalog + * Constructor using JSON Objects from keyboard cloud catalog * @param languageJSON * @param keyboardJSON */ public Keyboard(JSONObject languageJSON, JSONObject keyboardJSON) { - super(languageJSON, keyboardJSON); try { this.packageID = keyboardJSON.optString(KMManager.KMKey_PackageID, KMManager.KMDefault_UndefinedPackageID); @@ -76,10 +74,9 @@ public class Keyboard extends LanguageResource implements Serializable { String languageID, String languageName, String version, String helpLink, boolean isNewKeyboard, String font, String oskFont) { - super(packageID, keyboardID, keyboardName, languageID, languageName, version); - - this.helpLink = (FileUtils.isWelcomeFile(helpLink)) ? helpLink : - String.format(HELP_URL_FORMATSTR, this.resourceID, this.version); + super(packageID, keyboardID, keyboardName, languageID, languageName, version, + (FileUtils.isWelcomeFile(helpLink)) ? helpLink : + String.format(HELP_URL_FORMATSTR, keyboardID, version)); this.isNewKeyboard = isNewKeyboard; this.font = (font != null) ? font : ""; diff --git a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/LanguageResource.java b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/LanguageResource.java index b0f0646860..841ad93340 100644 --- a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/LanguageResource.java +++ b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/LanguageResource.java @@ -23,13 +23,13 @@ public abstract class LanguageResource implements Serializable { protected String helpLink; // JSON keys - public static String LR_PACKAGE_ID_KEY = "packageID"; - public static String LR_RESOURCE_ID_KEY = "resourceID"; - public static String LR_RESOURCE_NAME_KEY = "resourceName"; - public static String LR_LANGUAGE_ID_KEY = "languageID"; - public static String LR_LANGUAGE_NAME_KEY = "languageName"; - public static String LR_VERSION_KEY = "version"; - public static String LR_HELP_LINK_KEY = "helpLink"; + private static String LR_PACKAGE_ID_KEY = "packageID"; + private static String LR_RESOURCE_ID_KEY = "resourceID"; + private static String LR_RESOURCE_NAME_KEY = "resourceName"; + private static String LR_LANGUAGE_ID_KEY = "languageID"; + private static String LR_LANGUAGE_NAME_KEY = "languageName"; + private static String LR_VERSION_KEY = "version"; + private static String LR_HELP_LINK_KEY = "helpLink"; private static final String TAG = "LanguageResource"; @@ -64,6 +64,10 @@ public abstract class LanguageResource implements Serializable { public abstract Bundle buildDownloadBundle(); + public LanguageResource() { + // Noop + } + /** * Constructor using JSON Objects from installed language resource list * @param installedObj @@ -72,26 +76,19 @@ public abstract class LanguageResource implements Serializable { this.fromJSON(installedObj); } - public LanguageResource(JSONObject languageJSON, JSONObject keyboardJSON) { - // Noop - needed for Keyboard() - } - - public LanguageResource(JSONObject lexicalModelJSON, boolean fromCloud) { - // Noop - needed for LexicalModel() - } - /** * Constructor using properties - * For now, helpLink not included because it's only used by Keyboard * @param packageID * @param resourceID * @param resourceName * @param languageID * @param languageName * @param version + * @param helpLink */ public LanguageResource(String packageID, String resourceID, String resourceName, - String languageID, String languageName, String version) { + String languageID, String languageName, String version, + String helpLink) { this.packageID = (packageID != null) ? packageID : KMManager.KMDefault_UndefinedPackageID; this.resourceID = resourceID; this.resourceName = resourceName; @@ -99,6 +96,7 @@ public abstract class LanguageResource implements Serializable { // If language name not provided, fallback to re-use language ID this.languageName = (languageName != null && !languageName.isEmpty()) ? languageName : this.languageID; this.version = (version != null) ? version : "1.0"; + this.helpLink = helpLink; } protected void fromJSON(JSONObject installedObj) { diff --git a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/LexicalModel.java b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/LexicalModel.java index 691dd06b17..192b9d2d28 100644 --- a/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/LexicalModel.java +++ b/android/KMEA/app/src/main/java/com/tavultesoft/kmea/data/LexicalModel.java @@ -23,14 +23,13 @@ public class LexicalModel extends LanguageResource implements Serializable { private String modelURL; // JSON key - public static String LM_MODEL_URL_KEY = "modelURL"; + private static String LM_MODEL_URL_KEY = "modelURL"; /** * Constructor using JSON Object from installed lexical models list * @param installedObj */ public LexicalModel(JSONObject installedObj) { - super(installedObj); this.fromJSON(installedObj); } @@ -40,7 +39,6 @@ public class LexicalModel extends LanguageResource implements Serializable { * @param fromCloud boolean - only really used to make a unique prototype */ public LexicalModel(JSONObject lexicalModelJSON, boolean fromCloud) { - super(lexicalModelJSON, fromCloud); try { this.modelURL = lexicalModelJSON.optString("packageFilename", ""); @@ -87,9 +85,10 @@ public class LexicalModel extends LanguageResource implements Serializable { String languageID, String languageName, String version, String helpLink, String modelURL) { - super(packageID, lexicalModelID, lexicalModelName, languageID, languageName, version); + // TODO: handle help links + super(packageID, lexicalModelID, lexicalModelName, languageID, languageName, + version, ""); - this.helpLink = ""; // TODO: Handle help links this.modelURL = modelURL; } @@ -131,6 +130,7 @@ public class LexicalModel extends LanguageResource implements Serializable { } protected void fromJSON(JSONObject installedObj) { + super.fromJSON(installedObj); try { this.modelURL = installedObj.getString(LM_MODEL_URL_KEY); } catch (JSONException e) {