From 6ed70feb775b986c5e83c4c4439eca7f9317c6aa Mon Sep 17 00:00:00 2001 From: Davide De Rosa Date: Sun, 21 Oct 2018 09:45:59 +0200 Subject: [PATCH] Reconnect with a specific action cell --- .../Scenes/ServiceViewController.swift | 27 ++++++++++++------- .../Resources/en.lproj/Localizable.strings | 2 +- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/Passepartout-iOS/Scenes/ServiceViewController.swift b/Passepartout-iOS/Scenes/ServiceViewController.swift index 274ef0e5..779cb126 100644 --- a/Passepartout-iOS/Scenes/ServiceViewController.swift +++ b/Passepartout-iOS/Scenes/ServiceViewController.swift @@ -397,12 +397,14 @@ extension ServiceViewController: UITableViewDataSource, UITableViewDelegate, Tog } enum RowType: Int { + case useProfile + case vpnService case connectionStatus - case useProfile - + case reconnect + case account case endpoint @@ -503,6 +505,12 @@ extension ServiceViewController: UITableViewDataSource, UITableViewDelegate, Tog func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let row = model.row(at: indexPath) switch row { + case .useProfile: + let cell = Cells.setting.dequeue(from: tableView, for: indexPath) + cell.applyAction(Theme.current) + cell.leftText = L10n.Service.Cells.UseProfile.caption + return cell + case .vpnService: guard service.isActiveProfile(uncheckedProfile) else { fatalError("Do not show vpnService in non-active profile") @@ -522,13 +530,14 @@ extension ServiceViewController: UITableViewDataSource, UITableViewDelegate, Tog cell.applyVPN(Theme.current, with: vpn.isEnabled ? vpn.status : nil) cell.leftText = L10n.Service.Cells.ConnectionStatus.caption cell.accessoryType = .none - cell.isTappable = !service.needsCredentials(for: uncheckedProfile) && vpn.isEnabled return cell - case .useProfile: + case .reconnect: let cell = Cells.setting.dequeue(from: tableView, for: indexPath) cell.applyAction(Theme.current) - cell.leftText = L10n.Service.Cells.UseProfile.caption + cell.leftText = L10n.Service.Cells.Reconnect.caption + cell.accessoryType = .none + cell.isTappable = !service.needsCredentials(for: uncheckedProfile) && vpn.isEnabled return cell // shared cells @@ -695,12 +704,12 @@ extension ServiceViewController: UITableViewDataSource, UITableViewDelegate, Tog // true if enters subscreen private func handle(row: RowType, cell: UITableViewCell) -> Bool { switch row { - case .connectionStatus: - confirmVpnReconnection() - case .useProfile: activate() + case .reconnect: + confirmVpnReconnection() + case .account: perform(segue: StoryboardSegue.Main.accountSegueIdentifier, sender: cell) return true @@ -852,7 +861,7 @@ extension ServiceViewController: UITableViewDataSource, UITableViewDelegate, Tog // rows if isActiveProfile { - model.set([.vpnService, .connectionStatus], in: .vpn) + model.set([.vpnService, .connectionStatus, .reconnect], in: .vpn) } else { model.set([.useProfile], in: .vpn) } diff --git a/Passepartout/Resources/en.lproj/Localizable.strings b/Passepartout/Resources/en.lproj/Localizable.strings index d40146be..c936d3ec 100644 --- a/Passepartout/Resources/en.lproj/Localizable.strings +++ b/Passepartout/Resources/en.lproj/Localizable.strings @@ -72,9 +72,9 @@ "service.sections.diagnostics.header" = "Diagnostics"; //"service.sections.destruction.footer" = "Delete configuration from device settings."; +"service.cells.use_profile.caption" = "Use this profile"; "service.cells.vpn_service.caption" = "Enabled"; "service.cells.connection_status.caption" = "Status"; -"service.cells.use_profile.caption" = "Use this profile"; "service.cells.reconnect.caption" = "Reconnect"; "service.cells.account.caption" = "Account"; "service.cells.account.none" = "None configured";