diff --git a/Classes/Settings/DefaultReactionDetailController.swift b/Classes/Settings/DefaultReactionDetailController.swift index b6ec7d160..eb4647d6a 100644 --- a/Classes/Settings/DefaultReactionDetailController.swift +++ b/Classes/Settings/DefaultReactionDetailController.swift @@ -8,6 +8,10 @@ import UIKit +protocol DefaultReactionDelegate: class { + func didUpdateDefaultReaction() +} + class DefaultReactionDetailController: UITableViewController { @IBOutlet var thumbsUpCell: UITableViewCell! @@ -18,6 +22,8 @@ class DefaultReactionDetailController: UITableViewController { @IBOutlet var heartCell: UITableViewCell! @IBOutlet var enabledSwitch: UISwitch! + weak var delegate: DefaultReactionDelegate? + override func viewDidLoad() { super.viewDidLoad() checkCurrentDefault() @@ -95,10 +101,12 @@ class DefaultReactionDetailController: UITableViewController { private func updateDefault(reaction: ReactionContent) { UserDefaults.standard.setDefault(reaction: reaction) checkCurrentDefault() + delegate?.didUpdateDefaultReaction() } private func disableReaction() { UserDefaults.standard.disableReaction() + delegate?.didUpdateDefaultReaction() } private func updateSections() { diff --git a/Classes/Settings/Settings.storyboard b/Classes/Settings/Settings.storyboard index bbfb09fa5..8b592e44d 100644 --- a/Classes/Settings/Settings.storyboard +++ b/Classes/Settings/Settings.storyboard @@ -185,9 +185,6 @@ - - - @@ -454,7 +451,7 @@ - + @@ -703,24 +700,6 @@ - - - - - - - - - - - - - - - - - - diff --git a/Classes/Settings/SettingsViewController.swift b/Classes/Settings/SettingsViewController.swift index 33da7442d..c38c1546f 100644 --- a/Classes/Settings/SettingsViewController.swift +++ b/Classes/Settings/SettingsViewController.swift @@ -12,7 +12,7 @@ import GitHubSession import Squawk final class SettingsViewController: UITableViewController, -NewIssueTableViewControllerDelegate { +NewIssueTableViewControllerDelegate, DefaultReactionDelegate { // must be injected var sessionManager: GitHubSessionManager! @@ -62,8 +62,7 @@ NewIssueTableViewControllerDelegate { override func viewWillAppear(_ animated: Bool) { super.viewWillAppear(animated) - defaultReactionLabel.text = ReactionContent.defaultReaction?.emoji - ?? NSLocalizedString("Off", comment: "") + updateDefaultReaction() rz_smoothlyDeselectRows(tableView: tableView) accountsCell.detailTextLabel?.text = sessionManager.focusedUserSession?.username ?? Constants.Strings.unknown @@ -126,6 +125,11 @@ NewIssueTableViewControllerDelegate { // MARK: Private API + func updateDefaultReaction() { + defaultReactionLabel.text = ReactionContent.defaultReaction?.emoji + ?? NSLocalizedString("Off", comment: "") + } + func onReviewAccess() { guard let url = URL(string: "https://github.com/settings/connections/applications/\(Secrets.GitHub.clientId)") else { fatalError("Should always create GitHub issue URL") } @@ -191,7 +195,13 @@ NewIssueTableViewControllerDelegate { } func onSetDefaultReaction() { - //showDefaultReactionMenu() + let storyboard = UIStoryboard(name: "Settings", bundle: nil) + guard let viewController = storyboard.instantiateViewController(withIdentifier: "DefaultReactionDetailController") as? DefaultReactionDetailController else { + fatalError("Cannot instantiate DefaultReactionDetailController instance") + } + viewController.delegate = self + let navController = UINavigationController(rootViewController: viewController) + showDetailViewController(navController, sender: self) } func onTryTestFlightBeta() { @@ -288,4 +298,10 @@ NewIssueTableViewControllerDelegate { let navigation = UINavigationController(rootViewController: issuesViewController) showDetailViewController(navigation, sender: nil) } + + // MARK: DefaultReactionDelegate + + func didUpdateDefaultReaction() { + updateDefaultReaction() + } }