HackRFProto/HackRFProto/ExtensionManager.swift

44 lines
1.6 KiB
Swift

//
// ExtensionManager.swift
// HackRFProto
//
// Created by maddiefuzz on 7/31/22.
//
import Foundation
import SystemExtensions
import os.log
class ExtensionManager : NSObject, OSSystemExtensionRequestDelegate {
static let shared = ExtensionManager()
func activate() {
let activationRequest = OSSystemExtensionRequest.activationRequest(forExtensionWithIdentifier: "info.maddie.HackRFProto.HackRFDriver", queue: .main)
activationRequest.delegate = self
OSSystemExtensionManager.shared.submitRequest(activationRequest)
}
func deactivate() {
let activationRequest = OSSystemExtensionRequest.deactivationRequest(forExtensionWithIdentifier: "info.maddie.HackRFProto.HackRFDriver", queue: .main)
activationRequest.delegate = self
OSSystemExtensionManager.shared.submitRequest(activationRequest)
}
func request(_ request: OSSystemExtensionRequest, actionForReplacingExtension existing: OSSystemExtensionProperties, withExtension ext: OSSystemExtensionProperties) -> OSSystemExtensionRequest.ReplacementAction {
return .replace
}
func requestNeedsUserApproval(_ request: OSSystemExtensionRequest) {
os_log("sysex needsUserApproval")
}
func request(_ request: OSSystemExtensionRequest, didFinishWithResult result: OSSystemExtensionRequest.Result) {
os_log("sysex didFinishWithResult")
}
func request(_ request: OSSystemExtensionRequest, didFailWithError error: Error) {
os_log("sysex didFailWithError: \(error.localizedDescription)")
}
}