diff --git a/Passepartout-iOS/Scenes/Organizer/AboutViewController.swift b/Passepartout-iOS/Scenes/Organizer/AboutViewController.swift index cbfa1c75..a2665ae1 100644 --- a/Passepartout-iOS/Scenes/Organizer/AboutViewController.swift +++ b/Passepartout-iOS/Scenes/Organizer/AboutViewController.swift @@ -39,7 +39,7 @@ class AboutViewController: UITableViewController, TableModelHost { model.setHeader(L10n.About.Sections.Feedback.header, for: .feedback) model.set([.version, .credits, .website], in: .info) model.set([.sourcePassepartout, .sourceTunnelKit], in: .source) - model.set([.reportIssue, .writeReview], in: .feedback) + model.set([.discussReddit, .reportIssue, .writeReview], in: .feedback) return model }() @@ -78,6 +78,10 @@ class AboutViewController: UITableViewController, TableModelHost { UIApplication.shared.open(url, options: [:], completionHandler: nil) } + private func discussReddit() { + UIApplication.shared.open(AppConstants.URLs.subreddit, options: [:], completionHandler: nil) + } + private func reportIssue() { IssueReporter.shared.present(in: self) } @@ -114,9 +118,11 @@ extension AboutViewController { case sourceTunnelKit - case writeReview + case discussReddit case reportIssue + + case writeReview } override func numberOfSections(in tableView: UITableView) -> Int { @@ -163,6 +169,11 @@ extension AboutViewController { cell.leftText = GroupConstants.App.tunnelKitName return cell + case .discussReddit: + let cell = Cells.setting.dequeue(from: tableView, for: indexPath) + cell.leftText = L10n.About.Cells.DiscussReddit.caption + return cell + case .reportIssue: let cell = Cells.setting.dequeue(from: tableView, for: indexPath) cell.leftText = L10n.IssueReporter.title @@ -192,6 +203,9 @@ extension AboutViewController { case .sourceTunnelKit: visitRepository(AppConstants.Repos.tunnelKit) + case .discussReddit: + discussReddit() + case .reportIssue: reportIssue() diff --git a/Passepartout/Resources/en.lproj/Localizable.strings b/Passepartout/Resources/en.lproj/Localizable.strings index 65605a9b..5f348034 100644 --- a/Passepartout/Resources/en.lproj/Localizable.strings +++ b/Passepartout/Resources/en.lproj/Localizable.strings @@ -168,6 +168,7 @@ "about.sections.source.header" = "Source code"; "about.sections.feedback.header" = "Feedback"; "about.cells.version.caption" = "Version"; +"about.cells.discuss_reddit.caption" = "Discuss on Reddit"; "about.cells.write_review.caption" = "Write a review"; "about.cells.website.caption" = "Visit website"; diff --git a/Passepartout/Sources/AppConstants.swift b/Passepartout/Sources/AppConstants.swift index 0988eccb..b05c52ab 100644 --- a/Passepartout/Sources/AppConstants.swift +++ b/Passepartout/Sources/AppConstants.swift @@ -110,6 +110,8 @@ class AppConstants { static let changelog = Repos.passepartout.appendingPathComponent("blob/master/CHANGELOG.md") + static let subreddit = URL(string: "https://www.reddit.com/r/passepartout")! + static func review(withId id: String) -> URL { return URL(string: "https://itunes.apple.com/app/id\(id)?action=write-review")! } diff --git a/Passepartout/Sources/SwiftGen+Strings.swift b/Passepartout/Sources/SwiftGen+Strings.swift index 073b1893..4e3eedea 100644 --- a/Passepartout/Sources/SwiftGen+Strings.swift +++ b/Passepartout/Sources/SwiftGen+Strings.swift @@ -14,6 +14,11 @@ internal enum L10n { internal enum Cells { + internal enum DiscussReddit { + /// Discuss on Reddit + internal static let caption = L10n.tr("Localizable", "about.cells.discuss_reddit.caption") + } + internal enum Version { /// Version internal static let caption = L10n.tr("Localizable", "about.cells.version.caption")