Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Preference Panels and Web Interface

  • Loading branch information...
commit 1db2d6c573b3b4f458d7952d4d1473a9c2d02f01 1 parent 7f7d5fc
@ccp0101 authored
Showing with 3,049 additions and 407 deletions.
  1. +69 −4 iTransmission.xcodeproj/project.pbxproj
  2. +4 −0 iTransmission/Defaults.plist
  3. +2 −0  iTransmission/ITAppDelegate.h
  4. +15 −4 iTransmission/ITAppDelegate.m
  5. +14 −0 iTransmission/ITAppPreferencePanelViewController.h
  6. +72 −0 iTransmission/ITAppPreferencePanelViewController.m
  7. +1 −1  iTransmission/ITInfoViewController.m
  8. +33 −0 iTransmission/ITNetworkSwitcher.h
  9. +129 −0 iTransmission/ITNetworkSwitcher.m
  10. +39 −0 iTransmission/ITPrefViewController.h
  11. +192 −0 iTransmission/ITPrefViewController.m
  12. +1,502 −0 iTransmission/ITPrefViewController.xib
  13. +20 −0 iTransmission/ITPreferencePanelViewController.h
  14. +180 −0 iTransmission/ITPreferencePanelViewController.m
  15. +3 −0  iTransmission/ITPrefsController.h
  16. +15 −0 iTransmission/ITPrefsController.m
  17. +7 −6 iTransmission/ITStatusBarController.xib
  18. +1 −0  iTransmission/ITTorrent.h
  19. +8 −2 iTransmission/ITTorrent.m
  20. +9 −8 iTransmission/ITTransfersViewController.m
  21. +1 −1  iTransmission/ITWebViewController.m
  22. +89 −0 iTransmission/Reachability.h
  23. +273 −0 iTransmission/Reachability.m
  24. +29 −0 iTransmission/SVWebViewController/SVModalWebViewController.h
  25. +52 −0 iTransmission/SVWebViewController/SVModalWebViewController.m
  26. +6 −19 iTransmission/SVWebViewController/SVWebViewController.h
  27. +282 −360 iTransmission/SVWebViewController/SVWebViewController.m
  28. +2 −2 iTransmission/iTransmission-Info.plist
View
73 iTransmission.xcodeproj/project.pbxproj
@@ -31,7 +31,7 @@
7E137CA814529D710030DC13 /* ITSidebarItemCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E137CA714529D700030DC13 /* ITSidebarItemCell.m */; };
7E137CAD1452A22D0030DC13 /* ITWebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E137CAC1452A22C0030DC13 /* ITWebViewController.m */; };
7E137CB21452A23F0030DC13 /* SVWebViewController.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 7E137CAF1452A23F0030DC13 /* SVWebViewController.bundle */; };
- 7E137CB31452A23F0030DC13 /* SVWebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E137CB11452A23F0030DC13 /* SVWebViewController.m */; };
+ 7E137CB31452A23F0030DC13 /* SVWebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E137CB11452A23F0030DC13 /* SVWebViewController.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
7E137CB51452A3050030DC13 /* MessageUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E137CB41452A3050030DC13 /* MessageUI.framework */; };
7E137CB71452A62D0030DC13 /* browser-icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E137CB61452A62C0030DC13 /* browser-icon.png */; };
7E137CBA1452B1A60030DC13 /* ITRoundCornerView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E137CB91452B1A60030DC13 /* ITRoundCornerView.m */; };
@@ -55,6 +55,12 @@
7E14E9BA14516351003520DA /* ITSidebarController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E14E9B914516351003520DA /* ITSidebarController.m */; };
7E14E9C0145163E1003520DA /* ITSidebar.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E14E9BF145163E1003520DA /* ITSidebar.m */; };
7E14E9C214516408003520DA /* ITSidebar.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7E14E9C114516408003520DA /* ITSidebar.xib */; };
+ 7E217D60148E1F2600C7BD50 /* ITPreferencePanelViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E217D5E148E1F2600C7BD50 /* ITPreferencePanelViewController.h */; };
+ 7E217D64148E238000C7BD50 /* ITAppPreferencePanelViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E217D62148E238000C7BD50 /* ITAppPreferencePanelViewController.h */; };
+ 7E217D67148E27EF00C7BD50 /* ITPrefViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7E217D66148E27EF00C7BD50 /* ITPrefViewController.xib */; };
+ 7E217D6A148E282B00C7BD50 /* ITPrefViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E217D68148E282A00C7BD50 /* ITPrefViewController.h */; };
+ 7E217D6B148E282B00C7BD50 /* ITPrefViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E217D69148E282A00C7BD50 /* ITPrefViewController.m */; };
+ 7E217D71148E313300C7BD50 /* web in Resources */ = {isa = PBXBuildFile; fileRef = 7E217D70148E313300C7BD50 /* web */; };
7E246D4A144F076D008A8586 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E246D49144F076D008A8586 /* UIKit.framework */; };
7E246D4C144F076D008A8586 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E246D4B144F076D008A8586 /* Foundation.framework */; };
7E246D4E144F076D008A8586 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E246D4D144F076D008A8586 /* CoreGraphics.framework */; };
@@ -66,6 +72,8 @@
7E2D9922146BF34300736336 /* LoggerClient.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E2D9920146BF34300736336 /* LoggerClient.m */; };
7E2D9929146BF63400736336 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E2D9928146BF63400736336 /* CFNetwork.framework */; };
7E2D992B146BF66000736336 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E2D992A146BF66000736336 /* SystemConfiguration.framework */; };
+ 7E321F9F148E1B22001C8E2A /* SVModalWebViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E321F9D148E1B22001C8E2A /* SVModalWebViewController.h */; };
+ 7E321FA0148E1B22001C8E2A /* SVModalWebViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E321F9E148E1B22001C8E2A /* SVModalWebViewController.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
7E3F616F14580BC300EC26F7 /* ITShadowView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E3F616E14580BC300EC26F7 /* ITShadowView.m */; };
7E61E9DC14559A770056B2EA /* ITInspectorBaseViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E61E9DB14559A770056B2EA /* ITInspectorBaseViewController.m */; };
7E61E9E61455A6470056B2EA /* ITTransferCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7E61E9E51455A6460056B2EA /* ITTransferCell.xib */; };
@@ -86,6 +94,11 @@
7E6BCA8D146C23260087A8F6 /* ITFileInspectorCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7E6BCA8C146C23260087A8F6 /* ITFileInspectorCell.xib */; };
7E6BCA90146C233D0087A8F6 /* ITFileInspectorCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E6BCA8F146C233D0087A8F6 /* ITFileInspectorCell.m */; };
7E6BCA9E146C37D70087A8F6 /* UIAlertView+Lazy.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E6BCA9D146C37D50087A8F6 /* UIAlertView+Lazy.m */; };
+ 7E856DA314919F4C00F9E912 /* ITNetworkSwitcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E856DA114919F4C00F9E912 /* ITNetworkSwitcher.h */; };
+ 7E856DA414919F4C00F9E912 /* ITNetworkSwitcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E856DA214919F4C00F9E912 /* ITNetworkSwitcher.m */; };
+ 7E856DA81491A00800F9E912 /* Reachability.h in Headers */ = {isa = PBXBuildFile; fileRef = 7E856DA61491A00800F9E912 /* Reachability.h */; };
+ 7E856DA91491A00800F9E912 /* Reachability.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E856DA71491A00800F9E912 /* Reachability.m */; settings = {COMPILER_FLAGS = "-fno-objc-arc"; }; };
+ 7E856DAB1491A64A00F9E912 /* Defaults.plist in Resources */ = {isa = PBXBuildFile; fileRef = 7E856DAA1491A64A00F9E912 /* Defaults.plist */; };
7E93E014145272F5001DF159 /* ITNavigationController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7E93E013145272F5001DF159 /* ITNavigationController.m */; };
7E93E017145278B9001DF159 /* 33-cabinet.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E93E015145278B9001DF159 /* 33-cabinet.png */; };
7E93E018145278B9001DF159 /* 33-cabinet@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 7E93E016145278B9001DF159 /* 33-cabinet@2x.png */; };
@@ -186,6 +199,14 @@
7E14E9BE145163E1003520DA /* ITSidebar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ITSidebar.h; sourceTree = "<group>"; };
7E14E9BF145163E1003520DA /* ITSidebar.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ITSidebar.m; sourceTree = "<group>"; };
7E14E9C114516408003520DA /* ITSidebar.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ITSidebar.xib; sourceTree = "<group>"; };
+ 7E217D5E148E1F2600C7BD50 /* ITPreferencePanelViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ITPreferencePanelViewController.h; sourceTree = "<group>"; };
+ 7E217D5F148E1F2600C7BD50 /* ITPreferencePanelViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ITPreferencePanelViewController.m; sourceTree = "<group>"; };
+ 7E217D62148E238000C7BD50 /* ITAppPreferencePanelViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ITAppPreferencePanelViewController.h; sourceTree = "<group>"; };
+ 7E217D63148E238000C7BD50 /* ITAppPreferencePanelViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ITAppPreferencePanelViewController.m; sourceTree = "<group>"; };
+ 7E217D66148E27EF00C7BD50 /* ITPrefViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ITPrefViewController.xib; sourceTree = "<group>"; };
+ 7E217D68148E282A00C7BD50 /* ITPrefViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ITPrefViewController.h; sourceTree = "<group>"; };
+ 7E217D69148E282A00C7BD50 /* ITPrefViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ITPrefViewController.m; sourceTree = "<group>"; };
+ 7E217D70148E313300C7BD50 /* web */ = {isa = PBXFileReference; lastKnownFileType = folder; path = web; sourceTree = "<group>"; };
7E246D45144F076D008A8586 /* iTransmission.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = iTransmission.app; sourceTree = BUILT_PRODUCTS_DIR; };
7E246D49144F076D008A8586 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
7E246D4B144F076D008A8586 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
@@ -204,6 +225,8 @@
7E2D9921146BF34300736336 /* LoggerCommon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; lineEnding = 0; path = LoggerCommon.h; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objcpp; };
7E2D9928146BF63400736336 /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; sourceTree = SDKROOT; };
7E2D992A146BF66000736336 /* SystemConfiguration.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SystemConfiguration.framework; path = System/Library/Frameworks/SystemConfiguration.framework; sourceTree = SDKROOT; };
+ 7E321F9D148E1B22001C8E2A /* SVModalWebViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVModalWebViewController.h; sourceTree = "<group>"; };
+ 7E321F9E148E1B22001C8E2A /* SVModalWebViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SVModalWebViewController.m; sourceTree = "<group>"; };
7E3F616D14580BC300EC26F7 /* ITShadowView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ITShadowView.h; sourceTree = "<group>"; };
7E3F616E14580BC300EC26F7 /* ITShadowView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ITShadowView.m; sourceTree = "<group>"; };
7E61E9DA14559A770056B2EA /* ITInspectorBaseViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ITInspectorBaseViewController.h; sourceTree = "<group>"; };
@@ -237,6 +260,11 @@
7E6BCA8F146C233D0087A8F6 /* ITFileInspectorCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ITFileInspectorCell.m; sourceTree = "<group>"; };
7E6BCA9C146C37D30087A8F6 /* UIAlertView+Lazy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIAlertView+Lazy.h"; sourceTree = "<group>"; };
7E6BCA9D146C37D50087A8F6 /* UIAlertView+Lazy.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIAlertView+Lazy.m"; sourceTree = "<group>"; };
+ 7E856DA114919F4C00F9E912 /* ITNetworkSwitcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ITNetworkSwitcher.h; sourceTree = "<group>"; };
+ 7E856DA214919F4C00F9E912 /* ITNetworkSwitcher.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ITNetworkSwitcher.m; sourceTree = "<group>"; };
+ 7E856DA61491A00800F9E912 /* Reachability.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Reachability.h; sourceTree = "<group>"; };
+ 7E856DA71491A00800F9E912 /* Reachability.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Reachability.m; sourceTree = "<group>"; };
+ 7E856DAA1491A64A00F9E912 /* Defaults.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Defaults.plist; sourceTree = "<group>"; };
7E93E012145272F5001DF159 /* ITNavigationController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ITNavigationController.h; sourceTree = "<group>"; };
7E93E013145272F5001DF159 /* ITNavigationController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ITNavigationController.m; sourceTree = "<group>"; };
7E93E015145278B9001DF159 /* 33-cabinet.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "33-cabinet.png"; sourceTree = "<group>"; };
@@ -258,7 +286,7 @@
7EF00983146E634200AD1BA5 /* Icon-Small.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-Small.png"; sourceTree = "<group>"; };
7EF00984146E634200AD1BA5 /* Icon-Small@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon-Small@2x.png"; sourceTree = "<group>"; };
7EF00985146E634200AD1BA5 /* Icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Icon.png; sourceTree = "<group>"; };
- 7EF00986146E634200AD1BA5 /* Icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Icon@2x.png"; sourceTree = "<group>"; };
+ 7EF00986146E634200AD1BA5 /* Icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "Icon@2x.png"; path = "Icons/Icon@2x.png"; sourceTree = "<group>"; };
7EF0098D146E84C200AD1BA5 /* transfers-icon-original.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "transfers-icon-original.png"; sourceTree = "<group>"; };
7EF0098E146E84C200AD1BA5 /* transfers-icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "transfers-icon.png"; sourceTree = "<group>"; };
7EF0098F146E84C300AD1BA5 /* transfers-icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "transfers-icon@2x.png"; sourceTree = "<group>"; };
@@ -307,6 +335,8 @@
7E137CAE1452A23F0030DC13 /* SVWebViewController */ = {
isa = PBXGroup;
children = (
+ 7E321F9D148E1B22001C8E2A /* SVModalWebViewController.h */,
+ 7E321F9E148E1B22001C8E2A /* SVModalWebViewController.m */,
7E137CAF1452A23F0030DC13 /* SVWebViewController.bundle */,
7E137CB01452A23F0030DC13 /* SVWebViewController.h */,
7E137CB11452A23F0030DC13 /* SVWebViewController.m */,
@@ -339,10 +369,23 @@
7E137D0D145311830030DC13 /* ITFileListNode.h */,
7E137D0E145311840030DC13 /* ITFileListNode.m */,
7E137D12145314650030DC13 /* NSStates.h */,
+ 7E856DA114919F4C00F9E912 /* ITNetworkSwitcher.h */,
+ 7E856DA214919F4C00F9E912 /* ITNetworkSwitcher.m */,
);
name = transmission;
sourceTree = "<group>";
};
+ 7E217D58148E1EDE00C7BD50 /* Settings */ = {
+ isa = PBXGroup;
+ children = (
+ 7E217D5E148E1F2600C7BD50 /* ITPreferencePanelViewController.h */,
+ 7E217D5F148E1F2600C7BD50 /* ITPreferencePanelViewController.m */,
+ 7E217D62148E238000C7BD50 /* ITAppPreferencePanelViewController.h */,
+ 7E217D63148E238000C7BD50 /* ITAppPreferencePanelViewController.m */,
+ );
+ name = Settings;
+ sourceTree = "<group>";
+ };
7E246D3A144F076C008A8586 = {
isa = PBXGroup;
children = (
@@ -378,6 +421,8 @@
7E246D4F144F076D008A8586 /* iTransmission */ = {
isa = PBXGroup;
children = (
+ 7E856DAA1491A64A00F9E912 /* Defaults.plist */,
+ 7E217D58148E1EDE00C7BD50 /* Settings */,
7E137CFD1453098C0030DC13 /* NSArray+iTransmissionUtility.h */,
7E137CFE1453098E0030DC13 /* NSArray+iTransmissionUtility.m */,
7E137CD81452E3090030DC13 /* Info */,
@@ -385,6 +430,8 @@
7E93E015145278B9001DF159 /* 33-cabinet.png */,
7E93E016145278B9001DF159 /* 33-cabinet@2x.png */,
7EF0098D146E84C200AD1BA5 /* transfers-icon-original.png */,
+ 7E856DA61491A00800F9E912 /* Reachability.h */,
+ 7E856DA71491A00800F9E912 /* Reachability.m */,
7EF0098E146E84C200AD1BA5 /* transfers-icon.png */,
7EF0098F146E84C300AD1BA5 /* transfers-icon@2x.png */,
7EF00993146E84F400AD1BA5 /* about-icon@2x.png */,
@@ -471,7 +518,12 @@
7EEA898A146C121A006EF611 /* ITTimerListener.h */,
7E6BCA9C146C37D30087A8F6 /* UIAlertView+Lazy.h */,
7E6BCA9D146C37D50087A8F6 /* UIAlertView+Lazy.m */,
+ 7E217D70148E313300C7BD50 /* web */,
7EF00980146E634200AD1BA5 /* Icons */,
+ 7E217D68148E282A00C7BD50 /* ITPrefViewController.h */,
+ 7E217D69148E282A00C7BD50 /* ITPrefViewController.m */,
+ 7EF00986146E634200AD1BA5 /* Icon@2x.png */,
+ 7E217D66148E27EF00C7BD50 /* ITPrefViewController.xib */,
);
path = iTransmission;
sourceTree = "<group>";
@@ -539,7 +591,6 @@
7EF00983146E634200AD1BA5 /* Icon-Small.png */,
7EF00984146E634200AD1BA5 /* Icon-Small@2x.png */,
7EF00985146E634200AD1BA5 /* Icon.png */,
- 7EF00986146E634200AD1BA5 /* Icon@2x.png */,
);
path = Icons;
sourceTree = "<group>";
@@ -551,6 +602,12 @@
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
+ 7E321F9F148E1B22001C8E2A /* SVModalWebViewController.h in Headers */,
+ 7E217D60148E1F2600C7BD50 /* ITPreferencePanelViewController.h in Headers */,
+ 7E217D64148E238000C7BD50 /* ITAppPreferencePanelViewController.h in Headers */,
+ 7E217D6A148E282B00C7BD50 /* ITPrefViewController.h in Headers */,
+ 7E856DA314919F4C00F9E912 /* ITNetworkSwitcher.h in Headers */,
+ 7E856DA81491A00800F9E912 /* Reachability.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -638,6 +695,9 @@
7EF0099A146E870C00AD1BA5 /* Icon-iPad.png in Resources */,
7EF0099C146E872200AD1BA5 /* icon-original-large.png in Resources */,
7EF009A5146E8A3900AD1BA5 /* iTunesMetadata.plist in Resources */,
+ 7E217D67148E27EF00C7BD50 /* ITPrefViewController.xib in Resources */,
+ 7E217D71148E313300C7BD50 /* web in Resources */,
+ 7E856DAB1491A64A00F9E912 /* Defaults.plist in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -655,7 +715,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "if [ $BUILD_STYLE != \"AdHoc_Distribution\" ]; then\nexit\nfi\n\n# remove previous files\n/bin/rm -rf $CONFIGURATION_BUILD_DIR/Payload\n/bin/rm -rf $CONFIGURATION_BUILD_DIR/iTunesArtwork\n\n# set build number\nbuildNumber=$(/usr/libexec/PlistBuddy -c \"Print CFBundleVersion\" iTransmission/iTransmission-Info.plist)\nbuildNumber=$(($buildNumber + 1))\n/usr/libexec/PlistBuddy -c \"Set :CFBundleVersion $buildNumber\" iTransmission/iTransmission-Info.plist\n/bin/cp iTransmission/iTransmission-Info.plist $CONFIGURATION_BUILD_DIR/iTransmission.app\n\n# compress application.\n/bin/mkdir -p $CONFIGURATION_BUILD_DIR/Payload\n/bin/cp -R $CONFIGURATION_BUILD_DIR/iTransmission.app $CONFIGURATION_BUILD_DIR/Payload\n/bin/cp iTransmission/Icons/icon-original-large.png $CONFIGURATION_BUILD_DIR/iTunesArtwork\n/bin/cp iTransmission/iTunesMetadata.plist $CONFIGURATION_BUILD_DIR/iTunesMetadata.plist\n/usr/libexec/PlistBuddy -c \"Set :bundleVersion $buildNumber\" iTransmission/iTransmission-Info.plist\n\ncd $CONFIGURATION_BUILD_DIR\nDATE=\"`/bin/date +'%Y%m%d'`\"\n/usr/bin/zip -r iTransmission_b${buildNumber}.ipa Payload iTunesArtwork iTunesMetadata.plist\nopen $CONFIGURATION_BUILD_DIR -a Finder";
+ shellScript = "if [ $BUILD_STYLE != \"AdHoc_Distribution\" ]; then\nexit\nfi\n\n# remove previous files\n/bin/rm -rf $CONFIGURATION_BUILD_DIR/Payload\n/bin/rm -rf $CONFIGURATION_BUILD_DIR/iTunesArtwork\n\n/bin/mkdir -p $CONFIGURATION_BUILD_DIR/Payload\n/bin/cp -R $CONFIGURATION_BUILD_DIR/iTransmission.app $CONFIGURATION_BUILD_DIR/Payload\n/bin/cp iTransmission/Icons/icon-original-large.png $CONFIGURATION_BUILD_DIR/iTunesArtwork\n/bin/cp iTransmission/iTunesMetadata.plist $CONFIGURATION_BUILD_DIR/iTunesMetadata.plist\nrm $CONFIGURATION_BUILD_DIR/Payload/iTransmission.app/iTunesMetadata.plist\n\n# set build number\nbuildNumber=$(/usr/libexec/PlistBuddy -c \"Print CFBundleVersion\" iTransmission/iTransmission-Info.plist)\nbuildNumber=$(($buildNumber + 1))\n\n/usr/libexec/PlistBuddy -c \"Set :CFBundleVersion $buildNumber\" iTransmission/iTransmission-Info.plist\n/usr/libexec/PlistBuddy -c \"Set :CFBundleShortVersionString 2.$buildNumber\" iTransmission/iTransmission-Info.plist\ncp -Rf iTransmission/iTransmission-Info.plist $CONFIGURATION_BUILD_DIR/Payload/iTransmission.app\n\n/usr/libexec/PlistBuddy -c \"Set :CFBundleVersion $buildNumber\" iTransmission/iTransmission-Info.plist\n/usr/libexec/PlistBuddy -c \"Set :CFBundleShortVersionString 2.$buildNumber\" iTransmission/iTransmission-Info.plist\ncp -Rf iTransmission/iTransmission-Info.plist $CONFIGURATION_BUILD_DIR/Payload/iTransmission.app\n\ncd $CONFIGURATION_BUILD_DIR\nDATE=\"`/bin/date +'%Y%m%d'`\"\n/usr/libexec/PlistBuddy -c \"Set :bundleVersion 2.$buildNumber\" iTunesMetadata.plist\n/usr/libexec/PlistBuddy -c \"Set :CFBundleVersion $buildNumber\" $CONFIGURATION_BUILD_DIR/Payload/iTransmission.app/Info.plist\n/usr/libexec/PlistBuddy -c \"Set :CFBundleShortVersionString 2.$buildNumber\" $CONFIGURATION_BUILD_DIR/Payload/iTransmission.app/Info.plist\n/usr/bin/zip -r iTransmission_b${buildNumber}.ipa Payload iTunesArtwork iTunesMetadata.plist\nopen $CONFIGURATION_BUILD_DIR -a Finder";
};
/* End PBXShellScriptBuildPhase section */
@@ -718,6 +778,10 @@
7E2D9922146BF34300736336 /* LoggerClient.m in Sources */,
7E6BCA90146C233D0087A8F6 /* ITFileInspectorCell.m in Sources */,
7E6BCA9E146C37D70087A8F6 /* UIAlertView+Lazy.m in Sources */,
+ 7E321FA0148E1B22001C8E2A /* SVModalWebViewController.m in Sources */,
+ 7E217D6B148E282B00C7BD50 /* ITPrefViewController.m in Sources */,
+ 7E856DA414919F4C00F9E912 /* ITNetworkSwitcher.m in Sources */,
+ 7E856DA91491A00800F9E912 /* Reachability.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -884,6 +948,7 @@
7EF009A0146E87EC00AD1BA5 /* Release */,
);
defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
View
4 iTransmission/Defaults.plist
@@ -174,6 +174,10 @@
<true/>
<key>PauseOnLaunch</key>
<true/>
+ <key>UseWiFi</key>
+ <true/>
+ <key>UseCellular</key>
+ <true/>
<key>StatusLabel</key>
<string>RatioTotal</string>
<key>SUEnableAutomaticChecks</key>
View
2  iTransmission/ITAppDelegate.h
@@ -11,6 +11,7 @@
#import "ITSidebarController.h"
#import "ITController.h"
#import "ITTimerListener.h"
+#import "ITNetworkSwitcher.h"
@interface ITAppDelegate : UIResponder <UIApplicationDelegate>
@@ -20,6 +21,7 @@
@property (strong, nonatomic) ITSidebarController *sidebarController;
@property (nonatomic, strong) NSMutableArray *timerEventListeners;
@property (nonatomic, strong) NSTimer *persistentTimer;
+@property (strong, nonatomic) ITNetworkSwitcher *networkSwitcher;
+ (id)sharedDelegate;
- (void)startTransmission;
View
19 iTransmission/ITAppDelegate.m
@@ -11,8 +11,10 @@
#import "ITNavigationController.h"
#import "ITTransfersViewController.h"
#import "ITWebViewController.h"
+#import "ITPreferencePanelViewController.h"
#import "ITInfoViewController.h"
#import "ITExperimentalViewController.h"
+#import "ITPrefViewController.h"
@implementation ITAppDelegate
@@ -22,6 +24,8 @@ @implementation ITAppDelegate
@synthesize controller = _controller;
@synthesize persistentTimer = _persistentTimer;
@synthesize timerEventListeners = _timerEventListeners;
+@synthesize networkSwitcher = _networkSwitcher;
+
+ (id)sharedDelegate
{
@@ -30,6 +34,9 @@ + (id)sharedDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
+ NSString *webInterfacePath = [[NSBundle mainBundle] pathForResource:@"web" ofType:nil];
+ setenv("TRANSMISSION_WEB_HOME", [webInterfacePath UTF8String], 1);
+
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor blackColor];
@@ -42,16 +49,19 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(
NSMutableArray *viewControllers = [NSMutableArray array];
[viewControllers addObject:[[ITNavigationController alloc] initWithRootViewController:[[ITTransfersViewController alloc] init]]];
// [viewControllers addObject:[[ITNavigationController alloc] initWithRootViewController:[[ITWebViewController alloc] init]]];
- [viewControllers addObject:[[ITNavigationController alloc] initWithRootViewController:[[ITInfoViewController alloc] initWithPageName:@"about"]]];
// [viewControllers addObject:[[ITExperimentalViewController alloc] init]];
-
+ [viewControllers addObject:[[ITNavigationController alloc] initWithRootViewController:[[ITPrefViewController alloc] init]]];
+ [viewControllers addObject:[[ITNavigationController alloc] initWithRootViewController:[[ITInfoViewController alloc] initWithPageName:@"about"]]];
+
self.sidebarController = [[ITSidebarController alloc] init];
self.sidebarController.viewControllers = viewControllers;
self.statusBarController.contentViewController = self.sidebarController;
+ self.networkSwitcher = [[ITNetworkSwitcher alloc] init];
+
[self performSelectorInBackground:@selector(startTransmission) withObject:nil];
- [self performSelector:@selector(_test) withObject:nil afterDelay:3.0f];
+// [self performSelector:@selector(_test) withObject:nil afterDelay:3.0f];
[self.window makeKeyAndVisible];
return YES;
@@ -70,7 +80,7 @@ - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceAppl
- (void)_test
{
-// [(id)self.statusBarController.contentViewController slideContainerViewToRightAnimated:YES];
+ [(id)self.statusBarController.contentViewController slideContainerViewToRightAnimated:YES];
// [self.controller openFiles:[NSArray arrayWithObject:[[NSBundle mainBundle] pathForResource:@"ubuntu-11.10-desktop-i386.iso" ofType:@"torrent"]] addType:ITAddTypeManual];
}
@@ -143,6 +153,7 @@ - (void)timerFired:(id)sender
- (void)applicationWillTerminate:(UIApplication *)application
{
+ self.networkSwitcher = nil;
}
@end
View
14 iTransmission/ITAppPreferencePanelViewController.h
@@ -0,0 +1,14 @@
+//
+// ITAppPreferencePanelViewController.h
+// iTransmission
+//
+// Created by Mike Chen on 12/6/11.
+// Copyright (c) 2011 __MyCompanyName__. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+#import "ITPreferencePanelViewController.h"
+
+@interface ITAppPreferencePanelViewController : ITPreferencePanelViewController
+
+@end
View
72 iTransmission/ITAppPreferencePanelViewController.m
@@ -0,0 +1,72 @@
+//
+// ITAppPreferencePanelViewController.m
+// iTransmission
+//
+// Created by Mike Chen on 12/6/11.
+// Copyright (c) 2011 __MyCompanyName__. All rights reserved.
+//
+
+#import "ITAppPreferencePanelViewController.h"
+
+
+@implementation ITAppPreferencePanelViewController
+
+- (void)didReceiveMemoryWarning
+{
+ // Releases the view if it doesn't have a superview.
+ [super didReceiveMemoryWarning];
+
+ // Release any cached data, images, etc that aren't in use.
+}
+
+#pragma mark - View lifecycle
+
+- (void)viewDidLoad
+{
+ [super viewDidLoad];
+
+ // Uncomment the following line to preserve selection between presentations.
+ // self.clearsSelectionOnViewWillAppear = NO;
+
+ // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
+ // self.navigationItem.rightBarButtonItem = self.editButtonItem;
+}
+
+- (void)setupTableContent
+{
+}
+
+- (void)viewDidUnload
+{
+ [super viewDidUnload];
+ // Release any retained subviews of the main view.
+ // e.g. self.myOutlet = nil;
+}
+
+- (void)viewWillAppear:(BOOL)animated
+{
+ [super viewWillAppear:animated];
+}
+
+- (void)viewDidAppear:(BOOL)animated
+{
+ [super viewDidAppear:animated];
+}
+
+- (void)viewWillDisappear:(BOOL)animated
+{
+ [super viewWillDisappear:animated];
+}
+
+- (void)viewDidDisappear:(BOOL)animated
+{
+ [super viewDidDisappear:animated];
+}
+
+- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
+{
+ // Return YES for supported orientations
+ return (interfaceOrientation == UIInterfaceOrientationPortrait);
+}
+
+@end
View
2  iTransmission/ITInfoViewController.m
@@ -25,7 +25,7 @@ - (id)initWithPageName:(NSString*)p
self.pageName = p;
self.sidebarItem = [[ITSidebarItem alloc] init];
self.sidebarItem.title = @"About";
- self.sidebarItem.icon = [UIImage imageNamed:@"about-icon.png"];
+// self.sidebarItem.icon = [UIImage imageNamed:@"about-icon.png"];
}
return self;
}
View
33 iTransmission/ITNetworkSwitcher.h
@@ -0,0 +1,33 @@
+//
+// ITNetworkSwitcher.h
+// iTransmission
+//
+// Created by Mike Chen on 12/9/11.
+// Copyright (c) 2011 __MyCompanyName__. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import "Reachability.h"
+
+typedef enum _ITNetworkSwitcherPolicy {
+ kITDisableTorrentNetworkActivities = 1,
+ kITEnableTorrentNetworkActivities = 2,
+} ITNetworkSwitcherPolicy;
+
+#define kITNetworkNotReachableNotification @"kITNetworkNotReachableNotification"
+#define kITUsingCellularNetworkNotification @"kITUsingCellularNetworkNotification"
+#define kITUsingWiFiNetworkNotification @"kITUsingWiFiNetworkNotification"
+#define kITNetworkPrefUseWiFiChangedNotification @"kITNetworkPrefUseWiFiChangedNotification"
+#define kITNetworkPrefUseMobileChangedNotification @"kITNetworkPrefUseMobileChangedNotification"
+#define kITNetworkSwitcherPolicyChangedNotification @"kITNetworkSwitcherPolicyChangedNotification"
+
+@interface ITNetworkSwitcher : NSObject
+@property (nonatomic, strong) Reachability *reachabilityHandle;
+@property (nonatomic, assign) NetworkStatus currentNetworkStatus;
+@property (nonatomic, assign, getter = canUseWiFiNetwork) BOOL useWiFiNetwork;
+@property (nonatomic, assign, getter = canUseMobileNetwork) BOOL useMobileNetwork;
+@property (nonatomic, assign) ITNetworkSwitcherPolicy enforcedPolicy;
++ (id)sharedNetworkSwitcher;
+- (void)reachabilityChangedNotification:(NSNotification*)notification;
+- (void)updatePolicyForNetworkStatus:(NetworkStatus)status;
+@end
View
129 iTransmission/ITNetworkSwitcher.m
@@ -0,0 +1,129 @@
+//
+// ITNetworkSwitcher.m
+// iTransmission
+//
+// Created by Mike Chen on 12/9/11.
+// Copyright (c) 2011 __MyCompanyName__. All rights reserved.
+//
+
+#import "ITNetworkSwitcher.h"
+#import "ITController.h"
+#import "ITTorrent.h"
+#import "ITAppDelegate.h"
+
+@implementation ITNetworkSwitcher
+@synthesize currentNetworkStatus;
+@synthesize reachabilityHandle;
+@synthesize enforcedPolicy = _enforcedPolicy;
+@dynamic useWiFiNetwork;
+@dynamic useMobileNetwork;
+
+- (void)setEnforcedPolicy:(ITNetworkSwitcherPolicy)enforcedPolicy
+{
+ if (enforcedPolicy == self.enforcedPolicy) {
+ return;
+ }
+ NSArray *torrents = [[ITController sharedController] torrents];
+ if (enforcedPolicy == kITDisableTorrentNetworkActivities)
+ [torrents makeObjectsPerformSelector:@selector(sleep)];
+ else if (enforcedPolicy == kITEnableTorrentNetworkActivities)
+ [torrents makeObjectsPerformSelector:@selector(wakeUp)];
+ _enforcedPolicy = enforcedPolicy;
+ [[NSNotificationCenter defaultCenter] postNotificationName:kITNetworkSwitcherPolicyChangedNotification object:nil];
+ if (enforcedPolicy == kITDisableTorrentNetworkActivities)
+ LogMessageCompat(@"Disabling all torrent network activities\n");
+ else if (enforcedPolicy == kITEnableTorrentNetworkActivities)
+ LogMessageCompat(@"Enabling all torrent network activities\n");
+}
+
+- (BOOL)canUseWiFiNetwork
+{
+ return [[NSUserDefaults standardUserDefaults] boolForKey:@"UseWiFi"];
+}
+
+- (void)setUseWiFiNetwork:(BOOL)useWiFiNetwork
+{
+ [[NSUserDefaults standardUserDefaults] setBool:useWiFiNetwork forKey:@"UseWiFi"];
+ [self updatePolicyForNetworkStatus:self.currentNetworkStatus];
+ [[NSNotificationCenter defaultCenter] postNotificationName:kITNetworkPrefUseWiFiChangedNotification object:nil];
+}
+
+- (BOOL)canUseMobileNetwork
+{
+ return [[NSUserDefaults standardUserDefaults] boolForKey:@"UseCellular"];
+}
+
+- (void)setUseMobileNetwork:(BOOL)useMobileNetwork
+{
+ [[NSUserDefaults standardUserDefaults] setBool:useMobileNetwork forKey:@"UseCellular"];
+ [self updatePolicyForNetworkStatus:self.currentNetworkStatus];
+ [[NSNotificationCenter defaultCenter] postNotificationName:kITNetworkPrefUseMobileChangedNotification object:nil];
+}
+
++ (id)sharedNetworkSwitcher
+{
+ return [[ITAppDelegate sharedDelegate] networkSwitcher];
+}
+
+- (id)init
+{
+ if ((self = [super init])) {
+ self.reachabilityHandle = [Reachability reachabilityForInternetConnection];
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reachabilityChangedNotification:) name:kReachabilityChangedNotification object:nil];
+ [self setEnforcedPolicy:kITDisableTorrentNetworkActivities];
+ [self.reachabilityHandle performSelector:@selector(startNotifier) withObject:nil afterDelay:0.0f];
+// [self.reachabilityHandle startNotifier];
+ }
+ return self;
+}
+
+- (void)reachabilityChangedNotification:(NSNotification *)notification
+{
+ NetworkStatus newNetworkStatus = [self.reachabilityHandle currentReachabilityStatus];
+ if (self.currentNetworkStatus == newNetworkStatus) {
+ return;
+ }
+ else {
+ switch (newNetworkStatus) {
+ case NotReachable:
+ [[NSNotificationCenter defaultCenter] postNotificationName:kITNetworkNotReachableNotification object:nil];
+ LogMessageCompat(@"Network is down\n");
+ break;
+ case ReachableViaWiFi:
+ [[NSNotificationCenter defaultCenter] postNotificationName:kITUsingWiFiNetworkNotification object:nil];
+ LogMessageCompat(@"Now connected to WiFi\n");
+ break;
+ case ReachableViaWWAN:
+ [[NSNotificationCenter defaultCenter] postNotificationName:kITUsingCellularNetworkNotification object:nil];
+ LogMessageCompat(@"Now connected to carrier network\n");
+ default:
+ break;
+ }
+ [self updatePolicyForNetworkStatus:newNetworkStatus];
+ }
+ self.currentNetworkStatus = newNetworkStatus;
+}
+
+- (void)updatePolicyForNetworkStatus:(NetworkStatus)status
+{
+ switch (status) {
+ case NotReachable:
+ [self setEnforcedPolicy:kITDisableTorrentNetworkActivities];
+ break;
+ case ReachableViaWiFi:
+ [self setEnforcedPolicy:[self canUseWiFiNetwork] ? kITEnableTorrentNetworkActivities : kITDisableTorrentNetworkActivities];
+ case ReachableViaWWAN:
+ [self setEnforcedPolicy:[self canUseMobileNetwork] ? kITEnableTorrentNetworkActivities : kITDisableTorrentNetworkActivities];
+ default:
+ break;
+ }
+}
+
+- (void)dealloc
+{
+ [self.reachabilityHandle stopNotifier];
+ [[NSNotificationCenter defaultCenter] removeObserver:self];
+}
+
+
+@end
View
39 iTransmission/ITPrefViewController.h
@@ -0,0 +1,39 @@
+//
+// ITPrefViewController.h
+// iTransmission
+//
+// Created by Mike Chen on 12/6/11.
+// Copyright (c) 2011 __MyCompanyName__. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+@interface ITPrefViewController : UIViewController <UITableViewDataSource, UITableViewDelegate, UITextFieldDelegate>
+
+@property (nonatomic, strong) IBOutlet UITableView *tableView;
+@property (nonatomic, strong) IBOutlet UITableViewCell *enableRPCCell;
+@property (nonatomic, strong) IBOutlet UITableViewCell *enableRPCAuthenticationCell;
+@property (nonatomic, strong) IBOutlet UITableViewCell *useWiFiCell;
+@property (nonatomic, strong) IBOutlet UITableViewCell *useMobileCell;
+@property (nonatomic, strong) IBOutlet UITableViewCell *enablePortMapCell;
+@property (nonatomic, strong) IBOutlet UITableViewCell *RPCPortCell;
+@property (nonatomic, strong) IBOutlet UITableViewCell *RPCUsernameCell;
+@property (nonatomic, strong) IBOutlet UITableViewCell *RPCPasswordCell;
+@property (nonatomic, strong) IBOutlet UITableViewCell *bindPortCell;
+@property (nonatomic, strong) IBOutlet UISwitch *enableRPCSwitch;
+@property (nonatomic, strong) IBOutlet UISwitch *enableRPCAuthenticationSwitch;
+@property (nonatomic, strong) IBOutlet UISwitch *useWiFiSwitch;
+@property (nonatomic, strong) IBOutlet UISwitch *useMobileSwitch;
+@property (nonatomic, strong) IBOutlet UISwitch *enablePortMapSwitch;
+
+- (void)registerNotifications;
+
+- (IBAction)enableRPCValueChanged:(id)sender;
+- (IBAction)enableRPCAuthenticationValueChanged:(id)sender;
+- (IBAction)useWiFiValueChanged:(id)sender;
+- (IBAction)useMobileValueChanged:(id)sender;
+- (IBAction)enablePortMapValueChanged:(id)sender;
+
+- (void)preferencesUpdateNotificationReceived:(NSNotification*)notification;
+
+@end
View
192 iTransmission/ITPrefViewController.m
@@ -0,0 +1,192 @@
+//
+// ITPrefViewController.m
+// iTransmission
+//
+// Created by Mike Chen on 12/6/11.
+// Copyright (c) 2011 __MyCompanyName__. All rights reserved.
+//
+
+#import "ITPrefViewController.h"
+#import "ITController.h"
+#import "ITPrefsController.h"
+#import "ITNetworkSwitcher.h"
+
+@implementation ITPrefViewController
+
+@synthesize tableView = _tableView;
+@synthesize enableRPCCell;
+@synthesize enableRPCAuthenticationCell;
+@synthesize useWiFiCell;
+@synthesize useMobileCell;
+@synthesize enablePortMapCell;
+@synthesize RPCPortCell;
+@synthesize RPCUsernameCell;
+@synthesize RPCPasswordCell;
+@synthesize bindPortCell;
+@synthesize enableRPCSwitch;
+@synthesize enableRPCAuthenticationSwitch;
+@synthesize useWiFiSwitch;
+@synthesize useMobileSwitch;
+@synthesize enablePortMapSwitch;
+
+- (id)init
+{
+ if ((self = [super initWithNibName:@"ITPrefViewController" bundle:[NSBundle mainBundle]])) {
+ [self registerNotifications];
+ self.title = @"Preferences";
+ }
+ return self;
+}
+
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
+{
+ return 3;
+}
+
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
+{
+ switch (section) {
+ case 0:
+ return 1;
+ case 1:
+ return 2;
+ case 2:
+ return 1;
+ }
+ return 0;
+}
+
+- (void)registerNotifications
+{
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(preferencesUpdateNotificationReceived:) name:kITPrefsBindPortUpdatedNotification object:nil];
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(preferencesUpdateNotificationReceived:) name:kITPrefsNatTraversalFlagUpdatedNotification object:nil];
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(preferencesUpdateNotificationReceived:) name:kITPrefsRPCAuthorizationFlagUpdatedNotification object:nil];
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(preferencesUpdateNotificationReceived:) name:kITPrefsRPCPasswordUpdatedNotification object:nil];
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(preferencesUpdateNotificationReceived:) name:kITPrefsRPCUsernameUpdatedNotification object:nil];
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(preferencesUpdateNotificationReceived:) name:kITPrefsRPCFlagUpdatedNotification object:nil];
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(preferencesUpdateNotificationReceived:) name:kITPrefsRPCPortUpdatedNotification object:nil];
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(preferencesUpdateNotificationReceived:) name:kITNetworkPrefUseWiFiChangedNotification object:nil];
+ [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(preferencesUpdateNotificationReceived:) name:kITNetworkPrefUseMobileChangedNotification object:nil];
+}
+
+- (void)preferencesUpdateNotificationReceived:(NSNotification *)notification
+{
+ if ([[notification name] isEqualToString:kITPrefsBindPortUpdatedNotification]) {
+
+ }
+ else if ([[notification name] isEqualToString:kITPrefsBindPortUpdatedNotification]) {
+
+ }
+ else if ([[notification name] isEqualToString:kITPrefsNatTraversalFlagUpdatedNotification]) {
+ self.enablePortMapSwitch.on = [[[ITController sharedController] prefsController] isNatTransversalEnabled];
+ }
+ else if ([[notification name] isEqualToString:kITPrefsRPCAuthorizationFlagUpdatedNotification]) {
+ self.enableRPCAuthenticationSwitch.on = [[[ITController sharedController] prefsController] isRPCAuthorizationEnabled];
+ }
+ else if ([[notification name] isEqualToString:kITPrefsRPCPasswordUpdatedNotification]) {
+
+ }
+ else if ([[notification name] isEqualToString:kITPrefsRPCUsernameUpdatedNotification]) {
+
+ }
+ else if ([[notification name] isEqualToString:kITPrefsRPCFlagUpdatedNotification]) {
+ self.enableRPCSwitch.on = [[[ITController sharedController] prefsController] isRPCEnabled];
+ }
+ else if ([[notification name] isEqualToString:kITPrefsRPCPortUpdatedNotification]) {
+ }
+
+ else if ([[notification name] isEqualToString:kITNetworkPrefUseWiFiChangedNotification]) {
+ self.useWiFiSwitch.on = [[ITNetworkSwitcher sharedNetworkSwitcher] canUseWiFiNetwork];
+ }
+ else if ([[notification name] isEqualToString:kITNetworkPrefUseMobileChangedNotification]) {
+ self.useMobileSwitch.on = [[ITNetworkSwitcher sharedNetworkSwitcher] canUseMobileNetwork];
+ }
+ else if ([[notification name] isEqualToString:kITPrefsBindPortUpdatedNotification]) {
+
+ }
+
+}
+
+- (NSString*)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
+{
+ switch (section) {
+ case 0: return @"Web Interface";
+ case 1: return @"Network Interface";
+ case 2: return @"Port Listening";
+// case 3: return @"Logging";
+ }
+ return nil;
+}
+
+- (NSString*)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section
+{
+ switch (section) {
+ case 0: return @"You may manage iTransmission remotely using web interface at port 9091";
+// case 0: return @"It's always recommended to use authentication if web interface is enabled. ";
+ case 1: return @"Enabling cellular network may generate significant data charges. ";
+ case 2: return nil;
+// case 3: return @"Only use logging for debugging. Extensive loggings will shorten both battery and Nand life. Saved logs will be available in iTunes. ";
+ }
+ return nil;
+}
+
+- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
+{
+ switch (indexPath.section) {
+ case 0: {
+ switch (indexPath.row) {
+ case 0: return self.enableRPCCell;
+ case 1: return self.enableRPCAuthenticationCell;
+ case 2: return self.RPCUsernameCell;
+ case 3: return self.RPCPasswordCell;
+ case 4: return self.RPCPortCell;
+ }
+ }
+ case 1: {
+ switch (indexPath.row) {
+ case 0: return self.useWiFiCell;
+ case 1: return self.useMobileCell;
+ }
+ }
+ case 2: {
+ switch (indexPath.row) {
+// case 0: return self.bindPortCell;
+ case 0: return self.enablePortMapCell;
+ }
+ }
+// case 3: {
+// switch (indexPath.row) {
+// case 0: return fEnableLoggingCell;
+// }
+// }
+ }
+ return nil;
+}
+
+- (void)enableRPCValueChanged:(id)sender
+{
+ [[[ITController sharedController] prefsController] setRPCEnabled:[sender isOn]];
+}
+
+- (IBAction)useWiFiValueChanged:(id)sender
+{
+ [[ITNetworkSwitcher sharedNetworkSwitcher] setUseWiFiNetwork:[sender isOn]];
+}
+
+- (IBAction)useMobileValueChanged:(id)sender
+{
+ [[ITNetworkSwitcher sharedNetworkSwitcher] setUseMobileNetwork:[sender isOn]];
+}
+
+- (IBAction)enableRPCAuthenticationValueChanged:(id)sender
+{
+ [[[ITController sharedController] prefsController] setRPCAuthorizionEnabled:[sender isOn]];
+}
+
+- (IBAction)enablePortMapValueChanged:(id)sender
+{
+ [[[ITController sharedController] prefsController] setNatTraverselEnabled:[sender isOn]];
+}
+
+
+@end
View
1,502 iTransmission/ITPrefViewController.xib
@@ -0,0 +1,1502 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="8.00">
+ <data>
+ <int key="IBDocument.SystemTarget">1280</int>
+ <string key="IBDocument.SystemVersion">11C74</string>
+ <string key="IBDocument.InterfaceBuilderVersion">1938</string>
+ <string key="IBDocument.AppKitVersion">1138.23</string>
+ <string key="IBDocument.HIToolboxVersion">567.00</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ <string key="NS.object.0">933</string>
+ </object>
+ <array key="IBDocument.IntegratedClassDependencies">
+ <string>IBProxyObject</string>
+ <string>IBUIButton</string>
+ <string>IBUILabel</string>
+ <string>IBUISwitch</string>
+ <string>IBUIActivityIndicatorView</string>
+ <string>IBUITextField</string>
+ <string>IBUITableView</string>
+ <string>IBUITableViewCell</string>
+ <string>IBUIView</string>
+ </array>
+ <array key="IBDocument.PluginDependencies">
+ <string>com.apple.InterfaceBuilder.IBCocoaTouchPlugin</string>
+ </array>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <string key="NS.key.0">PluginDependencyRecalculationVersion</string>
+ <integer value="1" key="NS.object.0"/>
+ </object>
+ <array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
+ <object class="IBProxyObject" id="372490531">
+ <string key="IBProxiedObjectIdentifier">IBFilesOwner</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBProxyObject" id="975951072">
+ <string key="IBProxiedObjectIdentifier">IBFirstResponder</string>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBUIView" id="191373211">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">274</int>
+ <array class="NSMutableArray" key="NSSubviews">
+ <object class="IBUITableView" id="572552738">
+ <reference key="NSNextResponder" ref="191373211"/>
+ <int key="NSvFlags">274</int>
+ <string key="NSFrameSize">{320, 416}</string>
+ <reference key="NSSuperview" ref="191373211"/>
+ <reference key="NSWindow"/>
+ <object class="NSColor" key="IBUIBackgroundColor">
+ <int key="NSColorSpace">10</int>
+ <object class="NSImage" key="NSImage">
+ <int key="NSImageFlags">549453824</int>
+ <string key="NSSize">{512, 1}</string>
+ <array class="NSMutableArray" key="NSReps">
+ <array>
+ <integer value="0"/>
+ <object class="NSBitmapImageRep">
+ <object class="NSData" key="NSTIFFRepresentation">
+ <bytes key="NS.bytes">TU0AKgAACAjFzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/
+y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/
+xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/
+xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/
+xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/
+xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/
+xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/
+y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/
+y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/
+xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/
+xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/
+xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/
+xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/
+xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/
+y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/
+y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/
+xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/
+xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/
+xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/
+xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/
+xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/
+y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/
+y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/
+xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/
+xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/
+xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/
+xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/
+xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/
+y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/
+y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/
+xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/
+xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/
+xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/xczS/8vS2P/L0tj/xczU/8XM1P/FzNT/
+xczU/8XM0v/L0tj/y9LY/8XM1P/FzNT/xczU/8XM1P/FzNL/y9LY/8vS2P/FzNT/xczU/8XM1P/FzNT/
+xczS/8vS2P/L0tj/xczU/wANAQAAAwAAAAECAAAAAQEAAwAAAAEAAQAAAQIAAwAAAAQAAAiqAQMAAwAA
+AAEAAQAAAQYAAwAAAAEAAgAAAREABAAAAAEAAAAIARIAAwAAAAEAAQAAARUAAwAAAAEABAAAARYAAwAA
+AAEAAQAAARcABAAAAAEAAAgAARwAAwAAAAEAAQAAAVIAAwAAAAEAAQAAAVMAAwAAAAQAAAiyAAAAAAAI
+AAgACAAIAAEAAQABAAE</bytes>
+ </object>
+ </object>
+ </array>
+ </array>
+ <object class="NSColor" key="NSColor" id="866854842">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MCAwAA</bytes>
+ </object>
+ </object>
+ <string key="IBUIColorCocoaTouchKeyPath">groupTableViewBackgroundColor</string>
+ </object>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <bool key="IBUIAlwaysBounceVertical">YES</bool>
+ <int key="IBUIStyle">1</int>
+ <int key="IBUISeparatorStyle">1</int>
+ <int key="IBUISectionIndexMinimumDisplayRowCount">0</int>
+ <bool key="IBUIShowsSelectionImmediatelyOnTouchBegin">YES</bool>
+ <float key="IBUIRowHeight">44</float>
+ <float key="IBUISectionHeaderHeight">10</float>
+ <float key="IBUISectionFooterHeight">10</float>
+ </object>
+ </array>
+ <string key="NSFrame">{{0, 64}, {320, 416}}</string>
+ <reference key="NSSuperview"/>
+ <reference key="NSWindow"/>
+ <reference key="NSNextKeyView" ref="572552738"/>
+ <object class="NSColor" key="IBUIBackgroundColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MQA</bytes>
+ <object class="NSColorSpace" key="NSCustomColorSpace">
+ <int key="NSID">2</int>
+ </object>
+ </object>
+ <object class="IBUISimulatedStatusBarMetrics" key="IBUISimulatedStatusBarMetrics"/>
+ <object class="IBUISimulatedNavigationBarMetrics" key="IBUISimulatedTopBarMetrics">
+ <bool key="IBUIPrompted">NO</bool>
+ </object>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBUITableViewCell" id="1013231763">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">292</int>
+ <array class="NSMutableArray" key="NSSubviews">
+ <object class="IBUIView" id="32148591">
+ <reference key="NSNextResponder" ref="1013231763"/>
+ <int key="NSvFlags">256</int>
+ <array class="NSMutableArray" key="NSSubviews">
+ <object class="IBUISwitch" id="232613881">
+ <reference key="NSNextResponder" ref="32148591"/>
+ <int key="NSvFlags">297</int>
+ <string key="NSFrame">{{216, 8}, {94, 27}}</string>
+ <reference key="NSSuperview" ref="32148591"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <bool key="IBUIOn">YES</bool>
+ </object>
+ <object class="IBUILabel" id="931185606">
+ <reference key="NSNextResponder" ref="32148591"/>
+ <int key="NSvFlags">294</int>
+ <string key="NSFrame">{{10, 11}, {198, 21}}</string>
+ <reference key="NSSuperview" ref="32148591"/>
+ <reference key="NSWindow"/>
+ <reference key="NSNextKeyView" ref="232613881"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Web Interface</string>
+ <object class="NSColor" key="IBUITextColor" id="209233298">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MCAwIDAAA</bytes>
+ </object>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <object class="IBUIFontDescription" key="IBUIFontDescription" id="334423636">
+ <string key="name">Helvetica-Bold</string>
+ <string key="family">Helvetica</string>
+ <int key="traits">2</int>
+ <double key="pointSize">17</double>
+ </object>
+ <object class="NSFont" key="IBUIFont" id="925757618">
+ <string key="NSName">Helvetica-Bold</string>
+ <double key="NSSize">17</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ </object>
+ </array>
+ <string key="NSFrameSize">{320, 43}</string>
+ <reference key="NSSuperview" ref="1013231763"/>
+ <reference key="NSWindow"/>
+ <reference key="NSNextKeyView" ref="931185606"/>
+ <reference key="IBUIBackgroundColor" ref="866854842"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">4</int>
+ <bool key="IBUIMultipleTouchEnabled">YES</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ </array>
+ <string key="NSFrameSize">{320, 44}</string>
+ <reference key="NSSuperview"/>
+ <reference key="NSWindow"/>
+ <reference key="NSNextKeyView" ref="32148591"/>
+ <object class="NSColor" key="IBUIBackgroundColor" id="28815123">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MSAxIDEAA</bytes>
+ </object>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUISelectionStyle">0</int>
+ <reference key="IBUIContentView" ref="32148591"/>
+ <string key="IBUIReuseIdentifier">CellWithSwitch</string>
+ </object>
+ <object class="IBUITableViewCell" id="554211297">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">292</int>
+ <array class="NSMutableArray" key="NSSubviews">
+ <object class="IBUIView" id="72847859">
+ <reference key="NSNextResponder" ref="554211297"/>
+ <int key="NSvFlags">256</int>
+ <array class="NSMutableArray" key="NSSubviews">
+ <object class="IBUISwitch" id="786824178">
+ <reference key="NSNextResponder" ref="72847859"/>
+ <int key="NSvFlags">297</int>
+ <string key="NSFrame">{{216, 8}, {94, 27}}</string>
+ <reference key="NSSuperview" ref="72847859"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <bool key="IBUIOn">YES</bool>
+ </object>
+ <object class="IBUILabel" id="190231514">
+ <reference key="NSNextResponder" ref="72847859"/>
+ <int key="NSvFlags">294</int>
+ <string key="NSFrame">{{10, 11}, {198, 21}}</string>
+ <reference key="NSSuperview" ref="72847859"/>
+ <reference key="NSWindow"/>
+ <reference key="NSNextKeyView" ref="786824178"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Authentication</string>
+ <reference key="IBUITextColor" ref="209233298"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <reference key="IBUIFontDescription" ref="334423636"/>
+ <reference key="IBUIFont" ref="925757618"/>
+ </object>
+ </array>
+ <string key="NSFrameSize">{320, 43}</string>
+ <reference key="NSSuperview" ref="554211297"/>
+ <reference key="NSWindow"/>
+ <reference key="NSNextKeyView" ref="190231514"/>
+ <reference key="IBUIBackgroundColor" ref="866854842"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">4</int>
+ <bool key="IBUIMultipleTouchEnabled">YES</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ </array>
+ <string key="NSFrameSize">{320, 44}</string>
+ <reference key="NSSuperview"/>
+ <reference key="NSWindow"/>
+ <reference key="NSNextKeyView" ref="72847859"/>
+ <reference key="IBUIBackgroundColor" ref="28815123"/>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUISelectionStyle">0</int>
+ <reference key="IBUIContentView" ref="72847859"/>
+ <string key="IBUIReuseIdentifier">CellWithSwitch</string>
+ </object>
+ <object class="IBUITableViewCell" id="609071453">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">292</int>
+ <array class="NSMutableArray" key="NSSubviews">
+ <object class="IBUIView" id="319531290">
+ <reference key="NSNextResponder" ref="609071453"/>
+ <int key="NSvFlags">256</int>
+ <array class="NSMutableArray" key="NSSubviews">
+ <object class="IBUISwitch" id="539360096">
+ <reference key="NSNextResponder" ref="319531290"/>
+ <int key="NSvFlags">297</int>
+ <string key="NSFrame">{{216, 8}, {94, 27}}</string>
+ <reference key="NSSuperview" ref="319531290"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <bool key="IBUIOn">YES</bool>
+ </object>
+ <object class="IBUILabel" id="710410514">
+ <reference key="NSNextResponder" ref="319531290"/>
+ <int key="NSvFlags">294</int>
+ <string key="NSFrame">{{10, 11}, {173, 21}}</string>
+ <reference key="NSSuperview" ref="319531290"/>
+ <reference key="NSWindow"/>
+ <reference key="NSNextKeyView" ref="539360096"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">WiFi Network</string>
+ <reference key="IBUITextColor" ref="209233298"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <reference key="IBUIFontDescription" ref="334423636"/>
+ <reference key="IBUIFont" ref="925757618"/>
+ </object>
+ </array>
+ <string key="NSFrameSize">{320, 43}</string>
+ <reference key="NSSuperview" ref="609071453"/>
+ <reference key="NSWindow"/>
+ <reference key="NSNextKeyView" ref="710410514"/>
+ <reference key="IBUIBackgroundColor" ref="866854842"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">4</int>
+ <bool key="IBUIMultipleTouchEnabled">YES</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ </array>
+ <string key="NSFrameSize">{320, 44}</string>
+ <reference key="NSSuperview"/>
+ <reference key="NSWindow"/>
+ <reference key="NSNextKeyView" ref="319531290"/>
+ <reference key="IBUIBackgroundColor" ref="28815123"/>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUISelectionStyle">0</int>
+ <reference key="IBUIContentView" ref="319531290"/>
+ <string key="IBUIReuseIdentifier">CellWithSwitch</string>
+ </object>
+ <object class="IBUITableViewCell" id="78519801">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">292</int>
+ <array class="NSMutableArray" key="NSSubviews">
+ <object class="IBUIView" id="600672575">
+ <reference key="NSNextResponder" ref="78519801"/>
+ <int key="NSvFlags">256</int>
+ <array class="NSMutableArray" key="NSSubviews">
+ <object class="IBUISwitch" id="531090914">
+ <reference key="NSNextResponder" ref="600672575"/>
+ <int key="NSvFlags">297</int>
+ <string key="NSFrame">{{216, 8}, {94, 27}}</string>
+ <reference key="NSSuperview" ref="600672575"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <bool key="IBUIOn">YES</bool>
+ </object>
+ <object class="IBUILabel" id="647765245">
+ <reference key="NSNextResponder" ref="600672575"/>
+ <int key="NSvFlags">294</int>
+ <string key="NSFrame">{{10, 11}, {173, 21}}</string>
+ <reference key="NSSuperview" ref="600672575"/>
+ <reference key="NSWindow"/>
+ <reference key="NSNextKeyView" ref="531090914"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Auto Port-Map</string>
+ <reference key="IBUITextColor" ref="209233298"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <reference key="IBUIFontDescription" ref="334423636"/>
+ <reference key="IBUIFont" ref="925757618"/>
+ </object>
+ </array>
+ <string key="NSFrameSize">{320, 43}</string>
+ <reference key="NSSuperview" ref="78519801"/>
+ <reference key="NSWindow"/>
+ <reference key="NSNextKeyView" ref="647765245"/>
+ <reference key="IBUIBackgroundColor" ref="866854842"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">4</int>
+ <bool key="IBUIMultipleTouchEnabled">YES</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ </array>
+ <string key="NSFrameSize">{320, 44}</string>
+ <reference key="NSSuperview"/>
+ <reference key="NSWindow"/>
+ <reference key="NSNextKeyView" ref="600672575"/>
+ <reference key="IBUIBackgroundColor" ref="28815123"/>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUISelectionStyle">0</int>
+ <reference key="IBUIContentView" ref="600672575"/>
+ <string key="IBUIReuseIdentifier">CellWithSwitch</string>
+ </object>
+ <object class="IBUITableViewCell" id="85656501">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">292</int>
+ <array class="NSMutableArray" key="NSSubviews">
+ <object class="IBUIView" id="651893924">
+ <reference key="NSNextResponder" ref="85656501"/>
+ <int key="NSvFlags">256</int>
+ <array class="NSMutableArray" key="NSSubviews">
+ <object class="IBUISwitch" id="138313303">
+ <reference key="NSNextResponder" ref="651893924"/>
+ <int key="NSvFlags">297</int>
+ <string key="NSFrame">{{216, 7}, {94, 27}}</string>
+ <reference key="NSSuperview" ref="651893924"/>
+ <reference key="NSWindow"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <bool key="IBUIOn">YES</bool>
+ </object>
+ <object class="IBUILabel" id="257736943">
+ <reference key="NSNextResponder" ref="651893924"/>
+ <int key="NSvFlags">294</int>
+ <string key="NSFrame">{{10, 11}, {173, 21}}</string>
+ <reference key="NSSuperview" ref="651893924"/>
+ <reference key="NSWindow"/>
+ <reference key="NSNextKeyView" ref="138313303"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Cellular Network</string>
+ <reference key="IBUITextColor" ref="209233298"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <reference key="IBUIFontDescription" ref="334423636"/>
+ <reference key="IBUIFont" ref="925757618"/>
+ </object>
+ </array>
+ <string key="NSFrameSize">{320, 43}</string>
+ <reference key="NSSuperview" ref="85656501"/>
+ <reference key="NSWindow"/>
+ <reference key="NSNextKeyView" ref="257736943"/>
+ <reference key="IBUIBackgroundColor" ref="866854842"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">4</int>
+ <bool key="IBUIMultipleTouchEnabled">YES</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ </array>
+ <string key="NSFrameSize">{320, 44}</string>
+ <reference key="NSSuperview"/>
+ <reference key="NSWindow"/>
+ <reference key="NSNextKeyView" ref="651893924"/>
+ <reference key="IBUIBackgroundColor" ref="28815123"/>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUISelectionStyle">0</int>
+ <reference key="IBUIContentView" ref="651893924"/>
+ <string key="IBUIReuseIdentifier">CellWithSwitch</string>
+ </object>
+ <object class="IBUITableViewCell" id="129785048">
+ <nil key="NSNextResponder"/>
+ <int key="NSvFlags">292</int>
+ <array class="NSMutableArray" key="NSSubviews">
+ <object class="IBUIView" id="643302166">
+ <reference key="NSNextResponder" ref="129785048"/>
+ <int key="NSvFlags">256</int>
+ <array class="NSMutableArray" key="NSSubviews">
+ <object class="IBUISwitch" id="436312532">
+ <reference key="NSNextResponder" ref="643302166"/>
+ <int key="NSvFlags">297</int>
+ <string key="NSFrame">{{216, 8}, {94, 27}}</string>
+ <reference key="NSSuperview" ref="643302166"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <bool key="IBUIOn">YES</bool>
+ </object>
+ <object class="IBUILabel" id="588131041">
+ <reference key="NSNextResponder" ref="643302166"/>
+ <int key="NSvFlags">294</int>
+ <string key="NSFrame">{{10, 11}, {173, 21}}</string>
+ <reference key="NSSuperview" ref="643302166"/>
+ <reference key="NSNextKeyView" ref="436312532"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Enable</string>
+ <reference key="IBUITextColor" ref="209233298"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <reference key="IBUIFontDescription" ref="334423636"/>
+ <reference key="IBUIFont" ref="925757618"/>
+ </object>
+ </array>
+ <string key="NSFrameSize">{320, 44}</string>
+ <reference key="NSSuperview" ref="129785048"/>
+ <reference key="NSNextKeyView" ref="588131041"/>
+ <reference key="IBUIBackgroundColor" ref="866854842"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">4</int>
+ <bool key="IBUIMultipleTouchEnabled">YES</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ </array>
+ <string key="NSFrameSize">{320, 44}</string>
+ <reference key="NSNextKeyView" ref="643302166"/>
+ <reference key="IBUIBackgroundColor" ref="28815123"/>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUISelectionStyle">0</int>
+ <reference key="IBUIContentView" ref="643302166"/>
+ <string key="IBUIReuseIdentifier">CellWithSwitch</string>
+ </object>
+ <object class="IBUITableViewCell" id="404477098">
+ <nil key="NSNextResponder"/>
+ <int key="NSvFlags">292</int>
+ <array class="NSMutableArray" key="NSSubviews">
+ <object class="IBUIView" id="106279841">
+ <reference key="NSNextResponder" ref="404477098"/>
+ <int key="NSvFlags">256</int>
+ <array class="NSMutableArray" key="NSSubviews">
+ <object class="IBUITextField" id="863711713">
+ <reference key="NSNextResponder" ref="106279841"/>
+ <int key="NSvFlags">297</int>
+ <string key="NSFrame">{{120, 6}, {75, 31}}</string>
+ <reference key="NSSuperview" ref="106279841"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <string key="IBUIText"/>
+ <object class="NSColor" key="IBUITextColor" id="1065685700">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MC4yIDAuMiAwLjYAA</bytes>
+ </object>
+ <float key="IBUIMinimumFontSize">25</float>
+ <object class="IBUITextInputTraits" key="IBUITextInputTraits">
+ <int key="IBUIAutocorrectionType">1</int>
+ <int key="IBUIKeyboardType">4</int>
+ <int key="IBUIReturnKeyType">9</int>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <object class="IBUIFontDescription" key="IBUIFontDescription" id="451510796">
+ <string key="name">Helvetica</string>
+ <string key="family">Helvetica</string>
+ <int key="traits">0</int>
+ <double key="pointSize">18</double>
+ </object>
+ <object class="NSFont" key="IBUIFont" id="1030755415">
+ <string key="NSName">Helvetica</string>
+ <double key="NSSize">18</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ </object>
+ <object class="IBUILabel" id="207321604">
+ <reference key="NSNextResponder" ref="106279841"/>
+ <int key="NSvFlags">294</int>
+ <string key="NSFrame">{{10, 11}, {54, 21}}</string>
+ <reference key="NSSuperview" ref="106279841"/>
+ <reference key="NSNextKeyView" ref="368255386"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Port</string>
+ <reference key="IBUITextColor" ref="209233298"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <reference key="IBUIFontDescription" ref="334423636"/>
+ <reference key="IBUIFont" ref="925757618"/>
+ </object>
+ <object class="IBUIButton" id="368255386">
+ <reference key="NSNextResponder" ref="106279841"/>
+ <int key="NSvFlags">297</int>
+ <string key="NSFrame">{{238, 9}, {72, 26}}</string>
+ <reference key="NSSuperview" ref="106279841"/>
+ <reference key="NSNextKeyView" ref="863711713"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIContentHorizontalAlignment">0</int>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <int key="IBUIButtonType">1</int>
+ <string key="IBUINormalTitle">Check</string>
+ <object class="NSColor" key="IBUIHighlightedTitleColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MQA</bytes>
+ </object>
+ <object class="NSColor" key="IBUINormalTitleColor">
+ <int key="NSColorSpace">1</int>
+ <bytes key="NSRGB">MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA</bytes>
+ </object>
+ <object class="NSColor" key="IBUINormalTitleShadowColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MC41AA</bytes>
+ </object>
+ <object class="IBUIFontDescription" key="IBUIFontDescription">
+ <string key="name">Helvetica-Bold</string>
+ <string key="family">Helvetica</string>
+ <int key="traits">2</int>
+ <double key="pointSize">15</double>
+ </object>
+ <object class="NSFont" key="IBUIFont">
+ <string key="NSName">Helvetica-Bold</string>
+ <double key="NSSize">15</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ </object>
+ <object class="IBUIActivityIndicatorView" id="95251637">
+ <reference key="NSNextResponder" ref="106279841"/>
+ <int key="NSvFlags">-2147483351</int>
+ <string key="NSFrame">{{212, 11}, {20, 20}}</string>
+ <reference key="NSSuperview" ref="106279841"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIStyle">2</int>
+ </object>
+ </array>
+ <string key="NSFrameSize">{320, 44}</string>
+ <reference key="NSSuperview" ref="404477098"/>
+ <reference key="NSNextKeyView" ref="207321604"/>
+ <reference key="IBUIBackgroundColor" ref="866854842"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">4</int>
+ <bool key="IBUIMultipleTouchEnabled">YES</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ </array>
+ <string key="NSFrameSize">{320, 44}</string>
+ <reference key="NSNextKeyView" ref="106279841"/>
+ <reference key="IBUIBackgroundColor" ref="28815123"/>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUISelectionStyle">0</int>
+ <reference key="IBUIContentView" ref="106279841"/>
+ <string key="IBUIReuseIdentifier"/>
+ </object>
+ <object class="IBUITableViewCell" id="235693795">
+ <nil key="NSNextResponder"/>
+ <int key="NSvFlags">292</int>
+ <array class="NSMutableArray" key="NSSubviews">
+ <object class="IBUIView" id="499883026">
+ <reference key="NSNextResponder" ref="235693795"/>
+ <int key="NSvFlags">256</int>
+ <array class="NSMutableArray" key="NSSubviews">
+ <object class="IBUITextField" id="1004032465">
+ <reference key="NSNextResponder" ref="499883026"/>
+ <int key="NSvFlags">297</int>
+ <string key="NSFrame">{{170, 6}, {140, 31}}</string>
+ <reference key="NSSuperview" ref="499883026"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <string key="IBUIText"/>
+ <string key="IBUIPlaceholder"/>
+ <reference key="IBUITextColor" ref="1065685700"/>
+ <float key="IBUIMinimumFontSize">25</float>
+ <object class="IBUITextInputTraits" key="IBUITextInputTraits">
+ <int key="IBUIAutocorrectionType">1</int>
+ <int key="IBUIKeyboardType">4</int>
+ <int key="IBUIReturnKeyType">9</int>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <reference key="IBUIFontDescription" ref="451510796"/>
+ <reference key="IBUIFont" ref="1030755415"/>
+ </object>
+ <object class="IBUILabel" id="155187958">
+ <reference key="NSNextResponder" ref="499883026"/>
+ <int key="NSvFlags">294</int>
+ <string key="NSFrame">{{10, 11}, {50, 21}}</string>
+ <reference key="NSSuperview" ref="499883026"/>
+ <reference key="NSNextKeyView" ref="1004032465"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Port</string>
+ <reference key="IBUITextColor" ref="209233298"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <reference key="IBUIFontDescription" ref="334423636"/>
+ <reference key="IBUIFont" ref="925757618"/>
+ </object>
+ </array>
+ <string key="NSFrameSize">{320, 44}</string>
+ <reference key="NSSuperview" ref="235693795"/>
+ <reference key="NSNextKeyView" ref="155187958"/>
+ <reference key="IBUIBackgroundColor" ref="866854842"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">4</int>
+ <bool key="IBUIMultipleTouchEnabled">YES</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ </array>
+ <string key="NSFrameSize">{320, 44}</string>
+ <reference key="NSNextKeyView" ref="499883026"/>
+ <reference key="IBUIBackgroundColor" ref="28815123"/>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUISelectionStyle">0</int>
+ <reference key="IBUIContentView" ref="499883026"/>
+ <string key="IBUIReuseIdentifier"/>
+ </object>
+ <object class="IBUITableViewCell" id="986516894">
+ <nil key="NSNextResponder"/>
+ <int key="NSvFlags">292</int>
+ <array class="NSMutableArray" key="NSSubviews">
+ <object class="IBUIView" id="815770369">
+ <reference key="NSNextResponder" ref="986516894"/>
+ <int key="NSvFlags">256</int>
+ <array class="NSMutableArray" key="NSSubviews">
+ <object class="IBUITextField" id="892525836">
+ <reference key="NSNextResponder" ref="815770369"/>
+ <int key="NSvFlags">299</int>
+ <string key="NSFrame">{{160, 6}, {150, 31}}</string>
+ <reference key="NSSuperview" ref="815770369"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <string key="IBUIText"/>
+ <string key="IBUIPlaceholder">admin</string>
+ <reference key="IBUITextColor" ref="1065685700"/>
+ <float key="IBUIMinimumFontSize">25</float>
+ <object class="IBUITextInputTraits" key="IBUITextInputTraits">
+ <int key="IBUIAutocorrectionType">1</int>
+ <int key="IBUIKeyboardType">1</int>
+ <int key="IBUIReturnKeyType">9</int>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <reference key="IBUIFontDescription" ref="451510796"/>
+ <reference key="IBUIFont" ref="1030755415"/>
+ </object>
+ <object class="IBUILabel" id="820804513">
+ <reference key="NSNextResponder" ref="815770369"/>
+ <int key="NSvFlags">294</int>
+ <string key="NSFrame">{{10, 11}, {91, 21}}</string>
+ <reference key="NSSuperview" ref="815770369"/>
+ <reference key="NSNextKeyView" ref="892525836"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Username</string>
+ <reference key="IBUITextColor" ref="209233298"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <reference key="IBUIFontDescription" ref="334423636"/>
+ <reference key="IBUIFont" ref="925757618"/>
+ </object>
+ </array>
+ <string key="NSFrameSize">{320, 44}</string>
+ <reference key="NSSuperview" ref="986516894"/>
+ <reference key="NSNextKeyView" ref="820804513"/>
+ <reference key="IBUIBackgroundColor" ref="866854842"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">4</int>
+ <bool key="IBUIMultipleTouchEnabled">YES</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ </array>
+ <string key="NSFrameSize">{320, 44}</string>
+ <reference key="NSNextKeyView" ref="815770369"/>
+ <reference key="IBUIBackgroundColor" ref="28815123"/>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUISelectionStyle">0</int>
+ <reference key="IBUIContentView" ref="815770369"/>
+ <string key="IBUIReuseIdentifier"/>
+ </object>
+ <object class="IBUITableViewCell" id="633064798">
+ <nil key="NSNextResponder"/>
+ <int key="NSvFlags">292</int>
+ <array class="NSMutableArray" key="NSSubviews">
+ <object class="IBUIView" id="200466290">
+ <reference key="NSNextResponder" ref="633064798"/>
+ <int key="NSvFlags">256</int>
+ <array class="NSMutableArray" key="NSSubviews">
+ <object class="IBUITextField" id="794153060">
+ <reference key="NSNextResponder" ref="200466290"/>
+ <int key="NSvFlags">299</int>
+ <string key="NSFrame">{{160, 6}, {150, 31}}</string>
+ <reference key="NSSuperview" ref="200466290"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUIContentVerticalAlignment">0</int>
+ <string key="IBUIText"/>
+ <string key="IBUIPlaceholder">Not shown</string>
+ <reference key="IBUITextColor" ref="1065685700"/>
+ <float key="IBUIMinimumFontSize">25</float>
+ <object class="IBUITextInputTraits" key="IBUITextInputTraits">
+ <int key="IBUIAutocorrectionType">1</int>
+ <int key="IBUIKeyboardType">1</int>
+ <int key="IBUIReturnKeyType">9</int>
+ <bool key="IBUISecureTextEntry">YES</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ <reference key="IBUIFontDescription" ref="451510796"/>
+ <reference key="IBUIFont" ref="1030755415"/>
+ </object>
+ <object class="IBUILabel" id="446027735">
+ <reference key="NSNextResponder" ref="200466290"/>
+ <int key="NSvFlags">294</int>
+ <string key="NSFrame">{{10, 11}, {91, 21}}</string>
+ <reference key="NSSuperview" ref="200466290"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">7</int>
+ <bool key="IBUIUserInteractionEnabled">NO</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <string key="IBUIText">Password</string>
+ <reference key="IBUITextColor" ref="209233298"/>
+ <nil key="IBUIHighlightedColor"/>
+ <int key="IBUIBaselineAdjustment">1</int>
+ <float key="IBUIMinimumFontSize">10</float>
+ <reference key="IBUIFontDescription" ref="334423636"/>
+ <reference key="IBUIFont" ref="925757618"/>
+ </object>
+ </array>
+ <string key="NSFrameSize">{320, 44}</string>
+ <reference key="NSSuperview" ref="633064798"/>
+ <reference key="IBUIBackgroundColor" ref="866854842"/>
+ <bool key="IBUIOpaque">NO</bool>
+ <bool key="IBUIClipsSubviews">YES</bool>
+ <int key="IBUIContentMode">4</int>
+ <bool key="IBUIMultipleTouchEnabled">YES</bool>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ </object>
+ </array>
+ <string key="NSFrameSize">{320, 44}</string>
+ <reference key="NSNextKeyView" ref="200466290"/>
+ <reference key="IBUIBackgroundColor" ref="28815123"/>
+ <string key="targetRuntimeIdentifier">IBCocoaTouchFramework</string>
+ <int key="IBUISelectionStyle">0</int>
+ <reference key="IBUIContentView" ref="200466290"/>
+ <string key="IBUIReuseIdentifier"/>
+ </object>
+ </array>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <array class="NSMutableArray" key="connectionRecords">
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">view</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="191373211"/>
+ </object>
+ <int key="connectionID">3</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">tableView</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="572552738"/>
+ </object>
+ <int key="connectionID">88</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">enablePortMapCell</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="78519801"/>
+ </object>
+ <int key="connectionID">92</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">enableRPCAuthenticationCell</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="554211297"/>
+ </object>
+ <int key="connectionID">93</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">enableRPCCell</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="1013231763"/>
+ </object>
+ <int key="connectionID">94</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">RPCPasswordCell</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="633064798"/>
+ </object>
+ <int key="connectionID">95</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">useMobileCell</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="85656501"/>
+ </object>
+ <int key="connectionID">96</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">useWiFiCell</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="609071453"/>
+ </object>
+ <int key="connectionID">97</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">RPCUsernameCell</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="986516894"/>
+ </object>
+ <int key="connectionID">98</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">RPCPortCell</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="235693795"/>
+ </object>
+ <int key="connectionID">100</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">bindPortCell</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="404477098"/>
+ </object>
+ <int key="connectionID">101</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">enablePortMapSwitch</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="531090914"/>
+ </object>
+ <int key="connectionID">102</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">enableRPCSwitch</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="232613881"/>
+ </object>
+ <int key="connectionID">103</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">enableRPCAuthenticationSwitch</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="786824178"/>
+ </object>
+ <int key="connectionID">104</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">useWiFiSwitch</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="539360096"/>
+ </object>
+ <int key="connectionID">105</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">useMobileSwitch</string>
+ <reference key="source" ref="372490531"/>
+ <reference key="destination" ref="138313303"/>
+ </object>
+ <int key="connectionID">106</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">dataSource</string>
+ <reference key="source" ref="572552738"/>
+ <reference key="destination" ref="372490531"/>
+ </object>
+ <int key="connectionID">7</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">delegate</string>
+ <reference key="source" ref="572552738"/>
+ <reference key="destination" ref="372490531"/>
+ </object>
+ <int key="connectionID">8</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">enableRPCValueChanged:</string>
+ <reference key="source" ref="232613881"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">13</int>
+ </object>
+ <int key="connectionID">111</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">delegate</string>
+ <reference key="source" ref="863711713"/>
+ <reference key="destination" ref="372490531"/>
+ </object>
+ <int key="connectionID">57</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">delegate</string>
+ <reference key="source" ref="1004032465"/>
+ <reference key="destination" ref="372490531"/>
+ </object>
+ <int key="connectionID">55</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">enableRPCAuthenticationValueChanged:</string>
+ <reference key="source" ref="786824178"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">13</int>
+ </object>
+ <int key="connectionID">110</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">delegate</string>
+ <reference key="source" ref="892525836"/>
+ <reference key="destination" ref="372490531"/>
+ </object>
+ <int key="connectionID">56</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchOutletConnection" key="connection">
+ <string key="label">delegate</string>
+ <reference key="source" ref="794153060"/>
+ <reference key="destination" ref="372490531"/>
+ </object>
+ <int key="connectionID">54</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">useWiFiValueChanged:</string>
+ <reference key="source" ref="539360096"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">13</int>
+ </object>
+ <int key="connectionID">114</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">useMobileValueChanged:</string>
+ <reference key="source" ref="138313303"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">13</int>
+ </object>
+ <int key="connectionID">113</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBCocoaTouchEventConnection" key="connection">
+ <string key="label">enablePortMapValueChanged:</string>
+ <reference key="source" ref="531090914"/>
+ <reference key="destination" ref="372490531"/>
+ <int key="IBEventType">13</int>
+ </object>
+ <int key="connectionID">109</int>
+ </object>
+ </array>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <array key="orderedObjects">
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <array key="object" id="0"/>
+ <reference key="children" ref="1000"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">1</int>
+ <reference key="object" ref="191373211"/>
+ <array class="NSMutableArray" key="children">
+ <reference ref="572552738"/>
+ </array>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">View</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="372490531"/>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">File's Owner</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="975951072"/>
+ <reference key="parent" ref="0"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">6</int>
+ <reference key="object" ref="572552738"/>
+ <reference key="parent" ref="191373211"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">10</int>
+ <reference key="object" ref="1013231763"/>
+ <array class="NSMutableArray" key="children">
+ <reference ref="931185606"/>
+ <reference ref="232613881"/>
+ </array>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">EnableRPCInterface</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">11</int>
+ <reference key="object" ref="232613881"/>
+ <reference key="parent" ref="1013231763"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">12</int>
+ <reference key="object" ref="404477098"/>
+ <array class="NSMutableArray" key="children">
+ <reference ref="207321604"/>
+ <reference ref="368255386"/>
+ <reference ref="863711713"/>
+ <reference ref="95251637"/>
+ </array>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">BindPort</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">13</int>
+ <reference key="object" ref="863711713"/>
+ <reference key="parent" ref="404477098"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">16</int>
+ <reference key="object" ref="554211297"/>
+ <array class="NSMutableArray" key="children">
+ <reference ref="786824178"/>
+ <reference ref="190231514"/>
+ </array>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">RPCRequireAuth</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">17</int>
+ <reference key="object" ref="786824178"/>
+ <reference key="parent" ref="554211297"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">14</int>
+ <reference key="object" ref="235693795"/>
+ <array class="NSMutableArray" key="children">
+ <reference ref="155187958"/>
+ <reference ref="1004032465"/>
+ </array>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">RPCPort</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">15</int>
+ <reference key="object" ref="1004032465"/>
+ <reference key="parent" ref="235693795"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">18</int>
+ <reference key="object" ref="986516894"/>
+ <array class="NSMutableArray" key="children">
+ <reference ref="820804513"/>
+ <reference ref="892525836"/>
+ </array>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">RPCUsername</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">19</int>
+ <reference key="object" ref="892525836"/>
+ <reference key="parent" ref="986516894"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">22</int>
+ <reference key="object" ref="633064798"/>
+ <array class="NSMutableArray" key="children">
+ <reference ref="446027735"/>
+ <reference ref="794153060"/>
+ </array>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">RPCPassword</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">23</int>
+ <reference key="object" ref="794153060"/>
+ <reference key="parent" ref="633064798"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">25</int>
+ <reference key="object" ref="609071453"/>
+ <array class="NSMutableArray" key="children">
+ <reference ref="539360096"/>
+ <reference ref="710410514"/>
+ </array>
+ <reference key="parent" ref="0"/>
+ <string key="objectName">UseWiFi</string>
+ </object>