diff --git a/ios/engine/KMEI/KeymanEngine/Classes/LanguagePicker/KeyboardInfoViewController.swift b/ios/engine/KMEI/KeymanEngine/Classes/LanguagePicker/KeyboardInfoViewController.swift index bdd35d316c..d6c93e5820 100644 --- a/ios/engine/KMEI/KeymanEngine/Classes/LanguagePicker/KeyboardInfoViewController.swift +++ b/ios/engine/KMEI/KeymanEngine/Classes/LanguagePicker/KeyboardInfoViewController.swift @@ -43,7 +43,8 @@ class KeyboardInfoViewController: UITableViewController, UIAlertViewDelegate { override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) navigationController?.setToolbarHidden(true, animated: true) - } + log.info("didAppear: KeyboardInfoViewController") +} override func numberOfSections(in tableView: UITableView) -> Int { return 1 diff --git a/ios/engine/KMEI/KeymanEngine/Classes/LanguagePicker/KeyboardPickerViewController.swift b/ios/engine/KMEI/KeymanEngine/Classes/LanguagePicker/KeyboardPickerViewController.swift index 3f9ac7ffb8..327f9c5d78 100644 --- a/ios/engine/KMEI/KeymanEngine/Classes/LanguagePicker/KeyboardPickerViewController.swift +++ b/ios/engine/KMEI/KeymanEngine/Classes/LanguagePicker/KeyboardPickerViewController.swift @@ -85,6 +85,7 @@ class KeyboardPickerViewController: UITableViewController, UIAlertViewDelegate { navigationController?.setToolbarHidden(false, animated: true) scroll(toSelectedKeyboard: false) + log.info("didAppear: KeyboardPickerViewController") } override func numberOfSections(in tableView: UITableView) -> Int { diff --git a/ios/engine/KMEI/KeymanEngine/Classes/LanguagePicker/LanguageDetailViewController.swift b/ios/engine/KMEI/KeymanEngine/Classes/LanguagePicker/LanguageDetailViewController.swift index d4832dc0c7..cafe877470 100644 --- a/ios/engine/KMEI/KeymanEngine/Classes/LanguagePicker/LanguageDetailViewController.swift +++ b/ios/engine/KMEI/KeymanEngine/Classes/LanguagePicker/LanguageDetailViewController.swift @@ -45,6 +45,12 @@ class LanguageDetailViewController: UITableViewController, UIAlertViewDelegate { observer: self, function: LanguageDetailViewController.keyboardDownloadFailed) } + + override open func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + + log.info("didAppear: LanguageDetailViewController (actually willAppear)") + } override func numberOfSections(in tableView: UITableView) -> Int { return language.keyboards!.count diff --git a/ios/engine/KMEI/KeymanEngine/Classes/LanguagePicker/LanguageViewController.swift b/ios/engine/KMEI/KeymanEngine/Classes/LanguagePicker/LanguageViewController.swift index 44d0c28611..8ec8141ab2 100644 --- a/ios/engine/KMEI/KeymanEngine/Classes/LanguagePicker/LanguageViewController.swift +++ b/ios/engine/KMEI/KeymanEngine/Classes/LanguagePicker/LanguageViewController.swift @@ -54,6 +54,7 @@ class LanguageViewController: UITableViewController, UIAlertViewDelegate { } loadUserKeyboards() + loadUserLexicalModels() } override func viewDidLoad() { @@ -76,8 +77,10 @@ class LanguageViewController: UITableViewController, UIAlertViewDelegate { // if no rows to show yet, show a loading indicator if numberOfSections(in: tableView) == 0 { showActivityView() + } else { + log.info("didAppear: LanguageViewController") } - } + } override func numberOfSections(in tableView: UITableView) -> Int { return languages.count diff --git a/ios/engine/KMEI/KeymanEngine/Classes/LanguagePicker/LexicalModelInfoViewController.swift b/ios/engine/KMEI/KeymanEngine/Classes/LanguagePicker/LexicalModelInfoViewController.swift index e19af5e6a3..67e50e5a1a 100644 --- a/ios/engine/KMEI/KeymanEngine/Classes/LanguagePicker/LexicalModelInfoViewController.swift +++ b/ios/engine/KMEI/KeymanEngine/Classes/LanguagePicker/LexicalModelInfoViewController.swift @@ -43,6 +43,7 @@ class LexicalModelInfoViewController: UITableViewController, UIAlertViewDelegate override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) navigationController?.setToolbarHidden(true, animated: true) + log.info("didAppear: LexicalModelInfoViewController") } override func numberOfSections(in tableView: UITableView) -> Int { diff --git a/ios/engine/KMEI/KeymanEngine/Classes/Settings/InstalledLanguagesViewController.swift b/ios/engine/KMEI/KeymanEngine/Classes/Settings/InstalledLanguagesViewController.swift index 917e461117..af16ccbbf4 100644 --- a/ios/engine/KMEI/KeymanEngine/Classes/Settings/InstalledLanguagesViewController.swift +++ b/ios/engine/KMEI/KeymanEngine/Classes/Settings/InstalledLanguagesViewController.swift @@ -59,6 +59,13 @@ class InstalledLanguagesViewController: UITableViewController, UIAlertViewDelega forName: Notifications.keyboardDownloadFailed, observer: self, function: InstalledLanguagesViewController.keyboardDownloadFailed) + + if Manager.shared.canAddNewKeyboards { + let addButton = UIBarButtonItem(barButtonSystemItem: .add, target: self, + action: #selector(self.addClicked)) + navigationItem.rightBarButtonItem = addButton + } + } override func viewDidAppear(_ animated: Bool) { @@ -67,6 +74,8 @@ class InstalledLanguagesViewController: UITableViewController, UIAlertViewDelega // if no rows to show yet, show a loading indicator if numberOfSections(in: tableView) == 0 { showActivityView() + } else { + log.info("didAppear: InstalledLanguagesViewController") } } @@ -348,5 +357,16 @@ extension InstalledLanguagesViewController: LexicalModelRepositoryDelegate { dismissActivityView() showConnectionErrorAlert() } + + @objc func addClicked(_ sender: Any) { + showAddKeyboard() + } + + func showAddKeyboard() { + let button: UIButton? = (navigationController?.toolbar?.viewWithTag(toolbarButtonTag) as? UIButton) + button?.isEnabled = false + let vc = LanguageViewController(Manager.shared.apiKeyboardRepository) + navigationController?.pushViewController(vc, animated: true) + } } diff --git a/ios/engine/KMEI/KeymanEngine/Classes/Settings/SettingsViewController.swift b/ios/engine/KMEI/KeymanEngine/Classes/Settings/SettingsViewController.swift index 5b76b1fc66..d8c96dcee5 100644 --- a/ios/engine/KMEI/KeymanEngine/Classes/Settings/SettingsViewController.swift +++ b/ios/engine/KMEI/KeymanEngine/Classes/Settings/SettingsViewController.swift @@ -16,7 +16,8 @@ open class SettingsViewController: UITableViewController { super.viewWillAppear(animated) loadUserLanguages() - } + log.info("didAppear: SettingsViewController (actually willAppear)") + } override open func viewDidLoad() { super.viewDidLoad()