Reconnect with a specific action cell
This commit is contained in:
parent
be6abdcf2a
commit
6ed70feb77
|
@ -397,11 +397,13 @@ extension ServiceViewController: UITableViewDataSource, UITableViewDelegate, Tog
|
|||
}
|
||||
|
||||
enum RowType: Int {
|
||||
case useProfile
|
||||
|
||||
case vpnService
|
||||
|
||||
case connectionStatus
|
||||
|
||||
case useProfile
|
||||
case reconnect
|
||||
|
||||
case account
|
||||
|
||||
|
@ -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)
|
||||
}
|
||||
|
|
|
@ -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";
|
||||
|
|
Loading…
Reference in New Issue