From 9a866b8714daa4363c41c3f82905d57c99266d07 Mon Sep 17 00:00:00 2001 From: Randy Boring Date: Wed, 20 Feb 2019 16:44:51 -0600 Subject: [PATCH 1/8] break after adding one keyboard comment added to a possibly suspicious parameter --- ios/engine/KMEI/KeymanEngine/Classes/Manager.swift | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift b/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift index 9f7ba5d85b..0c01e5bbfa 100644 --- a/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift +++ b/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift @@ -390,7 +390,7 @@ public class Manager: NSObject, HTTPDownloadDelegate, UIGestureRecognizerDelegat languageID: languageId, languageName: languageName, version: version, - isRTL: false, + isRTL: false, // rrb: how do we know this? possible source of losing RTL flag? font: displayFont, oskFont: oskFont, isCustom: false)) @@ -434,6 +434,7 @@ public class Manager: NSObject, HTTPDownloadDelegate, UIGestureRecognizerDelegat throw KMPError.copyFiles } Manager.shared.addKeyboard(keyboard) + break } } } From 9db725ce9c07ca066804a631f1bb6b56c7fa6e3d Mon Sep 17 00:00:00 2001 From: Randy Boring Date: Wed, 20 Feb 2019 16:44:51 -0600 Subject: [PATCH 2/8] break after adding one keyboard comment added to a possibly suspicious parameter --- ios/engine/KMEI/KeymanEngine/Classes/Manager.swift | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift b/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift index 9f7ba5d85b..0c01e5bbfa 100644 --- a/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift +++ b/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift @@ -390,7 +390,7 @@ public class Manager: NSObject, HTTPDownloadDelegate, UIGestureRecognizerDelegat languageID: languageId, languageName: languageName, version: version, - isRTL: false, + isRTL: false, // rrb: how do we know this? possible source of losing RTL flag? font: displayFont, oskFont: oskFont, isCustom: false)) @@ -434,6 +434,7 @@ public class Manager: NSObject, HTTPDownloadDelegate, UIGestureRecognizerDelegat throw KMPError.copyFiles } Manager.shared.addKeyboard(keyboard) + break } } } From 0f58ce8d61d8e0706561fe82136209095afb9b47 Mon Sep 17 00:00:00 2001 From: Randy Boring Date: Wed, 20 Feb 2019 17:06:26 -0600 Subject: [PATCH 3/8] process all the keyboard files so all the languages get added for later installation but only installs for the first language --- ios/engine/KMEI/KeymanEngine/Classes/Manager.swift | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift b/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift index 0c01e5bbfa..4beccb1b7e 100644 --- a/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift +++ b/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift @@ -405,6 +405,7 @@ public class Manager: NSObject, HTTPDownloadDelegate, UIGestureRecognizerDelegat throw KMPError.fileSystem } + var haveInstalledOne = false for keyboard in installableKeyboards { let storedPath = Storage.active.keyboardURL(for: keyboard) @@ -433,8 +434,10 @@ public class Manager: NSObject, HTTPDownloadDelegate, UIGestureRecognizerDelegat log.error("Error saving the download: \(error)") throw KMPError.copyFiles } - Manager.shared.addKeyboard(keyboard) - break + if !haveInstalledOne { + Manager.shared.addKeyboard(keyboard) + haveInstalledOne = true + } } } } From 18b749caa6b5b2ec4ad3c1491627b7ef8a88d791 Mon Sep 17 00:00:00 2001 From: Randy Boring Date: Tue, 28 May 2019 14:40:29 -0500 Subject: [PATCH 4/8] break after installing first langage get rtl property but default to false --- ios/engine/KMEI/KeymanEngine/Classes/Manager.swift | 6 ++++-- .../KMEI/KeymanEngine/Classes/Model/KMPKeyboard.swift | 7 +++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift b/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift index 4beccb1b7e..223f755b89 100644 --- a/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift +++ b/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift @@ -362,7 +362,9 @@ public class Manager: NSObject, HTTPDownloadDelegate, UIGestureRecognizerDelegat let name = k["name"] as! String let keyboardID = k["id"] as! String let version = k["version"] as! String - + //true if the keyboard targets a right-to-left script. false if absent. + let isrtl: Bool = k["rtl"] as? Bool ?? false + var oskFont: Font? let osk = k["oskFont"] as? String if let _ = osk { @@ -390,7 +392,7 @@ public class Manager: NSObject, HTTPDownloadDelegate, UIGestureRecognizerDelegat languageID: languageId, languageName: languageName, version: version, - isRTL: false, // rrb: how do we know this? possible source of losing RTL flag? + isRTL: isrtl, font: displayFont, oskFont: oskFont, isCustom: false)) diff --git a/ios/engine/KMEI/KeymanEngine/Classes/Model/KMPKeyboard.swift b/ios/engine/KMEI/KeymanEngine/Classes/Model/KMPKeyboard.swift index 87a388c1f4..5d7b078b6b 100644 --- a/ios/engine/KMEI/KeymanEngine/Classes/Model/KMPKeyboard.swift +++ b/ios/engine/KMEI/KeymanEngine/Classes/Model/KMPKeyboard.swift @@ -67,13 +67,16 @@ public class KMPKeyboard if let languageName = languageJson["name"], let languageId = languageJson["id"] { self.languages.append(KMPLanguage(name: languageName, languageId: languageId)) + break } } } self.osk = json["oskFont"] as? String self.font = json["displayFont"] as? String - + //true if the keyboard targets a right-to-left script. false if absent. + let isrtl: Bool = json["rtl"] as? Bool ?? false + if(self.keyboardId != nil && self.name != nil) { var installableKeyboards : [InstallableKeyboard] = [] @@ -83,7 +86,7 @@ public class KMPKeyboard languageID: language.languageId, languageName: language.name, version: version, - isRTL: false, + isRTL: isrtl, font: displayFont, oskFont: oskFont, isCustom: true) //update this based on adhoc vs api From 1e3976f6a90d7e93240cb38aa7bb49f3f5a8890b Mon Sep 17 00:00:00 2001 From: Randy Boring Date: Wed, 20 Feb 2019 16:44:51 -0600 Subject: [PATCH 5/8] break after adding one keyboard comment added to a possibly suspicious parameter --- ios/engine/KMEI/KeymanEngine/Classes/Manager.swift | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift b/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift index 2f518adf95..8368cc11f9 100644 --- a/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift +++ b/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift @@ -571,7 +571,7 @@ public class Manager: NSObject, HTTPDownloadDelegate, UIGestureRecognizerDelegat languageID: languageId, languageName: languageName, version: version, - isRTL: false, + isRTL: false, // rrb: how do we know this? possible source of losing RTL flag? font: displayFont, oskFont: oskFont, isCustom: false)) @@ -615,6 +615,7 @@ public class Manager: NSObject, HTTPDownloadDelegate, UIGestureRecognizerDelegat throw KMPError.copyFiles } Manager.shared.addKeyboard(keyboard) + break } } } From 5915de94b8f545191d47f6889f356116acbcca84 Mon Sep 17 00:00:00 2001 From: Randy Boring Date: Wed, 20 Feb 2019 16:44:51 -0600 Subject: [PATCH 6/8] break after adding one keyboard comment added to a possibly suspicious parameter --- ios/engine/KMEI/KeymanEngine/Classes/Manager.swift | 1 - 1 file changed, 1 deletion(-) diff --git a/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift b/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift index 8368cc11f9..62bd56b3c0 100644 --- a/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift +++ b/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift @@ -615,7 +615,6 @@ public class Manager: NSObject, HTTPDownloadDelegate, UIGestureRecognizerDelegat throw KMPError.copyFiles } Manager.shared.addKeyboard(keyboard) - break } } } From 3b79a1266f27799cec2892c7a4029cf959131938 Mon Sep 17 00:00:00 2001 From: Randy Boring Date: Wed, 20 Feb 2019 17:06:26 -0600 Subject: [PATCH 7/8] process all the keyboard files so all the languages get added for later installation but only installs for the first language --- ios/engine/KMEI/KeymanEngine/Classes/Manager.swift | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift b/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift index 62bd56b3c0..c69d3138c8 100644 --- a/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift +++ b/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift @@ -586,6 +586,7 @@ public class Manager: NSObject, HTTPDownloadDelegate, UIGestureRecognizerDelegat throw KMPError.fileSystem } + var haveInstalledOne = false for keyboard in installableKeyboards { let storedPath = Storage.active.keyboardURL(for: keyboard) @@ -614,7 +615,10 @@ public class Manager: NSObject, HTTPDownloadDelegate, UIGestureRecognizerDelegat log.error("Error saving the download: \(error)") throw KMPError.copyFiles } - Manager.shared.addKeyboard(keyboard) + if !haveInstalledOne { + Manager.shared.addKeyboard(keyboard) + haveInstalledOne = true + } } } } From c3de33b7e883d1ba61cd786e26696cd195fe320f Mon Sep 17 00:00:00 2001 From: Randy Boring Date: Tue, 28 May 2019 14:40:29 -0500 Subject: [PATCH 8/8] break after installing first langage get rtl property but default to false --- ios/engine/KMEI/KeymanEngine/Classes/Manager.swift | 6 ++++-- .../KMEI/KeymanEngine/Classes/Model/KMPKeyboard.swift | 7 +++++-- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift b/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift index c69d3138c8..5ce1cebe96 100644 --- a/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift +++ b/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift @@ -543,7 +543,9 @@ public class Manager: NSObject, HTTPDownloadDelegate, UIGestureRecognizerDelegat let name = k["name"] as! String let keyboardID = k["id"] as! String let version = k["version"] as! String - + //true if the keyboard targets a right-to-left script. false if absent. + let isrtl: Bool = k["rtl"] as? Bool ?? false + var oskFont: Font? let osk = k["oskFont"] as? String if let _ = osk { @@ -571,7 +573,7 @@ public class Manager: NSObject, HTTPDownloadDelegate, UIGestureRecognizerDelegat languageID: languageId, languageName: languageName, version: version, - isRTL: false, // rrb: how do we know this? possible source of losing RTL flag? + isRTL: isrtl, font: displayFont, oskFont: oskFont, isCustom: false)) diff --git a/ios/engine/KMEI/KeymanEngine/Classes/Model/KMPKeyboard.swift b/ios/engine/KMEI/KeymanEngine/Classes/Model/KMPKeyboard.swift index 8de271526a..684b4e8679 100644 --- a/ios/engine/KMEI/KeymanEngine/Classes/Model/KMPKeyboard.swift +++ b/ios/engine/KMEI/KeymanEngine/Classes/Model/KMPKeyboard.swift @@ -67,13 +67,16 @@ public class KMPKeyboard if let languageName = languageJson["name"], let languageId = languageJson["id"] { self.languages.append(KMPLanguage(name: languageName, languageId: languageId)) + break } } } self.osk = json["oskFont"] as? String self.font = json["displayFont"] as? String - + //true if the keyboard targets a right-to-left script. false if absent. + let isrtl: Bool = json["rtl"] as? Bool ?? false + if(self.keyboardId != nil && self.name != nil) { var installableKeyboards : [InstallableKeyboard] = [] @@ -83,7 +86,7 @@ public class KMPKeyboard languageID: language.languageId, languageName: language.name, version: version, - isRTL: false, + isRTL: isrtl, font: displayFont, oskFont: oskFont, isCustom: true) //update this based on adhoc vs api