Browse Source

add a timer to retrieve the network list every second.

Grant Limberg 9 years ago
parent
commit
bae0060552
1 changed files with 31 additions and 20 deletions
  1. 31 20
      ZeroTier One/ShowNetworksViewController.swift

+ 31 - 20
ZeroTier One/ShowNetworksViewController.swift

@@ -14,6 +14,9 @@ class ShowNetworksViewController: NSViewController, NSTableViewDelegate, NSTable
 
 
     var networkList: [Network] = [Network]()
     var networkList: [Network] = [Network]()
 
 
+
+    var timer: NSTimer? = nil
+
     override func viewDidLoad() {
     override func viewDidLoad() {
         super.viewDidLoad()
         super.viewDidLoad()
         // Do view setup here.
         // Do view setup here.
@@ -45,10 +48,36 @@ class ShowNetworksViewController: NSViewController, NSTableViewDelegate, NSTable
     override func viewWillAppear() {
     override func viewWillAppear() {
         super.viewWillAppear()
         super.viewWillAppear()
 
 
+        updateNetworkInfo()
+
+        self.timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: #selector(updateNetworkInfo), userInfo: nil, repeats: true)
+    }
+
+    override func viewWillDisappear() {
+        super.viewWillDisappear()
+
+        self.timer?.invalidate()
+
         let filePath = dataFile()
         let filePath = dataFile()
+        NSKeyedArchiver.archiveRootObject(self.networkList, toFile: filePath)
+    }
+
+    func deleteNetworkFromList(nwid: String) {
+        if let nwid = UInt64(nwid, radix: 16) {
+            let index = findNetworkWithID(nwid)
+
+            if index != NSNotFound {
+                networkList.removeAtIndex(index)
+                tableView.reloadData()
+            }
+        }
+    }
+
+    func updateNetworkInfo() {
+        let filePath = self.dataFile()
 
 
         if NSFileManager.defaultManager().fileExistsAtPath(filePath) {
         if NSFileManager.defaultManager().fileExistsAtPath(filePath) {
-            networkList = NSKeyedUnarchiver.unarchiveObjectWithFile(filePath) as! [Network]
+            self.networkList = NSKeyedUnarchiver.unarchiveObjectWithFile(filePath) as! [Network]
 
 
             ServiceCom.getNetworkList() { (networkList) -> Void in
             ServiceCom.getNetworkList() { (networkList) -> Void in
 
 
@@ -85,7 +114,7 @@ class ShowNetworksViewController: NSViewController, NSTableViewDelegate, NSTable
 
 
                         return false
                         return false
                     })
                     })
-                    
+
                     self.networkList = networkList
                     self.networkList = networkList
                     self.tableView.reloadData()
                     self.tableView.reloadData()
                 }
                 }
@@ -93,24 +122,6 @@ class ShowNetworksViewController: NSViewController, NSTableViewDelegate, NSTable
         }
         }
     }
     }
 
 
-    override func viewWillDisappear() {
-        super.viewWillDisappear()
-
-        let filePath = dataFile()
-        NSKeyedArchiver.archiveRootObject(self.networkList, toFile: filePath)
-    }
-
-    func deleteNetworkFromList(nwid: String) {
-        if let nwid = UInt64(nwid, radix: 16) {
-            let index = findNetworkWithID(nwid)
-
-            if index != NSNotFound {
-                networkList.removeAtIndex(index)
-                tableView.reloadData()
-            }
-        }
-    }
-
     // NSTableViewDataSource
     // NSTableViewDataSource
 
 
     func numberOfRowsInTableView(tableView: NSTableView) -> Int {
     func numberOfRowsInTableView(tableView: NSTableView) -> Int {