From 75fd393735aec774d67d49f255d520a80334d1df Mon Sep 17 00:00:00 2001 From: Gabriel Wong Date: Fri, 17 Nov 2017 13:34:04 +0700 Subject: [PATCH] Handle deleting current keyboard in Manager --- .../LanguagePicker/KeyboardInfoViewController.swift | 11 ----------- .../LanguagePicker/KeyboardPickerViewController.swift | 6 ------ ios/engine/KMEI/KeymanEngine/Classes/Manager.swift | 5 +++++ 3 files changed, 5 insertions(+), 17 deletions(-) diff --git a/ios/engine/KMEI/KeymanEngine/Classes/LanguagePicker/KeyboardInfoViewController.swift b/ios/engine/KMEI/KeymanEngine/Classes/LanguagePicker/KeyboardInfoViewController.swift index 2ab1dcf624..cd3adbbc26 100644 --- a/ios/engine/KMEI/KeymanEngine/Classes/LanguagePicker/KeyboardInfoViewController.swift +++ b/ios/engine/KMEI/KeymanEngine/Classes/LanguagePicker/KeyboardInfoViewController.swift @@ -118,11 +118,6 @@ class KeyboardInfoViewController: UITableViewController, UIAlertViewDelegate { } } - private var isCurrentKeyboard: Bool { - return Manager.shared.keyboardID == keyboardID && - Manager.shared.languageID == languageID - } - private var canDeleteKeyboard: Bool { if !Manager.shared.canRemoveKeyboards { return false @@ -156,14 +151,8 @@ class KeyboardInfoViewController: UITableViewController, UIAlertViewDelegate { if alertView.tag == 1 { let userData = Manager.shared.activeUserDefaults() let userKeyboards = userData.userKeyboards! - let kb = userKeyboards[keyboardIndex] if Manager.shared.removeKeyboard(at: keyboardIndex) { - if isCurrentKeyboard { - // Select default keyboard - Manager.shared.setKeyboard(kb) - } - NotificationCenter.default.post(name: Notifications.keyboardRemoved, object: self, value: kb) navigationController?.popToRootViewController(animated: true) } } diff --git a/ios/engine/KMEI/KeymanEngine/Classes/LanguagePicker/KeyboardPickerViewController.swift b/ios/engine/KMEI/KeymanEngine/Classes/LanguagePicker/KeyboardPickerViewController.swift index a0d0f8b611..a9ac4c5359 100644 --- a/ios/engine/KMEI/KeymanEngine/Classes/LanguagePicker/KeyboardPickerViewController.swift +++ b/ios/engine/KMEI/KeymanEngine/Classes/LanguagePicker/KeyboardPickerViewController.swift @@ -128,12 +128,6 @@ class KeyboardPickerViewController: UITableViewController, UIAlertViewDelegate { } if Manager.shared.removeKeyboard(at: indexPath.row) { - let kb = userKeyboards[indexPath.row] - if isCurrentKeyboard(languageID: kb.id, keyboardID: kb.languageID) { - let userData = Manager.shared.activeUserDefaults() - userKeyboards = userData.userKeyboards! - Manager.shared.setKeyboard(userKeyboards[0]) - } self.tableView.reloadData() } setIsDoneButtonEnabled(true) diff --git a/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift b/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift index a2ab8988cf..e91e7b09a0 100644 --- a/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift +++ b/ios/engine/KMEI/KeymanEngine/Classes/Manager.swift @@ -377,6 +377,11 @@ UIGestureRecognizerDelegate { userData.set([Date()], forKey: Key.synchronizeSWKeyboard) userData.synchronize() + // Set a new keyboard if deleting the current one + if kb.id == keyboardID && kb.languageID == languageID { + setKeyboard(userKeyboards[0]) + } + NotificationCenter.default.post(name: Notifications.keyboardRemoved, object: self, value: kb) return true }