From 2b592e9be68feeff2225471d225fc19a13cf510f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E5=AE=87=E8=88=AA?= Date: Tue, 20 Jun 2017 18:22:38 +0800 Subject: [PATCH] add subscribe manager --- ShadowsocksX-NG.xcodeproj/project.pbxproj | 8 +- ShadowsocksX-NG/Subscribe.swift | 11 +- ShadowsocksX-NG/SubscribeManager.swift | 37 +++++ .../SubscribePreferenceWindowController.xib | 140 ++++++++++++++++-- 4 files changed, 182 insertions(+), 14 deletions(-) create mode 100644 ShadowsocksX-NG/SubscribeManager.swift diff --git a/ShadowsocksX-NG.xcodeproj/project.pbxproj b/ShadowsocksX-NG.xcodeproj/project.pbxproj index 4870ffc..58f8f09 100644 --- a/ShadowsocksX-NG.xcodeproj/project.pbxproj +++ b/ShadowsocksX-NG.xcodeproj/project.pbxproj @@ -11,6 +11,7 @@ 083BF8371D82742200831C68 /* PingClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083BF8351D82742200831C68 /* PingClient.swift */; }; 083BF8391D82759600831C68 /* StatusItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083BF8381D82759600831C68 /* StatusItemView.swift */; }; 083BF83B1D8275A800831C68 /* SystemThemeChangeHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 083BF83A1D8275A800831C68 /* SystemThemeChangeHelper.swift */; }; + 08635C771EF750FA00F1D25E /* SubscribeManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 08635C761EF750FA00F1D25E /* SubscribeManager.swift */; }; 0877D6541EF1E65600126865 /* Subscribe.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0877D6531EF1E65600126865 /* Subscribe.swift */; }; 0877D6571EF1E82400126865 /* SubscribePreferenceWindowController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0877D6551EF1E82400126865 /* SubscribePreferenceWindowController.swift */; }; 0877D6581EF1E82400126865 /* SubscribePreferenceWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 0877D6561EF1E82400126865 /* SubscribePreferenceWindowController.xib */; }; @@ -113,6 +114,7 @@ 083BF8381D82759600831C68 /* StatusItemView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StatusItemView.swift; sourceTree = ""; }; 083BF83A1D8275A800831C68 /* SystemThemeChangeHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SystemThemeChangeHelper.swift; sourceTree = ""; }; 085641E91D7188C400116B27 /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Base.lproj/Localizable.strings; sourceTree = ""; }; + 08635C761EF750FA00F1D25E /* SubscribeManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscribeManager.swift; sourceTree = ""; }; 0877D6531EF1E65600126865 /* Subscribe.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Subscribe.swift; sourceTree = ""; }; 0877D6551EF1E82400126865 /* SubscribePreferenceWindowController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SubscribePreferenceWindowController.swift; sourceTree = ""; }; 0877D6561EF1E82400126865 /* SubscribePreferenceWindowController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SubscribePreferenceWindowController.xib; sourceTree = ""; }; @@ -326,8 +328,9 @@ 9B0BFFEC1D0460A70040E62B /* MainMenu.xib */, 9B0BFFEF1D0460A70040E62B /* Info.plist */, 9BEEF06D1D04DCE400FC52B3 /* ServerProfile.swift */, - 0877D6531EF1E65600126865 /* Subscribe.swift */, 9BEEF06F1D04DDB100FC52B3 /* ServerProfileManager.swift */, + 0877D6531EF1E65600126865 /* Subscribe.swift */, + 08635C761EF750FA00F1D25E /* SubscribeManager.swift */, 08BDBB471E2361BD00C4BBC2 /* VersionChecker.swift */, 083BF8381D82759600831C68 /* StatusItemView.swift */, 083BF83A1D8275A800831C68 /* SystemThemeChangeHelper.swift */, @@ -362,9 +365,9 @@ children = ( 9B3FFF331D08CEF70019A709 /* SWBQRCodeWindowController.xib */, 9B3FFF301D08CEE40019A709 /* SWBQRCodeWindowController.h */, + 9B3FFF311D08CEE40019A709 /* SWBQRCodeWindowController.m */, 0877D6551EF1E82400126865 /* SubscribePreferenceWindowController.swift */, 0877D6561EF1E82400126865 /* SubscribePreferenceWindowController.xib */, - 9B3FFF311D08CEE40019A709 /* SWBQRCodeWindowController.m */, 9BEEF0731D04EF3E00FC52B3 /* PreferencesWindowController.swift */, 9B2491B61D0ACC3A003BBECC /* PreferencesWindowController.xib */, 9BEEF0791D05631500FC52B3 /* AdvPreferencesWindowController.swift */, @@ -707,6 +710,7 @@ 9BA04B261D24044D005AAD7F /* ProxyPreferencesController.swift in Sources */, 9B3FFF141D0705810019A709 /* Notifications.swift in Sources */, 9BEEF0701D04DDB100FC52B3 /* ServerProfileManager.swift in Sources */, + 08635C771EF750FA00F1D25E /* SubscribeManager.swift in Sources */, 0877D6571EF1E82400126865 /* SubscribePreferenceWindowController.swift in Sources */, 0877D6541EF1E65600126865 /* Subscribe.swift in Sources */, 9BEEF07B1D05631500FC52B3 /* AdvPreferencesWindowController.swift in Sources */, diff --git a/ShadowsocksX-NG/Subscribe.swift b/ShadowsocksX-NG/Subscribe.swift index 2021b4b..0893ffb 100644 --- a/ShadowsocksX-NG/Subscribe.swift +++ b/ShadowsocksX-NG/Subscribe.swift @@ -12,6 +12,7 @@ import Alamofire class Subscribe: NSObject{ var subscribeFeed = "" + var isActive = true var profileMgr: ServerProfileManager! init(initUrlString:String){ @@ -23,12 +24,20 @@ class Subscribe: NSObject{ func setFeed(newFeed: String){ subscribeFeed = newFeed } + func diactivateSubscribe(){ + isActive = false + } + func activateSubscribe(){ + isActive = true + } func updateServerFromFeed(){ + if (!isActive){ return } Alamofire.request(subscribeFeed) .responseString { response in if response.result.isSuccess { if let v = response.result.value { + // HERE DO the loop and check things IF exist update; if Duplicated skip print(v) let profile = ServerProfile() profile.remark = "New Server".localized @@ -37,7 +46,7 @@ class Subscribe: NSObject{ } } else{ - // res failed + // res failed pushNotification print(response.result) } } diff --git a/ShadowsocksX-NG/SubscribeManager.swift b/ShadowsocksX-NG/SubscribeManager.swift new file mode 100644 index 0000000..01d7d33 --- /dev/null +++ b/ShadowsocksX-NG/SubscribeManager.swift @@ -0,0 +1,37 @@ +// +// SubscribeManager.swift +// ShadowsocksX-NG +// +// Created by 秦宇航 on 2017/6/19. +// Copyright © 2017年 qiuyuzhou. All rights reserved. +// + +import Foundation + +class SubscribeManager:NSObject{ + static let instance:SubscribeManager = SubscribeManager() + + var subscribes:[Subscribe] + + fileprivate override init() { + subscribes = [Subscribe]() + + let defaults = UserDefaults.standard + if let _profiles = defaults.array(forKey: "Subscribe") { + for _profile in _profiles { + let profile = Subscribe(initUrlString: (_profile as AnyObject).url) + subscribes.append(profile) + + } + } + } + func addSubscribe(oneSubscribe: Subscribe) -> Bool { + subscribes.append(oneSubscribe) + let defaults = UserDefaults.standard + defaults.set(subscribes, forKey: "Subscribe") + return true + } + func deleteSubscribe(oneSubscribe: Subscribe) -> Bool { + return true + } +} diff --git a/ShadowsocksX-NG/SubscribePreferenceWindowController.xib b/ShadowsocksX-NG/SubscribePreferenceWindowController.xib index fa40ece..1b5b000 100644 --- a/ShadowsocksX-NG/SubscribePreferenceWindowController.xib +++ b/ShadowsocksX-NG/SubscribePreferenceWindowController.xib @@ -1,5 +1,5 @@ - + @@ -9,7 +9,6 @@ - @@ -25,27 +24,111 @@ - + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +