@@ -12,17 +12,16 @@ import UIKit
1212class ViewController : UIViewController , UITableViewDelegate , UITableViewDataSource {
1313
1414 @IBOutlet var tableView : UITableView !
15+ @IBOutlet var IPv4filterSwitch : UISwitch !
16+ @IBOutlet var IPv6filterSwitch : UISwitch !
17+
1518
1619 var interfaces = Interface . allInterfaces ( )
1720
1821 override func viewDidLoad( ) {
1922 super. viewDidLoad ( )
2023
21- interfaces = Interface . allInterfaces ( )
22- interfaces. sort {
23- if $0. description == $1. description { return $0. address! < $1. address! }
24- return $0. description < $1. description
25- }
24+ refreshAndSortAndFilterData ( )
2625 }
2726
2827
@@ -33,7 +32,6 @@ class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSour
3332
3433
3534 func tableView( _ tableView: UITableView , numberOfRowsInSection section: Int ) -> Int {
36- print ( interfaces. count)
3735 return interfaces. count
3836 }
3937
@@ -49,15 +47,42 @@ class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSour
4947 return cell
5048 }
5149
50+ @IBAction func switchToggled( _ sender: UISwitch ) {
51+ print ( NSURL ( fileURLWithPath: " \( #file) " ) . lastPathComponent!, " \( #function) " )
52+ refreshAndSortAndFilterData ( )
53+ self . tableView. reloadData ( )
54+ }
55+
5256
5357 // screen tap to refresh
5458 @IBAction func screenTappedTriggered( sender: AnyObject ) {
5559 print ( NSURL ( fileURLWithPath: " \( #file) " ) . lastPathComponent!, " \( #function) " )
60+ refreshAndSortAndFilterData ( )
61+ self . tableView. reloadData ( )
62+ }
63+
64+
65+ func refreshAndSortAndFilterData ( ) {
5666 interfaces = Interface . allInterfaces ( )
67+
68+ let IPv4Interfaces = interfaces. filter { $0. family == . ipv4 }
69+ let IPv6Interfaces = interfaces. filter { $0. family == . ipv6 }
70+
71+ print ( " \( IPv4Interfaces . count) \( IPv6Interfaces . count) \( interfaces. count) " )
72+
73+ interfaces = [ ]
74+ if ( IPv4filterSwitch . isOn) {
75+ interfaces = interfaces + IPv4Interfaces
76+ }
77+ if ( IPv6filterSwitch . isOn) {
78+ interfaces = interfaces + IPv6Interfaces
79+ }
80+
81+ print ( interfaces. count)
82+
5783 interfaces. sort {
5884 if $0. description == $1. description { return $0. address! < $1. address! }
5985 return $0. description < $1. description
6086 }
61- self . tableView. reloadData ( )
6287 }
6388}
0 commit comments