Files
ShadowsocksX-NG/ShadowsocksX-NG/ServerProfileManager.swift

74 lines
2.1 KiB
Swift

//
// ServerProfileManager.swift
// ShadowsocksX-NG
//
// Created by on 16/6/6.
// Copyright © 2016 qiuyuzhou. All rights reserved.
//
import Cocoa
class ServerProfileManager: NSObject {
static let instance:ServerProfileManager = ServerProfileManager()
var profiles:[ServerProfile]
var activeProfileId: String?
private override init() {
profiles = [ServerProfile]()
let defaults = NSUserDefaults.standardUserDefaults()
if let _profiles = defaults.arrayForKey("ServerProfiles") {
for _profile in _profiles {
let profile = ServerProfile.fromDictionary(_profile as! [String : AnyObject])
profiles.append(profile)
}
}
activeProfileId = defaults.stringForKey("ActiveServerProfileId")
}
func setActiveProfiledId(id: String) {
activeProfileId = id
let defaults = NSUserDefaults.standardUserDefaults()
defaults.setObject(id, forKey: "ActiveServerProfileId")
}
func save() {
let defaults = NSUserDefaults.standardUserDefaults()
var _profiles = [AnyObject]()
for profile in profiles {
if profile.isValid() {
let _profile = profile.toDictionary()
_profiles.append(_profile)
}
}
defaults.setObject(_profiles, forKey: "ServerProfiles")
if getActiveProfile() == nil {
activeProfileId = nil
}
if activeProfileId != nil {
defaults.setObject(activeProfileId, forKey: "ActiveServerProfileId")
writeSSLocalConfFile((getActiveProfile()?.toJsonConfig())!)
} else {
defaults.removeObjectForKey("ActiveServerProfileId")
removeSSLocalConfFile()
}
}
func getActiveProfile() -> ServerProfile? {
if let id = activeProfileId {
for p in profiles {
if p.uuid == id {
return p
}
}
return nil
} else {
return nil
}
}
}