Merge pull request #60 from TouchInstinct/feature/carthage
Feature/carthage
This commit is contained in:
commit
ee4c9cd6d9
|
|
@ -1,5 +1,9 @@
|
|||
# Changelog
|
||||
|
||||
### 0.3.11
|
||||
- **Add**: Carthage support.
|
||||
- **[Breaking change]**: Remove `BaseDateFormatter`. Use `NumberFormattingService` from LeadKit instead.
|
||||
|
||||
### 0.3.10
|
||||
|
||||
- **[Breaking change]**: Remove `isTouchIdSupported` and `isFaceIdSupported`.
|
||||
|
|
|
|||
|
|
@ -0,0 +1,11 @@
|
|||
binary "https://raw.github.com/petropavel13/CarthageBinaries/master/SwiftDate/SwiftDate.json"
|
||||
binary "https://raw.github.com/petropavel13/CarthageBinaries/master/LeadKit/LeadKit.json"
|
||||
binary "https://raw.github.com/petropavel13/CarthageBinaries/master/Alamofire/Alamofire.json"
|
||||
binary "https://raw.github.com/petropavel13/CarthageBinaries/master/RxAlamofire/RxAlamofire.json"
|
||||
binary "https://raw.github.com/petropavel13/CarthageBinaries/master/KeychainAccess/KeychainAccess.json"
|
||||
binary "https://raw.github.com/petropavel13/CarthageBinaries/master/CryptoSwift/CryptoSwift.json"
|
||||
binary "https://raw.github.com/petropavel13/CarthageBinaries/master/SwiftValidator/SwiftValidator.json"
|
||||
binary "https://raw.github.com/petropavel13/CarthageBinaries/master/PinLayout/PinLayout.json"
|
||||
github "ReactiveX/RxSwift"
|
||||
github "maxsokolov/TableKit"
|
||||
github "pronebird/UIScrollView-InfiniteScroll"
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
binary "https://raw.github.com/petropavel13/CarthageBinaries/master/Alamofire/Alamofire.json" "4.8.1"
|
||||
binary "https://raw.github.com/petropavel13/CarthageBinaries/master/CryptoSwift/CryptoSwift.json" "0.14.0"
|
||||
binary "https://raw.github.com/petropavel13/CarthageBinaries/master/KeychainAccess/KeychainAccess.json" "3.1.2"
|
||||
binary "https://raw.github.com/petropavel13/CarthageBinaries/master/LeadKit/LeadKit.json" "0.9.7"
|
||||
binary "https://raw.github.com/petropavel13/CarthageBinaries/master/PinLayout/PinLayout.json" "1.8.6"
|
||||
binary "https://raw.github.com/petropavel13/CarthageBinaries/master/RxAlamofire/RxAlamofire.json" "4.3.0"
|
||||
binary "https://raw.github.com/petropavel13/CarthageBinaries/master/SwiftDate/SwiftDate.json" "5.1.0"
|
||||
binary "https://raw.github.com/petropavel13/CarthageBinaries/master/SwiftValidator/SwiftValidator.json" "5.0.0"
|
||||
github "ReactiveX/RxSwift" "4.4.0"
|
||||
github "maxsokolov/TableKit" "2.8.1"
|
||||
github "pronebird/UIScrollView-InfiniteScroll" "1.1.0"
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
Pod::Spec.new do |s|
|
||||
s.name = "LeadKitAdditions"
|
||||
s.version = "0.3.10"
|
||||
s.version = "0.3.11"
|
||||
s.summary = "iOS framework with a bunch of tools for rapid development"
|
||||
s.homepage = "https://github.com/TouchInstinct/LeadKitAdditions"
|
||||
s.license = "Apache License, Version 2.0"
|
||||
|
|
@ -12,10 +12,6 @@ Pod::Spec.new do |s|
|
|||
ss.ios.deployment_target = '9.0'
|
||||
ss.source_files = "Sources/**/*.swift"
|
||||
|
||||
ss.exclude_files = [
|
||||
"Sources/Services/Network/DefaultNetworkService+ActivityIndicator+Extension.swift",
|
||||
]
|
||||
|
||||
ss.dependency "LeadKit", '~> 0.9.0'
|
||||
ss.dependency "KeychainAccess", '3.1.0'
|
||||
ss.dependency "CryptoSwift", '~> 0.9.0'
|
||||
|
|
@ -23,24 +19,6 @@ Pod::Spec.new do |s|
|
|||
ss.dependency "PinLayout", '~> 1.6'
|
||||
end
|
||||
|
||||
s.subspec 'Core-iOS-Extension' do |ss|
|
||||
ss.platform = :ios, '9.0'
|
||||
ss.source_files = "Sources/**/*.swift"
|
||||
|
||||
ss.exclude_files = [
|
||||
"Sources/Classes/Cells/LabelTableViewCell/*.swift",
|
||||
"Sources/Services/Network/DefaultNetworkService+ActivityIndicator.swift",
|
||||
"Sources/Extensions/Cells/**/*.swift",
|
||||
"Sources/Controllers/Passcode/**/*.swift"
|
||||
]
|
||||
|
||||
ss.dependency "LeadKit/Core-iOS-Extension", '~> 0.9.0'
|
||||
ss.dependency "KeychainAccess", '3.1.0'
|
||||
ss.dependency "CryptoSwift", '~> 0.9.0'
|
||||
ss.dependency "SwiftValidator", '4.0.2'
|
||||
ss.dependency "PinLayout", '~> 1.6'
|
||||
end
|
||||
|
||||
s.default_subspec = 'Core'
|
||||
|
||||
end
|
||||
|
|
|
|||
|
|
@ -7,17 +7,11 @@
|
|||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
248389A288C0A6D7914F0546 /* Pods_LeadKitAdditions_LeadKitAdditions_iOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0ED4A1B793EAA73C9E95969F /* Pods_LeadKitAdditions_LeadKitAdditions_iOS.framework */; };
|
||||
6760AF1A207268EC00C2BB7E /* PinLayoutCell+DefaultImplementation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6760AF19207268EC00C2BB7E /* PinLayoutCell+DefaultImplementation.swift */; };
|
||||
67779CBC206986390098F024 /* BaseTextFieldViewEvents+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67779CBB206986390098F024 /* BaseTextFieldViewEvents+Extensions.swift */; };
|
||||
67779CBD206986390098F024 /* BaseTextFieldViewEvents+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67779CBB206986390098F024 /* BaseTextFieldViewEvents+Extensions.swift */; };
|
||||
678D26AA206935B900B05B93 /* BiometricsService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 678D26A9206935B900B05B93 /* BiometricsService.swift */; };
|
||||
67B4E6EB206941CE00E233EA /* BiometricsService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 678D26A9206935B900B05B93 /* BiometricsService.swift */; };
|
||||
67B4E6F3206945D200E233EA /* BaseTextFieldViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67B4E6F1206945D200E233EA /* BaseTextFieldViewModel.swift */; };
|
||||
67B4E6F6206945DD00E233EA /* OnlineValidationResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67B4E6F5206945DC00E233EA /* OnlineValidationResult.swift */; };
|
||||
67B4E6F7206945DD00E233EA /* OnlineValidationResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67B4E6F5206945DC00E233EA /* OnlineValidationResult.swift */; };
|
||||
67B4E6F9206945F900E233EA /* OnlineValidationState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67B4E6F8206945F900E233EA /* OnlineValidationState.swift */; };
|
||||
67B4E6FA206945F900E233EA /* OnlineValidationState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67B4E6F8206945F900E233EA /* OnlineValidationState.swift */; };
|
||||
67B4E6FB20694A4200E233EA /* BaseTextFieldViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67B4E6F1206945D200E233EA /* BaseTextFieldViewModel.swift */; };
|
||||
67C2A41620724BBA000A5682 /* SeparatorTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67C2A41520724BBA000A5682 /* SeparatorTableViewCell.swift */; };
|
||||
67C2A41820724EA0000A5682 /* LabelTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67C2A41720724EA0000A5682 /* LabelTableViewCell.swift */; };
|
||||
|
|
@ -26,13 +20,22 @@
|
|||
67CF05AA206E9880009A2AB9 /* PinLayoutCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67CF05A9206E9880009A2AB9 /* PinLayoutCell.swift */; };
|
||||
67CF05B0206E99DF009A2AB9 /* PinLayoutTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67CF05AF206E99DF009A2AB9 /* PinLayoutTableViewCell.swift */; };
|
||||
67D6041821627600002DAF5B /* LegacyConfigurableController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67D6041721627600002DAF5B /* LegacyConfigurableController.swift */; };
|
||||
786CBB2F220DD7A70017587F /* RxSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 786CBB22220DD7A70017587F /* RxSwift.framework */; };
|
||||
786CBB30220DD7A70017587F /* Alamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 786CBB23220DD7A70017587F /* Alamofire.framework */; };
|
||||
786CBB31220DD7A70017587F /* TableKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 786CBB24220DD7A70017587F /* TableKit.framework */; };
|
||||
786CBB32220DD7A70017587F /* LeadKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 786CBB25220DD7A70017587F /* LeadKit.framework */; };
|
||||
786CBB33220DD7A70017587F /* SwiftValidator.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 786CBB26220DD7A70017587F /* SwiftValidator.framework */; };
|
||||
786CBB34220DD7A70017587F /* UIScrollView_InfiniteScroll.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 786CBB27220DD7A70017587F /* UIScrollView_InfiniteScroll.framework */; };
|
||||
786CBB35220DD7A70017587F /* RxAtomic.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 786CBB28220DD7A70017587F /* RxAtomic.framework */; };
|
||||
786CBB36220DD7A70017587F /* RxAlamofire.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 786CBB29220DD7A70017587F /* RxAlamofire.framework */; };
|
||||
786CBB37220DD7A70017587F /* SwiftDate.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 786CBB2A220DD7A70017587F /* SwiftDate.framework */; };
|
||||
786CBB38220DD7A70017587F /* RxCocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 786CBB2B220DD7A70017587F /* RxCocoa.framework */; };
|
||||
786CBB39220DD7A70017587F /* CryptoSwift.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 786CBB2C220DD7A70017587F /* CryptoSwift.framework */; };
|
||||
786CBB3A220DD7A70017587F /* KeychainAccess.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 786CBB2D220DD7A70017587F /* KeychainAccess.framework */; };
|
||||
786CBB3B220DD7A70017587F /* PinLayout.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 786CBB2E220DD7A70017587F /* PinLayout.framework */; };
|
||||
A6CFB8D91F5024A500A42CC2 /* Error+NetworkingExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = A6CFB8D81F5024A500A42CC2 /* Error+NetworkingExtensions.swift */; };
|
||||
B326804BA6CC8B8BB136A46A /* Pods_LeadKitAdditions_LeadKitAdditions_iOS_Extensions.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CFD5627139CAB27705F75C07 /* Pods_LeadKitAdditions_LeadKitAdditions_iOS_Extensions.framework */; };
|
||||
CAE698E81E968820000394B0 /* LeadKitAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = CAE698E61E968820000394B0 /* LeadKitAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
ED0C34051F2906EC00FAE9FD /* BaseDateFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33D41F2906EC00FAE9FD /* BaseDateFormatter.swift */; };
|
||||
ED0C34061F2906EC00FAE9FD /* BaseDateFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33D41F2906EC00FAE9FD /* BaseDateFormatter.swift */; };
|
||||
ED0C34071F2906EC00FAE9FD /* LoadingBarButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33D51F2906EC00FAE9FD /* LoadingBarButton.swift */; };
|
||||
ED0C34081F2906EC00FAE9FD /* LoadingBarButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33D51F2906EC00FAE9FD /* LoadingBarButton.swift */; };
|
||||
ED0C34091F2906EC00FAE9FD /* PassCodeConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33D91F2906EC00FAE9FD /* PassCodeConfiguration.swift */; };
|
||||
ED0C340B1F2906EC00FAE9FD /* PassCodeError.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33DA1F2906EC00FAE9FD /* PassCodeError.swift */; };
|
||||
ED0C340D1F2906EC00FAE9FD /* PassCodeHolder.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33DB1F2906EC00FAE9FD /* PassCodeHolder.swift */; };
|
||||
|
|
@ -41,27 +44,16 @@
|
|||
ED0C34131F2906EC00FAE9FD /* BasePassCodeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33DF1F2906EC00FAE9FD /* BasePassCodeViewController.swift */; };
|
||||
ED0C34151F2906EC00FAE9FD /* BasePassCodeViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33E11F2906EC00FAE9FD /* BasePassCodeViewModel.swift */; };
|
||||
ED0C341F1F2906EC00FAE9FD /* UIBarButtonItem+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33E81F2906EC00FAE9FD /* UIBarButtonItem+Extensions.swift */; };
|
||||
ED0C34201F2906EC00FAE9FD /* UIBarButtonItem+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33E81F2906EC00FAE9FD /* UIBarButtonItem+Extensions.swift */; };
|
||||
ED0C34211F2906EC00FAE9FD /* UserDefaults+UserService.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33E91F2906EC00FAE9FD /* UserDefaults+UserService.swift */; };
|
||||
ED0C34221F2906EC00FAE9FD /* UserDefaults+UserService.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33E91F2906EC00FAE9FD /* UserDefaults+UserService.swift */; };
|
||||
ED0C342D1F2906EC00FAE9FD /* BasePassCodeService.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33F11F2906EC00FAE9FD /* BasePassCodeService.swift */; };
|
||||
ED0C342E1F2906EC00FAE9FD /* BasePassCodeService.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33F11F2906EC00FAE9FD /* BasePassCodeService.swift */; };
|
||||
ED0C342F1F2906EC00FAE9FD /* BaseUserService.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33F21F2906EC00FAE9FD /* BaseUserService.swift */; };
|
||||
ED0C34301F2906EC00FAE9FD /* BaseUserService.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33F21F2906EC00FAE9FD /* BaseUserService.swift */; };
|
||||
ED0C343F1F2906EC00FAE9FD /* ValidationError.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33FC1F2906EC00FAE9FD /* ValidationError.swift */; };
|
||||
ED0C34401F2906EC00FAE9FD /* ValidationError.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33FC1F2906EC00FAE9FD /* ValidationError.swift */; };
|
||||
ED0C34411F2906EC00FAE9FD /* ValidationItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33FD1F2906EC00FAE9FD /* ValidationItem.swift */; };
|
||||
ED0C34421F2906EC00FAE9FD /* ValidationItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33FD1F2906EC00FAE9FD /* ValidationItem.swift */; };
|
||||
ED0C34431F2906EC00FAE9FD /* ValidationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33FE1F2906EC00FAE9FD /* ValidationService.swift */; };
|
||||
ED0C34441F2906EC00FAE9FD /* ValidationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED0C33FE1F2906EC00FAE9FD /* ValidationService.swift */; };
|
||||
EF5A43B1206E7A67003CED07 /* PassCodeDelayedDescription.swift in Sources */ = {isa = PBXBuildFile; fileRef = EF5A43B0206E7A67003CED07 /* PassCodeDelayedDescription.swift */; };
|
||||
EFBD55921EBB9A980062AA63 /* LeadKitAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = CAE698E61E968820000394B0 /* LeadKitAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
01605ECA03749D49C27FA3DD /* Pods-LeadKitAdditions-LeadKitAdditions iOS Extensions.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LeadKitAdditions-LeadKitAdditions iOS Extensions.release.xcconfig"; path = "Pods/Target Support Files/Pods-LeadKitAdditions-LeadKitAdditions iOS Extensions/Pods-LeadKitAdditions-LeadKitAdditions iOS Extensions.release.xcconfig"; sourceTree = "<group>"; };
|
||||
0ED4A1B793EAA73C9E95969F /* Pods_LeadKitAdditions_LeadKitAdditions_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LeadKitAdditions_LeadKitAdditions_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
49738551AC648B0AFA74E57F /* Pods-LeadKitAdditions-LeadKitAdditions iOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LeadKitAdditions-LeadKitAdditions iOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-LeadKitAdditions-LeadKitAdditions iOS/Pods-LeadKitAdditions-LeadKitAdditions iOS.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
67528BCE206E3CC6009F2525 /* iOS.playground */ = {isa = PBXFileReference; lastKnownFileType = file.playground; path = iOS.playground; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.swift; };
|
||||
6760AF19207268EC00C2BB7E /* PinLayoutCell+DefaultImplementation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "PinLayoutCell+DefaultImplementation.swift"; sourceTree = "<group>"; };
|
||||
67779CBB206986390098F024 /* BaseTextFieldViewEvents+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "BaseTextFieldViewEvents+Extensions.swift"; sourceTree = "<group>"; };
|
||||
|
|
@ -76,14 +68,22 @@
|
|||
67CF05A9206E9880009A2AB9 /* PinLayoutCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PinLayoutCell.swift; sourceTree = "<group>"; };
|
||||
67CF05AF206E99DF009A2AB9 /* PinLayoutTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PinLayoutTableViewCell.swift; sourceTree = "<group>"; };
|
||||
67D6041721627600002DAF5B /* LegacyConfigurableController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LegacyConfigurableController.swift; sourceTree = "<group>"; };
|
||||
7B7F57C5E5275C4D8DC71992 /* Pods_LeadKitAdditions.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LeadKitAdditions.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
9D549FA5A7579702358E07DF /* Pods-LeadKitAdditions-LeadKitAdditions iOS Extensions.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LeadKitAdditions-LeadKitAdditions iOS Extensions.debug.xcconfig"; path = "Pods/Target Support Files/Pods-LeadKitAdditions-LeadKitAdditions iOS Extensions/Pods-LeadKitAdditions-LeadKitAdditions iOS Extensions.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
786CBB22220DD7A70017587F /* RxSwift.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxSwift.framework; path = Carthage/Build/iOS/RxSwift.framework; sourceTree = "<group>"; };
|
||||
786CBB23220DD7A70017587F /* Alamofire.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Alamofire.framework; path = Carthage/Build/iOS/Alamofire.framework; sourceTree = "<group>"; };
|
||||
786CBB24220DD7A70017587F /* TableKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = TableKit.framework; path = Carthage/Build/iOS/TableKit.framework; sourceTree = "<group>"; };
|
||||
786CBB25220DD7A70017587F /* LeadKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = LeadKit.framework; path = Carthage/Build/iOS/LeadKit.framework; sourceTree = "<group>"; };
|
||||
786CBB26220DD7A70017587F /* SwiftValidator.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftValidator.framework; path = Carthage/Build/iOS/SwiftValidator.framework; sourceTree = "<group>"; };
|
||||
786CBB27220DD7A70017587F /* UIScrollView_InfiniteScroll.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIScrollView_InfiniteScroll.framework; path = Carthage/Build/iOS/UIScrollView_InfiniteScroll.framework; sourceTree = "<group>"; };
|
||||
786CBB28220DD7A70017587F /* RxAtomic.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxAtomic.framework; path = Carthage/Build/iOS/RxAtomic.framework; sourceTree = "<group>"; };
|
||||
786CBB29220DD7A70017587F /* RxAlamofire.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxAlamofire.framework; path = Carthage/Build/iOS/RxAlamofire.framework; sourceTree = "<group>"; };
|
||||
786CBB2A220DD7A70017587F /* SwiftDate.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SwiftDate.framework; path = Carthage/Build/iOS/SwiftDate.framework; sourceTree = "<group>"; };
|
||||
786CBB2B220DD7A70017587F /* RxCocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = RxCocoa.framework; path = Carthage/Build/iOS/RxCocoa.framework; sourceTree = "<group>"; };
|
||||
786CBB2C220DD7A70017587F /* CryptoSwift.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CryptoSwift.framework; path = Carthage/Build/iOS/CryptoSwift.framework; sourceTree = "<group>"; };
|
||||
786CBB2D220DD7A70017587F /* KeychainAccess.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = KeychainAccess.framework; path = Carthage/Build/iOS/KeychainAccess.framework; sourceTree = "<group>"; };
|
||||
786CBB2E220DD7A70017587F /* PinLayout.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = PinLayout.framework; path = Carthage/Build/iOS/PinLayout.framework; sourceTree = "<group>"; };
|
||||
A6CFB8D81F5024A500A42CC2 /* Error+NetworkingExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Error+NetworkingExtensions.swift"; sourceTree = "<group>"; };
|
||||
CAE698E31E968820000394B0 /* LeadKitAdditions.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = LeadKitAdditions.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
CAE698E61E968820000394B0 /* LeadKitAdditions.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LeadKitAdditions.h; sourceTree = "<group>"; };
|
||||
CFD5627139CAB27705F75C07 /* Pods_LeadKitAdditions_LeadKitAdditions_iOS_Extensions.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_LeadKitAdditions_LeadKitAdditions_iOS_Extensions.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
D0AB283D10B2175EFDBF7924 /* Pods-LeadKitAdditions-LeadKitAdditions iOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-LeadKitAdditions-LeadKitAdditions iOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-LeadKitAdditions-LeadKitAdditions iOS/Pods-LeadKitAdditions-LeadKitAdditions iOS.release.xcconfig"; sourceTree = "<group>"; };
|
||||
ED0C33D41F2906EC00FAE9FD /* BaseDateFormatter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseDateFormatter.swift; sourceTree = "<group>"; };
|
||||
ED0C33D51F2906EC00FAE9FD /* LoadingBarButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoadingBarButton.swift; sourceTree = "<group>"; };
|
||||
ED0C33D91F2906EC00FAE9FD /* PassCodeConfiguration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PassCodeConfiguration.swift; sourceTree = "<group>"; };
|
||||
ED0C33DA1F2906EC00FAE9FD /* PassCodeError.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PassCodeError.swift; sourceTree = "<group>"; };
|
||||
|
|
@ -100,7 +100,6 @@
|
|||
ED0C33FD1F2906EC00FAE9FD /* ValidationItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ValidationItem.swift; sourceTree = "<group>"; };
|
||||
ED0C33FE1F2906EC00FAE9FD /* ValidationService.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ValidationService.swift; sourceTree = "<group>"; };
|
||||
EF5A43B0206E7A67003CED07 /* PassCodeDelayedDescription.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PassCodeDelayedDescription.swift; sourceTree = "<group>"; };
|
||||
EFBD55701EBB87100062AA63 /* LeadKitAdditions.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = LeadKitAdditions.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
EFBD55781EBB893F0062AA63 /* Info-iOS-Extensions.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Info-iOS-Extensions.plist"; sourceTree = "<group>"; };
|
||||
EFBD55791EBB893F0062AA63 /* Info-iOS.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "Info-iOS.plist"; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
|
@ -110,15 +109,19 @@
|
|||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
248389A288C0A6D7914F0546 /* Pods_LeadKitAdditions_LeadKitAdditions_iOS.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
EFBD556C1EBB87100062AA63 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
B326804BA6CC8B8BB136A46A /* Pods_LeadKitAdditions_LeadKitAdditions_iOS_Extensions.framework in Frameworks */,
|
||||
786CBB2F220DD7A70017587F /* RxSwift.framework in Frameworks */,
|
||||
786CBB30220DD7A70017587F /* Alamofire.framework in Frameworks */,
|
||||
786CBB31220DD7A70017587F /* TableKit.framework in Frameworks */,
|
||||
786CBB32220DD7A70017587F /* LeadKit.framework in Frameworks */,
|
||||
786CBB33220DD7A70017587F /* SwiftValidator.framework in Frameworks */,
|
||||
786CBB34220DD7A70017587F /* UIScrollView_InfiniteScroll.framework in Frameworks */,
|
||||
786CBB35220DD7A70017587F /* RxAtomic.framework in Frameworks */,
|
||||
786CBB36220DD7A70017587F /* RxAlamofire.framework in Frameworks */,
|
||||
786CBB37220DD7A70017587F /* SwiftDate.framework in Frameworks */,
|
||||
786CBB38220DD7A70017587F /* RxCocoa.framework in Frameworks */,
|
||||
786CBB39220DD7A70017587F /* CryptoSwift.framework in Frameworks */,
|
||||
786CBB3A220DD7A70017587F /* KeychainAccess.framework in Frameworks */,
|
||||
786CBB3B220DD7A70017587F /* PinLayout.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
@ -180,9 +183,19 @@
|
|||
A3117951840B8B7D2E7A8A80 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
7B7F57C5E5275C4D8DC71992 /* Pods_LeadKitAdditions.framework */,
|
||||
0ED4A1B793EAA73C9E95969F /* Pods_LeadKitAdditions_LeadKitAdditions_iOS.framework */,
|
||||
CFD5627139CAB27705F75C07 /* Pods_LeadKitAdditions_LeadKitAdditions_iOS_Extensions.framework */,
|
||||
786CBB23220DD7A70017587F /* Alamofire.framework */,
|
||||
786CBB2C220DD7A70017587F /* CryptoSwift.framework */,
|
||||
786CBB2D220DD7A70017587F /* KeychainAccess.framework */,
|
||||
786CBB25220DD7A70017587F /* LeadKit.framework */,
|
||||
786CBB2E220DD7A70017587F /* PinLayout.framework */,
|
||||
786CBB29220DD7A70017587F /* RxAlamofire.framework */,
|
||||
786CBB28220DD7A70017587F /* RxAtomic.framework */,
|
||||
786CBB2B220DD7A70017587F /* RxCocoa.framework */,
|
||||
786CBB22220DD7A70017587F /* RxSwift.framework */,
|
||||
786CBB2A220DD7A70017587F /* SwiftDate.framework */,
|
||||
786CBB26220DD7A70017587F /* SwiftValidator.framework */,
|
||||
786CBB24220DD7A70017587F /* TableKit.framework */,
|
||||
786CBB27220DD7A70017587F /* UIScrollView_InfiniteScroll.framework */,
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
|
|
@ -191,7 +204,6 @@
|
|||
isa = PBXGroup;
|
||||
children = (
|
||||
A3117951840B8B7D2E7A8A80 /* Frameworks */,
|
||||
F8A65FEC7C0EB4B93746E50F /* Pods */,
|
||||
CAE698E41E968820000394B0 /* Products */,
|
||||
CAE698E51E968820000394B0 /* Sources */,
|
||||
67528BCE206E3CC6009F2525 /* iOS.playground */,
|
||||
|
|
@ -202,7 +214,6 @@
|
|||
isa = PBXGroup;
|
||||
children = (
|
||||
CAE698E31E968820000394B0 /* LeadKitAdditions.framework */,
|
||||
EFBD55701EBB87100062AA63 /* LeadKitAdditions.framework */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
|
|
@ -227,7 +238,6 @@
|
|||
children = (
|
||||
67528BCB206E3C12009F2525 /* Cells */,
|
||||
67B4E6F0206945D200E233EA /* BaseTextFieldViewModel */,
|
||||
ED0C33D41F2906EC00FAE9FD /* BaseDateFormatter.swift */,
|
||||
ED0C33D51F2906EC00FAE9FD /* LoadingBarButton.swift */,
|
||||
);
|
||||
path = Classes;
|
||||
|
|
@ -324,17 +334,6 @@
|
|||
path = ValidationService;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F8A65FEC7C0EB4B93746E50F /* Pods */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
49738551AC648B0AFA74E57F /* Pods-LeadKitAdditions-LeadKitAdditions iOS.debug.xcconfig */,
|
||||
D0AB283D10B2175EFDBF7924 /* Pods-LeadKitAdditions-LeadKitAdditions iOS.release.xcconfig */,
|
||||
9D549FA5A7579702358E07DF /* Pods-LeadKitAdditions-LeadKitAdditions iOS Extensions.debug.xcconfig */,
|
||||
01605ECA03749D49C27FA3DD /* Pods-LeadKitAdditions-LeadKitAdditions iOS Extensions.release.xcconfig */,
|
||||
);
|
||||
name = Pods;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXHeadersBuildPhase section */
|
||||
|
|
@ -346,14 +345,6 @@
|
|||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
EFBD556D1EBB87100062AA63 /* Headers */ = {
|
||||
isa = PBXHeadersBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
EFBD55921EBB9A980062AA63 /* LeadKitAdditions.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXHeadersBuildPhase section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
|
|
@ -361,7 +352,6 @@
|
|||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = CAE698EB1E968820000394B0 /* Build configuration list for PBXNativeTarget "LeadKitAdditions iOS" */;
|
||||
buildPhases = (
|
||||
E8E82E34792B38EF225575D7 /* [CP] Check Pods Manifest.lock */,
|
||||
CAE698DE1E968820000394B0 /* Sources */,
|
||||
CAE698DF1E968820000394B0 /* Frameworks */,
|
||||
CAE698E01E968820000394B0 /* Headers */,
|
||||
|
|
@ -377,26 +367,6 @@
|
|||
productReference = CAE698E31E968820000394B0 /* LeadKitAdditions.framework */;
|
||||
productType = "com.apple.product-type.framework";
|
||||
};
|
||||
EFBD556F1EBB87100062AA63 /* LeadKitAdditions iOS Extensions */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = EFBD55751EBB87100062AA63 /* Build configuration list for PBXNativeTarget "LeadKitAdditions iOS Extensions" */;
|
||||
buildPhases = (
|
||||
1C200FD9213D2207669C4304 /* [CP] Check Pods Manifest.lock */,
|
||||
EFBD556B1EBB87100062AA63 /* Sources */,
|
||||
EFBD556C1EBB87100062AA63 /* Frameworks */,
|
||||
EFBD556D1EBB87100062AA63 /* Headers */,
|
||||
EFBD556E1EBB87100062AA63 /* Resources */,
|
||||
ED69E7E91F2AD0E000C74895 /* Swiftlint */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = "LeadKitAdditions iOS Extensions";
|
||||
productName = "LeadKitAdditions-iOS-Extensions";
|
||||
productReference = EFBD55701EBB87100062AA63 /* LeadKitAdditions.framework */;
|
||||
productType = "com.apple.product-type.framework";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
|
|
@ -411,10 +381,6 @@
|
|||
LastSwiftMigration = 1000;
|
||||
ProvisioningStyle = Manual;
|
||||
};
|
||||
EFBD556F1EBB87100062AA63 = {
|
||||
CreatedOnToolsVersion = 8.3.1;
|
||||
ProvisioningStyle = Manual;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = CAE698DD1E968820000394B0 /* Build configuration list for PBXProject "LeadKitAdditions" */;
|
||||
|
|
@ -430,7 +396,6 @@
|
|||
projectRoot = "";
|
||||
targets = (
|
||||
CAE698E21E968820000394B0 /* LeadKitAdditions iOS */,
|
||||
EFBD556F1EBB87100062AA63 /* LeadKitAdditions iOS Extensions */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
|
@ -443,34 +408,9 @@
|
|||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
EFBD556E1EBB87100062AA63 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXShellScriptBuildPhase section */
|
||||
1C200FD9213D2207669C4304 /* [CP] Check Pods Manifest.lock */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
|
||||
"${PODS_ROOT}/Manifest.lock",
|
||||
);
|
||||
name = "[CP] Check Pods Manifest.lock";
|
||||
outputPaths = (
|
||||
"$(DERIVED_FILE_DIR)/Pods-LeadKitAdditions-LeadKitAdditions iOS Extensions-checkManifestLockResult.txt",
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
CAE6990A1E969A7A000394B0 /* Swiftlint */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
|
|
@ -483,39 +423,7 @@
|
|||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = ". build-scripts/xcode/build_phases/swiftlint.sh Sources";
|
||||
};
|
||||
E8E82E34792B38EF225575D7 /* [CP] Check Pods Manifest.lock */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
|
||||
"${PODS_ROOT}/Manifest.lock",
|
||||
);
|
||||
name = "[CP] Check Pods Manifest.lock";
|
||||
outputPaths = (
|
||||
"$(DERIVED_FILE_DIR)/Pods-LeadKitAdditions-LeadKitAdditions iOS-checkManifestLockResult.txt",
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
|
||||
showEnvVarsInLog = 0;
|
||||
};
|
||||
ED69E7E91F2AD0E000C74895 /* Swiftlint */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
);
|
||||
name = Swiftlint;
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = ". build-scripts/xcode/build_phases/swiftlint.sh Sources";
|
||||
shellScript = "CONFIG_PATH=${PROJECT_DIR}/build-scripts/xcode/.swiftlint.yml\n\nif which swiftlint >/dev/null; then\nswiftlint autocorrect --path Sources --config ${CONFIG_PATH} && swiftlint --path Sources --config ${CONFIG_PATH}\nelse\necho \"warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint\"\nfi\n";
|
||||
};
|
||||
/* End PBXShellScriptBuildPhase section */
|
||||
|
||||
|
|
@ -549,7 +457,6 @@
|
|||
6760AF1A207268EC00C2BB7E /* PinLayoutCell+DefaultImplementation.swift in Sources */,
|
||||
ED0C34211F2906EC00FAE9FD /* UserDefaults+UserService.swift in Sources */,
|
||||
ED0C34111F2906EC00FAE9FD /* PassCodeValidationResult.swift in Sources */,
|
||||
ED0C34051F2906EC00FAE9FD /* BaseDateFormatter.swift in Sources */,
|
||||
ED0C34431F2906EC00FAE9FD /* ValidationService.swift in Sources */,
|
||||
ED0C340B1F2906EC00FAE9FD /* PassCodeError.swift in Sources */,
|
||||
67B4E6F6206945DD00E233EA /* OnlineValidationResult.swift in Sources */,
|
||||
|
|
@ -558,27 +465,6 @@
|
|||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
EFBD556B1EBB87100062AA63 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
67779CBD206986390098F024 /* BaseTextFieldViewEvents+Extensions.swift in Sources */,
|
||||
ED0C34401F2906EC00FAE9FD /* ValidationError.swift in Sources */,
|
||||
ED0C34301F2906EC00FAE9FD /* BaseUserService.swift in Sources */,
|
||||
ED0C34421F2906EC00FAE9FD /* ValidationItem.swift in Sources */,
|
||||
ED0C34201F2906EC00FAE9FD /* UIBarButtonItem+Extensions.swift in Sources */,
|
||||
67B4E6FA206945F900E233EA /* OnlineValidationState.swift in Sources */,
|
||||
67B4E6EB206941CE00E233EA /* BiometricsService.swift in Sources */,
|
||||
ED0C342E1F2906EC00FAE9FD /* BasePassCodeService.swift in Sources */,
|
||||
67B4E6F7206945DD00E233EA /* OnlineValidationResult.swift in Sources */,
|
||||
67B4E6F3206945D200E233EA /* BaseTextFieldViewModel.swift in Sources */,
|
||||
ED0C34081F2906EC00FAE9FD /* LoadingBarButton.swift in Sources */,
|
||||
ED0C34221F2906EC00FAE9FD /* UserDefaults+UserService.swift in Sources */,
|
||||
ED0C34061F2906EC00FAE9FD /* BaseDateFormatter.swift in Sources */,
|
||||
ED0C34441F2906EC00FAE9FD /* ValidationService.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
|
|
@ -701,9 +587,8 @@
|
|||
};
|
||||
CAE698EC1E968820000394B0 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 49738551AC648B0AFA74E57F /* Pods-LeadKitAdditions-LeadKitAdditions iOS.debug.xcconfig */;
|
||||
buildSettings = {
|
||||
APPLICATION_EXTENSION_API_ONLY = NO;
|
||||
APPLICATION_EXTENSION_API_ONLY = YES;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_IDENTITY = "";
|
||||
DEFINES_MODULE = YES;
|
||||
|
|
@ -711,6 +596,10 @@
|
|||
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||
DYLIB_CURRENT_VERSION = 1;
|
||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/Carthage/Build/iOS",
|
||||
);
|
||||
INFOPLIST_FILE = "$(SRCROOT)/Sources/Info-iOS.plist";
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
|
|
@ -726,9 +615,8 @@
|
|||
};
|
||||
CAE698ED1E968820000394B0 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = D0AB283D10B2175EFDBF7924 /* Pods-LeadKitAdditions-LeadKitAdditions iOS.release.xcconfig */;
|
||||
buildSettings = {
|
||||
APPLICATION_EXTENSION_API_ONLY = NO;
|
||||
APPLICATION_EXTENSION_API_ONLY = YES;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_IDENTITY = "";
|
||||
DEFINES_MODULE = YES;
|
||||
|
|
@ -736,6 +624,10 @@
|
|||
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||
DYLIB_CURRENT_VERSION = 1;
|
||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/Carthage/Build/iOS",
|
||||
);
|
||||
INFOPLIST_FILE = "$(SRCROOT)/Sources/Info-iOS.plist";
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
|
|
@ -748,54 +640,6 @@
|
|||
};
|
||||
name = Release;
|
||||
};
|
||||
EFBD55761EBB87100062AA63 /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 9D549FA5A7579702358E07DF /* Pods-LeadKitAdditions-LeadKitAdditions iOS Extensions.debug.xcconfig */;
|
||||
buildSettings = {
|
||||
APPLICATION_EXTENSION_API_ONLY = YES;
|
||||
CODE_SIGN_IDENTITY = "";
|
||||
DEFINES_MODULE = YES;
|
||||
DEVELOPMENT_TEAM = "";
|
||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||
DYLIB_CURRENT_VERSION = 1;
|
||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||
INFOPLIST_FILE = "$(SRCROOT)/Sources/Info-iOS-Extensions.plist";
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "touchinstinct.LeadKitAdditions-iOS-Extensions";
|
||||
PRODUCT_NAME = LeadKitAdditions;
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
|
||||
SWIFT_VERSION = 4.2;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
EFBD55771EBB87100062AA63 /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 01605ECA03749D49C27FA3DD /* Pods-LeadKitAdditions-LeadKitAdditions iOS Extensions.release.xcconfig */;
|
||||
buildSettings = {
|
||||
APPLICATION_EXTENSION_API_ONLY = YES;
|
||||
CODE_SIGN_IDENTITY = "";
|
||||
DEFINES_MODULE = YES;
|
||||
DEVELOPMENT_TEAM = "";
|
||||
DYLIB_COMPATIBILITY_VERSION = 1;
|
||||
DYLIB_CURRENT_VERSION = 1;
|
||||
DYLIB_INSTALL_NAME_BASE = "@rpath";
|
||||
INFOPLIST_FILE = "$(SRCROOT)/Sources/Info-iOS-Extensions.plist";
|
||||
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "touchinstinct.LeadKitAdditions-iOS-Extensions";
|
||||
PRODUCT_NAME = LeadKitAdditions;
|
||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "";
|
||||
SWIFT_VERSION = 4.2;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
|
|
@ -817,15 +661,6 @@
|
|||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
EFBD55751EBB87100062AA63 /* Build configuration list for PBXNativeTarget "LeadKitAdditions iOS Extensions" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
EFBD55761EBB87100062AA63 /* Debug */,
|
||||
EFBD55771EBB87100062AA63 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = CAE698DA1E968820000394B0 /* Project object */;
|
||||
|
|
|
|||
|
|
@ -0,0 +1,80 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1010"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CAE698E21E968820000394B0"
|
||||
BuildableName = "LeadKitAdditions.framework"
|
||||
BlueprintName = "LeadKitAdditions iOS"
|
||||
ReferencedContainer = "container:LeadKitAdditions.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<Testables>
|
||||
</Testables>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CAE698E21E968820000394B0"
|
||||
BuildableName = "LeadKitAdditions.framework"
|
||||
BlueprintName = "LeadKitAdditions iOS"
|
||||
ReferencedContainer = "container:LeadKitAdditions.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "CAE698E21E968820000394B0"
|
||||
BuildableName = "LeadKitAdditions.framework"
|
||||
BlueprintName = "LeadKitAdditions iOS"
|
||||
ReferencedContainer = "container:LeadKitAdditions.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
||||
6
Podfile
6
Podfile
|
|
@ -16,12 +16,6 @@ abstract_target 'LeadKitAdditions' do
|
|||
|
||||
pod 'LeadKit', '~> 0.9.0'
|
||||
end
|
||||
|
||||
target 'LeadKitAdditions iOS Extensions' do
|
||||
platform :ios, '9.0'
|
||||
|
||||
pod "LeadKit/Core-iOS-Extension", '~> 0.9.0'
|
||||
end
|
||||
end
|
||||
|
||||
# If you have slow HDD
|
||||
|
|
|
|||
|
|
@ -1,107 +0,0 @@
|
|||
//
|
||||
// Copyright (c) 2018 Touch Instinct
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
// of this software and associated documentation files (the Software), to deal
|
||||
// in the Software without restriction, including without limitation the rights
|
||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
// copies of the Software, and to permit persons to whom the Software is
|
||||
// furnished to do so, subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and this permission notice shall be included in
|
||||
// all copies or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED AS IS, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
// THE SOFTWARE.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
/// Base date formatter class, contains most frequently used formats, including RFC3339
|
||||
open class BaseDateFormatter {
|
||||
|
||||
private static let apiDateTimeFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
|
||||
private static let apiDateWithoutTimeFormat = "yyyy-MM-dd'T'Z"
|
||||
private static let hourAndMinuteDateTimeFormat = "HH:mm"
|
||||
private static let dayAndMonthDateTimeFormat = "dd MMM"
|
||||
private static let dayMonthYearDateTimeFormat = "dd.MM.yyyy"
|
||||
|
||||
private static let apiFormatter: DateFormatter = {
|
||||
let dateFormatter = DateFormatter()
|
||||
dateFormatter.dateFormat = apiDateTimeFormat
|
||||
return dateFormatter
|
||||
}()
|
||||
|
||||
private static let apiDateWithoutTimeFormatter: DateFormatter = {
|
||||
let dateFormatter = DateFormatter()
|
||||
dateFormatter.dateFormat = apiDateWithoutTimeFormat
|
||||
return dateFormatter
|
||||
}()
|
||||
|
||||
private static let hourAndMinuteFormatter: DateFormatter = {
|
||||
let dateFormater = DateFormatter()
|
||||
dateFormater.dateFormat = hourAndMinuteDateTimeFormat
|
||||
return dateFormater
|
||||
}()
|
||||
|
||||
private static let dayAndMonthFormatter: DateFormatter = {
|
||||
let dateFormater = DateFormatter()
|
||||
dateFormater.dateFormat = dayAndMonthDateTimeFormat
|
||||
return dateFormater
|
||||
}()
|
||||
|
||||
private static let dayMonthYearFormatter: DateFormatter = {
|
||||
let dateFormater = DateFormatter()
|
||||
dateFormater.dateFormat = dayMonthYearDateTimeFormat
|
||||
return dateFormater
|
||||
}()
|
||||
|
||||
// MARK: - Public interface
|
||||
|
||||
/// DateFormatter's locale can be overriden
|
||||
open class var usedLocale: Locale {
|
||||
return .current
|
||||
}
|
||||
|
||||
/// Parse date from string with format: yyyy-MM-dd'T'HH:mm:ssZ
|
||||
public static func backendDate(fromStrDate strDate: String) -> Date? {
|
||||
apiFormatter.locale = usedLocale
|
||||
return apiFormatter.date(from: strDate)
|
||||
}
|
||||
|
||||
/// Serialize date into string with format: yyyy-MM-dd'T'HH:mm:ssZ
|
||||
public static func backendStrDate(withDate date: Date) -> String {
|
||||
apiFormatter.locale = usedLocale
|
||||
return apiFormatter.string(from: date)
|
||||
}
|
||||
|
||||
/// Serialize date into string with format: yyyy-MM-dd'T'Z
|
||||
public static func backendDateWithoutTime(withDate date: Date) -> String {
|
||||
apiDateWithoutTimeFormatter.locale = usedLocale
|
||||
return apiDateWithoutTimeFormatter.string(from: date)
|
||||
}
|
||||
|
||||
/// Serialize date into string with format: HH:mm
|
||||
public static func hourAndMinuteStrDate(withDate date: Date) -> String {
|
||||
hourAndMinuteFormatter.locale = usedLocale
|
||||
return hourAndMinuteFormatter.string(from: date)
|
||||
}
|
||||
|
||||
/// Serialize date into string with format: dd MMM
|
||||
public static func dayAndMonthStrDate(withDate date: Date) -> String {
|
||||
hourAndMinuteFormatter.locale = usedLocale
|
||||
return dayAndMonthFormatter.string(from: date)
|
||||
}
|
||||
|
||||
/// Serialize date into string with format: dd.MM.yyyy
|
||||
public static func dayMonthYearStrDate(withDate date: Date) -> String {
|
||||
hourAndMinuteFormatter.locale = usedLocale
|
||||
return dayMonthYearFormatter.string(from: date)
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -36,7 +36,6 @@ open class BaseTextFieldViewEvents: TextFieldViewEvents {
|
|||
public init(textChangedDriver: Driver<String?>) {
|
||||
self.textChangedDriver = textChangedDriver
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// Base implementation of text field view model events.
|
||||
|
|
@ -60,7 +59,6 @@ open class BaseTextFieldViewModelEvents: TextFieldViewModelEvents {
|
|||
self.changeValidationStateDriver = changeValidationStateDriver
|
||||
self.changeOnlineValidationStateDriver = changeOnlineValidationStateDriver
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public extension BaseTextFieldViewModelEvents {
|
||||
|
|
@ -164,5 +162,4 @@ public extension BaseTextFieldViewModelEvents {
|
|||
changeValidationStateDriver: offlineValidationDriver,
|
||||
changeOnlineValidationStateDriver: onlineValidationDriver)
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -52,5 +52,4 @@ open class LabelCellViewModel {
|
|||
self.labelInsets = labelInsets
|
||||
self.separatorType = separatorType
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -38,8 +38,7 @@ open class LabelTableViewCell: SeparatorTableViewCell {
|
|||
override open func addViews() {
|
||||
super.addViews()
|
||||
|
||||
contentContainerView.addSubview(backgroundImageView)
|
||||
contentContainerView.addSubview(label)
|
||||
contentContainerView.addSubviews(backgroundImageView, label)
|
||||
|
||||
contentView.addSubview(contentContainerView)
|
||||
}
|
||||
|
|
@ -137,5 +136,4 @@ open class LabelTableViewCell: SeparatorTableViewCell {
|
|||
public func configureLabelText(with viewText: ViewText) {
|
||||
label.configure(with: viewText)
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -90,7 +90,6 @@ open class PinLayoutTableViewCell: UITableViewCell, PinLayoutCell {
|
|||
open var contentHeight: CGFloat {
|
||||
return contentView.subviewsMaxY
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private extension UIView {
|
||||
|
|
@ -100,5 +99,4 @@ private extension UIView {
|
|||
.map { $0.frame.maxY }
|
||||
.max() ?? frame.maxY
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -60,8 +60,7 @@ open class SeparatorTableViewCell: PinLayoutTableViewCell {
|
|||
override open func addViews() {
|
||||
super.addViews()
|
||||
|
||||
contentView.addSubview(topSeparator)
|
||||
contentView.addSubview(bottomSeparator)
|
||||
contentView.addSubviews(topSeparator, bottomSeparator)
|
||||
}
|
||||
|
||||
override open func layout() {
|
||||
|
|
@ -100,5 +99,4 @@ open class SeparatorTableViewCell: PinLayoutTableViewCell {
|
|||
|
||||
configureSeparator(with: .none)
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ public class LoadingBarButton {
|
|||
switch side {
|
||||
case .left:
|
||||
return navigationItem?.leftBarButtonItem
|
||||
|
||||
case .right:
|
||||
return navigationItem?.rightBarButtonItem
|
||||
}
|
||||
|
|
@ -50,6 +51,7 @@ public class LoadingBarButton {
|
|||
switch side {
|
||||
case .left:
|
||||
navigationItem?.leftBarButtonItem = newValue
|
||||
|
||||
case .right:
|
||||
navigationItem?.rightBarButtonItem = newValue
|
||||
}
|
||||
|
|
@ -71,14 +73,13 @@ public class LoadingBarButton {
|
|||
|
||||
fileprivate func setState(waiting: Bool = false) {
|
||||
if waiting {
|
||||
let activityIndicatorItem = UIBarButtonItem.activityIndicator
|
||||
let activityIndicatorItem = UIBarButtonItem.activityIndicator
|
||||
barButtonItem = activityIndicatorItem.barButton
|
||||
activityIndicatorItem.activityIndicator.startAnimating()
|
||||
} else {
|
||||
barButtonItem = initialBarButton
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public extension Observable {
|
||||
|
|
@ -100,5 +101,4 @@ public extension Observable {
|
|||
barButton.setState(waiting: false)
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,5 +32,4 @@ public struct PassCodeDelayedDescription {
|
|||
self.description = description
|
||||
self.delay = delay
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,6 +37,7 @@ public extension PassCodeError {
|
|||
switch self {
|
||||
case .tooManyAttempts:
|
||||
return true
|
||||
|
||||
default:
|
||||
return false
|
||||
}
|
||||
|
|
|
|||
|
|
@ -70,8 +70,10 @@ public class PassCodeHolderCreate: PassCodeHolderProtocol {
|
|||
switch enterStep {
|
||||
case .enter:
|
||||
firstPassCode = passCode
|
||||
|
||||
case .repeatEnter:
|
||||
secondPassCode = passCode
|
||||
|
||||
default:
|
||||
break
|
||||
}
|
||||
|
|
@ -86,10 +88,9 @@ public class PassCodeHolderCreate: PassCodeHolderProtocol {
|
|||
}
|
||||
|
||||
public func reset() {
|
||||
firstPassCode = nil
|
||||
firstPassCode = nil
|
||||
secondPassCode = nil
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// Holds information about pass code during pass code entering process
|
||||
|
|
@ -119,7 +120,6 @@ public class PassCodeHolderEnter: PassCodeHolderProtocol {
|
|||
public func reset() {
|
||||
passCode = nil
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/// Holds information about pass codes during pass code changing process
|
||||
|
|
@ -155,10 +155,13 @@ public class PassCodeHolderChange: PassCodeHolderProtocol {
|
|||
switch (oldPassCode, newFirstPassCode, newSecondPassCode) {
|
||||
case (let oldPassCode?, nil, nil):
|
||||
return oldPassCode
|
||||
|
||||
case (_, _?, nil):
|
||||
return nil
|
||||
case (_, let newFirstPassCode?, let newSecondPassCode?) where newFirstPassCode == newSecondPassCode:
|
||||
|
||||
case let (_, newFirstPassCode?, newSecondPassCode?) where newFirstPassCode == newSecondPassCode:
|
||||
return newFirstPassCode
|
||||
|
||||
default:
|
||||
return nil
|
||||
}
|
||||
|
|
@ -190,5 +193,4 @@ public class PassCodeHolderChange: PassCodeHolderProtocol {
|
|||
newSecondPassCode = nil
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -41,7 +41,6 @@ public protocol PassCodeHolderProtocol {
|
|||
|
||||
/// Returns passCode or error if pass code is invalid
|
||||
func validate() -> PassCodeValidationResult
|
||||
|
||||
}
|
||||
|
||||
public class PassCodeHolderBuilder {
|
||||
|
|
@ -58,11 +57,12 @@ public class PassCodeHolderBuilder {
|
|||
switch type {
|
||||
case .create:
|
||||
return PassCodeHolderCreate()
|
||||
|
||||
case .enter:
|
||||
return PassCodeHolderEnter()
|
||||
|
||||
case .change:
|
||||
return PassCodeHolderChange()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,7 +25,6 @@ public enum PassCodeValidationResult {
|
|||
|
||||
case valid(String)
|
||||
case invalid(PassCodeError?)
|
||||
|
||||
}
|
||||
|
||||
public extension PassCodeValidationResult {
|
||||
|
|
@ -33,6 +32,7 @@ public extension PassCodeValidationResult {
|
|||
switch self {
|
||||
case .valid:
|
||||
return true
|
||||
|
||||
case .invalid:
|
||||
return false
|
||||
}
|
||||
|
|
@ -42,6 +42,7 @@ public extension PassCodeValidationResult {
|
|||
switch self {
|
||||
case let .valid(passCode):
|
||||
return passCode
|
||||
|
||||
case .invalid:
|
||||
return nil
|
||||
}
|
||||
|
|
@ -51,6 +52,7 @@ public extension PassCodeValidationResult {
|
|||
switch self {
|
||||
case let .invalid(error):
|
||||
return error
|
||||
|
||||
case .valid:
|
||||
return nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ public enum PassCodeControllerState {
|
|||
/// Base view controller that operates with pass code
|
||||
open class BasePassCodeViewController: UIViewController, LegacyConfigurableController {
|
||||
|
||||
public var viewModel: BasePassCodeViewModel!
|
||||
public var viewModel: BasePassCodeViewModel! // swiftlint:disable:this implicitly_unwrapped_optional
|
||||
|
||||
// MARK: - IBOutlets
|
||||
|
||||
|
|
@ -294,7 +294,6 @@ open class BasePassCodeViewController: UIViewController, LegacyConfigurableContr
|
|||
open func configureBarButtons() {}
|
||||
|
||||
open func localize() {}
|
||||
|
||||
}
|
||||
|
||||
// MARK: - UITextFieldDelegate
|
||||
|
|
@ -308,5 +307,4 @@ extension BasePassCodeViewController: UITextFieldDelegate {
|
|||
let invalid = CharacterSet(charactersIn: "0123456789").inverted
|
||||
return string.rangeOfCharacter(from: invalid, options: [], range: string.startIndex..<string.endIndex) == nil
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -149,7 +149,6 @@ open class BasePassCodeViewModel: BaseViewModel {
|
|||
|
||||
/// Notify after system alert with biometrics
|
||||
open func biometricsAuthEnds() {}
|
||||
|
||||
}
|
||||
|
||||
private extension BasePassCodeViewModel {
|
||||
|
|
@ -200,10 +199,13 @@ extension BasePassCodeViewModel {
|
|||
switch passCodeHolder.type {
|
||||
case .create where passCodeHolder.enterStep == .repeatEnter:
|
||||
attemptsNumber += 1
|
||||
|
||||
case .change where passCodeHolder.enterStep == .repeatEnter:
|
||||
attemptsNumber += 1
|
||||
|
||||
case .enter:
|
||||
attemptsNumber += 1
|
||||
|
||||
default:
|
||||
break
|
||||
}
|
||||
|
|
@ -231,5 +233,4 @@ extension BasePassCodeViewModel {
|
|||
|
||||
validationResultHolder.value = validationResult
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -35,5 +35,4 @@ public extension BaseTextFieldViewEvents {
|
|||
|
||||
self.init(textChangedDriver: textChangedDriver)
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,5 +27,4 @@ extension LabelTableViewCell: ConfigurableCell {
|
|||
public func configure(with viewModel: LabelCellViewModel) {
|
||||
configureLabelCell(with: viewModel)
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,5 +29,4 @@ public extension PinLayoutCell {
|
|||
configureAppearance()
|
||||
configureLayout()
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -17,5 +17,4 @@ public extension Error {
|
|||
var isResponseSerializationError: Bool {
|
||||
return (self as? AFError)?.isResponseSerializationError ?? false
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,5 +30,4 @@ public extension UIBarButtonItem {
|
|||
let indicatorBar = UIBarButtonItem(customView: indicatorView)
|
||||
return (indicatorBar, indicatorView)
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -48,5 +48,4 @@ public extension UserDefaults {
|
|||
set(newValue, forKey: Keys.userLogin)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
<key>CFBundlePackageType</key>
|
||||
<string>FMWK</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>0.0.1</string>
|
||||
<string>0.3.11</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
|
|
|
|||
|
|
@ -56,5 +56,4 @@ public protocol PinLayoutCell {
|
|||
|
||||
/// Current content height.
|
||||
var contentHeight: CGFloat { get }
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,12 +26,11 @@ public protocol LegacyConfigurableController: InitializableView {
|
|||
|
||||
associatedtype ViewModelT
|
||||
|
||||
var viewModel: ViewModelT! { get }
|
||||
var viewModel: ViewModelT! { get } // swiftlint:disable:this implicitly_unwrapped_optional
|
||||
|
||||
func configureBarButtons()
|
||||
|
||||
func initialLoadView()
|
||||
|
||||
}
|
||||
|
||||
public extension LegacyConfigurableController where Self: UIViewController {
|
||||
|
|
@ -49,5 +48,4 @@ public extension LegacyConfigurableController where Self: UIViewController {
|
|||
localize()
|
||||
bindViews()
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -30,5 +30,4 @@ public protocol OnlineValidateable {
|
|||
|
||||
/// May contain an error if validation did failed.
|
||||
var error: Error? { get }
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -57,7 +57,6 @@ open class BasePassCodeService {
|
|||
private var passCodeHash: String? {
|
||||
return keychain[Keys.passCodeHash]
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public extension BasePassCodeService {
|
||||
|
|
@ -96,5 +95,4 @@ public extension BasePassCodeService {
|
|||
save(passCode: nil)
|
||||
isBiometricsAuthorizationEnabled = false
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -59,5 +59,4 @@ open class BaseUserService {
|
|||
UserDefaults.standard.sessionId = nil
|
||||
UserDefaults.standard.userLogin = nil
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -60,8 +60,10 @@ public final class BiometricsService {
|
|||
switch laContext.biometryType {
|
||||
case .touchID:
|
||||
return .touchID
|
||||
|
||||
case .faceID:
|
||||
return .faceID
|
||||
|
||||
case .none:
|
||||
return .none
|
||||
}
|
||||
|
|
|
|||
|
|
@ -32,5 +32,4 @@ public enum OnlineValidationState {
|
|||
case processing
|
||||
case valid
|
||||
case invalid(error: Error?)
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -11,5 +11,4 @@ public struct ValidationError: Error {
|
|||
self.errorMessage = errorMessage
|
||||
self.errorHint = errorHint
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ public extension ValidationItemState {
|
|||
switch self {
|
||||
case .initial:
|
||||
return true
|
||||
|
||||
default:
|
||||
return false
|
||||
}
|
||||
|
|
@ -24,11 +25,11 @@ public extension ValidationItemState {
|
|||
switch self {
|
||||
case .valid:
|
||||
return true
|
||||
|
||||
default:
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public final class ValidationItem {
|
||||
|
|
@ -58,7 +59,8 @@ public final class ValidationItem {
|
|||
.drive(text)
|
||||
.disposed(by: disposeBag)
|
||||
|
||||
textDriver.asObservable().withLatestFrom(validationStateHolder.asObservable()) { (text: $0, validationState: $1) }
|
||||
textDriver.asObservable()
|
||||
.withLatestFrom(validationStateHolder.asObservable()) { (text: $0, validationState: $1) }
|
||||
.filter { !$0.validationState.isInitial }
|
||||
.map { $0.text }
|
||||
.subscribe(onNext: { [weak self] text in
|
||||
|
|
@ -89,6 +91,7 @@ public final class ValidationItem {
|
|||
.valid where !isManual:
|
||||
|
||||
validationStateHolder.value = .correction(validationError)
|
||||
|
||||
default:
|
||||
validationStateHolder.value = .error(validationError)
|
||||
}
|
||||
|
|
@ -96,5 +99,4 @@ public final class ValidationItem {
|
|||
validationStateHolder.value = .valid
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,7 +19,6 @@ public extension ValidationServiceState {
|
|||
var isValid: Bool {
|
||||
return self == .valid
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public final class ValidationService {
|
||||
|
|
@ -103,5 +102,4 @@ public final class ValidationService {
|
|||
.disposed(by: disposeBag)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1 +1 @@
|
|||
Subproject commit ea127636275ceea8abcf3ec9aa62ffe6d13f0b72
|
||||
Subproject commit 54935bbe26063cdf04e72b8cb76d61c727ff99a7
|
||||
Loading…
Reference in New Issue