mirror of
https://github.com/Lakr233/vphone-cli.git
synced 2026-04-05 13:09:06 +08:00
menu: gate Install action on connection state (#174)
This commit is contained in:
@@ -150,6 +150,7 @@ class VPhoneAppDelegate: NSObject, NSApplicationDelegate {
|
||||
// Wire location toggle through onConnect/onDisconnect
|
||||
control.onConnect = { [weak mc, weak provider = locationProvider] caps in
|
||||
mc?.updateConnectAvailability(available: true)
|
||||
mc?.updateInstallAvailability(available: true)
|
||||
if caps.contains("location") {
|
||||
mc?.updateLocationCapability(available: true)
|
||||
// Auto-resume if user had toggle on
|
||||
@@ -162,6 +163,7 @@ class VPhoneAppDelegate: NSObject, NSApplicationDelegate {
|
||||
}
|
||||
control.onDisconnect = { [weak mc, weak provider = locationProvider] in
|
||||
mc?.updateConnectAvailability(available: false)
|
||||
mc?.updateInstallAvailability(available: false)
|
||||
provider?.stopReplay()
|
||||
provider?.stopForwarding()
|
||||
mc?.updateLocationCapability(available: false)
|
||||
|
||||
@@ -16,6 +16,7 @@ class VPhoneMenuController {
|
||||
var connectDevModeStatusItem: NSMenuItem?
|
||||
var connectPingItem: NSMenuItem?
|
||||
var connectGuestVersionItem: NSMenuItem?
|
||||
var installPackageItem: NSMenuItem?
|
||||
var locationProvider: VPhoneLocationProvider?
|
||||
var locationMenuItem: NSMenuItem?
|
||||
var locationPresetMenuItem: NSMenuItem?
|
||||
|
||||
@@ -7,11 +7,20 @@ extension VPhoneMenuController {
|
||||
func buildInstallMenu() -> NSMenuItem {
|
||||
let item = NSMenuItem()
|
||||
let menu = NSMenu(title: "Install")
|
||||
menu.addItem(makeItem("Install IPA/TIPA...", action: #selector(installIPAFromDisk)))
|
||||
menu.autoenablesItems = false
|
||||
|
||||
let install = makeItem("Install IPA/TIPA...", action: #selector(installIPAFromDisk))
|
||||
install.isEnabled = false
|
||||
installPackageItem = install
|
||||
menu.addItem(install)
|
||||
item.submenu = menu
|
||||
return item
|
||||
}
|
||||
|
||||
func updateInstallAvailability(available: Bool) {
|
||||
installPackageItem?.isEnabled = available
|
||||
}
|
||||
|
||||
@objc func installIPAFromDisk() {
|
||||
guard control.isConnected else {
|
||||
showAlert(title: "Install App Package", message: "Guest is not connected.", style: .warning)
|
||||
|
||||
Reference in New Issue
Block a user