├── Crashlytics.framework ├── Versions │ ├── Current │ └── A │ │ ├── Crashlytics │ │ └── Resources │ │ └── Info.plist ├── Headers ├── Resources ├── Crashlytics ├── run ├── submit └── Modules │ └── module.modulemap ├── Pods ├── Target Support Files │ ├── GBPing │ │ ├── GBPing.xcconfig │ │ ├── GBPing-prefix.pch │ │ ├── GBPing-dummy.m │ │ └── GBPing-Private.xcconfig │ ├── Shimmer │ │ ├── Shimmer.xcconfig │ │ ├── Shimmer-prefix.pch │ │ ├── Shimmer-dummy.m │ │ └── Shimmer-Private.xcconfig │ ├── GVUserDefaults │ │ ├── GVUserDefaults.xcconfig │ │ ├── GVUserDefaults-prefix.pch │ │ ├── GVUserDefaults-dummy.m │ │ └── GVUserDefaults-Private.xcconfig │ ├── TPKeyboardAvoiding │ │ ├── TPKeyboardAvoiding.xcconfig │ │ ├── TPKeyboardAvoiding-prefix.pch │ │ ├── TPKeyboardAvoiding-dummy.m │ │ └── TPKeyboardAvoiding-Private.xcconfig │ ├── pop │ │ ├── pop-prefix.pch │ │ ├── pop.xcconfig │ │ ├── pop-dummy.m │ │ └── pop-Private.xcconfig │ ├── SVProgressHUD │ │ ├── SVProgressHUD.xcconfig │ │ ├── SVProgressHUD-prefix.pch │ │ ├── SVProgressHUD-dummy.m │ │ └── SVProgressHUD-Private.xcconfig │ ├── AFNetworking │ │ ├── AFNetworking-prefix.pch │ │ ├── AFNetworking.xcconfig │ │ ├── AFNetworking-dummy.m │ │ └── AFNetworking-Private.xcconfig │ ├── SAMTextField │ │ ├── SAMTextField-prefix.pch │ │ ├── SAMTextField.xcconfig │ │ ├── SAMTextField-dummy.m │ │ └── SAMTextField-Private.xcconfig │ └── Pods-Hydro │ │ ├── Pods-Hydro-dummy.m │ │ ├── Pods-Hydro.debug.xcconfig │ │ └── Pods-Hydro.release.xcconfig ├── Headers │ ├── Private │ │ ├── pop │ │ │ ├── POP.h │ │ │ ├── POPMath.h │ │ │ ├── POPAction.h │ │ │ ├── POPAnimator.h │ │ │ ├── POPCGUtils.h │ │ │ ├── POPDefines.h │ │ │ ├── POPGeometry.h │ │ │ ├── POPVector.h │ │ │ ├── POPAnimation.h │ │ │ ├── POPLayerExtras.h │ │ │ ├── POPSpringSolver.h │ │ │ ├── UnitBezier.h │ │ │ ├── POPAnimationEvent.h │ │ │ ├── POPAnimationExtras.h │ │ │ ├── POPAnimationTracer.h │ │ │ ├── POPAnimatorPrivate.h │ │ │ ├── POPBasicAnimation.h │ │ │ ├── POPCustomAnimation.h │ │ │ ├── POPDecayAnimation.h │ │ │ ├── POPSpringAnimation.h │ │ │ ├── FloatConversion.h │ │ │ ├── POPAnimatableProperty.h │ │ │ ├── POPAnimationInternal.h │ │ │ ├── POPAnimationPrivate.h │ │ │ ├── POPAnimationRuntime.h │ │ │ ├── POPPropertyAnimation.h │ │ │ ├── POPAnimationEventInternal.h │ │ │ ├── POPAnimationTracerInternal.h │ │ │ ├── POPBasicAnimationInternal.h │ │ │ ├── POPDecayAnimationInternal.h │ │ │ ├── POPSpringAnimationInternal.h │ │ │ ├── TransformationMatrix.h │ │ │ └── POPPropertyAnimationInternal.h │ │ ├── GBPing │ │ │ ├── GBPing.h │ │ │ ├── ICMPHeader.h │ │ │ └── GBPingSummary.h │ │ ├── Shimmer │ │ │ ├── FBShimmering.h │ │ │ ├── FBShimmeringLayer.h │ │ │ └── FBShimmeringView.h │ │ ├── AFNetworking │ │ │ ├── AFNetworking.h │ │ │ ├── AFSecurityPolicy.h │ │ │ ├── AFHTTPSessionManager.h │ │ │ ├── AFURLSessionManager.h │ │ │ ├── AFHTTPRequestOperation.h │ │ │ ├── UIKit+AFNetworking.h │ │ │ ├── AFURLConnectionOperation.h │ │ │ ├── AFURLRequestSerialization.h │ │ │ ├── UIButton+AFNetworking.h │ │ │ ├── UIWebView+AFNetworking.h │ │ │ ├── AFURLResponseSerialization.h │ │ │ ├── UIAlertView+AFNetworking.h │ │ │ ├── UIImageView+AFNetworking.h │ │ │ ├── AFHTTPRequestOperationManager.h │ │ │ ├── AFNetworkReachabilityManager.h │ │ │ ├── UIProgressView+AFNetworking.h │ │ │ ├── UIRefreshControl+AFNetworking.h │ │ │ ├── AFNetworkActivityIndicatorManager.h │ │ │ └── UIActivityIndicatorView+AFNetworking.h │ │ ├── SAMTextField │ │ │ └── SAMTextField.h │ │ ├── SVProgressHUD │ │ │ ├── SVProgressHUD.h │ │ │ └── SVIndefiniteAnimatedView.h │ │ ├── GVUserDefaults │ │ │ └── GVUserDefaults.h │ │ └── TPKeyboardAvoiding │ │ │ ├── TPKeyboardAvoidingScrollView.h │ │ │ ├── TPKeyboardAvoidingTableView.h │ │ │ ├── TPKeyboardAvoidingCollectionView.h │ │ │ └── UIScrollView+TPKeyboardAvoidingAdditions.h │ └── Public │ │ ├── pop │ │ ├── POP.h │ │ ├── POPAnimator.h │ │ ├── POPDefines.h │ │ ├── POPGeometry.h │ │ ├── POPAnimation.h │ │ ├── POPLayerExtras.h │ │ ├── POPAnimationEvent.h │ │ ├── POPAnimationExtras.h │ │ ├── POPAnimationTracer.h │ │ ├── POPBasicAnimation.h │ │ ├── POPCustomAnimation.h │ │ ├── POPDecayAnimation.h │ │ ├── POPSpringAnimation.h │ │ ├── POPAnimatableProperty.h │ │ └── POPPropertyAnimation.h │ │ ├── GBPing │ │ ├── GBPing.h │ │ ├── ICMPHeader.h │ │ └── GBPingSummary.h │ │ ├── Shimmer │ │ ├── FBShimmering.h │ │ ├── FBShimmeringLayer.h │ │ └── FBShimmeringView.h │ │ ├── AFNetworking │ │ ├── AFNetworking.h │ │ ├── AFSecurityPolicy.h │ │ ├── AFHTTPSessionManager.h │ │ ├── AFURLSessionManager.h │ │ ├── AFHTTPRequestOperation.h │ │ ├── UIKit+AFNetworking.h │ │ ├── AFURLConnectionOperation.h │ │ ├── AFURLRequestSerialization.h │ │ ├── UIButton+AFNetworking.h │ │ ├── UIWebView+AFNetworking.h │ │ ├── AFNetworkReachabilityManager.h │ │ ├── AFURLResponseSerialization.h │ │ ├── UIAlertView+AFNetworking.h │ │ ├── UIImageView+AFNetworking.h │ │ ├── AFHTTPRequestOperationManager.h │ │ ├── UIProgressView+AFNetworking.h │ │ ├── UIRefreshControl+AFNetworking.h │ │ ├── AFNetworkActivityIndicatorManager.h │ │ └── UIActivityIndicatorView+AFNetworking.h │ │ ├── SAMTextField │ │ └── SAMTextField.h │ │ ├── SVProgressHUD │ │ ├── SVProgressHUD.h │ │ └── SVIndefiniteAnimatedView.h │ │ ├── GVUserDefaults │ │ └── GVUserDefaults.h │ │ └── TPKeyboardAvoiding │ │ ├── TPKeyboardAvoidingScrollView.h │ │ ├── TPKeyboardAvoidingTableView.h │ │ ├── TPKeyboardAvoidingCollectionView.h │ │ └── UIScrollView+TPKeyboardAvoidingAdditions.h ├── SVProgressHUD │ ├── SVProgressHUD │ │ ├── SVProgressHUD.bundle │ │ │ ├── info.png │ │ │ ├── error.png │ │ │ ├── error@2x.png │ │ │ ├── error@3x.png │ │ │ ├── info@2x.png │ │ │ ├── info@3x.png │ │ │ ├── success.png │ │ │ ├── angle-mask.png │ │ │ ├── success@2x.png │ │ │ ├── success@3x.png │ │ │ ├── angle-mask@2x.png │ │ │ └── angle-mask@3x.png │ │ └── SVIndefiniteAnimatedView.h │ └── LICENSE.txt ├── GVUserDefaults │ ├── GVUserDefaults │ │ └── GVUserDefaults.h │ └── LICENSE ├── TPKeyboardAvoiding │ ├── TPKeyboardAvoiding │ │ ├── TPKeyboardAvoidingTableView.h │ │ ├── TPKeyboardAvoidingScrollView.h │ │ ├── TPKeyboardAvoidingCollectionView.h │ │ ├── UIScrollView+TPKeyboardAvoidingAdditions.h │ │ └── TPKeyboardAvoidingScrollView.m │ └── LICENSE.txt ├── Shimmer │ ├── FBShimmering │ │ ├── FBShimmeringView.h │ │ ├── FBShimmeringLayer.h │ │ ├── FBShimmeringView.m │ │ └── FBShimmering.h │ ├── LICENSE │ └── README.md ├── SAMTextField │ ├── Readme.markdown │ ├── LICENSE │ └── SAMTextField │ │ ├── SAMTextField.m │ │ └── SAMTextField.h ├── pop │ ├── pop │ │ ├── POPDefines.h │ │ ├── POPAnimationPrivate.h │ │ ├── POP.h │ │ ├── POPAnimationEventInternal.h │ │ ├── POPAnimator.h │ │ ├── POPAnimationExtras.h │ │ ├── POPAction.h │ │ ├── POPCustomAnimation.mm │ │ ├── POPGeometry.mm │ │ ├── POPGeometry.h │ │ ├── POPAnimationTracer.h │ │ ├── POPCustomAnimation.h │ │ ├── POPMath.h │ │ ├── POPAnimationEvent.h │ │ ├── POPAnimationTracerInternal.h │ │ ├── POPAnimatorPrivate.h │ │ ├── WebCore │ │ │ └── FloatConversion.h │ │ ├── POPBasicAnimation.h │ │ ├── POPMath.mm │ │ ├── POPDecayAnimation.h │ │ ├── POPPropertyAnimation.h │ │ ├── POPSpringAnimation.h │ │ ├── POPBasicAnimation.mm │ │ ├── POPCGUtils.mm │ │ ├── POPCGUtils.h │ │ ├── POPAnimationRuntime.h │ │ ├── POPBasicAnimationInternal.h │ │ ├── POPAnimationEvent.mm │ │ └── POPPropertyAnimation.mm │ └── LICENSE ├── GBPing │ └── GBPing │ │ ├── GBPingSummary.h │ │ ├── GBPing.h │ │ ├── GBPingSummary.m │ │ └── ICMPHeader.h ├── AFNetworking │ ├── LICENSE │ ├── UIKit+AFNetworking │ │ ├── UIKit+AFNetworking.h │ │ ├── UIRefreshControl+AFNetworking.h │ │ └── UIActivityIndicatorView+AFNetworking.h │ └── AFNetworking │ │ └── AFNetworking.h └── Manifest.lock ├── Hydro ├── Images.xcassets │ ├── 1.imageset │ │ ├── 1.pdf │ │ └── Contents.json │ ├── 2.imageset │ │ ├── 2.pdf │ │ └── Contents.json │ ├── 3.imageset │ │ ├── 3.pdf │ │ └── Contents.json │ ├── EM.imageset │ │ ├── EM.pdf │ │ └── Contents.json │ ├── HK.imageset │ │ ├── HK.pdf │ │ └── Contents.json │ ├── JP.imageset │ │ ├── JP.pdf │ │ └── Contents.json │ ├── PW.imageset │ │ ├── PW.pdf │ │ └── Contents.json │ ├── logo.imageset │ │ ├── logo.pdf │ │ └── Contents.json │ ├── Check.imageset │ │ ├── Check.pdf │ │ └── Contents.json │ ├── Button.imageset │ │ ├── Button.pdf │ │ └── Contents.json │ ├── flag_sg.imageset │ │ ├── flag_sg.pdf │ │ └── Contents.json │ ├── flag_us.imageset │ │ ├── flag_us.pdf │ │ └── Contents.json │ ├── Map.imageset │ │ ├── World Map color.pdf │ │ └── Contents.json │ ├── World Map.imageset │ │ ├── World Map.pdf │ │ └── Contents.json │ ├── AppIcon.appiconset │ │ ├── icon-ipad_76.png │ │ ├── icon-iphone_29.png │ │ ├── icon-ipad_76@2x.png │ │ ├── icon-iphone_29@2x.png │ │ ├── icon-iphone_29@3x.png │ │ ├── icon-iphone_40@2x.png │ │ ├── icon-iphone_40@3x.png │ │ ├── icon-iphone_60@2x.png │ │ ├── icon-iphone_60@3x.png │ │ ├── icon-iphone_29@2x-1.png │ │ ├── icon-iphone_40@2x-1.png │ │ ├── icon-iphone_40@3x-1.png │ │ └── Contents.json │ ├── Background.imageset │ │ ├── Background.pdf │ │ └── Contents.json │ ├── Button_wire.imageset │ │ ├── Button_wire.pdf │ │ └── Contents.json │ └── Button + Connect.imageset │ │ ├── Button + Connect.pdf │ │ └── Contents.json ├── Views │ ├── scaleView.h │ ├── locationView.h │ ├── InviteView.h │ ├── stationView.h │ └── scaleView.m ├── Button │ ├── HydroButton.h │ └── HydroButton.m ├── AppDelegate.h ├── main.m ├── stationDelegate │ ├── VPNStations.h │ └── VPNStations.m ├── Hydro.entitlements ├── ViewController.h ├── GVUserDefaults+Hydro.h ├── VCKetChain.h ├── HydroHelper │ ├── HydroHelper.h │ └── HydroHelper.m ├── GVUserDefaults+Hydro.m ├── LoginViewController │ └── LoginViewController.h ├── config.json.example ├── VCIPsecVPNManager.h ├── Cell │ └── StationTableViewCell.h ├── Info.plist ├── Base.lproj │ └── LaunchScreen.xib └── AppDelegate.m ├── README.md ├── Hydro.xcodeproj └── project.xcworkspace │ └── contents.xcworkspacedata ├── Hydro.xcworkspace ├── contents.xcworkspacedata └── xcshareddata │ └── Hydro.xcscmblueprint ├── Podfile ├── Today ├── Today.entitlements ├── VPNButton.h ├── TodayViewController.h ├── Info.plist └── VPNButton.m ├── .gitignore ├── HydroTests ├── Info.plist └── HydroTests.m └── Podfile.lock /Crashlytics.framework/Versions/Current: -------------------------------------------------------------------------------- 1 | A -------------------------------------------------------------------------------- /Pods/Target Support Files/GBPing/GBPing.xcconfig: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Crashlytics.framework/Headers: -------------------------------------------------------------------------------- 1 | Versions/Current/Headers -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POP.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POP.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POP.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POP.h -------------------------------------------------------------------------------- /Pods/Target Support Files/Shimmer/Shimmer.xcconfig: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Crashlytics.framework/Resources: -------------------------------------------------------------------------------- 1 | Versions/Current/Resources -------------------------------------------------------------------------------- /Crashlytics.framework/Crashlytics: -------------------------------------------------------------------------------- 1 | Versions/Current/Crashlytics -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPMath.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPMath.h -------------------------------------------------------------------------------- /Pods/Headers/Private/GBPing/GBPing.h: -------------------------------------------------------------------------------- 1 | ../../../GBPing/GBPing/GBPing.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAction.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAction.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAnimator.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimator.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPCGUtils.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPCGUtils.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPDefines.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPDefines.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPGeometry.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPGeometry.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPVector.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPVector.h -------------------------------------------------------------------------------- /Pods/Headers/Public/GBPing/GBPing.h: -------------------------------------------------------------------------------- 1 | ../../../GBPing/GBPing/GBPing.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPAnimator.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimator.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPDefines.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPDefines.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPGeometry.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPGeometry.h -------------------------------------------------------------------------------- /Pods/Target Support Files/GVUserDefaults/GVUserDefaults.xcconfig: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPLayerExtras.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPLayerExtras.h -------------------------------------------------------------------------------- /Pods/Target Support Files/TPKeyboardAvoiding/TPKeyboardAvoiding.xcconfig: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Pods/Headers/Private/GBPing/ICMPHeader.h: -------------------------------------------------------------------------------- 1 | ../../../GBPing/GBPing/ICMPHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPLayerExtras.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPLayerExtras.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPSpringSolver.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPSpringSolver.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/UnitBezier.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/WebCore/UnitBezier.h -------------------------------------------------------------------------------- /Pods/Headers/Public/GBPing/ICMPHeader.h: -------------------------------------------------------------------------------- 1 | ../../../GBPing/GBPing/ICMPHeader.h -------------------------------------------------------------------------------- /Pods/Headers/Private/GBPing/GBPingSummary.h: -------------------------------------------------------------------------------- 1 | ../../../GBPing/GBPing/GBPingSummary.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAnimationEvent.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimationEvent.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAnimationExtras.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimationExtras.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAnimationTracer.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimationTracer.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAnimatorPrivate.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimatorPrivate.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPBasicAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPBasicAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPCustomAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPCustomAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPDecayAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPDecayAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPSpringAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPSpringAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/GBPing/GBPingSummary.h: -------------------------------------------------------------------------------- 1 | ../../../GBPing/GBPing/GBPingSummary.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPAnimationEvent.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimationEvent.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPAnimationExtras.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimationExtras.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPAnimationTracer.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimationTracer.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPBasicAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPBasicAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPCustomAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPCustomAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPDecayAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPDecayAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPSpringAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPSpringAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Shimmer/FBShimmering.h: -------------------------------------------------------------------------------- 1 | ../../../Shimmer/FBShimmering/FBShimmering.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/FloatConversion.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/WebCore/FloatConversion.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAnimatableProperty.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimatableProperty.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAnimationInternal.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimationInternal.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAnimationPrivate.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimationPrivate.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAnimationRuntime.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimationRuntime.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPPropertyAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPPropertyAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Shimmer/FBShimmering.h: -------------------------------------------------------------------------------- 1 | ../../../Shimmer/FBShimmering/FBShimmering.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPAnimatableProperty.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimatableProperty.h -------------------------------------------------------------------------------- /Pods/Headers/Public/pop/POPPropertyAnimation.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPPropertyAnimation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SAMTextField/SAMTextField.h: -------------------------------------------------------------------------------- 1 | ../../../SAMTextField/SAMTextField/SAMTextField.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Shimmer/FBShimmeringLayer.h: -------------------------------------------------------------------------------- 1 | ../../../Shimmer/FBShimmering/FBShimmeringLayer.h -------------------------------------------------------------------------------- /Pods/Headers/Private/Shimmer/FBShimmeringView.h: -------------------------------------------------------------------------------- 1 | ../../../Shimmer/FBShimmering/FBShimmeringView.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAnimationEventInternal.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimationEventInternal.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPAnimationTracerInternal.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPAnimationTracerInternal.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPBasicAnimationInternal.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPBasicAnimationInternal.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPDecayAnimationInternal.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPDecayAnimationInternal.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPSpringAnimationInternal.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPSpringAnimationInternal.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/TransformationMatrix.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/WebCore/TransformationMatrix.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SAMTextField/SAMTextField.h: -------------------------------------------------------------------------------- 1 | ../../../SAMTextField/SAMTextField/SAMTextField.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Shimmer/FBShimmeringLayer.h: -------------------------------------------------------------------------------- 1 | ../../../Shimmer/FBShimmering/FBShimmeringLayer.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Shimmer/FBShimmeringView.h: -------------------------------------------------------------------------------- 1 | ../../../Shimmer/FBShimmering/FBShimmeringView.h -------------------------------------------------------------------------------- /Crashlytics.framework/run: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Crashlytics.framework/run -------------------------------------------------------------------------------- /Pods/Headers/Private/SVProgressHUD/SVProgressHUD.h: -------------------------------------------------------------------------------- 1 | ../../../SVProgressHUD/SVProgressHUD/SVProgressHUD.h -------------------------------------------------------------------------------- /Pods/Headers/Private/pop/POPPropertyAnimationInternal.h: -------------------------------------------------------------------------------- 1 | ../../../pop/pop/POPPropertyAnimationInternal.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SVProgressHUD/SVProgressHUD.h: -------------------------------------------------------------------------------- 1 | ../../../SVProgressHUD/SVProgressHUD/SVProgressHUD.h -------------------------------------------------------------------------------- /Crashlytics.framework/submit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Crashlytics.framework/submit -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFSecurityPolicy.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFSecurityPolicy.h -------------------------------------------------------------------------------- /Pods/Headers/Private/GVUserDefaults/GVUserDefaults.h: -------------------------------------------------------------------------------- 1 | ../../../GVUserDefaults/GVUserDefaults/GVUserDefaults.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFSecurityPolicy.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFSecurityPolicy.h -------------------------------------------------------------------------------- /Pods/Headers/Public/GVUserDefaults/GVUserDefaults.h: -------------------------------------------------------------------------------- 1 | ../../../GVUserDefaults/GVUserDefaults/GVUserDefaults.h -------------------------------------------------------------------------------- /Pods/Target Support Files/pop/pop-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFHTTPSessionManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFHTTPSessionManager.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFURLSessionManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFURLSessionManager.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFHTTPSessionManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFHTTPSessionManager.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFURLSessionManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFURLSessionManager.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFHTTPRequestOperation.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFHTTPRequestOperation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/UIKit+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIKit+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFHTTPRequestOperation.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFHTTPRequestOperation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/UIKit+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIKit+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Target Support Files/GBPing/GBPing-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SVProgressHUD/SVProgressHUD.xcconfig: -------------------------------------------------------------------------------- 1 | SVPROGRESSHUD_OTHER_LDFLAGS = -framework "QuartzCore" -------------------------------------------------------------------------------- /Pods/Target Support Files/Shimmer/Shimmer-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFURLConnectionOperation.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFURLConnectionOperation.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFURLRequestSerialization.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFURLRequestSerialization.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/UIButton+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIButton+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/UIWebView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIWebView+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFURLConnectionOperation.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFURLConnectionOperation.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFURLRequestSerialization.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFURLRequestSerialization.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/UIButton+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIButton+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/UIWebView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIWebView+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Public/SVProgressHUD/SVIndefiniteAnimatedView.h: -------------------------------------------------------------------------------- 1 | ../../../SVProgressHUD/SVProgressHUD/SVIndefiniteAnimatedView.h -------------------------------------------------------------------------------- /Hydro/Images.xcassets/1.imageset/1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Hydro/Images.xcassets/1.imageset/1.pdf -------------------------------------------------------------------------------- /Hydro/Images.xcassets/2.imageset/2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Hydro/Images.xcassets/2.imageset/2.pdf -------------------------------------------------------------------------------- /Hydro/Images.xcassets/3.imageset/3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Hydro/Images.xcassets/3.imageset/3.pdf -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFURLResponseSerialization.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFURLResponseSerialization.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/UIAlertView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIAlertView+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/UIImageView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIImageView+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Private/SVProgressHUD/SVIndefiniteAnimatedView.h: -------------------------------------------------------------------------------- 1 | ../../../SVProgressHUD/SVProgressHUD/SVIndefiniteAnimatedView.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFNetworkReachabilityManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFNetworkReachabilityManager.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFURLResponseSerialization.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFURLResponseSerialization.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/UIAlertView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIAlertView+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/UIImageView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIImageView+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Target Support Files/AFNetworking/AFNetworking-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SAMTextField/SAMTextField-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SVProgressHUD/SVProgressHUD-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Hydro/Images.xcassets/EM.imageset/EM.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Hydro/Images.xcassets/EM.imageset/EM.pdf -------------------------------------------------------------------------------- /Hydro/Images.xcassets/HK.imageset/HK.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Hydro/Images.xcassets/HK.imageset/HK.pdf -------------------------------------------------------------------------------- /Hydro/Images.xcassets/JP.imageset/JP.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Hydro/Images.xcassets/JP.imageset/JP.pdf -------------------------------------------------------------------------------- /Hydro/Images.xcassets/PW.imageset/PW.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Hydro/Images.xcassets/PW.imageset/PW.pdf -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFHTTPRequestOperationManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFHTTPRequestOperationManager.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFNetworkReachabilityManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFNetworkReachabilityManager.h -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/UIProgressView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIProgressView+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFHTTPRequestOperationManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/AFNetworking/AFHTTPRequestOperationManager.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/UIProgressView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIProgressView+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Target Support Files/GVUserDefaults/GVUserDefaults-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SAMTextField/SAMTextField.xcconfig: -------------------------------------------------------------------------------- 1 | SAMTEXTFIELD_OTHER_LDFLAGS = -framework "CoreGraphics" -framework "UIKit" -------------------------------------------------------------------------------- /Crashlytics.framework/Versions/A/Crashlytics: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Crashlytics.framework/Versions/A/Crashlytics -------------------------------------------------------------------------------- /Hydro/Images.xcassets/logo.imageset/logo.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Hydro/Images.xcassets/logo.imageset/logo.pdf -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/UIRefreshControl+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIRefreshControl+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/UIRefreshControl+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIRefreshControl+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Target Support Files/TPKeyboardAvoiding/TPKeyboardAvoiding-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #endif 4 | 5 | -------------------------------------------------------------------------------- /Hydro/Images.xcassets/Check.imageset/Check.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Hydro/Images.xcassets/Check.imageset/Check.pdf -------------------------------------------------------------------------------- /Hydro/Images.xcassets/Button.imageset/Button.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Hydro/Images.xcassets/Button.imageset/Button.pdf -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/AFNetworkActivityIndicatorManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/AFNetworkActivityIndicatorManager.h -------------------------------------------------------------------------------- /Pods/Headers/Private/TPKeyboardAvoiding/TPKeyboardAvoidingScrollView.h: -------------------------------------------------------------------------------- 1 | ../../../TPKeyboardAvoiding/TPKeyboardAvoiding/TPKeyboardAvoidingScrollView.h -------------------------------------------------------------------------------- /Pods/Headers/Private/TPKeyboardAvoiding/TPKeyboardAvoidingTableView.h: -------------------------------------------------------------------------------- 1 | ../../../TPKeyboardAvoiding/TPKeyboardAvoiding/TPKeyboardAvoidingTableView.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/AFNetworkActivityIndicatorManager.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/AFNetworkActivityIndicatorManager.h -------------------------------------------------------------------------------- /Pods/Headers/Public/TPKeyboardAvoiding/TPKeyboardAvoidingScrollView.h: -------------------------------------------------------------------------------- 1 | ../../../TPKeyboardAvoiding/TPKeyboardAvoiding/TPKeyboardAvoidingScrollView.h -------------------------------------------------------------------------------- /Pods/Headers/Public/TPKeyboardAvoiding/TPKeyboardAvoidingTableView.h: -------------------------------------------------------------------------------- 1 | ../../../TPKeyboardAvoiding/TPKeyboardAvoiding/TPKeyboardAvoidingTableView.h -------------------------------------------------------------------------------- /Pods/Target Support Files/pop/pop.xcconfig: -------------------------------------------------------------------------------- 1 | POP_CLANG_CXX_LANGUAGE_STANDARD = c++11 2 | POP_CLANG_CXX_LIBRARY = libc++ 3 | POP_OTHER_LDFLAGS = -l"c++" -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Hydro 2 | ===== 3 | 4 | [Hydro.network 的开发旅程](http://zhowkev.in/2015/03/09/hydro-network-de-kai-fa-lu-cheng/) 5 | 6 | Hydro Network 7 | -------------------------------------------------------------------------------- /Hydro/Images.xcassets/flag_sg.imageset/flag_sg.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Hydro/Images.xcassets/flag_sg.imageset/flag_sg.pdf -------------------------------------------------------------------------------- /Hydro/Images.xcassets/flag_us.imageset/flag_us.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Hydro/Images.xcassets/flag_us.imageset/flag_us.pdf -------------------------------------------------------------------------------- /Pods/Headers/Private/AFNetworking/UIActivityIndicatorView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.h -------------------------------------------------------------------------------- /Pods/Headers/Public/AFNetworking/UIActivityIndicatorView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | ../../../AFNetworking/UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.h -------------------------------------------------------------------------------- /Hydro/Images.xcassets/Map.imageset/World Map color.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Hydro/Images.xcassets/Map.imageset/World Map color.pdf -------------------------------------------------------------------------------- /Hydro/Images.xcassets/World Map.imageset/World Map.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Hydro/Images.xcassets/World Map.imageset/World Map.pdf -------------------------------------------------------------------------------- /Pods/Headers/Private/TPKeyboardAvoiding/TPKeyboardAvoidingCollectionView.h: -------------------------------------------------------------------------------- 1 | ../../../TPKeyboardAvoiding/TPKeyboardAvoiding/TPKeyboardAvoidingCollectionView.h -------------------------------------------------------------------------------- /Pods/Headers/Public/TPKeyboardAvoiding/TPKeyboardAvoidingCollectionView.h: -------------------------------------------------------------------------------- 1 | ../../../TPKeyboardAvoiding/TPKeyboardAvoiding/TPKeyboardAvoidingCollectionView.h -------------------------------------------------------------------------------- /Hydro/Images.xcassets/AppIcon.appiconset/icon-ipad_76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Hydro/Images.xcassets/AppIcon.appiconset/icon-ipad_76.png -------------------------------------------------------------------------------- /Hydro/Images.xcassets/Background.imageset/Background.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Hydro/Images.xcassets/Background.imageset/Background.pdf -------------------------------------------------------------------------------- /Hydro/Images.xcassets/AppIcon.appiconset/icon-iphone_29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Hydro/Images.xcassets/AppIcon.appiconset/icon-iphone_29.png -------------------------------------------------------------------------------- /Hydro/Images.xcassets/Button_wire.imageset/Button_wire.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Hydro/Images.xcassets/Button_wire.imageset/Button_wire.pdf -------------------------------------------------------------------------------- /Crashlytics.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module Crashlytics { 2 | umbrella header "Crashlytics.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Hydro/Images.xcassets/AppIcon.appiconset/icon-ipad_76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Hydro/Images.xcassets/AppIcon.appiconset/icon-ipad_76@2x.png -------------------------------------------------------------------------------- /Hydro/Images.xcassets/AppIcon.appiconset/icon-iphone_29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Hydro/Images.xcassets/AppIcon.appiconset/icon-iphone_29@2x.png -------------------------------------------------------------------------------- /Hydro/Images.xcassets/AppIcon.appiconset/icon-iphone_29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Hydro/Images.xcassets/AppIcon.appiconset/icon-iphone_29@3x.png -------------------------------------------------------------------------------- /Hydro/Images.xcassets/AppIcon.appiconset/icon-iphone_40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Hydro/Images.xcassets/AppIcon.appiconset/icon-iphone_40@2x.png -------------------------------------------------------------------------------- /Hydro/Images.xcassets/AppIcon.appiconset/icon-iphone_40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Hydro/Images.xcassets/AppIcon.appiconset/icon-iphone_40@3x.png -------------------------------------------------------------------------------- /Hydro/Images.xcassets/AppIcon.appiconset/icon-iphone_60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Hydro/Images.xcassets/AppIcon.appiconset/icon-iphone_60@2x.png -------------------------------------------------------------------------------- /Hydro/Images.xcassets/AppIcon.appiconset/icon-iphone_60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Hydro/Images.xcassets/AppIcon.appiconset/icon-iphone_60@3x.png -------------------------------------------------------------------------------- /Pods/Headers/Private/TPKeyboardAvoiding/UIScrollView+TPKeyboardAvoidingAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../TPKeyboardAvoiding/TPKeyboardAvoiding/UIScrollView+TPKeyboardAvoidingAdditions.h -------------------------------------------------------------------------------- /Pods/Headers/Public/TPKeyboardAvoiding/UIScrollView+TPKeyboardAvoidingAdditions.h: -------------------------------------------------------------------------------- 1 | ../../../TPKeyboardAvoiding/TPKeyboardAvoiding/UIScrollView+TPKeyboardAvoidingAdditions.h -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/info.png -------------------------------------------------------------------------------- /Pods/Target Support Files/pop/pop-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_pop : NSObject 3 | @end 4 | @implementation PodsDummy_pop 5 | @end 6 | -------------------------------------------------------------------------------- /Hydro/Images.xcassets/AppIcon.appiconset/icon-iphone_29@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Hydro/Images.xcassets/AppIcon.appiconset/icon-iphone_29@2x-1.png -------------------------------------------------------------------------------- /Hydro/Images.xcassets/AppIcon.appiconset/icon-iphone_40@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Hydro/Images.xcassets/AppIcon.appiconset/icon-iphone_40@2x-1.png -------------------------------------------------------------------------------- /Hydro/Images.xcassets/AppIcon.appiconset/icon-iphone_40@3x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Hydro/Images.xcassets/AppIcon.appiconset/icon-iphone_40@3x-1.png -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/error.png -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/error@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/error@2x.png -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/error@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/error@3x.png -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/info@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/info@2x.png -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/info@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/info@3x.png -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/success.png -------------------------------------------------------------------------------- /Pods/Target Support Files/GBPing/GBPing-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_GBPing : NSObject 3 | @end 4 | @implementation PodsDummy_GBPing 5 | @end 6 | -------------------------------------------------------------------------------- /Hydro/Images.xcassets/Button + Connect.imageset/Button + Connect.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Hydro/Images.xcassets/Button + Connect.imageset/Button + Connect.pdf -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/angle-mask.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/angle-mask.png -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/success@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/success@2x.png -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/success@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/success@3x.png -------------------------------------------------------------------------------- /Pods/Target Support Files/Shimmer/Shimmer-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Shimmer : NSObject 3 | @end 4 | @implementation PodsDummy_Shimmer 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/angle-mask@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/angle-mask@2x.png -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/angle-mask@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/i-gaven/myVPN/HEAD/Pods/SVProgressHUD/SVProgressHUD/SVProgressHUD.bundle/angle-mask@3x.png -------------------------------------------------------------------------------- /Pods/Target Support Files/AFNetworking/AFNetworking.xcconfig: -------------------------------------------------------------------------------- 1 | AFNETWORKING_OTHER_LDFLAGS = -framework "CoreGraphics" -framework "MobileCoreServices" -framework "Security" -framework "SystemConfiguration" -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-Hydro/Pods-Hydro-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_Hydro : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_Hydro 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/AFNetworking/AFNetworking-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_AFNetworking : NSObject 3 | @end 4 | @implementation PodsDummy_AFNetworking 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SAMTextField/SAMTextField-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_SAMTextField : NSObject 3 | @end 4 | @implementation PodsDummy_SAMTextField 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SVProgressHUD/SVProgressHUD-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_SVProgressHUD : NSObject 3 | @end 4 | @implementation PodsDummy_SVProgressHUD 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/GVUserDefaults/GVUserDefaults-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_GVUserDefaults : NSObject 3 | @end 4 | @implementation PodsDummy_GVUserDefaults 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/TPKeyboardAvoiding/TPKeyboardAvoiding-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_TPKeyboardAvoiding : NSObject 3 | @end 4 | @implementation PodsDummy_TPKeyboardAvoiding 5 | @end 6 | -------------------------------------------------------------------------------- /Hydro.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Hydro/Images.xcassets/1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "1.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Hydro/Images.xcassets/2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "2.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Hydro/Images.xcassets/3.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "3.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Hydro/Images.xcassets/EM.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "EM.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Hydro/Images.xcassets/HK.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "HK.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Hydro/Images.xcassets/JP.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "JP.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Hydro/Images.xcassets/PW.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "PW.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Hydro/Images.xcassets/logo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "logo.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Hydro/Images.xcassets/Button.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Button.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Hydro/Images.xcassets/Check.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Check.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Hydro/Images.xcassets/Map.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "World Map color.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Hydro/Images.xcassets/World Map.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "World Map.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Hydro/Images.xcassets/flag_us.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "flag_us.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Hydro/Images.xcassets/Background.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Background.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Hydro/Images.xcassets/Button_wire.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Button_wire.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Hydro/Images.xcassets/Button + Connect.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Button + Connect.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Hydro/Views/scaleView.h: -------------------------------------------------------------------------------- 1 | // 2 | // scaleView.h 3 | // Hydro 4 | // 5 | // Created by kevinzhow on 14/12/25. 6 | // Copyright (c) 2014年 Catch Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface scaleView : UIView 12 | 13 | @end 14 | -------------------------------------------------------------------------------- /Hydro.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Hydro/Button/HydroButton.h: -------------------------------------------------------------------------------- 1 | // 2 | // HydroButton.h 3 | // Hydro 4 | // 5 | // Created by kevinzhow on 14/12/25. 6 | // Copyright (c) 2014年 Catch Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface HydroButton : UIButton 12 | 13 | -(void)touchDown; 14 | 15 | -(void)touchUpInside; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /Hydro/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // Hydro 4 | // 5 | // Created by kevinzhow on 14/12/25. 6 | // Copyright (c) 2014年 Catch Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /Podfile: -------------------------------------------------------------------------------- 1 | # Uncomment this line to define a global platform for your project 2 | # platform :ios, '6.0' 3 | 4 | target 'Hydro' do 5 | pod 'AFNetworking' 6 | pod 'pop' 7 | pod 'GBPing' 8 | pod 'TPKeyboardAvoiding' 9 | pod 'SAMTextField' 10 | pod 'GVUserDefaults' 11 | pod 'Shimmer' 12 | pod 'SVProgressHUD' 13 | end 14 | 15 | target 'HydroTests' do 16 | 17 | end 18 | 19 | -------------------------------------------------------------------------------- /Pods/GVUserDefaults/GVUserDefaults/GVUserDefaults.h: -------------------------------------------------------------------------------- 1 | // 2 | // GVUserDefaults.h 3 | // GVUserDefaults 4 | // 5 | // Created by Kevin Renskers on 18-12-12. 6 | // Copyright (c) 2012 Gangverk. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface GVUserDefaults : NSObject 12 | 13 | + (instancetype)standardUserDefaults; 14 | 15 | @end 16 | -------------------------------------------------------------------------------- /Hydro/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // Hydro 4 | // 5 | // Created by kevinzhow on 14/12/25. 6 | // Copyright (c) 2014年 Catch Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | 12 | int main(int argc, char * argv[]) { 13 | @autoreleasepool { 14 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Hydro/Views/locationView.h: -------------------------------------------------------------------------------- 1 | // 2 | // locationView.h 3 | // Hydro 4 | // 5 | // Created by kevinzhow on 14/12/26. 6 | // Copyright (c) 2014年 Catch Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface locationView : UIView 12 | 13 | @property (nonatomic) CAShapeLayer * circleShape; 14 | 15 | @property (nonatomic) CAShapeLayer * ringShape; 16 | 17 | -(void)show; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /Hydro/Views/InviteView.h: -------------------------------------------------------------------------------- 1 | // 2 | // InviteView.h 3 | // Hydro 4 | // 5 | // Created by NIX on 14/12/27. 6 | // Copyright (c) 2014年 Catch Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface InviteView : UIView 13 | 14 | @property (nonatomic, strong) SAMTextField *emailTextField; 15 | @property (nonatomic, strong) UIButton *inviteButton; 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /Hydro/Images.xcassets/flag_sg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "flag_sg.pdf" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Hydro/stationDelegate/VPNStations.h: -------------------------------------------------------------------------------- 1 | // 2 | // VPNStations.h 3 | // Hydro 4 | // 5 | // Created by NIX on 14/12/26. 6 | // Copyright (c) 2014年 Catch Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface VPNStations : NSObject 12 | 13 | @property (nonatomic, strong) NSArray *stations; 14 | 15 | @property (nonatomic, strong) NSDictionary *config; 16 | 17 | + (VPNStations *)sharedInstance; 18 | 19 | @end 20 | -------------------------------------------------------------------------------- /Pods/SVProgressHUD/SVProgressHUD/SVIndefiniteAnimatedView.h: -------------------------------------------------------------------------------- 1 | // 2 | // SVIndefiniteAnimatedView.h 3 | // SVProgressHUD 4 | // 5 | // Created by Guillaume Campagna on 2014-12-05. 6 | // 7 | // 8 | 9 | #import 10 | 11 | @interface SVIndefiniteAnimatedView : UIView 12 | 13 | @property (nonatomic, assign) CGFloat strokeThickness; 14 | @property (nonatomic, assign) CGFloat radius; 15 | @property (nonatomic, strong) UIColor *strokeColor; 16 | 17 | @end 18 | 19 | -------------------------------------------------------------------------------- /Hydro/Hydro.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.developer.networking.vpn.api 6 | 7 | allow-vpn 8 | 9 | com.apple.security.application-groups 10 | 11 | group.catchlab.TodayExtensionSharingDefaults 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Today/Today.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.developer.networking.vpn.api 6 | 7 | allow-vpn 8 | 9 | com.apple.security.application-groups 10 | 11 | group.catchlab.TodayExtensionSharingDefaults 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Today/VPNButton.h: -------------------------------------------------------------------------------- 1 | // 2 | // VPNButton.h 3 | // Hydro 4 | // 5 | // Created by NIX on 14/12/26. 6 | // Copyright (c) 2014年 Catch Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | typedef NS_ENUM(NSUInteger, VPNButtonState) { 12 | VPNButtonStateNormal, 13 | VPNButtonStateConnecting, 14 | VPNButtonStateConnected, 15 | VPNButtonStateConnectFailed, 16 | }; 17 | 18 | @interface VPNButton : UIButton 19 | 20 | @property (nonatomic) VPNButtonState buttonState; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /Hydro/ViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.h 3 | // Hydro 4 | // 5 | // Created by kevinzhow on 14/12/25. 6 | // Copyright (c) 2014年 Catch Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "HydroHelper.h" 11 | #import "VCIPsecVPNManager.h" 12 | #import "HydroButton.h" 13 | #import "stationView.h" 14 | #import "locationView.h" 15 | 16 | 17 | @interface ViewController : UIViewController 18 | 19 | @property (weak, nonatomic) IBOutlet UITableView *stationsTableVIew; 20 | 21 | @end 22 | 23 | -------------------------------------------------------------------------------- /Pods/TPKeyboardAvoiding/TPKeyboardAvoiding/TPKeyboardAvoidingTableView.h: -------------------------------------------------------------------------------- 1 | // 2 | // TPKeyboardAvoidingTableView.h 3 | // TPKeyboardAvoiding 4 | // 5 | // Created by Michael Tyson on 30/09/2013. 6 | // Copyright 2015 A Tasty Pixel. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "UIScrollView+TPKeyboardAvoidingAdditions.h" 11 | 12 | @interface TPKeyboardAvoidingTableView : UITableView 13 | - (BOOL)focusNextTextField; 14 | - (void)scrollToActiveTextField; 15 | @end 16 | -------------------------------------------------------------------------------- /Hydro/GVUserDefaults+Hydro.h: -------------------------------------------------------------------------------- 1 | // 2 | // GVUserDefaults+Hydro.h 3 | // Hydro 4 | // 5 | // Created by kevinzhow on 14/12/25. 6 | // Copyright (c) 2014年 Catch Inc. All rights reserved. 7 | // 8 | 9 | #import "GVUserDefaults.h" 10 | 11 | @interface GVUserDefaults (Hydro) 12 | 13 | @property (nonatomic, strong) NSString *email; 14 | @property (nonatomic, strong) NSString *server; 15 | @property (nonatomic, strong) NSString *token; 16 | 17 | @property (nonatomic) BOOL ikev2; 18 | 19 | @property (nonatomic, strong) NSDictionary *currentStationDict; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /Pods/TPKeyboardAvoiding/TPKeyboardAvoiding/TPKeyboardAvoidingScrollView.h: -------------------------------------------------------------------------------- 1 | // 2 | // TPKeyboardAvoidingScrollView.h 3 | // TPKeyboardAvoiding 4 | // 5 | // Created by Michael Tyson on 30/09/2013. 6 | // Copyright 2015 A Tasty Pixel. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "UIScrollView+TPKeyboardAvoidingAdditions.h" 11 | 12 | @interface TPKeyboardAvoidingScrollView : UIScrollView 13 | - (void)contentSizeToFit; 14 | - (BOOL)focusNextTextField; 15 | - (void)scrollToActiveTextField; 16 | @end 17 | -------------------------------------------------------------------------------- /Pods/TPKeyboardAvoiding/TPKeyboardAvoiding/TPKeyboardAvoidingCollectionView.h: -------------------------------------------------------------------------------- 1 | // 2 | // TPKeyboardAvoidingCollectionView.h 3 | // TPKeyboardAvoiding 4 | // 5 | // Created by Michael Tyson on 30/09/2013. 6 | // Copyright 2015 A Tasty Pixel & The CocoaBots. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "UIScrollView+TPKeyboardAvoidingAdditions.h" 11 | 12 | @interface TPKeyboardAvoidingCollectionView : UICollectionView 13 | - (BOOL)focusNextTextField; 14 | - (void)scrollToActiveTextField; 15 | @end 16 | -------------------------------------------------------------------------------- /Hydro/VCKetChain.h: -------------------------------------------------------------------------------- 1 | // 2 | // VCKetChain.h 3 | // VPNCloud 4 | // 5 | // Created by kevinzhow on 14/11/12. 6 | // Copyright (c) 2014年 Kingaxis Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface VCKetChain : NSObject 12 | { 13 | NSString * service; 14 | NSString * group; 15 | } 16 | -(id) initWithService:(NSString *) service_ withGroup:(NSString*)group_; 17 | 18 | -(BOOL) insert:(NSString *)key : (NSData *)data; 19 | -(BOOL) update:(NSString*)key :(NSData*) data; 20 | -(BOOL) remove: (NSString*)key; 21 | -(NSData*) find:(NSString*)key; 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Xcode 2 | # 3 | build/ 4 | *.pbxuser 5 | !default.pbxuser 6 | *.mode1v3 7 | !default.mode1v3 8 | *.mode2v3 9 | !default.mode2v3 10 | *.perspectivev3 11 | !default.perspectivev3 12 | xcuserdata 13 | *.xccheckout 14 | *.moved-aside 15 | DerivedData 16 | *.hmap 17 | *.ipa 18 | *.xcuserstate 19 | 20 | # CocoaPods 21 | # 22 | # We recommend against adding the Pods directory to your .gitignore. However 23 | # you should judge for yourself, the pros and cons are mentioned at: 24 | # http://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control 25 | # 26 | #Pods/ 27 | -------------------------------------------------------------------------------- /Hydro/HydroHelper/HydroHelper.h: -------------------------------------------------------------------------------- 1 | // 2 | // HydroHelper.h 3 | // Hydro 4 | // 5 | // Created by kevinzhow on 14/12/25. 6 | // Copyright (c) 2014年 Catch Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | #define SCREEN_HEIGHT ([UIScreen mainScreen].bounds.size.height) 12 | #define SCREEN_WIDTH ([UIScreen mainScreen].bounds.size.width) 13 | 14 | extern NSString * const CCNFillUserInfo; 15 | 16 | extern NSString * const CCNFilterStationStatus; 17 | 18 | 19 | @interface HydroHelper : NSObject 20 | 21 | + (UIImage *)imageFromColor:(UIColor*)color; 22 | 23 | @end 24 | -------------------------------------------------------------------------------- /Pods/Target Support Files/GBPing/GBPing-Private.xcconfig: -------------------------------------------------------------------------------- 1 | #include "GBPing.xcconfig" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/GBPing" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/GBPing" "${PODS_ROOT}/Headers/Public/GVUserDefaults" "${PODS_ROOT}/Headers/Public/SAMTextField" "${PODS_ROOT}/Headers/Public/SVProgressHUD" "${PODS_ROOT}/Headers/Public/Shimmer" "${PODS_ROOT}/Headers/Public/TPKeyboardAvoiding" "${PODS_ROOT}/Headers/Public/pop" 4 | PODS_ROOT = ${SRCROOT} 5 | SKIP_INSTALL = YES -------------------------------------------------------------------------------- /Pods/Target Support Files/Shimmer/Shimmer-Private.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Shimmer.xcconfig" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/Shimmer" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/GBPing" "${PODS_ROOT}/Headers/Public/GVUserDefaults" "${PODS_ROOT}/Headers/Public/SAMTextField" "${PODS_ROOT}/Headers/Public/SVProgressHUD" "${PODS_ROOT}/Headers/Public/Shimmer" "${PODS_ROOT}/Headers/Public/TPKeyboardAvoiding" "${PODS_ROOT}/Headers/Public/pop" 4 | PODS_ROOT = ${SRCROOT} 5 | SKIP_INSTALL = YES -------------------------------------------------------------------------------- /Hydro/GVUserDefaults+Hydro.m: -------------------------------------------------------------------------------- 1 | // 2 | // GVUserDefaults+Hydro.m 3 | // Hydro 4 | // 5 | // Created by kevinzhow on 14/12/25. 6 | // Copyright (c) 2014年 Catch Inc. All rights reserved. 7 | // 8 | 9 | #import "GVUserDefaults+Hydro.h" 10 | #import "VPNStations.h" 11 | 12 | @implementation GVUserDefaults (Hydro) 13 | 14 | @dynamic email; 15 | @dynamic token; 16 | @dynamic server; 17 | @dynamic ikev2; 18 | @dynamic currentStationDict; 19 | 20 | - (NSDictionary *)setupDefaults { 21 | return @{ 22 | @"server": [[VPNStations sharedInstance].stations.firstObject valueForKey:@"host"] 23 | }; 24 | } 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /Hydro/LoginViewController/LoginViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // LoginViewController.h 3 | // Hydro 4 | // 5 | // Created by kevinzhow on 14/12/25. 6 | // Copyright (c) 2014年 Catch Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "HydroHelper.h" 11 | #import 12 | 13 | @interface LoginViewController : UIViewController 14 | @property (weak, nonatomic) IBOutlet UIScrollView *scrollview; 15 | @property (weak, nonatomic) IBOutlet SAMTextField *emailtextfield; 16 | @property (weak, nonatomic) IBOutlet SAMTextField *passwordField; 17 | 18 | - (IBAction)doClickLoginButton:(id)sender; 19 | 20 | @end 21 | -------------------------------------------------------------------------------- /Pods/Target Support Files/GVUserDefaults/GVUserDefaults-Private.xcconfig: -------------------------------------------------------------------------------- 1 | #include "GVUserDefaults.xcconfig" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/GVUserDefaults" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/GBPing" "${PODS_ROOT}/Headers/Public/GVUserDefaults" "${PODS_ROOT}/Headers/Public/SAMTextField" "${PODS_ROOT}/Headers/Public/SVProgressHUD" "${PODS_ROOT}/Headers/Public/Shimmer" "${PODS_ROOT}/Headers/Public/TPKeyboardAvoiding" "${PODS_ROOT}/Headers/Public/pop" 4 | PODS_ROOT = ${SRCROOT} 5 | SKIP_INSTALL = YES -------------------------------------------------------------------------------- /Pods/Target Support Files/TPKeyboardAvoiding/TPKeyboardAvoiding-Private.xcconfig: -------------------------------------------------------------------------------- 1 | #include "TPKeyboardAvoiding.xcconfig" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/TPKeyboardAvoiding" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/GBPing" "${PODS_ROOT}/Headers/Public/GVUserDefaults" "${PODS_ROOT}/Headers/Public/SAMTextField" "${PODS_ROOT}/Headers/Public/SVProgressHUD" "${PODS_ROOT}/Headers/Public/Shimmer" "${PODS_ROOT}/Headers/Public/TPKeyboardAvoiding" "${PODS_ROOT}/Headers/Public/pop" 4 | PODS_ROOT = ${SRCROOT} 5 | SKIP_INSTALL = YES -------------------------------------------------------------------------------- /Pods/Shimmer/FBShimmering/FBShimmeringView.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "FBShimmering.h" 13 | 14 | /** 15 | @abstract Lightweight, generic shimmering view. 16 | */ 17 | @interface FBShimmeringView : UIView 18 | 19 | //! @abstract The content view to be shimmered. 20 | @property (strong, nonatomic) UIView *contentView; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /Pods/Target Support Files/AFNetworking/AFNetworking-Private.xcconfig: -------------------------------------------------------------------------------- 1 | #include "AFNetworking.xcconfig" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/AFNetworking" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/GBPing" "${PODS_ROOT}/Headers/Public/GVUserDefaults" "${PODS_ROOT}/Headers/Public/SAMTextField" "${PODS_ROOT}/Headers/Public/SVProgressHUD" "${PODS_ROOT}/Headers/Public/Shimmer" "${PODS_ROOT}/Headers/Public/TPKeyboardAvoiding" "${PODS_ROOT}/Headers/Public/pop" 4 | OTHER_LDFLAGS = ${AFNETWORKING_OTHER_LDFLAGS} 5 | PODS_ROOT = ${SRCROOT} 6 | SKIP_INSTALL = YES -------------------------------------------------------------------------------- /Pods/Target Support Files/SAMTextField/SAMTextField-Private.xcconfig: -------------------------------------------------------------------------------- 1 | #include "SAMTextField.xcconfig" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/SAMTextField" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/GBPing" "${PODS_ROOT}/Headers/Public/GVUserDefaults" "${PODS_ROOT}/Headers/Public/SAMTextField" "${PODS_ROOT}/Headers/Public/SVProgressHUD" "${PODS_ROOT}/Headers/Public/Shimmer" "${PODS_ROOT}/Headers/Public/TPKeyboardAvoiding" "${PODS_ROOT}/Headers/Public/pop" 4 | OTHER_LDFLAGS = ${SAMTEXTFIELD_OTHER_LDFLAGS} 5 | PODS_ROOT = ${SRCROOT} 6 | SKIP_INSTALL = YES -------------------------------------------------------------------------------- /Pods/Target Support Files/SVProgressHUD/SVProgressHUD-Private.xcconfig: -------------------------------------------------------------------------------- 1 | #include "SVProgressHUD.xcconfig" 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/SVProgressHUD" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/GBPing" "${PODS_ROOT}/Headers/Public/GVUserDefaults" "${PODS_ROOT}/Headers/Public/SAMTextField" "${PODS_ROOT}/Headers/Public/SVProgressHUD" "${PODS_ROOT}/Headers/Public/Shimmer" "${PODS_ROOT}/Headers/Public/TPKeyboardAvoiding" "${PODS_ROOT}/Headers/Public/pop" 4 | OTHER_LDFLAGS = ${SVPROGRESSHUD_OTHER_LDFLAGS} 5 | PODS_ROOT = ${SRCROOT} 6 | SKIP_INSTALL = YES -------------------------------------------------------------------------------- /Pods/Shimmer/FBShimmering/FBShimmeringLayer.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "FBShimmering.h" 13 | 14 | /** 15 | @abstract Lightweight, generic shimmering layer. 16 | */ 17 | @interface FBShimmeringLayer : CALayer 18 | 19 | //! @abstract The content layer to be shimmered. 20 | @property (strong, nonatomic) CALayer *contentLayer; 21 | 22 | @end 23 | -------------------------------------------------------------------------------- /Hydro/Views/stationView.h: -------------------------------------------------------------------------------- 1 | // 2 | // stationView.h 3 | // Hydro 4 | // 5 | // Created by kevinzhow on 14/12/25. 6 | // Copyright (c) 2014年 Catch Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "FBShimmeringView.h" 11 | 12 | @interface stationView : UIView 13 | 14 | @property (nonatomic) UIImageView * stationFlag; 15 | 16 | @property (nonatomic) UIImageView * stationStatusIcon; 17 | 18 | @property (nonatomic) UILabel * statusLabel; 19 | 20 | @property (nonatomic) UILabel * nameLabel; 21 | 22 | @property (nonatomic) NSString * name; 23 | 24 | @property (nonatomic) NSString * status; 25 | 26 | @property (nonatomic) FBShimmeringView * shimmeringView; 27 | 28 | @property (nonatomic) BOOL displayed; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /Pods/Target Support Files/pop/pop-Private.xcconfig: -------------------------------------------------------------------------------- 1 | #include "pop.xcconfig" 2 | CLANG_CXX_LANGUAGE_STANDARD = ${POP_CLANG_CXX_LANGUAGE_STANDARD} 3 | CLANG_CXX_LIBRARY = ${POP_CLANG_CXX_LIBRARY} 4 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 5 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Private/pop" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/GBPing" "${PODS_ROOT}/Headers/Public/GVUserDefaults" "${PODS_ROOT}/Headers/Public/SAMTextField" "${PODS_ROOT}/Headers/Public/SVProgressHUD" "${PODS_ROOT}/Headers/Public/Shimmer" "${PODS_ROOT}/Headers/Public/TPKeyboardAvoiding" "${PODS_ROOT}/Headers/Public/pop" 6 | OTHER_LDFLAGS = ${POP_OTHER_LDFLAGS} 7 | PODS_ROOT = ${SRCROOT} 8 | SKIP_INSTALL = YES -------------------------------------------------------------------------------- /Pods/SAMTextField/Readme.markdown: -------------------------------------------------------------------------------- 1 | # SAMTextField 2 | 3 | Handy UITextField additions like insetting text and other elements. 4 | 5 | SAMTextField is tested on iOS 6-8 and requires ARC. Released under the [MIT license](LICENSE). 6 | 7 | ## Usage 8 | 9 | ``` objc 10 | // Initialize a text field 11 | SAMTextField *textField = [[SAMTextField alloc] initWithFrame:CGRectMake(20.0f, 20.0f, 280.0f, 44.0f)]; 12 | 13 | // Inset some text 14 | textField.textEdgeInsets = UIEdgeInsetsMake(10.0f, 10.0f, 10.0f, 10.0f); 15 | ``` 16 | 17 | See the [header](SAMTextField/SAMTextField.h) for full documentation. 18 | 19 | ## Installation 20 | 21 | Simply add the files in the `SAMTextField.h` and `SAMTextField.m` to your project or add `SAMTextField` to your Podfile if you're using CocoaPods. 22 | -------------------------------------------------------------------------------- /Pods/pop/pop/POPDefines.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #ifndef POP_POPDefines_h 11 | #define POP_POPDefines_h 12 | 13 | #ifdef __cplusplus 14 | # define POP_EXTERN_C_BEGIN extern "C" { 15 | # define POP_EXTERN_C_END } 16 | #else 17 | # define POP_EXTERN_C_BEGIN 18 | # define POP_EXTERN_C_END 19 | #endif 20 | 21 | #define POP_ARRAY_COUNT(x) sizeof(x) / sizeof(x[0]) 22 | 23 | #if defined (__cplusplus) && defined (__GNUC__) 24 | # define POP_NOTHROW __attribute__ ((nothrow)) 25 | #else 26 | # define POP_NOTHROW 27 | #endif 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /HydroTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | catchlab.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /Pods/pop/pop/POPAnimationPrivate.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #define POP_ANIMATION_FRICTION_FOR_QC_FRICTION(qcFriction) (25.0 + (((qcFriction - 8.0) / 2.0) * (25.0 - 19.0))) 13 | #define POP_ANIMATION_TENSION_FOR_QC_TENSION(qcTension) (194.0 + (((qcTension - 30.0) / 50.0) * (375.0 - 194.0))) 14 | 15 | #define QC_FRICTION_FOR_POP_ANIMATION_FRICTION(fbFriction) (8.0 + 2.0 * ((fbFriction - 25.0)/(25.0 - 19.0))) 16 | #define QC_TENSION_FOR_POP_ANIMATION_TENSION(fbTension) (30.0 + 50.0 * ((fbTension - 194.0)/(375.0 - 194.0))) 17 | -------------------------------------------------------------------------------- /Today/TodayViewController.h: -------------------------------------------------------------------------------- 1 | // 2 | // TodayViewController.h 3 | // Today 4 | // 5 | // Created by NIX on 14/12/26. 6 | // Copyright (c) 2014年 Catch Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "VPNButton.h" 11 | 12 | @interface TodayViewController : UIViewController 13 | 14 | @property (weak, nonatomic) IBOutlet VPNButton *country1; 15 | 16 | @property (weak, nonatomic) IBOutlet VPNButton *country2; 17 | @property (weak, nonatomic) IBOutlet VPNButton *country3; 18 | @property (weak, nonatomic) IBOutlet UILabel *signInLabel; 19 | @property (weak, nonatomic) IBOutlet VPNButton *country4; 20 | @property (weak, nonatomic) IBOutlet NSLayoutConstraint *countrySpaceConstraint; 21 | @property (weak, nonatomic) IBOutlet NSLayoutConstraint *country2SpaceConstraint; 22 | @property (weak, nonatomic) IBOutlet NSLayoutConstraint *country3SpaceConstraint; 23 | 24 | @end 25 | -------------------------------------------------------------------------------- /Hydro/config.json.example: -------------------------------------------------------------------------------- 1 | { 2 | "stations": [ 3 | { 4 | "name":"Singapore", 5 | "host":"domain.com", 6 | "short_name":"flag_sg", 7 | "x":0.55, 8 | "y":0.40 9 | }, 10 | { 11 | "name":"HongKong", 12 | "host":"domain.com", 13 | "short_name":"HK", 14 | "x":0.65, 15 | "y":0.20 16 | }, 17 | { 18 | "name":"Japan", 19 | "host":"domain.com", 20 | "short_name":"JP", 21 | "x":0.73, 22 | "y":0.15 23 | }, 24 | { 25 | "name":"United States", 26 | "host":"domain.com", 27 | "short_name":"flag_us", 28 | "x":-0.5, 29 | "y":0.15 30 | } 31 | ], 32 | "server": "http://domain.com", 33 | "server_auth": "/path", 34 | "can_do_invite": "/path", 35 | "do_invite": "/path", 36 | "validate_user": "/path" 37 | } 38 | -------------------------------------------------------------------------------- /Pods/pop/pop/POP.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #ifndef POP_POP_H 11 | #define POP_POP_H 12 | 13 | #import 14 | #import 15 | #import 16 | #import 17 | #import 18 | #import 19 | #import 20 | #import 21 | #import 22 | #import 23 | #import 24 | #import 25 | #import 26 | 27 | 28 | #endif /* POP_POP_H */ 29 | -------------------------------------------------------------------------------- /Pods/GBPing/GBPing/GBPingSummary.h: -------------------------------------------------------------------------------- 1 | // 2 | // GBPingSummary.h 3 | // GBPing 4 | // 5 | // Created by Luka Mirosevic on 05/11/2012. 6 | // Copyright (c) 2012 Goonbee. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface GBPingSummary : NSObject 12 | 13 | typedef enum { 14 | GBPingStatusPending, 15 | GBPingStatusSuccess, 16 | GBPingStatusFail, 17 | } GBPingStatus; 18 | 19 | @property (assign, nonatomic) NSUInteger sequenceNumber; 20 | @property (assign, nonatomic) NSUInteger payloadSize; 21 | @property (assign, nonatomic) NSUInteger ttl; 22 | @property (strong, nonatomic) NSString *host; 23 | @property (strong, nonatomic) NSDate *sendDate; 24 | @property (strong, nonatomic) NSDate *receiveDate; 25 | @property (assign, nonatomic) NSTimeInterval rtt; 26 | @property (assign, nonatomic) GBPingStatus status; 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Pods/TPKeyboardAvoiding/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2013 Michael Tyson 2 | 3 | This software is provided 'as-is', without any express or implied 4 | warranty. In no event will the authors be held liable for any damages 5 | arising from the use of this software. 6 | 7 | Permission is granted to anyone to use this software for any purpose, 8 | including commercial applications, and to alter it and redistribute it 9 | freely, subject to the following restrictions: 10 | 11 | 1. The origin of this software must not be misrepresented; you must not 12 | claim that you wrote the original software. If you use this software 13 | in a product, an acknowledgment in the product documentation would be 14 | appreciated but is not required. 15 | 16 | 2. Altered source versions must be plainly marked as such, and must not be 17 | misrepresented as being the original software. 18 | 19 | 3. This notice may not be removed or altered from any source 20 | distribution. -------------------------------------------------------------------------------- /Hydro/HydroHelper/HydroHelper.m: -------------------------------------------------------------------------------- 1 | // 2 | // HydroHelper.m 3 | // Hydro 4 | // 5 | // Created by kevinzhow on 14/12/25. 6 | // Copyright (c) 2014年 Catch Inc. All rights reserved. 7 | // 8 | 9 | #import "HydroHelper.h" 10 | 11 | NSString *const CCNFillUserInfo = @"CCFillUserInfo"; 12 | NSString *const CCNFilterStationStatus = @"CCNFilterStationStatus"; 13 | 14 | @implementation HydroHelper 15 | 16 | + (UIImage *)imageFromColor:(UIColor*)color 17 | { 18 | CGRect rect = CGRectMake(0, 0, 1, 1); 19 | UIGraphicsBeginImageContext(rect.size); 20 | CGContextRef context = UIGraphicsGetCurrentContext(); 21 | CGContextSetFillColorWithColor(context, 22 | [color CGColor]); 23 | // [[UIColor colorWithRed:222./255 green:227./255 blue: 229./255 alpha:1] CGColor]) ; 24 | CGContextFillRect(context, rect); 25 | UIImage *img = UIGraphicsGetImageFromCurrentImageContext(); 26 | UIGraphicsEndImageContext(); 27 | return img; 28 | } 29 | 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /Pods/TPKeyboardAvoiding/TPKeyboardAvoiding/UIScrollView+TPKeyboardAvoidingAdditions.h: -------------------------------------------------------------------------------- 1 | // 2 | // UIScrollView+TPKeyboardAvoidingAdditions.h 3 | // TPKeyboardAvoiding 4 | // 5 | // Created by Michael Tyson on 30/09/2013. 6 | // Copyright 2015 A Tasty Pixel. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface UIScrollView (TPKeyboardAvoidingAdditions) 12 | - (BOOL)TPKeyboardAvoiding_focusNextTextField; 13 | - (void)TPKeyboardAvoiding_scrollToActiveTextField; 14 | 15 | - (void)TPKeyboardAvoiding_keyboardWillShow:(NSNotification*)notification; 16 | - (void)TPKeyboardAvoiding_keyboardWillHide:(NSNotification*)notification; 17 | - (void)TPKeyboardAvoiding_updateContentInset; 18 | - (void)TPKeyboardAvoiding_updateFromContentSizeChange; 19 | - (void)TPKeyboardAvoiding_assignTextDelegateForViewsBeneathView:(UIView*)view; 20 | - (UIView*)TPKeyboardAvoiding_findFirstResponderBeneathView:(UIView*)view; 21 | -(CGSize)TPKeyboardAvoiding_calculatedContentSizeFromSubviewFrames; 22 | @end 23 | -------------------------------------------------------------------------------- /Crashlytics.framework/Versions/A/Resources/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | English 7 | CFBundleExecutable 8 | Crashlytics 9 | CFBundleIdentifier 10 | com.crashlytics.ios 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | Crashlytics 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 2.2.10 19 | CFBundleSupportedPlatforms 20 | 21 | iPhoneOS 22 | 23 | CFBundleVersion 24 | 45 25 | DTPlatformName 26 | iphoneos 27 | MinimumOSVersion 28 | 4.0 29 | 30 | 31 | -------------------------------------------------------------------------------- /HydroTests/HydroTests.m: -------------------------------------------------------------------------------- 1 | // 2 | // HydroTests.m 3 | // HydroTests 4 | // 5 | // Created by kevinzhow on 14/12/25. 6 | // Copyright (c) 2014年 Catch Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | @interface HydroTests : XCTestCase 13 | 14 | @end 15 | 16 | @implementation HydroTests 17 | 18 | - (void)setUp { 19 | [super setUp]; 20 | // Put setup code here. This method is called before the invocation of each test method in the class. 21 | } 22 | 23 | - (void)tearDown { 24 | // Put teardown code here. This method is called after the invocation of each test method in the class. 25 | [super tearDown]; 26 | } 27 | 28 | - (void)testExample { 29 | // This is an example of a functional test case. 30 | XCTAssert(YES, @"Pass"); 31 | } 32 | 33 | - (void)testPerformanceExample { 34 | // This is an example of a performance test case. 35 | [self measureBlock:^{ 36 | // Put the code you want to measure the time of here. 37 | }]; 38 | } 39 | 40 | @end 41 | -------------------------------------------------------------------------------- /Pods/GVUserDefaults/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2012 Gangverk ehf. http://gangverk.is 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. -------------------------------------------------------------------------------- /Today/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | Hydro 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | catchlab.Hydro.$(PRODUCT_NAME:rfc1034identifier) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | XPC! 19 | CFBundleShortVersionString 20 | 1.1.5 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 12 25 | NSExtension 26 | 27 | NSExtensionMainStoryboard 28 | MainInterface 29 | NSExtensionPointIdentifier 30 | com.apple.widget-extension 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /Pods/SAMTextField/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2010-2014 Sam Soffes, http://soff.es 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /Pods/pop/pop/POPAnimationEventInternal.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import "POPAnimationEvent.h" 13 | 14 | @interface POPAnimationEvent () 15 | 16 | /** 17 | @abstract Default initializer. 18 | */ 19 | - (instancetype)initWithType:(POPAnimationEventType)type time:(CFTimeInterval)time; 20 | 21 | /** 22 | @abstract Readwrite redefinition of public property. 23 | */ 24 | @property (readwrite, nonatomic, copy) NSString *animationDescription; 25 | 26 | @end 27 | 28 | @interface POPAnimationValueEvent () 29 | 30 | /** 31 | @abstract Default initializer. 32 | */ 33 | - (instancetype)initWithType:(POPAnimationEventType)type time:(CFTimeInterval)time value:(id)value; 34 | 35 | /** 36 | @abstract Readwrite redefinition of public property. 37 | */ 38 | @property (readwrite, nonatomic, strong) id velocity; 39 | 40 | @end 41 | 42 | -------------------------------------------------------------------------------- /Pods/AFNetworking/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011–2015 Alamofire Software Foundation (http://alamofire.org/) 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /Hydro/VCIPsecVPNManager.h: -------------------------------------------------------------------------------- 1 | // 2 | // VCIPsecVPNManager.h 3 | // VPNCloud 4 | // 5 | // Created by kevinzhow on 14/11/12. 6 | // Copyright (c) 2014年 Kingaxis Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | 13 | @interface VCIPsecVPNManager : NSObject 14 | 15 | @property (nonatomic) NEVPNManager * vpnManager; 16 | 17 | -(void)prepareWithCompletion:(void (^)(NSError *error))done; 18 | 19 | -(void)connectIPSecIKEv2WithHost:(NSString *)host andUsername:(NSString *)username andPassword:(NSString *)password andP12Name:(NSString *)p12Name andidentityDataPassword:(NSString *)identityDataPassword andGroupName:(NSString *)groupName; 20 | 21 | -(void)connectIPSecWithHost:(NSString *)host andUsername:(NSString *)username andPassword:(NSString *)password andPSK:(NSString *)psk andGroupName:(NSString *)groupName; 22 | 23 | -(void)connectIPSecIKEv2WithHost:(NSString *)host andUsername:(NSString *)username andPassword:(NSString *)password andPSK:(NSString *)psk andGroupName:(NSString *)groupName; 24 | 25 | @property (nonatomic) BOOL IKEv1Enabled; 26 | 27 | @property (nonatomic) BOOL IKEv2Enabled; 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /Hydro/Cell/StationTableViewCell.h: -------------------------------------------------------------------------------- 1 | // 2 | // StationTableViewCell.h 3 | // Hydro 4 | // 5 | // Created by kevinzhow on 14/12/25. 6 | // Copyright (c) 2014年 Catch Inc. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | 12 | 13 | @interface StationTableViewCell : UITableViewCell 14 | 15 | @property (weak, nonatomic) IBOutlet UIImageView *statusIcon; 16 | 17 | @property (nonatomic) NSString * domain; 18 | 19 | @property (weak, nonatomic) IBOutlet UIImageView *flagImageView; 20 | 21 | @property (weak, nonatomic) IBOutlet UILabel *stationNameLabel; 22 | 23 | @property (nonatomic) BOOL isPing; 24 | 25 | @property (nonatomic) int stopPingCount; 26 | 27 | @property (nonatomic) NSMutableArray * allPingResult; 28 | 29 | @property (nonatomic) GBPing * ping; 30 | 31 | @property (nonatomic) float rtt; 32 | 33 | @property (weak, nonatomic) IBOutlet UIImageView *checkStatusIcon; 34 | 35 | @property (nonatomic) NSDictionary * stationDic; 36 | 37 | -(void)makeCheck; 38 | 39 | @property (nonatomic) BOOL checked; 40 | 41 | -(void)setDomain:(NSString *)domain withIndex:(NSInteger)index; 42 | @property (nonatomic) NSInteger failCount; 43 | 44 | 45 | @end 46 | -------------------------------------------------------------------------------- /Hydro/stationDelegate/VPNStations.m: -------------------------------------------------------------------------------- 1 | // 2 | // VPNStations.m 3 | // Hydro 4 | // 5 | // Created by NIX on 14/12/26. 6 | // Copyright (c) 2014年 Catch Inc. All rights reserved. 7 | // 8 | 9 | #import "VPNStations.h" 10 | 11 | @interface VPNStations() 12 | 13 | @end 14 | 15 | @implementation VPNStations 16 | 17 | + (VPNStations *)sharedInstance 18 | { 19 | static VPNStations *_sharedInstance = nil; 20 | 21 | static dispatch_once_t onceToken; 22 | dispatch_once(&onceToken, ^{ 23 | _sharedInstance = [[VPNStations alloc] init]; 24 | }); 25 | 26 | return _sharedInstance; 27 | } 28 | 29 | - (id)init{ 30 | self = [super init]; 31 | if (self) { 32 | 33 | NSString *filePath = [[NSBundle mainBundle] pathForResource:@"config" ofType:@"json"]; 34 | NSData *JSONData = [NSData dataWithContentsOfFile:filePath options:NSDataReadingMappedIfSafe error:nil]; 35 | NSDictionary *jsonObject = [NSJSONSerialization JSONObjectWithData:JSONData options:NSJSONReadingMutableContainers error:nil]; 36 | self.stations = [jsonObject valueForKey:@"stations"]; 37 | self.config = jsonObject; 38 | 39 | } 40 | return self; 41 | } 42 | 43 | 44 | @end 45 | -------------------------------------------------------------------------------- /Pods/pop/pop/POPAnimator.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | @protocol POPAnimatorDelegate; 13 | 14 | /** 15 | @abstract The animator class renders animations. 16 | */ 17 | @interface POPAnimator : NSObject 18 | 19 | /** 20 | @abstract The shared animator instance. 21 | @discussion Consumers should generally use the shared instance in lieu of creating new instances. 22 | */ 23 | + (instancetype)sharedAnimator; 24 | 25 | /** 26 | @abstract The optional animator delegate. 27 | */ 28 | @property (weak, nonatomic) id delegate; 29 | 30 | @end 31 | 32 | /** 33 | @abstract The animator delegate. 34 | */ 35 | @protocol POPAnimatorDelegate 36 | 37 | /** 38 | @abstract Called on each frame before animation application. 39 | */ 40 | - (void)animatorWillAnimate:(POPAnimator *)animator; 41 | 42 | /** 43 | @abstract Called on each frame after animation application. 44 | */ 45 | - (void)animatorDidAnimate:(POPAnimator *)animator; 46 | 47 | @end 48 | -------------------------------------------------------------------------------- /Pods/SVProgressHUD/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011-2014 Sam Vermette 2 | 3 | Permission is hereby granted, free of charge, to any person 4 | obtaining a copy of this software and associated documentation 5 | files (the "Software"), to deal in the Software without 6 | restriction, including without limitation the rights to use, 7 | copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the 9 | Software is furnished to do so, subject to the following 10 | conditions: 11 | 12 | The above copyright notice and this permission notice shall be 13 | included in all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 17 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 19 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 20 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | 24 | A different license may apply to other resources included in this package, 25 | including Freepik Icons. Please consult their 26 | respective headers for the terms of their individual licenses. -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-Hydro/Pods-Hydro.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_CXX_LANGUAGE_STANDARD = c++11 2 | CLANG_CXX_LIBRARY = libc++ 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/GBPing" "${PODS_ROOT}/Headers/Public/GVUserDefaults" "${PODS_ROOT}/Headers/Public/SAMTextField" "${PODS_ROOT}/Headers/Public/SVProgressHUD" "${PODS_ROOT}/Headers/Public/Shimmer" "${PODS_ROOT}/Headers/Public/TPKeyboardAvoiding" "${PODS_ROOT}/Headers/Public/pop" 5 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/AFNetworking" -isystem "${PODS_ROOT}/Headers/Public/GBPing" -isystem "${PODS_ROOT}/Headers/Public/GVUserDefaults" -isystem "${PODS_ROOT}/Headers/Public/SAMTextField" -isystem "${PODS_ROOT}/Headers/Public/SVProgressHUD" -isystem "${PODS_ROOT}/Headers/Public/Shimmer" -isystem "${PODS_ROOT}/Headers/Public/TPKeyboardAvoiding" -isystem "${PODS_ROOT}/Headers/Public/pop" 6 | OTHER_LDFLAGS = $(inherited) -ObjC -l"AFNetworking" -l"GBPing" -l"GVUserDefaults" -l"SAMTextField" -l"SVProgressHUD" -l"Shimmer" -l"TPKeyboardAvoiding" -l"c++" -l"pop" -framework "CoreGraphics" -framework "MobileCoreServices" -framework "QuartzCore" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" 7 | PODS_ROOT = ${SRCROOT}/Pods -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-Hydro/Pods-Hydro.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_CXX_LANGUAGE_STANDARD = c++11 2 | CLANG_CXX_LIBRARY = libc++ 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking" "${PODS_ROOT}/Headers/Public/GBPing" "${PODS_ROOT}/Headers/Public/GVUserDefaults" "${PODS_ROOT}/Headers/Public/SAMTextField" "${PODS_ROOT}/Headers/Public/SVProgressHUD" "${PODS_ROOT}/Headers/Public/Shimmer" "${PODS_ROOT}/Headers/Public/TPKeyboardAvoiding" "${PODS_ROOT}/Headers/Public/pop" 5 | OTHER_CFLAGS = $(inherited) -isystem "${PODS_ROOT}/Headers/Public" -isystem "${PODS_ROOT}/Headers/Public/AFNetworking" -isystem "${PODS_ROOT}/Headers/Public/GBPing" -isystem "${PODS_ROOT}/Headers/Public/GVUserDefaults" -isystem "${PODS_ROOT}/Headers/Public/SAMTextField" -isystem "${PODS_ROOT}/Headers/Public/SVProgressHUD" -isystem "${PODS_ROOT}/Headers/Public/Shimmer" -isystem "${PODS_ROOT}/Headers/Public/TPKeyboardAvoiding" -isystem "${PODS_ROOT}/Headers/Public/pop" 6 | OTHER_LDFLAGS = $(inherited) -ObjC -l"AFNetworking" -l"GBPing" -l"GVUserDefaults" -l"SAMTextField" -l"SVProgressHUD" -l"Shimmer" -l"TPKeyboardAvoiding" -l"c++" -l"pop" -framework "CoreGraphics" -framework "MobileCoreServices" -framework "QuartzCore" -framework "Security" -framework "SystemConfiguration" -framework "UIKit" 7 | PODS_ROOT = ${SRCROOT}/Pods -------------------------------------------------------------------------------- /Hydro/Button/HydroButton.m: -------------------------------------------------------------------------------- 1 | // 2 | // HydroButton.m 3 | // Hydro 4 | // 5 | // Created by kevinzhow on 14/12/25. 6 | // Copyright (c) 2014年 Catch Inc. All rights reserved. 7 | // 8 | 9 | #import "HydroButton.h" 10 | #import 11 | 12 | @implementation HydroButton 13 | 14 | /* 15 | // Only override drawRect: if you perform custom drawing. 16 | // An empty implementation adversely affects performance during animation. 17 | - (void)drawRect:(CGRect)rect { 18 | // Drawing code 19 | } 20 | */ 21 | 22 | 23 | - (void)touchDown { 24 | [self.layer pop_removeAnimationForKey:@"AnimationScaleBack"]; 25 | POPSpringAnimation *anim = 26 | [POPSpringAnimation animationWithPropertyNamed:kPOPLayerScaleXY]; 27 | anim.springBounciness = 10; 28 | anim.springSpeed = 20; 29 | anim.toValue = [NSValue valueWithCGPoint:CGPointMake(0.8, 0.8)]; 30 | [self.layer pop_addAnimation:anim forKey:@"AnimationScale"]; 31 | } 32 | 33 | 34 | 35 | - (void)touchUpInside{ 36 | 37 | [self.layer pop_removeAnimationForKey:@"AnimationScale"]; 38 | POPSpringAnimation *anim = 39 | [POPSpringAnimation animationWithPropertyNamed:kPOPLayerScaleXY]; 40 | anim.springBounciness = 10; 41 | anim.springSpeed = 20; 42 | anim.toValue = [NSValue valueWithCGPoint:CGPointMake(1.0, 1.0)]; 43 | [self.layer pop_addAnimation:anim forKey:@"AnimationScaleBack"]; 44 | 45 | 46 | } 47 | 48 | 49 | @end 50 | -------------------------------------------------------------------------------- /Hydro/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | catchlab.$(PRODUCT_NAME:rfc1034identifier) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | APPL 17 | CFBundleShortVersionString 18 | 1.1.5 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 12 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIMainStoryboardFile 28 | Main 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UIStatusBarHidden 34 | 35 | UIStatusBarStyle 36 | UIStatusBarStyleLightContent 37 | UISupportedInterfaceOrientations 38 | 39 | UIInterfaceOrientationPortrait 40 | 41 | UIViewControllerBasedStatusBarAppearance 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /Pods/pop/pop/POPAnimationExtras.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import 13 | #import 14 | 15 | /** 16 | @abstract The current drag coefficient. 17 | @discussion A value greater than 1.0 indicates Simulator slow-motion animations are enabled. Defaults to 1.0. 18 | */ 19 | extern CGFloat POPAnimationDragCoefficient(); 20 | 21 | @interface CAAnimation (POPAnimationExtras) 22 | 23 | /** 24 | @abstract Apply the current drag coefficient to animation speed. 25 | @discussion Convenience utility to respect Simulator slow-motion animation settings. 26 | */ 27 | - (void)pop_applyDragCoefficient; 28 | 29 | @end 30 | 31 | @interface POPSpringAnimation (POPAnimationExtras) 32 | 33 | /** 34 | @abstract Converts from spring bounciness and speed to tension, friction and mass dynamics values. 35 | */ 36 | + (void)convertBounciness:(CGFloat)bounciness speed:(CGFloat)speed toTension:(CGFloat *)outTension friction:(CGFloat *)outFriction mass:(CGFloat *)outMass; 37 | 38 | /** 39 | @abstract Converts from dynamics tension, friction and mass to spring bounciness and speed values. 40 | */ 41 | + (void)convertTension:(CGFloat)tension friction:(CGFloat)friction toBounciness:(CGFloat *)outBounciness speed:(CGFloat *)outSpeed; 42 | 43 | @end 44 | -------------------------------------------------------------------------------- /Pods/pop/LICENSE: -------------------------------------------------------------------------------- 1 | BSD License 2 | 3 | For Pop software 4 | 5 | Copyright (c) 2014, Facebook, Inc. All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without modification, 8 | are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright notice, this 11 | list of conditions and the following disclaimer. 12 | 13 | * Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | * Neither the name Facebook nor the names of its contributors may be used to 18 | endorse or promote products derived from this software without specific 19 | prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 22 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 23 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR 25 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 26 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 27 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 28 | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 30 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | -------------------------------------------------------------------------------- /Pods/Shimmer/LICENSE: -------------------------------------------------------------------------------- 1 | BSD License 2 | 3 | For Shimmer software 4 | 5 | Copyright (c) 2014, Facebook, Inc. All rights reserved. 6 | 7 | Redistribution and use in source and binary forms, with or without modification, 8 | are permitted provided that the following conditions are met: 9 | 10 | * Redistributions of source code must retain the above copyright notice, this 11 | list of conditions and the following disclaimer. 12 | 13 | * Redistributions in binary form must reproduce the above copyright notice, 14 | this list of conditions and the following disclaimer in the documentation 15 | and/or other materials provided with the distribution. 16 | 17 | * Neither the name Facebook nor the names of its contributors may be used to 18 | endorse or promote products derived from this software without specific 19 | prior written permission. 20 | 21 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 22 | ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 23 | WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 24 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR 25 | ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 26 | (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 27 | LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON 28 | ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 29 | (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 30 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 31 | -------------------------------------------------------------------------------- /Pods/pop/pop/POPAction.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #ifndef POPACTION_H 11 | #define POPACTION_H 12 | 13 | #import 14 | #import 15 | 16 | #ifdef __cplusplus 17 | 18 | namespace POP { 19 | 20 | /** 21 | @abstract Disables Core Animation actions using RAII. 22 | @discussion The disablement of actions is scoped to the current transaction. 23 | */ 24 | class ActionDisabler 25 | { 26 | BOOL state; 27 | 28 | public: 29 | ActionDisabler() POP_NOTHROW 30 | { 31 | state = [CATransaction disableActions]; 32 | [CATransaction setDisableActions:YES]; 33 | } 34 | 35 | ~ActionDisabler() 36 | { 37 | [CATransaction setDisableActions:state]; 38 | } 39 | }; 40 | 41 | /** 42 | @abstract Enables Core Animation actions using RAII. 43 | @discussion The enablement of actions is scoped to the current transaction. 44 | */ 45 | class ActionEnabler 46 | { 47 | BOOL state; 48 | 49 | public: 50 | ActionEnabler() POP_NOTHROW 51 | { 52 | state = [CATransaction disableActions]; 53 | [CATransaction setDisableActions:NO]; 54 | } 55 | 56 | ~ActionEnabler() 57 | { 58 | [CATransaction setDisableActions:state]; 59 | } 60 | }; 61 | 62 | } 63 | 64 | #endif /* __cplusplus */ 65 | 66 | #endif /* POPACTION_H */ 67 | -------------------------------------------------------------------------------- /Pods/pop/pop/POPCustomAnimation.mm: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "POPCustomAnimation.h" 11 | #import "POPAnimationInternal.h" 12 | 13 | @interface POPCustomAnimation () 14 | @property (nonatomic, copy) POPCustomAnimationBlock animate; 15 | @end 16 | 17 | @implementation POPCustomAnimation 18 | @synthesize currentTime = _currentTime; 19 | @synthesize elapsedTime = _elapsedTime; 20 | @synthesize animate = _animate; 21 | 22 | + (instancetype)animationWithBlock:(BOOL(^)(id target, POPCustomAnimation *))block 23 | { 24 | POPCustomAnimation *b = [[self alloc] _init]; 25 | b.animate = block; 26 | return b; 27 | } 28 | 29 | - (id)_init 30 | { 31 | self = [super _init]; 32 | if (nil != self) { 33 | _state->type = kPOPAnimationCustom; 34 | } 35 | return self; 36 | } 37 | 38 | - (CFTimeInterval)beginTime 39 | { 40 | POPAnimationState *s = POPAnimationGetState(self); 41 | return s->startTime > 0 ? s->startTime : s->beginTime; 42 | } 43 | 44 | - (BOOL)_advance:(id)object currentTime:(CFTimeInterval)currentTime elapsedTime:(CFTimeInterval)elapsedTime 45 | { 46 | _currentTime = currentTime; 47 | _elapsedTime = elapsedTime; 48 | return _animate(object, self); 49 | } 50 | 51 | - (void)_appendDescription:(NSMutableString *)s debug:(BOOL)debug 52 | { 53 | [s appendFormat:@"; elapsedTime = %f; currentTime = %f;", _elapsedTime, _currentTime]; 54 | } 55 | 56 | @end 57 | -------------------------------------------------------------------------------- /Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - AFNetworking (2.5.4): 3 | - AFNetworking/NSURLConnection (= 2.5.4) 4 | - AFNetworking/NSURLSession (= 2.5.4) 5 | - AFNetworking/Reachability (= 2.5.4) 6 | - AFNetworking/Security (= 2.5.4) 7 | - AFNetworking/Serialization (= 2.5.4) 8 | - AFNetworking/UIKit (= 2.5.4) 9 | - AFNetworking/NSURLConnection (2.5.4): 10 | - AFNetworking/Reachability 11 | - AFNetworking/Security 12 | - AFNetworking/Serialization 13 | - AFNetworking/NSURLSession (2.5.4): 14 | - AFNetworking/Reachability 15 | - AFNetworking/Security 16 | - AFNetworking/Serialization 17 | - AFNetworking/Reachability (2.5.4) 18 | - AFNetworking/Security (2.5.4) 19 | - AFNetworking/Serialization (2.5.4) 20 | - AFNetworking/UIKit (2.5.4): 21 | - AFNetworking/NSURLConnection 22 | - AFNetworking/NSURLSession 23 | - GBPing (1.1.1) 24 | - GVUserDefaults (1.0.1) 25 | - pop (1.0.7) 26 | - SAMTextField (0.1.2) 27 | - Shimmer (1.0.2) 28 | - SVProgressHUD (1.1.3) 29 | - TPKeyboardAvoiding (1.2.9) 30 | 31 | DEPENDENCIES: 32 | - AFNetworking 33 | - GBPing 34 | - GVUserDefaults 35 | - pop 36 | - SAMTextField 37 | - Shimmer 38 | - SVProgressHUD 39 | - TPKeyboardAvoiding 40 | 41 | SPEC CHECKSUMS: 42 | AFNetworking: 05edc0ac4c4c8cf57bcf4b84be5b0744b6d8e71e 43 | GBPing: 96434766235731ff5b4573584fac8add16b31f71 44 | GVUserDefaults: acb40729f70984008d0650e49d7e422f1bbfa597 45 | pop: 628ffc631644601567ee8bfaaaea493ebd7d0923 46 | SAMTextField: a0f4eb5b48b45aef56453c265262b45154bc3e2a 47 | Shimmer: c5374be1c2b0c9e292fb05b339a513cf291cac86 48 | SVProgressHUD: 748080e4f36e603f6c02aec292664239df5279c1 49 | TPKeyboardAvoiding: ff1ee4e5a5a0c119b965552af8f183868ea20207 50 | 51 | COCOAPODS: 0.38.2 52 | -------------------------------------------------------------------------------- /Pods/GBPing/GBPing/GBPing.h: -------------------------------------------------------------------------------- 1 | // 2 | // GBPing.h 3 | // GBPing 4 | // 5 | // Created by Luka Mirosevic on 05/11/2012. 6 | // Copyright (c) 2012 Goonbee. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | #import "GBPingSummary.h" 12 | 13 | @class GBPingSummary; 14 | @protocol GBPingDelegate; 15 | 16 | typedef void(^StartupCallback)(BOOL success, NSError *error); 17 | 18 | @interface GBPing : NSObject 19 | 20 | @property (weak, nonatomic) id delegate; 21 | 22 | @property (copy, nonatomic) NSString *host; 23 | @property (assign, atomic) NSTimeInterval pingPeriod; 24 | @property (assign, atomic) NSTimeInterval timeout; 25 | @property (assign, atomic) NSUInteger payloadSize; 26 | @property (assign, atomic) NSUInteger ttl; 27 | @property (assign, atomic, readonly) BOOL isPinging; 28 | @property (assign, atomic, readonly) BOOL isReady; 29 | 30 | @property (assign, atomic) BOOL debug; 31 | 32 | -(void)setupWithBlock:(StartupCallback)callback; 33 | -(void)startPinging; 34 | -(void)stop; 35 | 36 | @end 37 | 38 | @protocol GBPingDelegate 39 | 40 | @optional 41 | 42 | -(void)ping:(GBPing *)pinger didFailWithError:(NSError *)error; 43 | 44 | -(void)ping:(GBPing *)pinger didSendPingWithSummary:(GBPingSummary *)summary; 45 | -(void)ping:(GBPing *)pinger didFailToSendPingWithSummary:(GBPingSummary *)summary error:(NSError *)error; 46 | -(void)ping:(GBPing *)pinger didTimeoutWithSummary:(GBPingSummary *)summary; 47 | -(void)ping:(GBPing *)pinger didReceiveReplyWithSummary:(GBPingSummary *)summary; 48 | -(void)ping:(GBPing *)pinger didReceiveUnexpectedReplyWithSummary:(GBPingSummary *)summary; 49 | 50 | @end -------------------------------------------------------------------------------- /Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - AFNetworking (2.5.4): 3 | - AFNetworking/NSURLConnection (= 2.5.4) 4 | - AFNetworking/NSURLSession (= 2.5.4) 5 | - AFNetworking/Reachability (= 2.5.4) 6 | - AFNetworking/Security (= 2.5.4) 7 | - AFNetworking/Serialization (= 2.5.4) 8 | - AFNetworking/UIKit (= 2.5.4) 9 | - AFNetworking/NSURLConnection (2.5.4): 10 | - AFNetworking/Reachability 11 | - AFNetworking/Security 12 | - AFNetworking/Serialization 13 | - AFNetworking/NSURLSession (2.5.4): 14 | - AFNetworking/Reachability 15 | - AFNetworking/Security 16 | - AFNetworking/Serialization 17 | - AFNetworking/Reachability (2.5.4) 18 | - AFNetworking/Security (2.5.4) 19 | - AFNetworking/Serialization (2.5.4) 20 | - AFNetworking/UIKit (2.5.4): 21 | - AFNetworking/NSURLConnection 22 | - AFNetworking/NSURLSession 23 | - GBPing (1.1.1) 24 | - GVUserDefaults (1.0.1) 25 | - pop (1.0.7) 26 | - SAMTextField (0.1.2) 27 | - Shimmer (1.0.2) 28 | - SVProgressHUD (1.1.3) 29 | - TPKeyboardAvoiding (1.2.9) 30 | 31 | DEPENDENCIES: 32 | - AFNetworking 33 | - GBPing 34 | - GVUserDefaults 35 | - pop 36 | - SAMTextField 37 | - Shimmer 38 | - SVProgressHUD 39 | - TPKeyboardAvoiding 40 | 41 | SPEC CHECKSUMS: 42 | AFNetworking: 05edc0ac4c4c8cf57bcf4b84be5b0744b6d8e71e 43 | GBPing: 96434766235731ff5b4573584fac8add16b31f71 44 | GVUserDefaults: acb40729f70984008d0650e49d7e422f1bbfa597 45 | pop: 628ffc631644601567ee8bfaaaea493ebd7d0923 46 | SAMTextField: a0f4eb5b48b45aef56453c265262b45154bc3e2a 47 | Shimmer: c5374be1c2b0c9e292fb05b339a513cf291cac86 48 | SVProgressHUD: 748080e4f36e603f6c02aec292664239df5279c1 49 | TPKeyboardAvoiding: ff1ee4e5a5a0c119b965552af8f183868ea20207 50 | 51 | COCOAPODS: 0.38.2 52 | -------------------------------------------------------------------------------- /Hydro.xcworkspace/xcshareddata/Hydro.xcscmblueprint: -------------------------------------------------------------------------------- 1 | { 2 | "DVTSourceControlWorkspaceBlueprintPrimaryRemoteRepositoryKey" : "AD9AE3CADFCF220BDF608F8FE2C3794930E9FBE8", 3 | "DVTSourceControlWorkspaceBlueprintWorkingCopyRepositoryLocationsKey" : { 4 | 5 | }, 6 | "DVTSourceControlWorkspaceBlueprintWorkingCopyStatesKey" : { 7 | "66ECCB7E69137BF099D26851106CA4CBC27A9471" : 0, 8 | "AD9AE3CADFCF220BDF608F8FE2C3794930E9FBE8" : 0 9 | }, 10 | "DVTSourceControlWorkspaceBlueprintIdentifierKey" : "CFBCE743-3F8E-41D8-8437-8AABAB64B189", 11 | "DVTSourceControlWorkspaceBlueprintWorkingCopyPathsKey" : { 12 | "66ECCB7E69137BF099D26851106CA4CBC27A9471" : "Hydro", 13 | "AD9AE3CADFCF220BDF608F8FE2C3794930E9FBE8" : "Hydro_Opensource" 14 | }, 15 | "DVTSourceControlWorkspaceBlueprintNameKey" : "Hydro", 16 | "DVTSourceControlWorkspaceBlueprintVersion" : 203, 17 | "DVTSourceControlWorkspaceBlueprintRelativePathToProjectKey" : "Hydro.xcworkspace", 18 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoriesKey" : [ 19 | { 20 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/CatchChat\/Hydro.git", 21 | "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", 22 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "66ECCB7E69137BF099D26851106CA4CBC27A9471" 23 | }, 24 | { 25 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "github.com:CatchChat\/Hydro.network.git", 26 | "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", 27 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "AD9AE3CADFCF220BDF608F8FE2C3794930E9FBE8" 28 | } 29 | ] 30 | } -------------------------------------------------------------------------------- /Pods/GBPing/GBPing/GBPingSummary.m: -------------------------------------------------------------------------------- 1 | // 2 | // GBPingSummary.m 3 | // GBPing 4 | // 5 | // Created by Luka Mirosevic on 05/11/2012. 6 | // Copyright (c) 2012 Goonbee. All rights reserved. 7 | // 8 | 9 | #import "GBPingSummary.h" 10 | 11 | @implementation GBPingSummary 12 | 13 | #pragma mark - custom acc 14 | 15 | -(void)setHost:(NSString *)host { 16 | _host = host; 17 | } 18 | 19 | -(NSTimeInterval)rtt { 20 | if (self.sendDate) { 21 | return [self.receiveDate timeIntervalSinceDate:self.sendDate]; 22 | } 23 | else { 24 | return 0; 25 | } 26 | } 27 | 28 | #pragma mark - copying 29 | 30 | -(id)copyWithZone:(NSZone *)zone { 31 | GBPingSummary *copy = [[[self class] allocWithZone:zone] init]; 32 | 33 | copy.sequenceNumber = self.sequenceNumber; 34 | copy.payloadSize = self.payloadSize; 35 | copy.ttl = self.ttl; 36 | copy.host = [self.host copy]; 37 | copy.sendDate = [self.sendDate copy]; 38 | copy.receiveDate = [self.receiveDate copy]; 39 | copy.status = self.status; 40 | 41 | return copy; 42 | } 43 | 44 | #pragma mark - memory 45 | 46 | -(id)init { 47 | if (self = [super init]) { 48 | self.status = GBPingStatusPending; 49 | } 50 | 51 | return self; 52 | } 53 | 54 | -(void)dealloc { 55 | self.host = nil; 56 | self.sendDate = nil; 57 | self.receiveDate = nil; 58 | } 59 | 60 | #pragma mark - description 61 | 62 | -(NSString *)description { 63 | return [NSString stringWithFormat:@"host: %@, seq: %lu, status: %d, ttl: %lu, payloadSize: %lu, sendDate: %@, receiveDate: %@, rtt: %f", self.host, (unsigned long)self.sequenceNumber, self.status, (unsigned long)self.ttl, (unsigned long)self.payloadSize, self.sendDate, self.receiveDate, self.rtt]; 64 | } 65 | 66 | @end 67 | -------------------------------------------------------------------------------- /Pods/pop/pop/POPGeometry.mm: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "POPGeometry.h" 11 | 12 | #if !TARGET_OS_IPHONE 13 | @implementation NSValue (POP) 14 | 15 | + (NSValue *)valueWithCGPoint:(CGPoint)point { 16 | return [NSValue valueWithBytes:&point objCType:@encode(CGPoint)]; 17 | } 18 | 19 | + (NSValue *)valueWithCGSize:(CGSize)size { 20 | return [NSValue valueWithBytes:&size objCType:@encode(CGSize)]; 21 | } 22 | 23 | + (NSValue *)valueWithCGRect:(CGRect)rect { 24 | return [NSValue valueWithBytes:&rect objCType:@encode(CGRect)]; 25 | } 26 | 27 | + (NSValue *)valueWithCFRange:(CFRange)range { 28 | return [NSValue valueWithBytes:&range objCType:@encode(CFRange)]; 29 | } 30 | 31 | + (NSValue *)valueWithCGAffineTransform:(CGAffineTransform)transform 32 | { 33 | return [NSValue valueWithBytes:&transform objCType:@encode(CGAffineTransform)]; 34 | } 35 | 36 | - (CGPoint)CGPointValue { 37 | CGPoint result; 38 | [self getValue:&result]; 39 | return result; 40 | } 41 | 42 | - (CGSize)CGSizeValue { 43 | CGSize result; 44 | [self getValue:&result]; 45 | return result; 46 | } 47 | 48 | - (CGRect)CGRectValue { 49 | CGRect result; 50 | [self getValue:&result]; 51 | return result; 52 | } 53 | 54 | - (CFRange)CFRangeValue { 55 | CFRange result; 56 | [self getValue:&result]; 57 | return result; 58 | } 59 | 60 | - (CGAffineTransform)CGAffineTransformValue { 61 | CGAffineTransform result; 62 | [self getValue:&result]; 63 | return result; 64 | } 65 | @end 66 | 67 | #endif 68 | -------------------------------------------------------------------------------- /Pods/pop/pop/POPGeometry.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #if TARGET_OS_IPHONE 13 | #import 14 | #endif 15 | 16 | #if !TARGET_OS_IPHONE 17 | 18 | /** NSValue extensions to support animatable types. */ 19 | @interface NSValue (POP) 20 | 21 | /** 22 | @abstract Creates an NSValue given a CGPoint. 23 | */ 24 | + (NSValue *)valueWithCGPoint:(CGPoint)point; 25 | 26 | /** 27 | @abstract Creates an NSValue given a CGSize. 28 | */ 29 | + (NSValue *)valueWithCGSize:(CGSize)size; 30 | 31 | /** 32 | @abstract Creates an NSValue given a CGRect. 33 | */ 34 | + (NSValue *)valueWithCGRect:(CGRect)rect; 35 | 36 | /** 37 | @abstract Creates an NSValue given a CFRange. 38 | */ 39 | + (NSValue *)valueWithCFRange:(CFRange)range; 40 | 41 | /** 42 | @abstract Creates an NSValue given a CGAffineTransform. 43 | */ 44 | + (NSValue *)valueWithCGAffineTransform:(CGAffineTransform)transform; 45 | 46 | /** 47 | @abstract Returns the underlying CGPoint value. 48 | */ 49 | - (CGPoint)CGPointValue; 50 | 51 | /** 52 | @abstract Returns the underlying CGSize value. 53 | */ 54 | - (CGSize)CGSizeValue; 55 | 56 | /** 57 | @abstract Returns the underlying CGRect value. 58 | */ 59 | - (CGRect)CGRectValue; 60 | 61 | /** 62 | @abstract Returns the underlying CFRange value. 63 | */ 64 | - (CFRange)CFRangeValue; 65 | 66 | /** 67 | @abstract Returns the underlying CGAffineTransform value. 68 | */ 69 | - (CGAffineTransform)CGAffineTransformValue; 70 | 71 | @end 72 | 73 | #endif 74 | -------------------------------------------------------------------------------- /Pods/pop/pop/POPAnimationTracer.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import 13 | 14 | @class POPAnimation; 15 | 16 | /** 17 | @abstract Tracer of animation events to fasciliate unit testing & debugging. 18 | */ 19 | @interface POPAnimationTracer : NSObject 20 | 21 | /** 22 | @abstract Start recording events. 23 | */ 24 | - (void)start; 25 | 26 | /** 27 | @abstract Stop recording events. 28 | */ 29 | - (void)stop; 30 | 31 | /** 32 | @abstract Resets any recoded events. Continues recording events if already started. 33 | */ 34 | - (void)reset; 35 | 36 | /** 37 | @abstract Property representing all recorded events. 38 | @discussion Events are returned in order of occurence. 39 | */ 40 | @property (nonatomic, assign, readonly) NSArray *allEvents; 41 | 42 | /** 43 | @abstract Property representing all recorded write events for convenience. 44 | @discussion Events are returned in order of occurence. 45 | */ 46 | @property (nonatomic, assign, readonly) NSArray *writeEvents; 47 | 48 | /** 49 | @abstract Queries for events of specified type. 50 | @param type The type of event to return. 51 | @returns An array of events of specified type in order of occurence. 52 | */ 53 | - (NSArray *)eventsWithType:(POPAnimationEventType)type; 54 | 55 | /** 56 | @abstract Property indicating whether tracer should automatically log events and reset collection on animation completion. 57 | */ 58 | @property (nonatomic, assign) BOOL shouldLogAndResetOnCompletion; 59 | 60 | @end 61 | -------------------------------------------------------------------------------- /Pods/AFNetworking/UIKit+AFNetworking/UIKit+AFNetworking.h: -------------------------------------------------------------------------------- 1 | // UIKit+AFNetworking.h 2 | // 3 | // Copyright (c) 2013 AFNetworking (http://afnetworking.com/) 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in 13 | // all copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | // THE SOFTWARE. 22 | 23 | #import 24 | 25 | #ifndef _UIKIT_AFNETWORKING_ 26 | #define _UIKIT_AFNETWORKING_ 27 | 28 | #import "AFNetworkActivityIndicatorManager.h" 29 | 30 | #import "UIActivityIndicatorView+AFNetworking.h" 31 | #import "UIAlertView+AFNetworking.h" 32 | #import "UIButton+AFNetworking.h" 33 | #import "UIImageView+AFNetworking.h" 34 | #import "UIKit+AFNetworking.h" 35 | #import "UIProgressView+AFNetworking.h" 36 | #import "UIRefreshControl+AFNetworking.h" 37 | #import "UIWebView+AFNetworking.h" 38 | #endif /* _UIKIT_AFNETWORKING_ */ 39 | -------------------------------------------------------------------------------- /Hydro/Images.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "size" : "29x29", 5 | "idiom" : "iphone", 6 | "filename" : "icon-iphone_29@2x.png", 7 | "scale" : "2x" 8 | }, 9 | { 10 | "size" : "29x29", 11 | "idiom" : "iphone", 12 | "filename" : "icon-iphone_29@3x.png", 13 | "scale" : "3x" 14 | }, 15 | { 16 | "size" : "40x40", 17 | "idiom" : "iphone", 18 | "filename" : "icon-iphone_40@2x.png", 19 | "scale" : "2x" 20 | }, 21 | { 22 | "size" : "40x40", 23 | "idiom" : "iphone", 24 | "filename" : "icon-iphone_40@3x.png", 25 | "scale" : "3x" 26 | }, 27 | { 28 | "size" : "60x60", 29 | "idiom" : "iphone", 30 | "filename" : "icon-iphone_60@2x.png", 31 | "scale" : "2x" 32 | }, 33 | { 34 | "size" : "60x60", 35 | "idiom" : "iphone", 36 | "filename" : "icon-iphone_60@3x.png", 37 | "scale" : "3x" 38 | }, 39 | { 40 | "size" : "29x29", 41 | "idiom" : "ipad", 42 | "filename" : "icon-iphone_29.png", 43 | "scale" : "1x" 44 | }, 45 | { 46 | "size" : "29x29", 47 | "idiom" : "ipad", 48 | "filename" : "icon-iphone_29@2x-1.png", 49 | "scale" : "2x" 50 | }, 51 | { 52 | "size" : "40x40", 53 | "idiom" : "ipad", 54 | "filename" : "icon-iphone_40@2x-1.png", 55 | "scale" : "1x" 56 | }, 57 | { 58 | "size" : "40x40", 59 | "idiom" : "ipad", 60 | "filename" : "icon-iphone_40@3x-1.png", 61 | "scale" : "2x" 62 | }, 63 | { 64 | "size" : "76x76", 65 | "idiom" : "ipad", 66 | "filename" : "icon-ipad_76.png", 67 | "scale" : "1x" 68 | }, 69 | { 70 | "size" : "76x76", 71 | "idiom" : "ipad", 72 | "filename" : "icon-ipad_76@2x.png", 73 | "scale" : "2x" 74 | } 75 | ], 76 | "info" : { 77 | "version" : 1, 78 | "author" : "xcode" 79 | } 80 | } -------------------------------------------------------------------------------- /Pods/pop/pop/POPCustomAnimation.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | @class POPCustomAnimation; 13 | 14 | /** 15 | @abstract POPCustomAnimationBlock is the callback block of a custom animation. 16 | @discussion This block will be executed for each animation frame and should update the property or properties being animated based on current timing. 17 | @param target The object being animated. Reference the passed in target to help avoid retain loops. 18 | @param animation The custom animation instance. Use to determine the current and elapsed time since last callback. Reference the passed in animation to help avoid retain loops. 19 | @return Flag indicating whether the animation should continue animating. Return NO to indicate animation is done. 20 | */ 21 | typedef BOOL (^POPCustomAnimationBlock)(id target, POPCustomAnimation *animation); 22 | 23 | /** 24 | @abstract POPCustomAnimation is a concrete animation subclass for custom animations. 25 | */ 26 | @interface POPCustomAnimation : POPAnimation 27 | 28 | /** 29 | @abstract Creates and returns an initialized custom animation instance. 30 | @discussion This is the designated initializer. 31 | @param block The custom animation callback block. See {@ref POPCustomAnimationBlock}. 32 | @return The initialized custom animation instance. 33 | */ 34 | + (instancetype)animationWithBlock:(POPCustomAnimationBlock)block; 35 | 36 | /** 37 | @abstract The current animation time at time of callback. 38 | */ 39 | @property (readonly, nonatomic) CFTimeInterval currentTime; 40 | 41 | /** 42 | @abstract The elapsed animation time since last callback. 43 | */ 44 | @property (readonly, nonatomic) CFTimeInterval elapsedTime; 45 | 46 | @end 47 | -------------------------------------------------------------------------------- /Pods/pop/pop/POPMath.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | #import 12 | 13 | #import "POPDefines.h" 14 | #import "POPVector.h" 15 | 16 | NS_INLINE CGFloat sqrtr(CGFloat f) 17 | { 18 | #if CGFLOAT_IS_DOUBLE 19 | return sqrt(f); 20 | #else 21 | return sqrtf(f); 22 | #endif 23 | } 24 | 25 | // round to nearest sub; pass 2.0 to round to every 0.5 (eg: retina pixels) 26 | NS_INLINE CGFloat POPSubRound(CGFloat f, CGFloat sub) 27 | { 28 | return round(f * sub) / sub; 29 | } 30 | 31 | #define MIX(a, b, f) ((a) + (f) * ((b) - (a))) 32 | 33 | // the longer the duration, the higher the necessary precision 34 | #define SOLVE_EPS(dur) (1. / (1000. * (dur))) 35 | 36 | #define _EQLF_(x, y, epsilon) (fabsf ((x) - (y)) < epsilon) 37 | 38 | extern void POPInterpolateVector(NSUInteger count, CGFloat *dst, const CGFloat *from, const CGFloat *to, CGFloat f); 39 | 40 | extern double POPTimingFunctionSolve(const double vec[4], double t, double eps); 41 | 42 | // quadratic mapping of t [0, 1] to [start, end] 43 | extern double POPQuadraticOutInterpolation(double t, double start, double end); 44 | 45 | // normalize value to [0, 1] based on its range [startValue, endValue] 46 | extern double POPNormalize(double value, double startValue, double endValue); 47 | 48 | // project a normalized value [0, 1] to a given range [start, end] 49 | extern double POPProjectNormal(double n, double start, double end); 50 | 51 | // solve a quadratic equation of the form a * x^2 + b * x + c = 0 52 | extern void POPQuadraticSolve(CGFloat a, CGFloat b, CGFloat c, CGFloat &x1, CGFloat &x2); 53 | 54 | // for a given tension return the bouncy 3 friction that produces no bounce 55 | extern double POPBouncy3NoBounce(double tension); 56 | -------------------------------------------------------------------------------- /Pods/AFNetworking/AFNetworking/AFNetworking.h: -------------------------------------------------------------------------------- 1 | // AFNetworking.h 2 | // 3 | // Copyright (c) 2013 AFNetworking (http://afnetworking.com/) 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in 13 | // all copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | // THE SOFTWARE. 22 | 23 | #import 24 | #import 25 | 26 | #ifndef _AFNETWORKING_ 27 | #define _AFNETWORKING_ 28 | 29 | #import "AFURLRequestSerialization.h" 30 | #import "AFURLResponseSerialization.h" 31 | #import "AFSecurityPolicy.h" 32 | #import "AFNetworkReachabilityManager.h" 33 | 34 | #import "AFURLConnectionOperation.h" 35 | #import "AFHTTPRequestOperation.h" 36 | #import "AFHTTPRequestOperationManager.h" 37 | 38 | #if ( ( defined(__MAC_OS_X_VERSION_MAX_ALLOWED) && __MAC_OS_X_VERSION_MAX_ALLOWED >= 1090) || \ 39 | ( defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 70000 ) ) 40 | #import "AFURLSessionManager.h" 41 | #import "AFHTTPSessionManager.h" 42 | #endif 43 | 44 | #endif /* _AFNETWORKING_ */ 45 | -------------------------------------------------------------------------------- /Pods/pop/pop/POPAnimationEvent.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | /** 13 | @abstract Enumeraton of animation event types. 14 | */ 15 | typedef NS_ENUM(NSUInteger, POPAnimationEventType) { 16 | kPOPAnimationEventPropertyRead = 0, 17 | kPOPAnimationEventPropertyWrite, 18 | kPOPAnimationEventToValueUpdate, 19 | kPOPAnimationEventFromValueUpdate, 20 | kPOPAnimationEventVelocityUpdate, 21 | kPOPAnimationEventBouncinessUpdate, 22 | kPOPAnimationEventSpeedUpdate, 23 | kPOPAnimationEventFrictionUpdate, 24 | kPOPAnimationEventMassUpdate, 25 | kPOPAnimationEventTensionUpdate, 26 | kPOPAnimationEventDidStart, 27 | kPOPAnimationEventDidStop, 28 | kPOPAnimationEventDidReachToValue, 29 | kPOPAnimationEventAutoreversed 30 | }; 31 | 32 | /** 33 | @abstract The base animation event class. 34 | */ 35 | @interface POPAnimationEvent : NSObject 36 | 37 | /** 38 | @abstract The event type. See {@ref POPAnimationEventType} for possible values. 39 | */ 40 | @property (readonly, nonatomic, assign) POPAnimationEventType type; 41 | 42 | /** 43 | @abstract The time of event. 44 | */ 45 | @property (readonly, nonatomic, assign) CFTimeInterval time; 46 | 47 | /** 48 | @abstract Optional string describing the animation at time of event. 49 | */ 50 | @property (readonly, nonatomic, copy) NSString *animationDescription; 51 | 52 | @end 53 | 54 | /** 55 | @abstract An animation event subclass for recording value and velocity. 56 | */ 57 | @interface POPAnimationValueEvent : POPAnimationEvent 58 | 59 | /** 60 | @abstract The value recorded. 61 | */ 62 | @property (readonly, nonatomic, strong) id value; 63 | 64 | /** 65 | @abstract The velocity recorded, if any. 66 | */ 67 | @property (readonly, nonatomic, strong) id velocity; 68 | 69 | @end 70 | -------------------------------------------------------------------------------- /Pods/Shimmer/README.md: -------------------------------------------------------------------------------- 1 | # Shimmer 2 | Shimmer is an easy way to add a shimmering effect to any view in your app. It's useful as an unobtrusive loading indicator. 3 | 4 | Shimmer was originally developed to show loading status in [Paper](http://facebook.com/paper). 5 | 6 | ![Shimmer](https://github.com/facebook/Shimmer/blob/master/shimmer.gif?raw=true) 7 | 8 | ## Usage 9 | To use Shimmer, create a `FBShimmeringView` or `FBShimmeringLayer` and add your content. To start shimmering, set the `shimmering` property to `YES`. 10 | 11 | An example of making a label shimmer: 12 | 13 | ```objective-c 14 | FBShimmeringView *shimmeringView = [[FBShimmeringView alloc] initWithFrame:self.view.bounds]; 15 | [self.view addSubview:shimmeringView]; 16 | 17 | UILabel *loadingLabel = [[UILabel alloc] initWithFrame:shimmeringView.bounds]; 18 | loadingLabel.textAlignment = NSTextAlignmentCenter; 19 | loadingLabel.text = NSLocalizedString(@"Shimmer", nil); 20 | shimmeringView.contentView = loadingLabel; 21 | 22 | // Start shimmering. 23 | shimmeringView.shimmering = YES; 24 | ``` 25 | 26 | There's also an example project. In the example, you can swipe horizontally and vertically to try various shimmering parameters, or tap to start or stop shimmering. (To build the example locally, you'll need to open `FBShimmering.xcworkpace` rather than the `.xcodeproj`.) 27 | 28 | ## Installation 29 | There are two options: 30 | 31 | 1. Shimmer is available as `Shimmer` in [Cocoapods](http://cocoapods.org). 32 | 2. Manually add the files into your Xcode project. Slightly simpler, but updates are also manual. 33 | 34 | Shimmer requires iOS 6 or later. 35 | 36 | ## How it works 37 | Shimmer uses the `-[CALayer mask]` property to enable shimmering, similar to what's described in John Harper's 2009 WWDC talk (unfortunately no longer online). Shimmer uses CoreAnimation's timing features to smoothly transition "on-beat" when starting and stopping the shimmer. 38 | 39 | ## Contributing 40 | See the CONTRIBUTING file for how to help out. 41 | 42 | ## License 43 | Shimmer is BSD-licensed. We also provide an additional patent grant. 44 | 45 | -------------------------------------------------------------------------------- /Pods/SAMTextField/SAMTextField/SAMTextField.m: -------------------------------------------------------------------------------- 1 | // 2 | // SAMTextField.m 3 | // SAMTextField 4 | // 5 | // Created by Sam Soffes on 3/11/10. 6 | // Copyright 2010-2014 Sam Soffes. All rights reserved. 7 | // 8 | 9 | #import "SAMTextField.h" 10 | 11 | @implementation SAMTextField 12 | 13 | #pragma mark - UIView 14 | 15 | - (id)initWithCoder:(NSCoder *)aDecoder { 16 | if ((self = [super initWithCoder:aDecoder])) { 17 | [self initialize]; 18 | } 19 | return self; 20 | } 21 | 22 | 23 | - (id)initWithFrame:(CGRect)frame { 24 | if ((self = [super initWithFrame:frame])) { 25 | [self initialize]; 26 | } 27 | return self; 28 | } 29 | 30 | 31 | #pragma mark - UITextField 32 | 33 | - (CGRect)textRectForBounds:(CGRect)bounds { 34 | return UIEdgeInsetsInsetRect([super textRectForBounds:bounds], self.textEdgeInsets); 35 | } 36 | 37 | 38 | - (CGRect)editingRectForBounds:(CGRect)bounds { 39 | return [self textRectForBounds:bounds]; 40 | } 41 | 42 | 43 | - (CGRect)placeholderRectForBounds:(CGRect)bounds { 44 | return [self textRectForBounds:bounds]; 45 | } 46 | 47 | 48 | - (CGRect)clearButtonRectForBounds:(CGRect)bounds { 49 | CGRect rect = [super clearButtonRectForBounds:bounds]; 50 | rect.origin.x += self.clearButtonEdgeInsets.right; 51 | rect.origin.y += self.clearButtonEdgeInsets.top; 52 | return rect; 53 | } 54 | 55 | 56 | - (CGRect)rightViewRectForBounds:(CGRect)bounds { 57 | CGRect rect = [super rightViewRectForBounds:bounds]; 58 | rect.origin.x += self.rightViewInsets.right; 59 | rect.origin.y += self.rightViewInsets.top; 60 | return rect; 61 | } 62 | 63 | 64 | - (CGRect)leftViewRectForBounds:(CGRect)bounds { 65 | CGRect rect = [super leftViewRectForBounds:bounds]; 66 | rect.origin.x += self.leftViewInsets.left; 67 | rect.origin.y += self.leftViewInsets.top; 68 | return rect; 69 | } 70 | 71 | 72 | #pragma mark - Private 73 | 74 | - (void)initialize { 75 | self.textEdgeInsets = UIEdgeInsetsZero; 76 | self.clearButtonEdgeInsets = UIEdgeInsetsZero; 77 | self.leftViewInsets = UIEdgeInsetsZero; 78 | self.rightViewInsets = UIEdgeInsetsZero; 79 | } 80 | 81 | @end 82 | -------------------------------------------------------------------------------- /Pods/pop/pop/POPAnimationTracerInternal.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import 13 | 14 | @interface POPAnimationTracer (Internal) 15 | 16 | /** 17 | @abstract Designated initalizer. Pass the animation being traced. 18 | */ 19 | - (instancetype)initWithAnimation:(POPAnimation *)anAnim; 20 | 21 | /** 22 | @abstract Records read value. 23 | */ 24 | - (void)readPropertyValue:(id)aValue; 25 | 26 | /** 27 | @abstract Records write value. 28 | */ 29 | - (void)writePropertyValue:(id)aValue; 30 | 31 | /** 32 | Records to value update. 33 | */ 34 | - (void)updateToValue:(id)aValue; 35 | 36 | /** 37 | @abstract Records from value update. 38 | */ 39 | - (void)updateFromValue:(id)aValue; 40 | 41 | /** 42 | @abstract Records from value update. 43 | */ 44 | - (void)updateVelocity:(id)aValue; 45 | 46 | /** 47 | @abstract Records bounciness update. 48 | */ 49 | - (void)updateBounciness:(float)aFloat; 50 | 51 | /** 52 | @abstract Records speed update. 53 | */ 54 | - (void)updateSpeed:(float)aFloat; 55 | 56 | /** 57 | @abstract Records friction update. 58 | */ 59 | - (void)updateFriction:(float)aFloat; 60 | 61 | /** 62 | @abstract Records mass update. 63 | */ 64 | - (void)updateMass:(float)aFloat; 65 | 66 | /** 67 | @abstract Records tension update. 68 | */ 69 | - (void)updateTension:(float)aFloat; 70 | 71 | /** 72 | @abstract Records did add. 73 | */ 74 | - (void)didAdd; 75 | 76 | /** 77 | @abstract Records did start. 78 | */ 79 | - (void)didStart; 80 | 81 | /** 82 | @abstract Records did stop. 83 | */ 84 | - (void)didStop:(BOOL)finished; 85 | 86 | /** 87 | @abstract Records did reach to value. 88 | */ 89 | - (void)didReachToValue:(id)aValue; 90 | 91 | /** 92 | @abstract Records when an autoreverse animation takes place. 93 | */ 94 | - (void)autoreversed; 95 | 96 | @end 97 | -------------------------------------------------------------------------------- /Hydro/Views/scaleView.m: -------------------------------------------------------------------------------- 1 | // 2 | // scaleView.m 3 | // Hydro 4 | // 5 | // Created by kevinzhow on 14/12/25. 6 | // Copyright (c) 2014年 Catch Inc. All rights reserved. 7 | // 8 | 9 | #import "scaleView.h" 10 | #import 11 | 12 | @implementation scaleView 13 | 14 | /* 15 | // Only override drawRect: if you perform custom drawing. 16 | // An empty implementation adversely affects performance during animation. 17 | - (void)drawRect:(CGRect)rect { 18 | // Drawing code 19 | } 20 | */ 21 | 22 | 23 | - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 24 | [self.layer pop_removeAnimationForKey:@"AnimationScaleBack"]; 25 | POPSpringAnimation *anim = 26 | [POPSpringAnimation animationWithPropertyNamed:kPOPLayerScaleXY]; 27 | anim.springBounciness = 10; 28 | anim.springSpeed = 20; 29 | anim.fromValue = [NSValue valueWithCGPoint:CGPointMake(1.0, 1.0)]; 30 | anim.toValue = [NSValue valueWithCGPoint:CGPointMake(0.8, 0.8)]; 31 | [self.layer pop_addAnimation:anim forKey:@"AnimationScale"]; 32 | } 33 | 34 | - (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event { 35 | [self.layer pop_removeAnimationForKey:@"AnimationScale"]; 36 | POPSpringAnimation *anim = 37 | [POPSpringAnimation animationWithPropertyNamed:kPOPLayerScaleXY]; 38 | anim.springBounciness = 10; 39 | anim.springSpeed = 20; 40 | anim.fromValue = [NSValue valueWithCGPoint:CGPointMake(0.8, 0.8)]; 41 | anim.toValue = [NSValue valueWithCGPoint:CGPointMake(1.0, 1.0)]; 42 | [self.layer pop_addAnimation:anim forKey:@"AnimationScaleBack"]; 43 | } 44 | 45 | - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { 46 | 47 | [self.layer pop_removeAnimationForKey:@"AnimationScale"]; 48 | POPSpringAnimation *anim = 49 | [POPSpringAnimation animationWithPropertyNamed:kPOPLayerScaleXY]; 50 | anim.springBounciness = 10; 51 | anim.springSpeed = 20; 52 | anim.fromValue = [NSValue valueWithCGPoint:CGPointMake(0.8, 0.8)]; 53 | anim.toValue = [NSValue valueWithCGPoint:CGPointMake(1.0, 1.0)]; 54 | [self.layer pop_addAnimation:anim forKey:@"AnimationScaleBack"]; 55 | 56 | 57 | 58 | } 59 | 60 | @end 61 | -------------------------------------------------------------------------------- /Pods/Shimmer/FBShimmering/FBShimmeringView.m: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "FBShimmeringView.h" 11 | 12 | #import "FBShimmeringLayer.h" 13 | 14 | #if !__has_feature(objc_arc) 15 | #error This file must be compiled with ARC. Convert your project to ARC or specify the -fobjc-arc flag. 16 | #endif 17 | 18 | @implementation FBShimmeringView 19 | 20 | + (Class)layerClass 21 | { 22 | return [FBShimmeringLayer class]; 23 | } 24 | 25 | #define __layer ((FBShimmeringLayer *)self.layer) 26 | 27 | #define LAYER_ACCESSOR(accessor, ctype) \ 28 | - (ctype)accessor { \ 29 | return [__layer accessor]; \ 30 | } 31 | 32 | #define LAYER_MUTATOR(mutator, ctype) \ 33 | - (void)mutator (ctype)value { \ 34 | [__layer mutator value]; \ 35 | } 36 | 37 | #define LAYER_RW_PROPERTY(accessor, mutator, ctype) \ 38 | LAYER_ACCESSOR (accessor, ctype) \ 39 | LAYER_MUTATOR (mutator, ctype) 40 | 41 | LAYER_RW_PROPERTY(isShimmering, setShimmering:, BOOL) 42 | LAYER_RW_PROPERTY(shimmeringPauseDuration, setShimmeringPauseDuration:, CFTimeInterval) 43 | LAYER_RW_PROPERTY(shimmeringAnimationOpacity, setShimmeringAnimationOpacity:, CGFloat) 44 | LAYER_RW_PROPERTY(shimmeringOpacity, setShimmeringOpacity:, CGFloat) 45 | LAYER_RW_PROPERTY(shimmeringSpeed, setShimmeringSpeed:, CGFloat) 46 | LAYER_RW_PROPERTY(shimmeringHighlightLength, setShimmeringHighlightLength:, CGFloat) 47 | LAYER_RW_PROPERTY(shimmeringDirection, setShimmeringDirection:, FBShimmerDirection) 48 | LAYER_ACCESSOR(shimmeringFadeTime, CFTimeInterval) 49 | LAYER_RW_PROPERTY(shimmeringBeginFadeDuration, setShimmeringBeginFadeDuration:, CFTimeInterval) 50 | LAYER_RW_PROPERTY(shimmeringEndFadeDuration, setShimmeringEndFadeDuration:, CFTimeInterval) 51 | 52 | - (void)setContentView:(UIView *)contentView 53 | { 54 | if (contentView != _contentView) { 55 | _contentView = contentView; 56 | [self addSubview:contentView]; 57 | __layer.contentLayer = contentView.layer; 58 | } 59 | } 60 | 61 | @end 62 | -------------------------------------------------------------------------------- /Pods/pop/pop/POPAnimatorPrivate.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | @class POPAnimation; 13 | 14 | @protocol POPAnimatorObserving 15 | @required 16 | 17 | /** 18 | @abstract Called on each observer after animator has advanced. Core Animation actions are disabled by default. 19 | */ 20 | - (void)animatorDidAnimate:(POPAnimator *)animator; 21 | 22 | @end 23 | 24 | @interface POPAnimator () 25 | 26 | #if !TARGET_OS_IPHONE 27 | /** 28 | Determines whether or not to use a high priority background thread for animation updates. Using a background thread can result in faster, more responsive updates, but may be less compatible. Defaults to YES. 29 | */ 30 | + (BOOL)disableBackgroundThread; 31 | + (void)setDisableBackgroundThread:(BOOL)flag; 32 | #endif 33 | 34 | /** 35 | Used for externally driven animator instances. 36 | */ 37 | @property (assign, nonatomic) BOOL disableDisplayLink; 38 | 39 | /** 40 | Time used when starting animations. Defaults to 0 meaning current media time is used. Exposed for unit testing. 41 | */ 42 | @property (assign, nonatomic) CFTimeInterval beginTime; 43 | 44 | /** 45 | Exposed for unit testing. 46 | */ 47 | - (void)renderTime:(CFTimeInterval)time; 48 | 49 | /** 50 | Funnel methods for category additions. 51 | */ 52 | - (void)addAnimation:(POPAnimation *)anim forObject:(id)obj key:(NSString *)key; 53 | - (void)removeAllAnimationsForObject:(id)obj; 54 | - (void)removeAnimationForObject:(id)obj key:(NSString *)key; 55 | - (NSArray *)animationKeysForObject:(id)obj; 56 | - (POPAnimation *)animationForObject:(id)obj key:(NSString *)key; 57 | 58 | /** 59 | @abstract Add an animator observer. Observer will be notified of each subsequent animator advance until removal. 60 | */ 61 | - (void)addObserver:(id)observer; 62 | 63 | /** 64 | @abstract Remove an animator observer. 65 | */ 66 | - (void)removeObserver:(id)observer; 67 | 68 | @end 69 | -------------------------------------------------------------------------------- /Pods/pop/pop/WebCore/FloatConversion.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2007 Apple Inc. All rights reserved. 3 | * 4 | * Redistribution and use in source and binary forms, with or without 5 | * modification, are permitted provided that the following conditions 6 | * are met: 7 | * 8 | * 1. Redistributions of source code must retain the above copyright 9 | * notice, this list of conditions and the following disclaimer. 10 | * 2. Redistributions in binary form must reproduce the above copyright 11 | * notice, this list of conditions and the following disclaimer in the 12 | * documentation and/or other materials provided with the distribution. 13 | * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of 14 | * its contributors may be used to endorse or promote products derived 15 | * from this software without specific prior written permission. 16 | * 17 | * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY 18 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 19 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 20 | * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY 21 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 22 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 23 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 24 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 | */ 28 | 29 | #ifndef FloatConversion_h 30 | #define FloatConversion_h 31 | 32 | #include 33 | 34 | namespace WebCore { 35 | 36 | template 37 | float narrowPrecisionToFloat(T); 38 | 39 | template<> 40 | inline float narrowPrecisionToFloat(double number) 41 | { 42 | return static_cast(number); 43 | } 44 | 45 | template 46 | CGFloat narrowPrecisionToCGFloat(T); 47 | 48 | template<> 49 | inline CGFloat narrowPrecisionToCGFloat(double number) 50 | { 51 | return static_cast(number); 52 | } 53 | 54 | } // namespace WebCore 55 | 56 | #endif // FloatConversion_h 57 | -------------------------------------------------------------------------------- /Hydro/Base.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /Hydro/AppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.m 3 | // Hydro 4 | // 5 | // Created by kevinzhow on 14/12/25. 6 | // Copyright (c) 2014年 Catch Inc. All rights reserved. 7 | // 8 | 9 | #import "AppDelegate.h" 10 | #import 11 | 12 | @interface AppDelegate () 13 | 14 | @end 15 | 16 | @implementation AppDelegate 17 | 18 | 19 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 20 | // Override point for customization after application launch. 21 | [Crashlytics startWithAPIKey:@"de004490005a062fa95a4d5676a7edbfbe42c582"]; 22 | application.applicationSupportsShakeToEdit = YES; 23 | 24 | return YES; 25 | } 26 | 27 | - (void)applicationWillResignActive:(UIApplication *)application { 28 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 29 | // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. 30 | } 31 | 32 | - (void)applicationDidEnterBackground:(UIApplication *)application { 33 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 34 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 35 | } 36 | 37 | - (void)applicationWillEnterForeground:(UIApplication *)application { 38 | // Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. 39 | } 40 | 41 | - (void)applicationDidBecomeActive:(UIApplication *)application { 42 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 43 | } 44 | 45 | - (void)applicationWillTerminate:(UIApplication *)application { 46 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 47 | } 48 | 49 | @end 50 | -------------------------------------------------------------------------------- /Pods/pop/pop/POPBasicAnimation.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | /** 13 | @abstract A concrete basic animation class. 14 | @discussion Animation is achieved through interpolation. 15 | */ 16 | @interface POPBasicAnimation : POPPropertyAnimation 17 | 18 | /** 19 | @abstract The designated initializer. 20 | @returns An instance of a basic animation. 21 | */ 22 | + (instancetype)animation; 23 | 24 | /** 25 | @abstract Convenience initializer that returns an animation with animatable property of name. 26 | @param name The name of the animatable property. 27 | @returns An instance of a basic animation configured with specified animatable property. 28 | */ 29 | + (instancetype)animationWithPropertyNamed:(NSString *)name; 30 | 31 | /** 32 | @abstract Convenience constructor. 33 | @returns Returns a basic animation with kCAMediaTimingFunctionDefault timing function. 34 | */ 35 | + (instancetype)defaultAnimation; 36 | 37 | /** 38 | @abstract Convenience constructor. 39 | @returns Returns a basic animation with kCAMediaTimingFunctionLinear timing function. 40 | */ 41 | + (instancetype)linearAnimation; 42 | 43 | /** 44 | @abstract Convenience constructor. 45 | @returns Returns a basic animation with kCAMediaTimingFunctionEaseIn timing function. 46 | */ 47 | + (instancetype)easeInAnimation; 48 | 49 | /** 50 | @abstract Convenience constructor. 51 | @returns Returns a basic animation with kCAMediaTimingFunctionEaseOut timing function. 52 | */ 53 | + (instancetype)easeOutAnimation; 54 | 55 | /** 56 | @abstract Convenience constructor. 57 | @returns Returns a basic animation with kCAMediaTimingFunctionEaseInEaseOut timing function. 58 | */ 59 | + (instancetype)easeInEaseOutAnimation; 60 | 61 | /** 62 | @abstract The duration in seconds. Defaults to 0.4. 63 | */ 64 | @property (assign, nonatomic) CFTimeInterval duration; 65 | 66 | /** 67 | @abstract A timing function defining the pacing of the animation. Defaults to nil indicating pacing according to kCAMediaTimingFunctionDefault. 68 | */ 69 | @property (strong, nonatomic) CAMediaTimingFunction *timingFunction; 70 | 71 | @end 72 | -------------------------------------------------------------------------------- /Pods/pop/pop/POPMath.mm: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "POPMath.h" 11 | #import "UnitBezier.h" 12 | #import "POPAnimationPrivate.h" 13 | 14 | void POPInterpolateVector(NSUInteger count, CGFloat *dst, const CGFloat *from, const CGFloat *to, CGFloat f) 15 | { 16 | for (NSUInteger idx = 0; idx < count; idx++) { 17 | dst[idx] = MIX(from[idx], to[idx], f); 18 | } 19 | } 20 | 21 | double POPTimingFunctionSolve(const double vec[4], double t, double eps) 22 | { 23 | WebCore::UnitBezier bezier(vec[0], vec[1], vec[2], vec[3]); 24 | return bezier.solve(t, eps); 25 | } 26 | 27 | double POPNormalize(double value, double startValue, double endValue) 28 | { 29 | return (value - startValue) / (endValue - startValue); 30 | } 31 | 32 | double POPProjectNormal(double n, double start, double end) 33 | { 34 | return start + (n * (end - start)); 35 | } 36 | 37 | static double linear_interpolation(double t, double start, double end) 38 | { 39 | return t * end + (1.f - t) * start; 40 | } 41 | 42 | double POPQuadraticOutInterpolation(double t, double start, double end) 43 | { 44 | return linear_interpolation(2*t - t*t, start, end); 45 | } 46 | 47 | static double b3_friction1(double x) 48 | { 49 | return (0.0007 * pow(x, 3)) - (0.031 * pow(x, 2)) + 0.64 * x + 1.28; 50 | } 51 | 52 | static double b3_friction2(double x) 53 | { 54 | return (0.000044 * pow(x, 3)) - (0.006 * pow(x, 2)) + 0.36 * x + 2.; 55 | } 56 | 57 | static double b3_friction3(double x) 58 | { 59 | return (0.00000045 * pow(x, 3)) - (0.000332 * pow(x, 2)) + 0.1078 * x + 5.84; 60 | } 61 | 62 | double POPBouncy3NoBounce(double tension) 63 | { 64 | double friction = 0; 65 | if (tension <= 18.) { 66 | friction = b3_friction1(tension); 67 | } else if (tension > 18 && tension <= 44) { 68 | friction = b3_friction2(tension); 69 | } else if (tension > 44) { 70 | friction = b3_friction3(tension); 71 | } else { 72 | assert(false); 73 | } 74 | return friction; 75 | } 76 | 77 | void POPQuadraticSolve(CGFloat a, CGFloat b, CGFloat c, CGFloat &x1, CGFloat &x2) 78 | { 79 | CGFloat discriminant = sqrt(b * b - 4 * a * c); 80 | x1 = (-b + discriminant) / (2 * a); 81 | x2 = (-b - discriminant) / (2 * a); 82 | } 83 | -------------------------------------------------------------------------------- /Pods/GBPing/GBPing/ICMPHeader.h: -------------------------------------------------------------------------------- 1 | // 2 | // ICMPHeader.h 3 | // GBPing 4 | // 5 | // Created by Luka Mirosevic on 15/11/2012. 6 | // Copyright (c) 2012 Goonbee. All rights reserved. 7 | // 8 | 9 | #ifndef GBPing_ICMPHeader_h 10 | #define GBPing_ICMPHeader_h 11 | 12 | #include 13 | 14 | #pragma mark - IP and ICMP On-The-Wire Format 15 | 16 | // The following declarations specify the structure of ping packets on the wire. 17 | 18 | // IP header structure: 19 | 20 | struct IPHeader { 21 | uint8_t versionAndHeaderLength; 22 | uint8_t differentiatedServices; 23 | uint16_t totalLength; 24 | uint16_t identification; 25 | uint16_t flagsAndFragmentOffset; 26 | uint8_t timeToLive; 27 | uint8_t protocol; 28 | uint16_t headerChecksum; 29 | uint8_t sourceAddress[4]; 30 | uint8_t destinationAddress[4]; 31 | // options... 32 | // data... 33 | }; 34 | typedef struct IPHeader IPHeader; 35 | 36 | check_compile_time(sizeof(IPHeader) == 20); 37 | check_compile_time(offsetof(IPHeader, versionAndHeaderLength) == 0); 38 | check_compile_time(offsetof(IPHeader, differentiatedServices) == 1); 39 | check_compile_time(offsetof(IPHeader, totalLength) == 2); 40 | check_compile_time(offsetof(IPHeader, identification) == 4); 41 | check_compile_time(offsetof(IPHeader, flagsAndFragmentOffset) == 6); 42 | check_compile_time(offsetof(IPHeader, timeToLive) == 8); 43 | check_compile_time(offsetof(IPHeader, protocol) == 9); 44 | check_compile_time(offsetof(IPHeader, headerChecksum) == 10); 45 | check_compile_time(offsetof(IPHeader, sourceAddress) == 12); 46 | check_compile_time(offsetof(IPHeader, destinationAddress) == 16); 47 | 48 | // ICMP type and code combinations: 49 | 50 | enum { 51 | kICMPTypeEchoReply = 0, // code is always 0 52 | kICMPTypeEchoRequest = 8 // code is always 0 53 | }; 54 | 55 | // ICMP header structure: 56 | 57 | struct ICMPHeader { 58 | uint8_t type; 59 | uint8_t code; 60 | uint16_t checksum; 61 | uint16_t identifier; 62 | uint16_t sequenceNumber; 63 | // data... 64 | }; 65 | typedef struct ICMPHeader ICMPHeader; 66 | 67 | check_compile_time(sizeof(ICMPHeader) == 8); 68 | check_compile_time(offsetof(ICMPHeader, type) == 0); 69 | check_compile_time(offsetof(ICMPHeader, code) == 1); 70 | check_compile_time(offsetof(ICMPHeader, checksum) == 2); 71 | check_compile_time(offsetof(ICMPHeader, identifier) == 4); 72 | check_compile_time(offsetof(ICMPHeader, sequenceNumber) == 6); 73 | 74 | 75 | #endif 76 | -------------------------------------------------------------------------------- /Pods/pop/pop/POPDecayAnimation.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | /** 13 | @abstract A concrete decay animation class. 14 | @discussion Animation is achieved through gradual decay of animation value. 15 | */ 16 | @interface POPDecayAnimation : POPPropertyAnimation 17 | 18 | /** 19 | @abstract The designated initializer. 20 | @returns An instance of a decay animation. 21 | */ 22 | + (instancetype)animation; 23 | 24 | /** 25 | @abstract Convenience initializer that returns an animation with animatable property of name. 26 | @param name The name of the animatable property. 27 | @returns An instance of a decay animation configured with specified animatable property. 28 | */ 29 | + (instancetype)animationWithPropertyNamed:(NSString *)name; 30 | 31 | /** 32 | @abstract The current velocity value. 33 | @discussion Set before animation start to account for initial velocity. Expressed in change of value units per second. The only POPValueTypes supported for velocity are: kPOPValuePoint, kPOPValueInteger, kPOPValueFloat, kPOPValueRect, and kPOPValueSize. 34 | */ 35 | @property (copy, nonatomic) id velocity; 36 | 37 | /** 38 | @abstract The original velocity value. 39 | @discussion Since the velocity property is modified as the animation progresses, this property stores the original, passed in velocity to support autoreverse and repeatCount. 40 | */ 41 | @property (copy, nonatomic, readonly) id originalVelocity; 42 | 43 | /** 44 | @abstract The deceleration factor. 45 | @discussion Values specifies should be in the range [0, 1]. Lower values results in faster deceleration. Defaults to 0.998. 46 | */ 47 | @property (assign, nonatomic) CGFloat deceleration; 48 | 49 | /** 50 | @abstract The expected duration. 51 | @discussion Derived based on input velocity and deceleration values. 52 | */ 53 | @property (readonly, assign, nonatomic) CFTimeInterval duration; 54 | 55 | /** 56 | The to value is derived based on input velocity and deceleration. 57 | */ 58 | - (void)setToValue:(id)toValue NS_UNAVAILABLE; 59 | 60 | /** 61 | @abstract The reversed velocity. 62 | @discussion The reversed velocity based on the originalVelocity when the animation was set up. 63 | */ 64 | - (id)reversedVelocity; 65 | 66 | @end 67 | -------------------------------------------------------------------------------- /Pods/pop/pop/POPPropertyAnimation.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | #import 12 | 13 | /** 14 | @abstract Flags for clamping animation values. 15 | @discussion Animation values can optionally be clamped to avoid overshoot. kPOPAnimationClampStart ensures values are more than fromValue and kPOPAnimationClampEnd ensures values are less than toValue. 16 | */ 17 | typedef NS_OPTIONS(NSUInteger, POPAnimationClampFlags) 18 | { 19 | kPOPAnimationClampNone = 0, 20 | kPOPAnimationClampStart = 1UL << 0, 21 | kPOPAnimationClampEnd = 1UL << 1, 22 | kPOPAnimationClampBoth = kPOPAnimationClampStart | kPOPAnimationClampEnd, 23 | }; 24 | 25 | /** 26 | @abstract The semi-concrete property animation subclass. 27 | */ 28 | @interface POPPropertyAnimation : POPAnimation 29 | 30 | /** 31 | @abstract The property to animate. 32 | */ 33 | @property (strong, nonatomic) POPAnimatableProperty *property; 34 | 35 | /** 36 | @abstract The value to animate from. 37 | @discussion The value type should match the property. If unspecified, the value is initialized to the object's current value on animation start. 38 | */ 39 | @property (copy, nonatomic) id fromValue; 40 | 41 | /** 42 | @abstract The value to animate to. 43 | @discussion The value type should match the property. If unspecified, the value is initialized to the object's current value on animation start. 44 | */ 45 | @property (copy, nonatomic) id toValue; 46 | 47 | /** 48 | @abstract The rounding factor applied to the current animated value. 49 | @discussion Specify 1.0 to animate between integral values. Defaults to 0 meaning no rounding. 50 | */ 51 | @property (assign, nonatomic) CGFloat roundingFactor; 52 | 53 | /** 54 | @abstract The clamp mode applied to the current animated value. 55 | @discussion See {@ref POPAnimationClampFlags} for possible values. Defaults to kPOPAnimationClampNone. 56 | */ 57 | @property (assign, nonatomic) NSUInteger clampMode; 58 | 59 | /** 60 | @abstract The flag indicating whether values should be "added" each frame, rather than set. 61 | @discussion Addition may be type dependent. Defaults to NO. 62 | */ 63 | @property (assign, nonatomic, getter = isAdditive) BOOL additive; 64 | 65 | @end 66 | -------------------------------------------------------------------------------- /Pods/pop/pop/POPSpringAnimation.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | /** 13 | @abstract A concrete spring animation class. 14 | @discussion Animation is achieved through modeling spring dynamics. 15 | */ 16 | @interface POPSpringAnimation : POPPropertyAnimation 17 | 18 | /** 19 | @abstract The designated initializer. 20 | @returns An instance of a spring animation. 21 | */ 22 | + (instancetype)animation; 23 | 24 | /** 25 | @abstract Convenience initializer that returns an animation with animatable property of name. 26 | @param name The name of the animatable property. 27 | @returns An instance of a spring animation configured with specified animatable property. 28 | */ 29 | + (instancetype)animationWithPropertyNamed:(NSString *)name; 30 | 31 | /** 32 | @abstract The current velocity value. 33 | @discussion Set before animation start to account for initial velocity. Expressed in change of value units per second. 34 | */ 35 | @property (copy, nonatomic) id velocity; 36 | 37 | /** 38 | @abstract The effective bounciness. 39 | @discussion Use in conjunction with 'springSpeed' to change animation effect. Values are converted into corresponding dynamics constants. Defined as a value in the range [0, 20]. Defaults to 4. 40 | */ 41 | @property (assign, nonatomic) CGFloat springBounciness; 42 | 43 | /** 44 | @abstract The effective speed. 45 | @discussion Use in conjunction with 'springBounciness' to change animation effect. Values are converted into corresponding dynamics constants. Defined as a value in the range [0, 20]. Defaults to 12. 46 | */ 47 | @property (assign, nonatomic) CGFloat springSpeed; 48 | 49 | /** 50 | @abstract The tension used in the dynamics simulation. 51 | @discussion Can be used over bounciness and speed for finer grain tweaking of animation effect. 52 | */ 53 | @property (assign, nonatomic) CGFloat dynamicsTension; 54 | 55 | /** 56 | @abstract The friction used in the dynamics simulation. 57 | @discussion Can be used over bounciness and speed for finer grain tweaking of animation effect. 58 | */ 59 | @property (assign, nonatomic) CGFloat dynamicsFriction; 60 | 61 | /** 62 | @abstract The mass used in the dynamics simulation. 63 | @discussion Can be used over bounciness and speed for finer grain tweaking of animation effect. 64 | */ 65 | @property (assign, nonatomic) CGFloat dynamicsMass; 66 | 67 | @end 68 | -------------------------------------------------------------------------------- /Pods/pop/pop/POPBasicAnimation.mm: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "POPBasicAnimationInternal.h" 11 | 12 | @implementation POPBasicAnimation 13 | 14 | #undef __state 15 | #define __state ((POPBasicAnimationState *)_state) 16 | 17 | #pragma mark - Lifecycle 18 | 19 | + (instancetype)animation 20 | { 21 | return [[self alloc] init]; 22 | } 23 | 24 | + (instancetype)animationWithPropertyNamed:(NSString *)aName 25 | { 26 | POPBasicAnimation *anim = [self animation]; 27 | anim.property = [POPAnimatableProperty propertyWithName:aName]; 28 | return anim; 29 | } 30 | 31 | - (void)_initState 32 | { 33 | _state = new POPBasicAnimationState(self); 34 | } 35 | 36 | + (instancetype)linearAnimation 37 | { 38 | POPBasicAnimation *anim = [self animation]; 39 | anim.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; 40 | return anim; 41 | } 42 | 43 | + (instancetype)easeInAnimation 44 | { 45 | POPBasicAnimation *anim = [self animation]; 46 | anim.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn]; 47 | return anim; 48 | } 49 | 50 | + (instancetype)easeOutAnimation 51 | { 52 | POPBasicAnimation *anim = [self animation]; 53 | anim.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut]; 54 | return anim; 55 | } 56 | 57 | + (instancetype)easeInEaseOutAnimation 58 | { 59 | POPBasicAnimation *anim = [self animation]; 60 | anim.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]; 61 | return anim; 62 | } 63 | 64 | + (instancetype)defaultAnimation 65 | { 66 | POPBasicAnimation *anim = [self animation]; 67 | anim.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionDefault]; 68 | return anim; 69 | } 70 | 71 | - (id)init 72 | { 73 | return [self _init]; 74 | } 75 | 76 | #pragma mark - Properties 77 | 78 | DEFINE_RW_PROPERTY(POPBasicAnimationState, duration, setDuration:, CFTimeInterval); 79 | DEFINE_RW_PROPERTY_OBJ(POPBasicAnimationState, timingFunction, setTimingFunction:, CAMediaTimingFunction*, __state->updatedTimingFunction();); 80 | 81 | #pragma mark - Utility 82 | 83 | - (void)_appendDescription:(NSMutableString *)s debug:(BOOL)debug 84 | { 85 | [super _appendDescription:s debug:debug]; 86 | if (__state->duration) 87 | [s appendFormat:@"; duration = %f", __state->duration]; 88 | } 89 | 90 | @end 91 | -------------------------------------------------------------------------------- /Pods/AFNetworking/UIKit+AFNetworking/UIRefreshControl+AFNetworking.h: -------------------------------------------------------------------------------- 1 | // UIRefreshControl+AFNetworking.m 2 | // 3 | // Copyright (c) 2014 AFNetworking (http://afnetworking.com) 4 | // 5 | // Permission is hereby granted, free of charge, to any person obtaining a copy 6 | // of this software and associated documentation files (the "Software"), to deal 7 | // in the Software without restriction, including without limitation the rights 8 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | // copies of the Software, and to permit persons to whom the Software is 10 | // furnished to do so, subject to the following conditions: 11 | // 12 | // The above copyright notice and this permission notice shall be included in 13 | // all copies or substantial portions of the Software. 14 | // 15 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | // THE SOFTWARE. 22 | 23 | #import 24 | 25 | #import 26 | 27 | #if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) 28 | 29 | #import 30 | 31 | @class AFURLConnectionOperation; 32 | 33 | /** 34 | This category adds methods to the UIKit framework's `UIRefreshControl` class. The methods in this category provide support for automatically begining and ending refreshing depending on the loading state of a request operation or session task. 35 | */ 36 | @interface UIRefreshControl (AFNetworking) 37 | 38 | ///----------------------------------- 39 | /// @name Refreshing for Session Tasks 40 | ///----------------------------------- 41 | 42 | /** 43 | Binds the refreshing state to the state of the specified task. 44 | 45 | @param task The task. If `nil`, automatic updating from any previously specified operation will be disabled. 46 | */ 47 | #if __IPHONE_OS_VERSION_MIN_REQUIRED >= 70000 48 | - (void)setRefreshingWithStateOfTask:(NSURLSessionTask *)task; 49 | #endif 50 | 51 | ///---------------------------------------- 52 | /// @name Refreshing for Request Operations 53 | ///---------------------------------------- 54 | 55 | /** 56 | Binds the refreshing state to the execution state of the specified operation. 57 | 58 | @param operation The operation. If `nil`, automatic updating from any previously specified operation will be disabled. 59 | */ 60 | - (void)setRefreshingWithStateOfOperation:(AFURLConnectionOperation *)operation; 61 | 62 | @end 63 | 64 | #endif 65 | -------------------------------------------------------------------------------- /Pods/AFNetworking/UIKit+AFNetworking/UIActivityIndicatorView+AFNetworking.h: -------------------------------------------------------------------------------- 1 | // UIActivityIndicatorView+AFNetworking.h 2 | // Copyright (c) 2011–2015 Alamofire Software Foundation (http://alamofire.org/) 3 | // 4 | // Permission is hereby granted, free of charge, to any person obtaining a copy 5 | // of this software and associated documentation files (the "Software"), to deal 6 | // in the Software without restriction, including without limitation the rights 7 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | // copies of the Software, and to permit persons to whom the Software is 9 | // furnished to do so, subject to the following conditions: 10 | // 11 | // The above copyright notice and this permission notice shall be included in 12 | // all copies or substantial portions of the Software. 13 | // 14 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 15 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 16 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 17 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 18 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 19 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 20 | // THE SOFTWARE. 21 | 22 | #import 23 | 24 | #import 25 | 26 | #if defined(__IPHONE_OS_VERSION_MIN_REQUIRED) 27 | 28 | #import 29 | 30 | @class AFURLConnectionOperation; 31 | 32 | /** 33 | This category adds methods to the UIKit framework's `UIActivityIndicatorView` class. The methods in this category provide support for automatically starting and stopping animation depending on the loading state of a request operation or session task. 34 | */ 35 | @interface UIActivityIndicatorView (AFNetworking) 36 | 37 | ///---------------------------------- 38 | /// @name Animating for Session Tasks 39 | ///---------------------------------- 40 | 41 | /** 42 | Binds the animating state to the state of the specified task. 43 | 44 | @param task The task. If `nil`, automatic updating from any previously specified operation will be disabled. 45 | */ 46 | #if __IPHONE_OS_VERSION_MIN_REQUIRED >= 70000 47 | - (void)setAnimatingWithStateOfTask:(NSURLSessionTask *)task; 48 | #endif 49 | 50 | ///--------------------------------------- 51 | /// @name Animating for Request Operations 52 | ///--------------------------------------- 53 | 54 | /** 55 | Binds the animating state to the execution state of the specified operation. 56 | 57 | @param operation The operation. If `nil`, automatic updating from any previously specified operation will be disabled. 58 | */ 59 | - (void)setAnimatingWithStateOfOperation:(AFURLConnectionOperation *)operation; 60 | 61 | @end 62 | 63 | #endif 64 | -------------------------------------------------------------------------------- /Pods/pop/pop/POPCGUtils.mm: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "POPCGUtils.h" 11 | 12 | #if TARGET_OS_IPHONE 13 | #import 14 | #else 15 | #import 16 | #endif 17 | 18 | void POPCGColorGetRGBAComponents(CGColorRef color, CGFloat components[]) 19 | { 20 | if (!color) { 21 | #if TARGET_OS_IPHONE 22 | color = [UIColor clearColor].CGColor; 23 | #else 24 | color = [NSColor clearColor].CGColor; 25 | #endif 26 | } 27 | 28 | const CGFloat *colors = CGColorGetComponents(color); 29 | size_t count = CGColorGetNumberOfComponents(color); 30 | 31 | if (4 == count) { 32 | // RGB colorspace 33 | components[0] = colors[0]; 34 | components[1] = colors[1]; 35 | components[2] = colors[2]; 36 | components[3] = colors[3]; 37 | } else if (2 == count) { 38 | // Grey colorspace 39 | components[0] = components[1] = components[2] = colors[0]; 40 | components[3] = colors[1]; 41 | } else { 42 | // Use CI to convert 43 | CIColor *ciColor = [CIColor colorWithCGColor:color]; 44 | components[0] = ciColor.red; 45 | components[1] = ciColor.green; 46 | components[2] = ciColor.blue; 47 | components[3] = ciColor.alpha; 48 | } 49 | } 50 | 51 | CGColorRef POPCGColorRGBACreate(const CGFloat components[]) 52 | { 53 | #if TARGET_OS_IPHONE 54 | CGColorSpaceRef space = CGColorSpaceCreateDeviceRGB(); 55 | CGColorRef color = CGColorCreate(space, components); 56 | CGColorSpaceRelease(space); 57 | return color; 58 | #else 59 | return CGColorCreateGenericRGB(components[0], components[1], components[2], components[3]); 60 | #endif 61 | } 62 | 63 | CGColorRef POPCGColorWithColor(id color) 64 | { 65 | if (CFGetTypeID((__bridge CFTypeRef)color) == CGColorGetTypeID()) { 66 | return ((__bridge CGColorRef)color); 67 | } 68 | #if TARGET_OS_IPHONE 69 | else if ([color isKindOfClass:[UIColor class]]) { 70 | return [color CGColor]; 71 | } 72 | #else 73 | else if ([color isKindOfClass:[NSColor class]]) { 74 | return [color CGColor]; 75 | } 76 | #endif 77 | return nil; 78 | } 79 | 80 | #if TARGET_OS_IPHONE 81 | 82 | void POPUIColorGetRGBAComponents(UIColor *color, CGFloat components[]) 83 | { 84 | return POPCGColorGetRGBAComponents(color.CGColor, components); 85 | } 86 | 87 | UIColor *POPUIColorRGBACreate(const CGFloat components[]) 88 | { 89 | CGColorRef colorRef = POPCGColorRGBACreate(components); 90 | UIColor *color = [[UIColor alloc] initWithCGColor:colorRef]; 91 | CGColorRelease(colorRef); 92 | return color; 93 | } 94 | 95 | #endif 96 | 97 | -------------------------------------------------------------------------------- /Pods/Shimmer/FBShimmering/FBShimmering.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | typedef NS_ENUM(NSInteger, FBShimmerDirection) { 13 | FBShimmerDirectionRight, // Shimmer animation goes from left to right 14 | FBShimmerDirectionLeft, // Shimmer animation goes from right to left 15 | FBShimmerDirectionUp, // Shimmer animation goes from below to above 16 | FBShimmerDirectionDown, // Shimmer animation goes from above to below 17 | }; 18 | 19 | @protocol FBShimmering 20 | 21 | //! @abstract Set this to YES to start shimming and NO to stop. Defaults to NO. 22 | @property (nonatomic, assign, readwrite, getter = isShimmering) BOOL shimmering; 23 | 24 | //! @abstract The time interval between shimmerings in seconds. Defaults to 0.4. 25 | @property (assign, nonatomic, readwrite) CFTimeInterval shimmeringPauseDuration; 26 | 27 | //! @abstract The opacity of the content while it is shimmering. Defaults to 1.0. 28 | @property (assign, nonatomic, readwrite) CGFloat shimmeringAnimationOpacity; 29 | 30 | //! @abstract The opacity of the content before it is shimmering. Defaults to 0.5. 31 | @property (assign, nonatomic, readwrite) CGFloat shimmeringOpacity; 32 | 33 | //! @abstract The speed of shimmering, in points per second. Defaults to 230. 34 | @property (assign, nonatomic, readwrite) CGFloat shimmeringSpeed; 35 | 36 | //! @abstract The highlight length of shimmering. Range of [0,1], defaults to 0.33. 37 | @property (assign, nonatomic, readwrite) CGFloat shimmeringHighlightLength; 38 | 39 | //! @abstract @deprecated Same as "shimmeringHighlightLength", just for downward compatibility 40 | @property (assign, nonatomic, readwrite, getter = shimmeringHighlightLength, setter = setShimmeringHighlightLength:) CGFloat shimmeringHighlightWidth; 41 | 42 | //! @abstract The direction of shimmering animation. Defaults to FBShimmerDirectionRight. 43 | @property (assign, nonatomic, readwrite) FBShimmerDirection shimmeringDirection; 44 | 45 | //! @abstract The duration of the fade used when shimmer begins. Defaults to 0.1. 46 | @property (assign, nonatomic, readwrite) CFTimeInterval shimmeringBeginFadeDuration; 47 | 48 | //! @abstract The duration of the fade used when shimmer ends. Defaults to 0.3. 49 | @property (assign, nonatomic, readwrite) CFTimeInterval shimmeringEndFadeDuration; 50 | 51 | /** 52 | @abstract The absolute CoreAnimation media time when the shimmer will fade in. 53 | @discussion Only valid after setting {@ref shimmering} to NO. 54 | */ 55 | @property (assign, nonatomic, readonly) CFTimeInterval shimmeringFadeTime; 56 | 57 | @end 58 | 59 | -------------------------------------------------------------------------------- /Pods/pop/pop/POPCGUtils.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | #if TARGET_OS_IPHONE 12 | #import 13 | #endif 14 | #import "POPDefines.h" 15 | 16 | #if TARGET_OS_IPHONE 17 | @class UIColor; 18 | #endif 19 | 20 | POP_EXTERN_C_BEGIN 21 | 22 | NS_INLINE CGPoint values_to_point(const CGFloat values[]) 23 | { 24 | return CGPointMake(values[0], values[1]); 25 | } 26 | 27 | NS_INLINE CGSize values_to_size(const CGFloat values[]) 28 | { 29 | return CGSizeMake(values[0], values[1]); 30 | } 31 | 32 | NS_INLINE CGRect values_to_rect(const CGFloat values[]) 33 | { 34 | return CGRectMake(values[0], values[1], values[2], values[3]); 35 | } 36 | 37 | #if TARGET_OS_IPHONE 38 | 39 | NS_INLINE UIEdgeInsets values_to_edge_insets(const CGFloat values[]) 40 | { 41 | return UIEdgeInsetsMake(values[0], values[1], values[2], values[3]); 42 | } 43 | 44 | #endif 45 | 46 | NS_INLINE void values_from_point(CGFloat values[], CGPoint p) 47 | { 48 | values[0] = p.x; 49 | values[1] = p.y; 50 | } 51 | 52 | NS_INLINE void values_from_size(CGFloat values[], CGSize s) 53 | { 54 | values[0] = s.width; 55 | values[1] = s.height; 56 | } 57 | 58 | NS_INLINE void values_from_rect(CGFloat values[], CGRect r) 59 | { 60 | values[0] = r.origin.x; 61 | values[1] = r.origin.y; 62 | values[2] = r.size.width; 63 | values[3] = r.size.height; 64 | } 65 | 66 | #if TARGET_OS_IPHONE 67 | 68 | NS_INLINE void values_from_edge_insets(CGFloat values[], UIEdgeInsets i) 69 | { 70 | values[0] = i.top; 71 | values[1] = i.left; 72 | values[2] = i.bottom; 73 | values[3] = i.right; 74 | } 75 | 76 | #endif 77 | 78 | /** 79 | Takes a CGColorRef and converts it into RGBA components, if necessary. 80 | */ 81 | extern void POPCGColorGetRGBAComponents(CGColorRef color, CGFloat components[]); 82 | 83 | /** 84 | Takes RGBA components and returns a CGColorRef. 85 | */ 86 | extern CGColorRef POPCGColorRGBACreate(const CGFloat components[]) CF_RETURNS_RETAINED; 87 | 88 | /** 89 | Takes a color reference and returns a CGColor. 90 | */ 91 | extern CGColorRef POPCGColorWithColor(id color); 92 | 93 | #if TARGET_OS_IPHONE 94 | 95 | /** 96 | Takes a UIColor and converts it into RGBA components, if necessary. 97 | */ 98 | extern void POPUIColorGetRGBAComponents(UIColor *color, CGFloat components[]); 99 | 100 | /** 101 | Takes RGBA components and returns a UIColor. 102 | */ 103 | extern UIColor *POPUIColorRGBACreate(const CGFloat components[]) NS_RETURNS_RETAINED; 104 | 105 | #endif 106 | 107 | POP_EXTERN_C_END 108 | -------------------------------------------------------------------------------- /Pods/SAMTextField/SAMTextField/SAMTextField.h: -------------------------------------------------------------------------------- 1 | // 2 | // SAMTextField.h 3 | // SAMTextField 4 | // 5 | // Created by Sam Soffes on 3/11/10. 6 | // Copyright 2010-2014 Sam Soffes. All rights reserved. 7 | // 8 | 9 | /** 10 | Simple UITextField subclass to adds text insets. 11 | */ 12 | @interface SAMTextField : UITextField 13 | 14 | ///------------------------------ 15 | /// @name Drawing and Positioning 16 | ///------------------------------ 17 | 18 | /** 19 | The inset or outset margins for the edges of the text content drawing rectangle. 20 | 21 | Use this property to resize and reposition the effective drawing rectangle for the text content. You can specify a 22 | different value for each of the four insets (top, left, bottom, right). A positive value shrinks, or insets, that 23 | edge—moving it closer to the center of the button. A negative value expands, or outsets, that edge. Use the 24 | `UIEdgeInsetsMake` function to construct a value for this property. 25 | 26 | The default value is `UIEdgeInsetsZero`. 27 | */ 28 | @property (nonatomic) UIEdgeInsets textEdgeInsets; 29 | 30 | /** 31 | The inset or outset margins for the edges of the clear button drawing rectangle. 32 | 33 | Use this property to resize and reposition the effective drawing rectangle for the clear button content. You can 34 | specify a different value for each of the four insets (top, left, bottom, right), but only the top and right insets are 35 | respected. A positive value will move the clear button farther away from the top right corner. Use the 36 | `UIEdgeInsetsMake` function to construct a value for this property. 37 | 38 | The default value is `UIEdgeInsetsZero`. 39 | */ 40 | @property (nonatomic) UIEdgeInsets clearButtonEdgeInsets; 41 | 42 | /** 43 | The inset or outset margins for the edges of the view assigned to `rightView`. 44 | 45 | Use this property to resize and reposition the effective drawing rectangle for the right view content. You can 46 | specify a different value for each of the four insets (top, left, bottom, right), but only the top and right insets are 47 | respected. A positive value will move the view farther away from the top right corner. Use the 48 | `UIEdgeInsetsMake` function to construct a value for this property. 49 | 50 | The default value is `UIEdgeInsetsZero`. 51 | */ 52 | @property (nonatomic) UIEdgeInsets rightViewInsets; 53 | 54 | /** 55 | The inset or outset margins for the edges of the view assigned to `leftView`. 56 | 57 | Use this property to resize and reposition the effective drawing rectangle for the left view content. You can 58 | specify a different value for each of the four insets (top, left, bottom, right), but only the top and right insets are 59 | respected. A positive value will move the view farther away from the top right corner. Use the 60 | `UIEdgeInsetsMake` function to construct a value for this property. 61 | 62 | The default value is `UIEdgeInsetsZero`. 63 | */ 64 | @property (nonatomic) UIEdgeInsets leftViewInsets; 65 | 66 | @end 67 | -------------------------------------------------------------------------------- /Pods/pop/pop/POPAnimationRuntime.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import 11 | 12 | #import 13 | 14 | #import "POPVector.h" 15 | 16 | enum POPValueType 17 | { 18 | kPOPValueUnknown = 0, 19 | kPOPValueInteger, 20 | kPOPValueFloat, 21 | kPOPValuePoint, 22 | kPOPValueSize, 23 | kPOPValueRect, 24 | kPOPValueEdgeInsets, 25 | kPOPValueAffineTransform, 26 | kPOPValueTransform, 27 | kPOPValueRange, 28 | kPOPValueColor, 29 | }; 30 | 31 | using namespace POP; 32 | 33 | /** 34 | Returns value type based on objc type description, given list of supported value types and length. 35 | */ 36 | extern POPValueType POPSelectValueType(const char *objctype, const POPValueType *types, size_t length); 37 | 38 | /** 39 | Returns value type based on objc object, given a list of supported value types and length. 40 | */ 41 | extern POPValueType POPSelectValueType(id obj, const POPValueType *types, size_t length); 42 | 43 | /** 44 | Array of all value types. 45 | */ 46 | extern const POPValueType kPOPAnimatableAllTypes[10]; 47 | 48 | /** 49 | Array of all value types supported for animation. 50 | */ 51 | extern const POPValueType kPOPAnimatableSupportTypes[8]; 52 | 53 | /** 54 | Returns a string description of a value type. 55 | */ 56 | extern NSString *POPValueTypeToString(POPValueType t); 57 | 58 | /** 59 | Returns a mutable dictionary of weak pointer keys to weak pointer values. 60 | */ 61 | extern CFMutableDictionaryRef POPDictionaryCreateMutableWeakPointerToWeakPointer(NSUInteger capacity) CF_RETURNS_RETAINED; 62 | 63 | /** 64 | Returns a mutable dictionary of weak pointer keys to weak pointer values. 65 | */ 66 | extern CFMutableDictionaryRef POPDictionaryCreateMutableWeakPointerToStrongObject(NSUInteger capacity) CF_RETURNS_RETAINED; 67 | 68 | /** 69 | Box a vector. 70 | */ 71 | extern id POPBox(VectorConstRef vec, POPValueType type, bool force = false); 72 | 73 | /** 74 | Unbox a vector. 75 | */ 76 | extern VectorRef POPUnbox(id value, POPValueType &type, NSUInteger &count, bool validate); 77 | 78 | /** 79 | Read/write block typedefs for convenience. 80 | */ 81 | typedef void(^pop_animatable_read_block)(id obj, CGFloat *value); 82 | typedef void(^pop_animatable_write_block)(id obj, const CGFloat *value); 83 | 84 | /** 85 | Read object value and return a Vector4r. 86 | */ 87 | NS_INLINE Vector4r read_values(pop_animatable_read_block read, id obj, size_t count) 88 | { 89 | Vector4r vec = Vector4r::Zero(); 90 | if (0 == count) 91 | return vec; 92 | 93 | read(obj, vec.data()); 94 | 95 | return vec; 96 | } 97 | 98 | NS_INLINE NSString *POPStringFromBOOL(BOOL value) 99 | { 100 | return value ? @"YES" : @"NO"; 101 | } 102 | -------------------------------------------------------------------------------- /Pods/pop/pop/POPBasicAnimationInternal.h: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "POPBasicAnimation.h" 11 | #import "POPPropertyAnimationInternal.h" 12 | 13 | // default animation duration 14 | static CGFloat const kPOPAnimationDurationDefault = 0.4; 15 | 16 | // progress threshold for computing done 17 | static CGFloat const kPOPProgressThreshold = 1e-6; 18 | 19 | static void interpolate(POPValueType valueType, NSUInteger count, const CGFloat *fromVec, const CGFloat *toVec, CGFloat *outVec, CGFloat p) 20 | { 21 | switch (valueType) { 22 | case kPOPValueInteger: 23 | case kPOPValueFloat: 24 | case kPOPValuePoint: 25 | case kPOPValueSize: 26 | case kPOPValueRect: 27 | case kPOPValueEdgeInsets: 28 | case kPOPValueColor: 29 | POPInterpolateVector(count, outVec, fromVec, toVec, p); 30 | break; 31 | default: 32 | NSCAssert(false, @"unhandled type %d", valueType); 33 | break; 34 | } 35 | } 36 | 37 | struct _POPBasicAnimationState : _POPPropertyAnimationState 38 | { 39 | CAMediaTimingFunction *timingFunction; 40 | double timingControlPoints[4]; 41 | CFTimeInterval duration; 42 | CFTimeInterval timeProgress; 43 | 44 | _POPBasicAnimationState(id __unsafe_unretained anim) : _POPPropertyAnimationState(anim), 45 | timingFunction(nil), 46 | timingControlPoints{0.}, 47 | duration(kPOPAnimationDurationDefault), 48 | timeProgress(0.) 49 | { 50 | type = kPOPAnimationBasic; 51 | } 52 | 53 | bool isDone() { 54 | if (_POPPropertyAnimationState::isDone()) { 55 | return true; 56 | } 57 | return timeProgress + kPOPProgressThreshold >= 1.; 58 | } 59 | 60 | void updatedTimingFunction() 61 | { 62 | float vec[4] = {0.}; 63 | [timingFunction getControlPointAtIndex:1 values:&vec[0]]; 64 | [timingFunction getControlPointAtIndex:2 values:&vec[2]]; 65 | for (NSUInteger idx = 0; idx < POP_ARRAY_COUNT(vec); idx++) { 66 | timingControlPoints[idx] = vec[idx]; 67 | } 68 | } 69 | 70 | bool advance(CFTimeInterval time, CFTimeInterval dt, id obj) { 71 | // default timing function 72 | if (!timingFunction) { 73 | ((POPBasicAnimation *)self).timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionDefault]; 74 | } 75 | 76 | // solve for normalized time, aka progresss [0, 1] 77 | CGFloat p = 1.0f; 78 | if (duration > 0.0f) { 79 | // cap local time to duration 80 | CFTimeInterval t = MIN(time - startTime, duration) / duration; 81 | p = POPTimingFunctionSolve(timingControlPoints, t, SOLVE_EPS(duration)); 82 | timeProgress = t; 83 | } else { 84 | timeProgress = 1.; 85 | } 86 | 87 | // interpolate and advance 88 | interpolate(valueType, valueCount, fromVec->data(), toVec->data(), currentVec->data(), p); 89 | progress = p; 90 | clampCurrentValue(); 91 | 92 | return true; 93 | } 94 | }; 95 | 96 | typedef struct _POPBasicAnimationState POPBasicAnimationState; 97 | -------------------------------------------------------------------------------- /Pods/pop/pop/POPAnimationEvent.mm: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "POPAnimationEvent.h" 11 | #import "POPAnimationEventInternal.h" 12 | 13 | static NSString *stringFromType(POPAnimationEventType aType) 14 | { 15 | switch (aType) { 16 | case kPOPAnimationEventPropertyRead: 17 | return @"read"; 18 | case kPOPAnimationEventPropertyWrite: 19 | return @"write"; 20 | case kPOPAnimationEventToValueUpdate: 21 | return @"toValue"; 22 | case kPOPAnimationEventFromValueUpdate: 23 | return @"fromValue"; 24 | case kPOPAnimationEventVelocityUpdate: 25 | return @"velocity"; 26 | case kPOPAnimationEventSpeedUpdate: 27 | return @"speed"; 28 | case kPOPAnimationEventBouncinessUpdate: 29 | return @"bounciness"; 30 | case kPOPAnimationEventFrictionUpdate: 31 | return @"friction"; 32 | case kPOPAnimationEventMassUpdate: 33 | return @"mass"; 34 | case kPOPAnimationEventTensionUpdate: 35 | return @"tension"; 36 | case kPOPAnimationEventDidStart: 37 | return @"didStart"; 38 | case kPOPAnimationEventDidStop: 39 | return @"didStop"; 40 | case kPOPAnimationEventDidReachToValue: 41 | return @"didReachToValue"; 42 | case kPOPAnimationEventAutoreversed: 43 | return @"autoreversed"; 44 | default: 45 | return nil; 46 | } 47 | } 48 | 49 | @implementation POPAnimationEvent 50 | @synthesize type = _type; 51 | @synthesize time = _time; 52 | @synthesize animationDescription = _animationDescription; 53 | 54 | - (instancetype)initWithType:(POPAnimationEventType)aType time:(CFTimeInterval)aTime 55 | { 56 | self = [super init]; 57 | if (nil != self) { 58 | _type = aType; 59 | _time = aTime; 60 | } 61 | return self; 62 | } 63 | 64 | - (NSString *)description 65 | { 66 | NSMutableString *s = [NSMutableString stringWithFormat:@""]; 69 | return s; 70 | } 71 | 72 | // subclass override 73 | - (void)_appendDescription:(NSMutableString *)s 74 | { 75 | if (0 != _animationDescription.length) { 76 | [s appendFormat:@"; animation = %@", _animationDescription]; 77 | } 78 | } 79 | 80 | @end 81 | 82 | @implementation POPAnimationValueEvent 83 | @synthesize value = _value; 84 | @synthesize velocity = _velocity; 85 | 86 | - (instancetype)initWithType:(POPAnimationEventType)aType time:(CFTimeInterval)aTime value:(id)aValue 87 | { 88 | self = [self initWithType:aType time:aTime]; 89 | if (nil != self) { 90 | _value = aValue; 91 | } 92 | return self; 93 | } 94 | 95 | - (void)_appendDescription:(NSMutableString *)s 96 | { 97 | [super _appendDescription:s]; 98 | 99 | if (nil != _value) { 100 | [s appendFormat:@"; value = %@", _value]; 101 | } 102 | 103 | if (nil != _velocity) { 104 | [s appendFormat:@"; velocity = %@", _velocity]; 105 | } 106 | } 107 | 108 | @end 109 | -------------------------------------------------------------------------------- /Pods/TPKeyboardAvoiding/TPKeyboardAvoiding/TPKeyboardAvoidingScrollView.m: -------------------------------------------------------------------------------- 1 | // 2 | // TPKeyboardAvoidingScrollView.m 3 | // TPKeyboardAvoiding 4 | // 5 | // Created by Michael Tyson on 30/09/2013. 6 | // Copyright 2015 A Tasty Pixel. All rights reserved. 7 | // 8 | 9 | #import "TPKeyboardAvoidingScrollView.h" 10 | 11 | @interface TPKeyboardAvoidingScrollView () 12 | @end 13 | 14 | @implementation TPKeyboardAvoidingScrollView 15 | 16 | #pragma mark - Setup/Teardown 17 | 18 | - (void)setup { 19 | [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(TPKeyboardAvoiding_keyboardWillShow:) name:UIKeyboardWillChangeFrameNotification object:nil]; 20 | [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(TPKeyboardAvoiding_keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil]; 21 | [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(scrollToActiveTextField) name:UITextViewTextDidBeginEditingNotification object:nil]; 22 | [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(scrollToActiveTextField) name:UITextFieldTextDidBeginEditingNotification object:nil]; 23 | } 24 | 25 | -(id)initWithFrame:(CGRect)frame { 26 | if ( !(self = [super initWithFrame:frame]) ) return nil; 27 | [self setup]; 28 | return self; 29 | } 30 | 31 | -(void)awakeFromNib { 32 | [self setup]; 33 | } 34 | 35 | -(void)dealloc { 36 | [[NSNotificationCenter defaultCenter] removeObserver:self]; 37 | #if !__has_feature(objc_arc) 38 | [super dealloc]; 39 | #endif 40 | } 41 | 42 | -(void)setFrame:(CGRect)frame { 43 | [super setFrame:frame]; 44 | [self TPKeyboardAvoiding_updateContentInset]; 45 | } 46 | 47 | -(void)setContentSize:(CGSize)contentSize { 48 | [super setContentSize:contentSize]; 49 | [self TPKeyboardAvoiding_updateFromContentSizeChange]; 50 | } 51 | 52 | - (void)contentSizeToFit { 53 | self.contentSize = [self TPKeyboardAvoiding_calculatedContentSizeFromSubviewFrames]; 54 | } 55 | 56 | - (BOOL)focusNextTextField { 57 | return [self TPKeyboardAvoiding_focusNextTextField]; 58 | 59 | } 60 | - (void)scrollToActiveTextField { 61 | return [self TPKeyboardAvoiding_scrollToActiveTextField]; 62 | } 63 | 64 | #pragma mark - Responders, events 65 | 66 | -(void)willMoveToSuperview:(UIView *)newSuperview { 67 | [super willMoveToSuperview:newSuperview]; 68 | if ( !newSuperview ) { 69 | [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(TPKeyboardAvoiding_assignTextDelegateForViewsBeneathView:) object:self]; 70 | } 71 | } 72 | 73 | - (void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { 74 | [[self TPKeyboardAvoiding_findFirstResponderBeneathView:self] resignFirstResponder]; 75 | [super touchesEnded:touches withEvent:event]; 76 | } 77 | 78 | -(BOOL)textFieldShouldReturn:(UITextField *)textField { 79 | if ( ![self focusNextTextField] ) { 80 | [textField resignFirstResponder]; 81 | } 82 | return YES; 83 | } 84 | 85 | -(void)layoutSubviews { 86 | [super layoutSubviews]; 87 | [NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(TPKeyboardAvoiding_assignTextDelegateForViewsBeneathView:) object:self]; 88 | [self performSelector:@selector(TPKeyboardAvoiding_assignTextDelegateForViewsBeneathView:) withObject:self afterDelay:0.1]; 89 | } 90 | 91 | @end 92 | -------------------------------------------------------------------------------- /Today/VPNButton.m: -------------------------------------------------------------------------------- 1 | // 2 | // VPNButton.m 3 | // Hydro 4 | // 5 | // Created by NIX on 14/12/26. 6 | // Copyright (c) 2014年 Catch Inc. All rights reserved. 7 | // 8 | 9 | #import "VPNButton.h" 10 | #import "HydroHelper.h" 11 | 12 | @interface VPNButton() 13 | 14 | @property (nonatomic, strong) CAShapeLayer *maskShapeLayer; 15 | @property (nonatomic, strong) CAShapeLayer *stateShapeLayer; 16 | 17 | @end 18 | 19 | @implementation VPNButton 20 | 21 | - (void)awakeFromNib 22 | { 23 | [super awakeFromNib]; 24 | 25 | self.backgroundColor = [UIColor colorWithWhite:0.0 alpha:0.12]; 26 | 27 | [self setBackgroundImage:[HydroHelper imageFromColor:[UIColor colorWithWhite:0.0 alpha:0.32]] forState:UIControlStateHighlighted]; 28 | } 29 | 30 | - (CAShapeLayer *)maskShapeLayer 31 | { 32 | if (!_maskShapeLayer) { 33 | _maskShapeLayer = [CAShapeLayer layer]; 34 | 35 | self.layer.mask = _maskShapeLayer; 36 | } 37 | 38 | return _maskShapeLayer; 39 | } 40 | 41 | - (CAShapeLayer *)stateShapeLayer 42 | { 43 | if (!_stateShapeLayer) { 44 | _stateShapeLayer = [CAShapeLayer layer]; 45 | _stateShapeLayer.lineWidth = 3.0; 46 | _stateShapeLayer.strokeColor = [UIColor clearColor].CGColor; 47 | _stateShapeLayer.fillColor = [UIColor clearColor].CGColor; 48 | _stateShapeLayer.lineJoin = @"round"; 49 | _stateShapeLayer.lineCap = @"round"; 50 | 51 | [self.layer addSublayer:_stateShapeLayer]; 52 | } 53 | 54 | return _stateShapeLayer; 55 | } 56 | 57 | - (UIBezierPath *)polygonPathWithRect:(CGRect)rect slides:(NSInteger)slides rotationAngle:(CGFloat)rotationAngle scale:(CGFloat)scale; 58 | { 59 | CGFloat radius = MIN(rect.size.width, rect.size.height) * 0.5 * scale; 60 | CGFloat stepAngle = M_PI * 2.0 / slides; 61 | CGPoint center = CGPointMake(rect.size.width * 0.5, rect.size.height * 0.5); 62 | 63 | UIBezierPath *path = [UIBezierPath bezierPath]; 64 | [path moveToPoint:CGPointMake(center.x + radius * cosf(0 + stepAngle * 0.5), center.y + radius * sinf(0 + stepAngle * 0.5))]; 65 | 66 | for (NSInteger i = 1; i < 6; i++) { 67 | CGFloat angle = stepAngle * (i); 68 | [path addLineToPoint:CGPointMake(center.x + radius * cosf(angle + stepAngle * 0.5), center.y + radius * sinf(angle + stepAngle * 0.5))]; 69 | } 70 | 71 | [path closePath]; 72 | 73 | return path; 74 | } 75 | 76 | - (void)layoutSubviews 77 | { 78 | [super layoutSubviews]; 79 | 80 | UIBezierPath *maskPath = [self polygonPathWithRect:self.bounds slides:6 rotationAngle:M_PI / 6.0 scale:1.0]; 81 | self.maskShapeLayer.path = maskPath.CGPath; 82 | 83 | UIBezierPath *statePath = [self polygonPathWithRect:self.bounds slides:6 rotationAngle:M_PI / 6.0 scale:0.9]; 84 | self.stateShapeLayer.path = statePath.CGPath; 85 | } 86 | 87 | - (void)setButtonState:(VPNButtonState)buttonState 88 | { 89 | _buttonState = buttonState; 90 | 91 | NSArray *colors = @[ 92 | [UIColor clearColor], 93 | [UIColor yellowColor], 94 | [UIColor colorWithRed:60/255.0 green:171/255.0 blue:218/255.0 alpha:1.0], 95 | [UIColor lightGrayColor], 96 | ]; 97 | 98 | UIColor *color = colors[_buttonState % colors.count]; 99 | self.stateShapeLayer.strokeColor = color.CGColor; 100 | } 101 | 102 | @end 103 | -------------------------------------------------------------------------------- /Pods/pop/pop/POPPropertyAnimation.mm: -------------------------------------------------------------------------------- 1 | /** 2 | Copyright (c) 2014-present, Facebook, Inc. 3 | All rights reserved. 4 | 5 | This source code is licensed under the BSD-style license found in the 6 | LICENSE file in the root directory of this source tree. An additional grant 7 | of patent rights can be found in the PATENTS file in the same directory. 8 | */ 9 | 10 | #import "POPPropertyAnimationInternal.h" 11 | 12 | @implementation POPPropertyAnimation 13 | 14 | #pragma mark - Lifecycle 15 | 16 | #undef __state 17 | #define __state ((POPPropertyAnimationState *)_state) 18 | 19 | - (void)_initState 20 | { 21 | _state = new POPPropertyAnimationState(self); 22 | } 23 | 24 | #pragma mark - Properties 25 | 26 | DEFINE_RW_FLAG(POPPropertyAnimationState, additive, isAdditive, setAdditive:); 27 | DEFINE_RW_PROPERTY(POPPropertyAnimationState, roundingFactor, setRoundingFactor:, CGFloat); 28 | DEFINE_RW_PROPERTY(POPPropertyAnimationState, clampMode, setClampMode:, NSUInteger); 29 | DEFINE_RW_PROPERTY_OBJ(POPPropertyAnimationState, property, setProperty:, POPAnimatableProperty*, ((POPPropertyAnimationState*)_state)->updatedDynamicsThreshold();); 30 | DEFINE_RW_PROPERTY_OBJ_COPY(POPPropertyAnimationState, progressMarkers, setProgressMarkers:, NSArray*, ((POPPropertyAnimationState*)_state)->updatedProgressMarkers();); 31 | 32 | - (id)fromValue 33 | { 34 | return POPBox(__state->fromVec, __state->valueType); 35 | } 36 | 37 | - (void)setFromValue:(id)aValue 38 | { 39 | POPPropertyAnimationState *s = __state; 40 | VectorRef vec = POPUnbox(aValue, s->valueType, s->valueCount, YES); 41 | if (!vec_equal(vec, s->fromVec)) { 42 | s->fromVec = vec; 43 | 44 | if (s->tracing) { 45 | [s->tracer updateFromValue:aValue]; 46 | } 47 | } 48 | } 49 | 50 | - (id)toValue 51 | { 52 | return POPBox(__state->toVec, __state->valueType); 53 | } 54 | 55 | - (void)setToValue:(id)aValue 56 | { 57 | POPPropertyAnimationState *s = __state; 58 | VectorRef vec = POPUnbox(aValue, s->valueType, s->valueCount, YES); 59 | 60 | if (!vec_equal(vec, s->toVec)) { 61 | s->toVec = vec; 62 | 63 | // invalidate to dependent state 64 | s->didReachToValue = false; 65 | s->distanceVec = NULL; 66 | 67 | if (s->tracing) { 68 | [s->tracer updateToValue:aValue]; 69 | } 70 | 71 | // automatically unpause active animations 72 | if (s->active && s->paused) { 73 | s->setPaused(false); 74 | } 75 | } 76 | } 77 | 78 | - (id)currentValue 79 | { 80 | return POPBox(__state->currentValue(), __state->valueType); 81 | } 82 | 83 | #pragma mark - Utility 84 | 85 | - (void)_appendDescription:(NSMutableString *)s debug:(BOOL)debug 86 | { 87 | [s appendFormat:@"; from = %@; to = %@", describe(__state->fromVec), describe(__state->toVec)]; 88 | 89 | if (_state->active) 90 | [s appendFormat:@"; currentValue = %@", describe(__state->currentValue())]; 91 | 92 | if (__state->velocityVec && 0 != __state->velocityVec->norm()) 93 | [s appendFormat:@"; velocity = %@", describe(__state->velocityVec)]; 94 | 95 | if (!self.removedOnCompletion) 96 | [s appendFormat:@"; removedOnCompletion = %@", POPStringFromBOOL(self.removedOnCompletion)]; 97 | 98 | if (__state->progressMarkers) 99 | [s appendFormat:@"; progressMarkers = [%@]", [__state->progressMarkers componentsJoinedByString:@", "]]; 100 | 101 | if (_state->active) 102 | [s appendFormat:@"; progress = %f", __state->progress]; 103 | } 104 | 105 | @end 106 | --------------------------------------------------------------------------------