Feature: remember select proxy group last time
This commit is contained in:
parent
2f5421ddb3
commit
86e3534870
@ -102,6 +102,10 @@ class AppDelegate: NSObject, NSApplicationDelegate {
|
||||
}
|
||||
|
||||
self.updateProxyList()
|
||||
|
||||
if (ConfigManager.shared.proxyPortAutoSet) {
|
||||
_ = ProxyConfigManager.setUpSystemProxy(port: config!.port,socksPort: config!.socketPort)
|
||||
}
|
||||
}.disposed(by: disposeBag)
|
||||
|
||||
LaunchAtLogin.shared
|
||||
@ -136,6 +140,16 @@ class AppDelegate: NSObject, NSApplicationDelegate {
|
||||
});
|
||||
}
|
||||
|
||||
func selectProxyGroupWithMemory(){
|
||||
for item in ConfigManager.selectedProxyMap {
|
||||
ApiRequest.updateProxyGroup(group: item.key, selectProxy: item.value) { (success) in
|
||||
if (!success) {
|
||||
ConfigManager.selectedProxyMap[item.key] = nil
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func updateProxyList() {
|
||||
ProxyMenuItemFactory.menuItems { [unowned self] (menus) in
|
||||
let startIndex = self.statusMenu.items.index(of: self.separatorLineTop)! + 1
|
||||
@ -159,6 +173,7 @@ class AppDelegate: NSObject, NSApplicationDelegate {
|
||||
run()
|
||||
}
|
||||
syncConfig(){
|
||||
self.selectProxyGroupWithMemory()
|
||||
DispatchQueue.main.asyncAfter(deadline:DispatchTime.now() + 1, execute: {
|
||||
self.resetTrafficMonitor()
|
||||
})
|
||||
@ -169,12 +184,7 @@ class AppDelegate: NSObject, NSApplicationDelegate {
|
||||
ApiRequest.requestConfig{ (config) in
|
||||
guard config.port > 0 else {return}
|
||||
ConfigManager.shared.currentConfig = config
|
||||
|
||||
if ConfigManager.shared.proxyPortAutoSet {
|
||||
_ = ProxyConfigManager.setUpSystemProxy(port: config.port,socksPort: config.socketPort)
|
||||
self.updateProxyList()
|
||||
completeHandler?()
|
||||
}
|
||||
completeHandler?()
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -75,12 +75,7 @@ class ApiRequest{
|
||||
|
||||
static func updateProxyGroup(group:String,selectProxy:String,callback:@escaping ((Bool)->())) {
|
||||
request(ConfigManager.apiUrl + "/proxies/\(group)", method: .put, parameters: ["name":selectProxy], encoding: JSONEncoding.default).responseJSON { (response) in
|
||||
switch response.result {
|
||||
case .success(_):
|
||||
callback(true)
|
||||
case .failure(_):
|
||||
callback(false)
|
||||
}
|
||||
callback(response.response?.statusCode == 200)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -76,10 +76,10 @@ class ProxyMenuItemFactory {
|
||||
items.state = .off
|
||||
}
|
||||
sender.state = .on
|
||||
// remember select proxy
|
||||
ConfigManager.selectedProxyMap[proxyGroup] = proxyName
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
@ -51,4 +51,14 @@ class ConfigManager {
|
||||
}
|
||||
}
|
||||
|
||||
static var selectedProxyMap:[String:String] {
|
||||
get{
|
||||
return ["Proxy":"ProxyAuto"]
|
||||
return UserDefaults.standard.dictionary(forKey: "selectedProxyMap") as? [String:String] ?? ["Proxy":"ProxyAuto"]
|
||||
}
|
||||
set {
|
||||
UserDefaults.standard.set(newValue, forKey: "selectedProxyMap")
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user