From e15af05f209ef8ca4e74641435c226af5db9b4b8 Mon Sep 17 00:00:00 2001 From: jahorton Date: Tue, 9 Feb 2021 09:16:55 +0700 Subject: [PATCH 1/2] chore(ios): Settings case-statement cleanup --- .../Settings/SettingsViewController.swift | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/ios/engine/KMEI/KeymanEngine/Classes/Settings/SettingsViewController.swift b/ios/engine/KMEI/KeymanEngine/Classes/Settings/SettingsViewController.swift index ac0fd79e79..2e038f1784 100644 --- a/ios/engine/KMEI/KeymanEngine/Classes/Settings/SettingsViewController.swift +++ b/ios/engine/KMEI/KeymanEngine/Classes/Settings/SettingsViewController.swift @@ -146,9 +146,8 @@ open class SettingsViewController: UITableViewController { switch(cellIdentifier) { case "languages": - cell.accessoryType = .disclosureIndicator + break case "showbanner": - cell.accessoryType = .none let showBannerSwitch = UISwitch() showBannerSwitch.translatesAutoresizingMaskIntoConstraints = false @@ -165,7 +164,6 @@ open class SettingsViewController: UITableViewController { showBannerSwitch.centerYAnchor.constraint(equalTo: cell.layoutMarginsGuide.centerYAnchor).isActive = true } case "showgetstarted": - cell.accessoryType = .none let showAgainSwitch = UISwitch() showAgainSwitch.translatesAutoresizingMaskIntoConstraints = false @@ -182,7 +180,6 @@ open class SettingsViewController: UITableViewController { showAgainSwitch.centerYAnchor.constraint(equalTo: cell.layoutMarginsGuide.centerYAnchor).isActive = true } case "enablecrashreporting": - cell.accessoryType = .none let enableReportingSwitch = UISwitch() enableReportingSwitch.translatesAutoresizingMaskIntoConstraints = false @@ -199,11 +196,11 @@ open class SettingsViewController: UITableViewController { enableReportingSwitch.centerYAnchor.constraint(equalTo: cell.layoutMarginsGuide.centerYAnchor).isActive = true } case "systemkeyboardsettings": - cell.accessoryType = .disclosureIndicator + fallthrough case "installfile": - cell.accessoryType = .disclosureIndicator + fallthrough case "forcederror": - cell.accessoryType = .disclosureIndicator + break default: log.error("unknown cellIdentifier(\"\(cellIdentifier ?? "EMPTY")\")") cell.accessoryType = .none @@ -252,8 +249,12 @@ open class SettingsViewController: UITableViewController { override open func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) { cell.accessoryType = .none + + // Remember, UITableViewCells may be reused, so we should always reset relevant properties. cell.textLabel?.text = itemsArray[indexPath.row]["title"] cell.detailTextLabel?.text = itemsArray[indexPath.row]["subtitle"] + cell.textLabel?.isEnabled = true + cell.tag = indexPath.row cell.isUserInteractionEnabled = true @@ -262,11 +263,14 @@ open class SettingsViewController: UITableViewController { switch (cellIdentifier) { case "languages", "installfile", "systemkeyboardsettings", "forcederror": cell.accessoryType = .disclosureIndicator + cell.detailTextLabel?.isEnabled = true case "enablecrashreporting": + cell.detailTextLabel?.isEnabled = true break - default: - cell.textLabel?.isEnabled = true + case "showbanner", "showgetstarted": cell.detailTextLabel?.isEnabled = false + default: + log.error("unknown cellIdentifier(\"\(cellIdentifier ?? "EMPTY")\")") } } From 95d715effe3a0546076b8ce9f0e18edc54dc0bfd Mon Sep 17 00:00:00 2001 From: jahorton Date: Wed, 10 Feb 2021 11:38:49 +0700 Subject: [PATCH 2/2] change(ios): combines break cases --- .../Classes/Settings/SettingsViewController.swift | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/ios/engine/KMEI/KeymanEngine/Classes/Settings/SettingsViewController.swift b/ios/engine/KMEI/KeymanEngine/Classes/Settings/SettingsViewController.swift index 2e038f1784..092a91c223 100644 --- a/ios/engine/KMEI/KeymanEngine/Classes/Settings/SettingsViewController.swift +++ b/ios/engine/KMEI/KeymanEngine/Classes/Settings/SettingsViewController.swift @@ -195,11 +195,7 @@ open class SettingsViewController: UITableViewController { enableReportingSwitch.rightAnchor.constraint(equalTo: cell.layoutMarginsGuide.rightAnchor).isActive = true enableReportingSwitch.centerYAnchor.constraint(equalTo: cell.layoutMarginsGuide.centerYAnchor).isActive = true } - case "systemkeyboardsettings": - fallthrough - case "installfile": - fallthrough - case "forcederror": + case "systemkeyboardsettings", "installfile", "forcederror": break default: log.error("unknown cellIdentifier(\"\(cellIdentifier ?? "EMPTY")\")")