WireguardApp: iOS: Added Siri shortcuts donations for SetTunnelStatus intent

Signed-off-by: Alessio Nossa <alessio.nossa@gmail.com>
This commit is contained in:
Alessio Nossa
2022-02-01 17:51:18 +01:00
parent bb6ea1b2f3
commit c29787f898
4 changed files with 53 additions and 0 deletions
@@ -2,6 +2,7 @@
// Copyright © 2018-2021 WireGuard LLC. All Rights Reserved.
import UIKit
import Intents
class MainViewController: UISplitViewController {
@@ -96,10 +97,25 @@ extension MainViewController {
if let tunnel = tunnelsManager.tunnel(named: tunnelName) {
tunnelsListVC.showTunnelDetail(for: tunnel, animated: false)
if shouldToggleStatus {
let intent = SetTunnelStatusIntent()
intent.tunnel = tunnel.name
intent.operation = .turn
if tunnel.status == .inactive {
tunnelsManager.startActivation(of: tunnel)
intent.state = .on
} else if tunnel.status == .active {
tunnelsManager.startDeactivation(of: tunnel)
intent.state = .off
}
let interaction = INInteraction(intent: intent, response: nil)
interaction.groupIdentifier = "com.wireguard.intents.tunnel.\(tunnel.name)"
interaction.donate { error in
if let error = error {
wg_log(.error, message: "Error donating interaction for SetTunnelStatusIntent: \(error.localizedDescription)")
}
}
}
}