diff --git a/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift b/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift index dbbac6825d..699627fc14 100644 --- a/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift +++ b/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift @@ -588,6 +588,7 @@ public class Manager: NSObject, HTTPDownloadDelegate, UIGestureRecognizerDelegat throw KMPError.fileSystem } + var haveInstalledOne = false for keyboard in installableKeyboards { let storedPath = Storage.active.keyboardURL(for: keyboard) @@ -616,7 +617,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 + } } } } diff --git a/ios/engine/KMEI/KeymanEngine/Classes/Model/KMPKeyboard.swift b/ios/engine/KMEI/KeymanEngine/Classes/Model/KMPKeyboard.swift index f50e3181de..278171c3a4 100644 --- a/ios/engine/KMEI/KeymanEngine/Classes/Model/KMPKeyboard.swift +++ b/ios/engine/KMEI/KeymanEngine/Classes/Model/KMPKeyboard.swift @@ -67,6 +67,7 @@ public class KMPKeyboard if let languageName = languageJson["name"], let languageId = languageJson["id"] { self.languages.append(KMPLanguage(name: languageName, languageId: languageId)) + break } } }