├── Tachiyomi ├── Resources │ ├── Assets.xcassets │ │ ├── Contents.json │ │ ├── ic_more.imageset │ │ │ ├── Contents.json │ │ │ └── ic_more_24dp.svg │ │ ├── ic_history.imageset │ │ │ ├── Contents.json │ │ │ └── ic_history_24dp.svg │ │ ├── ic_browse.imageset │ │ │ ├── Contents.json │ │ │ └── ic_browse_outline_24dp.svg │ │ ├── ic_library.imageset │ │ │ ├── Contents.json │ │ │ └── ic_library_filled_24dp.svg │ │ └── ic_updates.imageset │ │ │ ├── Contents.json │ │ │ └── ic_updates_outline_24dp.svg │ ├── PTSans-Narrow-Bold.ttf │ ├── en-GB.lproj │ │ └── Localizable.strings │ └── en-US.lproj │ │ └── Localizable.strings └── Source │ ├── Utilities │ ├── Identified.swift │ ├── LocalizationUtilities.swift │ ├── UIFont+Tachiyomi.swift │ ├── FirstRunHelper.swift │ └── DatabaseSeeder.swift │ ├── Models │ ├── LibraryItem.swift │ └── Entities │ │ └── Source.swift │ ├── Interface │ ├── More │ │ └── MoreViewController.swift │ ├── History │ │ └── HistoryViewController.swift │ ├── Updates │ │ └── UpdatesViewController.swift │ ├── Base │ │ ├── BaseViewController.swift │ │ ├── BaseTabBarController.swift │ │ └── BaseNavigationController.swift │ ├── Navigation │ │ └── RootTabBarController.swift │ ├── Browse │ │ ├── BrowseTableViewCell.swift │ │ ├── BrowseSourcesViewController.swift │ │ └── BrowseExtensionsViewController.swift │ └── Library │ │ └── LibraryRootViewModel.swift │ └── Lifecycle │ ├── SceneDelegate.swift │ └── AppDelegate.swift ├── Pods ├── Target Support Files │ ├── RxCocoa │ │ ├── RxCocoa.modulemap │ │ ├── RxCocoa-dummy.m │ │ ├── RxCocoa-prefix.pch │ │ ├── RxCocoa-umbrella.h │ │ ├── RxCocoa.debug.xcconfig │ │ ├── RxCocoa.release.xcconfig │ │ └── RxCocoa-Info.plist │ ├── RxRelay │ │ ├── RxRelay.modulemap │ │ ├── RxRelay-dummy.m │ │ ├── RxRelay-prefix.pch │ │ ├── RxRelay-umbrella.h │ │ ├── RxRelay.debug.xcconfig │ │ ├── RxRelay.release.xcconfig │ │ └── RxRelay-Info.plist │ ├── RxSwift │ │ ├── RxSwift.modulemap │ │ ├── RxSwift-dummy.m │ │ ├── RxSwift-prefix.pch │ │ ├── RxSwift-umbrella.h │ │ ├── RxSwift.debug.xcconfig │ │ ├── RxSwift.release.xcconfig │ │ └── RxSwift-Info.plist │ ├── SnapKit │ │ ├── SnapKit.modulemap │ │ ├── SnapKit-dummy.m │ │ ├── SnapKit-prefix.pch │ │ ├── SnapKit-umbrella.h │ │ ├── SnapKit.debug.xcconfig │ │ ├── SnapKit.release.xcconfig │ │ └── SnapKit-Info.plist │ ├── SharkORM │ │ ├── SharkORM-dummy.m │ │ ├── SharkORM.modulemap │ │ ├── SharkORM-prefix.pch │ │ ├── SharkORM.debug.xcconfig │ │ ├── SharkORM.release.xcconfig │ │ └── SharkORM-Info.plist │ ├── RxDataSources │ │ ├── RxDataSources.modulemap │ │ ├── RxDataSources-dummy.m │ │ ├── RxDataSources-prefix.pch │ │ ├── RxDataSources-umbrella.h │ │ ├── RxDataSources.debug.xcconfig │ │ ├── RxDataSources-Info.plist │ │ └── RxDataSources.release.xcconfig │ ├── Differentiator │ │ ├── Differentiator.modulemap │ │ ├── Differentiator-dummy.m │ │ ├── Differentiator-prefix.pch │ │ ├── Differentiator-umbrella.h │ │ ├── Differentiator.debug.xcconfig │ │ ├── Differentiator.release.xcconfig │ │ └── Differentiator-Info.plist │ └── Pods-Tachiyomi │ │ ├── Pods-Tachiyomi.modulemap │ │ ├── Pods-Tachiyomi-dummy.m │ │ ├── Pods-Tachiyomi-umbrella.h │ │ └── Pods-Tachiyomi-Info.plist ├── SharkORM │ ├── SharkORM │ │ ├── SharkORM.modulemap │ │ ├── Sync │ │ │ ├── Comms │ │ │ │ ├── SyncComms.m │ │ │ │ ├── SyncComms.h │ │ │ │ ├── SyncService.h │ │ │ │ ├── SyncNetwork.h │ │ │ │ └── SRKSyncNodesList.h │ │ │ ├── SRKSyncOptions.m │ │ │ ├── SRKDefunctObject.m │ │ │ ├── SRKDeferredChange.m │ │ │ ├── SRKDefunctObject.h │ │ │ ├── SRKSyncRegisteredClass.h │ │ │ ├── SRKSyncOptions.h │ │ │ ├── SRKSyncRegisteredClass.m │ │ │ └── SRKDeferredChange.h │ │ ├── Core │ │ │ ├── SRKRelationship.h │ │ │ ├── Events │ │ │ │ ├── SRKEventRegistryObject.h │ │ │ │ ├── SRKEvent.m │ │ │ │ ├── SRKEventBlockHolder.m │ │ │ │ └── SRKEventRegistryObject.m │ │ │ ├── Transactions │ │ │ │ └── SRKContext.h │ │ │ ├── Registry │ │ │ │ └── SRKRegistryEntry.m │ │ │ ├── SRKError.m │ │ │ ├── PersistableObjects │ │ │ │ ├── SRKUnsupportedObject.h │ │ │ │ ├── SRKAES256Extension.h │ │ │ │ └── SRKEncryptedObject.h │ │ │ ├── SRKSQLiteHandle.h │ │ │ ├── SRKRelationship.m │ │ │ └── SRKSQLiteHandle.m │ │ └── Private │ │ │ └── SRKCommitOptions+Private.h │ └── LICENSE ├── RxCocoa │ ├── RxCocoa │ │ ├── Runtime │ │ │ ├── _RX.m │ │ │ └── include │ │ │ │ ├── RxCocoaRuntime.h │ │ │ │ ├── _RXDelegateProxy.h │ │ │ │ └── _RXKVOObserver.h │ │ ├── iOS │ │ │ ├── Events │ │ │ │ └── ItemEvents.swift │ │ │ ├── UIStepper+Rx.swift │ │ │ ├── UISlider+Rx.swift │ │ │ ├── UIRefreshControl+Rx.swift │ │ │ ├── UIActivityIndicatorView+Rx.swift │ │ │ ├── Proxies │ │ │ │ ├── RxTableViewDelegateProxy.swift │ │ │ │ ├── RxCollectionViewDelegateProxy.swift │ │ │ │ ├── RxSearchBarDelegateProxy.swift │ │ │ │ ├── RxPickerViewDelegateProxy.swift │ │ │ │ ├── RxTextStorageDelegateProxy.swift │ │ │ │ ├── RxTabBarControllerDelegateProxy.swift │ │ │ │ ├── RxSearchControllerDelegateProxy.swift │ │ │ │ ├── RxWKNavigationDelegateProxy.swift │ │ │ │ ├── RxNavigationControllerDelegateProxy.swift │ │ │ │ └── RxTextViewDelegateProxy.swift │ │ │ ├── Protocols │ │ │ │ ├── RxPickerViewDataSourceType.swift │ │ │ │ ├── RxTableViewDataSourceType.swift │ │ │ │ └── RxCollectionViewDataSourceType.swift │ │ │ ├── UISwitch+Rx.swift │ │ │ ├── UIDatePicker+Rx.swift │ │ │ └── NSTextStorage+Rx.swift │ │ ├── macOS │ │ │ ├── NSView+Rx.swift │ │ │ ├── NSSlider+Rx.swift │ │ │ └── NSButton+Rx.swift │ │ ├── RxCocoa.h │ │ ├── Traits │ │ │ ├── Signal │ │ │ │ ├── PublishRelay+Signal.swift │ │ │ │ └── ControlEvent+Signal.swift │ │ │ └── Driver │ │ │ │ ├── BehaviorRelay+Driver.swift │ │ │ │ ├── ControlEvent+Driver.swift │ │ │ │ └── ControlProperty+Driver.swift │ │ ├── Common │ │ │ ├── SectionedViewDataSourceType.swift │ │ │ └── RxTarget.swift │ │ └── Foundation │ │ │ ├── KVORepresentable.swift │ │ │ └── NotificationCenter+Rx.swift │ ├── Platform │ │ ├── DispatchQueue+Extensions.swift │ │ ├── DataStructures │ │ │ └── InfiniteSequence.swift │ │ ├── RecursiveLock.swift │ │ ├── Platform.Linux.swift │ │ └── Platform.Darwin.swift │ └── LICENSE.md ├── RxSwift │ ├── RxSwift │ │ ├── Disposable.swift │ │ ├── Schedulers │ │ │ ├── Internal │ │ │ │ ├── ScheduledItemType.swift │ │ │ │ ├── InvocableType.swift │ │ │ │ ├── InvocableScheduledItem.swift │ │ │ │ └── ScheduledItem.swift │ │ │ └── HistoricalScheduler.swift │ │ ├── Disposables │ │ │ ├── Disposables.swift │ │ │ ├── DisposeBase.swift │ │ │ ├── SubscriptionDisposable.swift │ │ │ ├── NopDisposable.swift │ │ │ └── BooleanDisposable.swift │ │ ├── Cancelable.swift │ │ ├── Concurrency │ │ │ ├── SynchronizedUnsubscribeType.swift │ │ │ ├── LockOwnerType.swift │ │ │ ├── SynchronizedDisposeType.swift │ │ │ ├── SynchronizedOnType.swift │ │ │ └── Lock.swift │ │ ├── SwiftSupport │ │ │ └── SwiftSupport.swift │ │ ├── ObservableConvertibleType.swift │ │ ├── Subjects │ │ │ └── SubjectType.swift │ │ ├── Observable.swift │ │ ├── Observers │ │ │ ├── AnonymousObserver.swift │ │ │ └── ObserverBase.swift │ │ ├── ConnectableObservableType.swift │ │ ├── Observables │ │ │ ├── Never.swift │ │ │ ├── Empty.swift │ │ │ ├── Error.swift │ │ │ ├── Decode.swift │ │ │ ├── First.swift │ │ │ ├── StartWith.swift │ │ │ └── AddRef.swift │ │ ├── Extensions │ │ │ └── Bag+Rx.swift │ │ ├── ObserverType.swift │ │ ├── GroupedObservable.swift │ │ └── Traits │ │ │ └── Infallible │ │ │ ├── ObservableConvertibleType+Infallible.swift │ │ │ └── Infallible+Create.swift │ ├── Platform │ │ ├── DispatchQueue+Extensions.swift │ │ ├── DataStructures │ │ │ └── InfiniteSequence.swift │ │ ├── RecursiveLock.swift │ │ ├── Platform.Linux.swift │ │ └── Platform.Darwin.swift │ └── LICENSE.md ├── Differentiator │ ├── Sources │ │ └── Differentiator │ │ │ ├── IdentifiableType.swift │ │ │ ├── SectionModelType.swift │ │ │ ├── AnimatableSectionModelType.swift │ │ │ ├── AnimatableSectionModelType+ItemPath.swift │ │ │ ├── Optional+Extensions.swift │ │ │ ├── Utilities.swift │ │ │ ├── ItemPath.swift │ │ │ ├── IdentifiableValue.swift │ │ │ └── SectionModel.swift │ └── LICENSE.md ├── RxDataSources │ ├── Sources │ │ └── RxDataSources │ │ │ ├── ViewTransition.swift │ │ │ ├── String+IdentifiableType.swift │ │ │ ├── FloatingPointType+IdentifiableType.swift │ │ │ ├── Deprecated.swift │ │ │ ├── DataSources.swift │ │ │ ├── IntegerType+IdentifiableType.swift │ │ │ ├── RxTableViewSectionedReloadDataSource.swift │ │ │ ├── AnimationConfiguration.swift │ │ │ ├── Array+Extensions.swift │ │ │ └── RxCollectionViewSectionedReloadDataSource.swift │ └── LICENSE.md ├── RxRelay │ ├── RxRelay │ │ ├── Utils.swift │ │ ├── PublishRelay.swift │ │ └── BehaviorRelay.swift │ └── LICENSE.md ├── SnapKit │ ├── LICENSE │ └── Source │ │ ├── ConstraintView.swift │ │ ├── ConstraintInsets.swift │ │ └── ConstraintDirectionalInsets.swift └── Manifest.lock ├── Tachiyomi.xcodeproj └── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ └── IDEWorkspaceChecks.plist ├── .gitignore ├── Tachiyomi.xcworkspace ├── contents.xcworkspacedata └── xcshareddata │ └── IDEWorkspaceChecks.plist ├── Podfile ├── Podfile.lock └── README.md /Tachiyomi/Resources/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "author" : "xcode", 4 | "version" : 1 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Tachiyomi/Resources/PTSans-Narrow-Bold.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SakurasoftLtd/tachiyomi-ios/HEAD/Tachiyomi/Resources/PTSans-Narrow-Bold.ttf -------------------------------------------------------------------------------- /Tachiyomi/Resources/en-GB.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | /* 2 | Localizable.strings 3 | Tachiyomi 4 | 5 | Created by Jacob King on 31/08/2021. 6 | 7 | */ 8 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxCocoa/RxCocoa.modulemap: -------------------------------------------------------------------------------- 1 | framework module RxCocoa { 2 | umbrella header "RxCocoa-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxRelay/RxRelay.modulemap: -------------------------------------------------------------------------------- 1 | framework module RxRelay { 2 | umbrella header "RxRelay-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxSwift/RxSwift.modulemap: -------------------------------------------------------------------------------- 1 | framework module RxSwift { 2 | umbrella header "RxSwift-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SnapKit/SnapKit.modulemap: -------------------------------------------------------------------------------- 1 | framework module SnapKit { 2 | umbrella header "SnapKit-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxCocoa/RxCocoa-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_RxCocoa : NSObject 3 | @end 4 | @implementation PodsDummy_RxCocoa 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxRelay/RxRelay-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_RxRelay : NSObject 3 | @end 4 | @implementation PodsDummy_RxRelay 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxSwift/RxSwift-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_RxSwift : NSObject 3 | @end 4 | @implementation PodsDummy_RxSwift 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SnapKit/SnapKit-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_SnapKit : NSObject 3 | @end 4 | @implementation PodsDummy_SnapKit 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SharkORM/SharkORM-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_SharkORM : NSObject 3 | @end 4 | @implementation PodsDummy_SharkORM 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxDataSources/RxDataSources.modulemap: -------------------------------------------------------------------------------- 1 | framework module RxDataSources { 2 | umbrella header "RxDataSources-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/SharkORM/SharkORM/SharkORM.modulemap: -------------------------------------------------------------------------------- 1 | framework module SharkORM { 2 | 3 | umbrella header "SharkORM.h" 4 | 5 | export * 6 | module * { export * } 7 | 8 | } 9 | 10 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Differentiator/Differentiator.modulemap: -------------------------------------------------------------------------------- 1 | framework module Differentiator { 2 | umbrella header "Differentiator-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-Tachiyomi/Pods-Tachiyomi.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_Tachiyomi { 2 | umbrella header "Pods-Tachiyomi-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Tachiyomi/Source/Utilities/Identified.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jacob King on 31/08/2021. 3 | // 4 | 5 | import Foundation 6 | 7 | protocol Identified { 8 | static var identifier: String { get } 9 | } -------------------------------------------------------------------------------- /Pods/Target Support Files/RxDataSources/RxDataSources-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_RxDataSources : NSObject 3 | @end 4 | @implementation PodsDummy_RxDataSources 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Differentiator/Differentiator-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Differentiator : NSObject 3 | @end 4 | @implementation PodsDummy_Differentiator 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-Tachiyomi/Pods-Tachiyomi-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_Tachiyomi : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_Tachiyomi 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SharkORM/SharkORM.modulemap: -------------------------------------------------------------------------------- 1 | framework module SharkORM { 2 | 3 | umbrella header "SharkORM.h" 4 | 5 | export * 6 | module * { export * } 7 | 8 | } 9 | 10 | -------------------------------------------------------------------------------- /Tachiyomi/Source/Models/LibraryItem.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jacob King on 31/08/2021. 3 | // 4 | 5 | import Foundation 6 | 7 | struct LibraryItem { 8 | let title: String 9 | let imageUrl: String? 10 | } -------------------------------------------------------------------------------- /Tachiyomi.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Tachiyomi/Source/Interface/More/MoreViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jacob King on 31/08/2021. 3 | // 4 | 5 | import Foundation 6 | import UIKit 7 | 8 | class MoreViewController: BaseViewController { 9 | 10 | } -------------------------------------------------------------------------------- /Tachiyomi/Source/Interface/History/HistoryViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jacob King on 31/08/2021. 3 | // 4 | 5 | import Foundation 6 | import UIKit 7 | 8 | class HistoryViewController: BaseViewController { 9 | 10 | } -------------------------------------------------------------------------------- /Tachiyomi/Source/Interface/Updates/UpdatesViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jacob King on 31/08/2021. 3 | // 4 | 5 | import Foundation 6 | import UIKit 7 | 8 | class UpdatesViewController: BaseViewController { 9 | 10 | } -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/Runtime/_RX.m: -------------------------------------------------------------------------------- 1 | // 2 | // _RX.m 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 7/12/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #import "include/_RX.h" 10 | 11 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | build/ 2 | *.pbxuser 3 | !default.pbxuser 4 | *.mode1v3 5 | !default.mode1v3 6 | *.mode2v3 7 | !default.mode2v3 8 | *.perspectivev3 9 | !default.perspectivev3 10 | xcuserdata 11 | *.xccheckout 12 | *.moved-aside 13 | DerivedData 14 | *.hmap 15 | *.ipa 16 | .idea/ 17 | .DS_Store 18 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxCocoa/RxCocoa-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxRelay/RxRelay-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxSwift/RxSwift-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SnapKit/SnapKit-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SharkORM/SharkORM-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Differentiator/Differentiator-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxDataSources/RxDataSources-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /Tachiyomi.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Tachiyomi.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Tachiyomi.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Tachiyomi/Source/Utilities/LocalizationUtilities.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LocalizationUtilities.swift 3 | // Tachiyomi 4 | // 5 | // Created by Jacob King on 31/08/2021. 6 | // 7 | 8 | import Foundation 9 | 10 | extension String { 11 | var localizedValue: String { 12 | return NSLocalizedString(self, comment: "") 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Disposable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Disposable.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 2/8/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Represents a disposable resource. 10 | public protocol Disposable { 11 | /// Dispose resource. 12 | func dispose() 13 | } 14 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Schedulers/Internal/ScheduledItemType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ScheduledItemType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 11/7/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | protocol ScheduledItemType 10 | : Cancelable 11 | , InvocableType { 12 | func invoke() 13 | } 14 | -------------------------------------------------------------------------------- /Tachiyomi/Resources/Assets.xcassets/ic_more.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "ic_more_24dp.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "preserves-vector-representation" : true 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Tachiyomi/Resources/Assets.xcassets/ic_more.imageset/ic_more_24dp.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Tachiyomi/Source/Models/Entities/Source.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jacob King on 01/09/2021. 3 | // 4 | 5 | import Foundation 6 | import SharkORM 7 | 8 | @objcMembers class Source: SRKObject { 9 | 10 | dynamic var name: String! 11 | dynamic var artworkUri: String! 12 | dynamic var rootDirectoryUri: String! 13 | dynamic var language: String! 14 | } -------------------------------------------------------------------------------- /Tachiyomi/Resources/Assets.xcassets/ic_history.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "ic_history_24dp.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "preserves-vector-representation" : true 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Tachiyomi/Resources/Assets.xcassets/ic_browse.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "ic_browse_outline_24dp.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "preserves-vector-representation" : true 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Tachiyomi/Resources/Assets.xcassets/ic_library.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "ic_library_filled_24dp.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "preserves-vector-representation" : true 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Tachiyomi/Resources/Assets.xcassets/ic_library.imageset/ic_library_filled_24dp.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Tachiyomi/Resources/Assets.xcassets/ic_updates.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "filename" : "ic_updates_outline_24dp.svg", 5 | "idiom" : "universal" 6 | } 7 | ], 8 | "info" : { 9 | "author" : "xcode", 10 | "version" : 1 11 | }, 12 | "properties" : { 13 | "preserves-vector-representation" : true 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Disposables/Disposables.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Disposables.swift 3 | // RxSwift 4 | // 5 | // Created by Mohsen Ramezanpoor on 01/08/2016. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// A collection of utility methods for common disposable operations. 10 | public struct Disposables { 11 | private init() {} 12 | } 13 | 14 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Cancelable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Cancelable.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 3/12/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Represents disposable resource with state tracking. 10 | public protocol Cancelable : Disposable { 11 | /// Was resource disposed. 12 | var isDisposed: Bool { get } 13 | } 14 | -------------------------------------------------------------------------------- /Pods/Differentiator/Sources/Differentiator/IdentifiableType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // IdentifiableType.swift 3 | // RxDataSources 4 | // 5 | // Created by Krunoslav Zaher on 1/6/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public protocol IdentifiableType { 12 | associatedtype Identity: Hashable 13 | 14 | var identity : Identity { get } 15 | } -------------------------------------------------------------------------------- /Podfile: -------------------------------------------------------------------------------- 1 | # Uncomment the next line to define a global platform for your project 2 | # platform :ios, '9.0' 3 | 4 | inhibit_all_warnings! 5 | 6 | target 'Tachiyomi' do 7 | # Comment the next line if you don't want to use dynamic frameworks 8 | use_frameworks! 9 | 10 | # Pods for Tachiyomi 11 | pod 'RxSwift' 12 | pod 'RxRelay' 13 | pod 'RxDataSources' 14 | pod 'SharkORM' 15 | pod 'SnapKit' 16 | 17 | end 18 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Concurrency/SynchronizedUnsubscribeType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SynchronizedUnsubscribeType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 10/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | protocol SynchronizedUnsubscribeType: AnyObject { 10 | associatedtype DisposeKey 11 | 12 | func synchronizedUnsubscribe(_ disposeKey: DisposeKey) 13 | } 14 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Schedulers/Internal/InvocableType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // InvocableType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 11/7/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | protocol InvocableType { 10 | func invoke() 11 | } 12 | 13 | protocol InvocableWithValueType { 14 | associatedtype Value 15 | 16 | func invoke(_ value: Value) 17 | } 18 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxRelay/RxRelay-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double RxRelayVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char RxRelayVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxSwift/RxSwift-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double RxSwiftVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char RxSwiftVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SnapKit/SnapKit-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double SnapKitVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char SnapKitVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Differentiator/Sources/Differentiator/SectionModelType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SectionModelType.swift 3 | // RxDataSources 4 | // 5 | // Created by Krunoslav Zaher on 6/28/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public protocol SectionModelType { 12 | associatedtype Item 13 | 14 | var items: [Item] { get } 15 | 16 | init(original: Self, items: [Item]) 17 | } -------------------------------------------------------------------------------- /Tachiyomi/Resources/en-US.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | /* 2 | Localizable.strings 3 | Tachiyomi 4 | 5 | Created by Jacob King on 31/08/2021. 6 | 7 | */ 8 | 9 | // Tabs 10 | "tab_library" = "Library"; 11 | "tab_updates" = "Updates"; 12 | "tab_history" = "History"; 13 | "tab_browse" = "Browse"; 14 | "tab_more" = "More"; 15 | 16 | // Browse 17 | "browse_segment_sources" = "Sources"; 18 | "browse_segment_extensions" = "Extensions"; 19 | -------------------------------------------------------------------------------- /Pods/RxDataSources/Sources/RxDataSources/ViewTransition.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewTransition.swift 3 | // RxDataSources 4 | // 5 | // Created by Krunoslav Zaher on 10/22/17. 6 | // Copyright © 2017 kzaher. All rights reserved. 7 | // 8 | 9 | /// Transition between two view states 10 | public enum ViewTransition { 11 | /// animated transition 12 | case animated 13 | /// refresh view without animations 14 | case reload 15 | } 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxDataSources/RxDataSources-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double RxDataSourcesVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char RxDataSourcesVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Tachiyomi/Resources/Assets.xcassets/ic_history.imageset/ic_history_24dp.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Differentiator/Differentiator-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double DifferentiatorVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char DifferentiatorVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-Tachiyomi/Pods-Tachiyomi-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_TachiyomiVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_TachiyomiVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Differentiator/Sources/Differentiator/AnimatableSectionModelType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AnimatableSectionModelType.swift 3 | // RxDataSources 4 | // 5 | // Created by Krunoslav Zaher on 1/6/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public protocol AnimatableSectionModelType 12 | : SectionModelType 13 | , IdentifiableType where Item: IdentifiableType, Item: Equatable { 14 | } 15 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Concurrency/LockOwnerType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LockOwnerType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 10/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | protocol LockOwnerType: AnyObject, Lock { 10 | var lock: RecursiveLock { get } 11 | } 12 | 13 | extension LockOwnerType { 14 | func lock() { self.lock.lock() } 15 | func unlock() { self.lock.unlock() } 16 | } 17 | -------------------------------------------------------------------------------- /Pods/RxDataSources/Sources/RxDataSources/String+IdentifiableType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // String+IdentifiableType.swift 3 | // RxDataSources 4 | // 5 | // Created by Krunoslav Zaher on 7/4/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | extension String : IdentifiableType { 12 | public typealias Identity = String 13 | 14 | public var identity: String { 15 | return self 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/SwiftSupport/SwiftSupport.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SwiftSupport.swift 3 | // RxSwift 4 | // 5 | // Created by Volodymyr Gorbenko on 3/6/17. 6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | typealias IntMax = Int64 12 | public typealias RxAbstractInteger = FixedWidthInteger 13 | 14 | extension SignedInteger { 15 | func toIntMax() -> IntMax { 16 | IntMax(self) 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Tachiyomi/Resources/Assets.xcassets/ic_browse.imageset/ic_browse_outline_24dp.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Tachiyomi/Source/Interface/Base/BaseViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jacob King on 31/08/2021. 3 | // 4 | 5 | import Foundation 6 | import UIKit 7 | 8 | class BaseViewController: UIViewController { 9 | override func viewDidLoad() { 10 | super.viewDidLoad() 11 | 12 | view.backgroundColor = UIColor.tachiyomiBackground 13 | } 14 | 15 | override var preferredStatusBarStyle: UIStatusBarStyle { 16 | .lightContent 17 | } 18 | } -------------------------------------------------------------------------------- /Pods/Differentiator/Sources/Differentiator/AnimatableSectionModelType+ItemPath.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AnimatableSectionModelType+ItemPath.swift 3 | // RxDataSources 4 | // 5 | // Created by Krunoslav Zaher on 1/9/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | extension Array where Element: AnimatableSectionModelType { 12 | subscript(index: ItemPath) -> Element.Item { 13 | return self[index.sectionIndex].items[index.itemIndex] 14 | } 15 | } -------------------------------------------------------------------------------- /Pods/RxRelay/RxRelay/Utils.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Utils.swift 3 | // RxRelay 4 | // 5 | // Created by Shai Mishali on 09/04/2019. 6 | // Copyright © 2019 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | func rxFatalErrorInDebug(_ lastMessage: @autoclosure () -> String, file: StaticString = #file, line: UInt = #line) { 12 | #if DEBUG 13 | fatalError(lastMessage(), file: file, line: line) 14 | #else 15 | print("\(file):\(line): \(lastMessage())") 16 | #endif 17 | } 18 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Disposables/DisposeBase.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DisposeBase.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 4/4/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Base class for all disposables. 10 | public class DisposeBase { 11 | init() { 12 | #if TRACE_RESOURCES 13 | _ = Resources.incrementTotal() 14 | #endif 15 | } 16 | 17 | deinit { 18 | #if TRACE_RESOURCES 19 | _ = Resources.decrementTotal() 20 | #endif 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Concurrency/SynchronizedDisposeType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SynchronizedDisposeType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 10/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | protocol SynchronizedDisposeType: AnyObject, Disposable, Lock { 10 | func synchronized_dispose() 11 | } 12 | 13 | extension SynchronizedDisposeType { 14 | func synchronizedDispose() { 15 | self.lock(); defer { self.unlock() } 16 | self.synchronized_dispose() 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/Events/ItemEvents.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ItemEvents.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 6/20/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | import UIKit 11 | 12 | public typealias ItemMovedEvent = (sourceIndex: IndexPath, destinationIndex: IndexPath) 13 | public typealias WillDisplayCellEvent = (cell: UITableViewCell, indexPath: IndexPath) 14 | public typealias DidEndDisplayingCellEvent = (cell: UITableViewCell, indexPath: IndexPath) 15 | #endif 16 | -------------------------------------------------------------------------------- /Tachiyomi/Source/Utilities/UIFont+Tachiyomi.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jacob King on 31/08/2021. 3 | // 4 | 5 | import Foundation 6 | import UIKit 7 | 8 | extension UIFont { 9 | static var tachiyomiLibraryItemTitle: UIFont { 10 | UIFont(name: "PTSans-NarrowBold", size: 22) ?? UIFont.systemFont(ofSize: systemFontSize) 11 | } 12 | 13 | static var tachiyomiStandardText: UIFont { 14 | .systemFont(ofSize: 18) 15 | } 16 | 17 | static var tachiyomiCtaText: UIFont { 18 | .systemFont(ofSize: 22) 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Concurrency/SynchronizedOnType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SynchronizedOnType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 10/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | protocol SynchronizedOnType: AnyObject, ObserverType, Lock { 10 | func synchronized_on(_ event: Event) 11 | } 12 | 13 | extension SynchronizedOnType { 14 | func synchronizedOn(_ event: Event) { 15 | self.lock(); defer { self.unlock() } 16 | self.synchronized_on(event) 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Tachiyomi/Source/Interface/Navigation/RootTabBarController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jacob King on 28/08/2021. 3 | // 4 | 5 | import Foundation 6 | import UIKit 7 | 8 | class RootTabBarController: BaseTabBarController { 9 | 10 | init() { 11 | super.init(nibName: nil, bundle: nil) 12 | setViewControllers(NavigableTab.allCases.map { $0.createViewController() } , animated: false) 13 | } 14 | 15 | @available(*, unavailable) 16 | required init?(coder: NSCoder) { 17 | fatalError("init(coder:) has not been implemented") 18 | } 19 | } -------------------------------------------------------------------------------- /Pods/RxDataSources/Sources/RxDataSources/FloatingPointType+IdentifiableType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // FloatingPointType+IdentifiableType.swift 3 | // RxDataSources 4 | // 5 | // Created by Krunoslav Zaher on 7/4/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | extension FloatingPoint { 12 | typealias identity = Self 13 | 14 | public var identity: Self { 15 | return self 16 | } 17 | } 18 | 19 | extension Float : IdentifiableType { 20 | 21 | } 22 | 23 | extension Double : IdentifiableType { 24 | 25 | } 26 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/Runtime/include/RxCocoaRuntime.h: -------------------------------------------------------------------------------- 1 | // 2 | // RxCocoaRuntime.h 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 2/21/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "_RX.h" 11 | #import "_RXDelegateProxy.h" 12 | #import "_RXKVOObserver.h" 13 | #import "_RXObjCRuntime.h" 14 | 15 | //! Project version number for RxCocoa. 16 | FOUNDATION_EXPORT double RxCocoaVersionNumber; 17 | 18 | //! Project version string for RxCocoa. 19 | FOUNDATION_EXPORT const unsigned char RxCocoaVersionString[]; 20 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/macOS/NSView+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NSView+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 12/6/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(macOS) 10 | import Cocoa 11 | import RxSwift 12 | 13 | extension Reactive where Base: NSView { 14 | /// Bindable sink for `alphaValue` property. 15 | public var alpha: Binder { 16 | return Binder(self.base) { view, value in 17 | view.alphaValue = value 18 | } 19 | } 20 | } 21 | #endif 22 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxCocoa/RxCocoa-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | #import "RxCocoaRuntime.h" 14 | #import "_RX.h" 15 | #import "_RXDelegateProxy.h" 16 | #import "_RXKVOObserver.h" 17 | #import "_RXObjCRuntime.h" 18 | #import "RxCocoa.h" 19 | 20 | FOUNDATION_EXPORT double RxCocoaVersionNumber; 21 | FOUNDATION_EXPORT const unsigned char RxCocoaVersionString[]; 22 | 23 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/RxCocoa.h: -------------------------------------------------------------------------------- 1 | // 2 | // RxCocoa.h 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 2/21/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #import 10 | #import 11 | #import 12 | #import 13 | #import 14 | 15 | //! Project version number for RxCocoa. 16 | FOUNDATION_EXPORT double RxCocoaVersionNumber; 17 | 18 | //! Project version string for RxCocoa. 19 | FOUNDATION_EXPORT const unsigned char RxCocoaVersionString[]; 20 | -------------------------------------------------------------------------------- /Tachiyomi/Source/Utilities/FirstRunHelper.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jacob King on 01/09/2021. 3 | // 4 | 5 | import Foundation 6 | 7 | class FirstRunHelper { 8 | 9 | private static let FIRST_RUN_FLAG_KEY = "FIRST_RUN_COMPLETED" 10 | 11 | @available(*, unavailable) 12 | init() { } 13 | 14 | class func isFirstRun() -> Bool { 15 | UserDefaults.standard.bool(forKey: FIRST_RUN_FLAG_KEY) == false 16 | } 17 | 18 | class func markFirstRunComplete() { 19 | UserDefaults.standard.set(true, forKey: FIRST_RUN_FLAG_KEY) 20 | UserDefaults.standard.synchronize() 21 | } 22 | } -------------------------------------------------------------------------------- /Pods/Differentiator/Sources/Differentiator/Optional+Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Optional+Extensions.swift 3 | // RxDataSources 4 | // 5 | // Created by Krunoslav Zaher on 1/8/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | extension Optional { 12 | func unwrap() throws -> Wrapped { 13 | if let unwrapped = self { 14 | return unwrapped 15 | } 16 | else { 17 | debugFatalError("Error during unwrapping optional") 18 | throw DifferentiatorError.unwrappingOptional 19 | } 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Schedulers/Internal/InvocableScheduledItem.swift: -------------------------------------------------------------------------------- 1 | // 2 | // InvocableScheduledItem.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 11/7/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | struct InvocableScheduledItem : InvocableType { 10 | 11 | let invocable: I 12 | let state: I.Value 13 | 14 | init(invocable: I, state: I.Value) { 15 | self.invocable = invocable 16 | self.state = state 17 | } 18 | 19 | func invoke() { 20 | self.invocable.invoke(self.state) 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Pods/RxCocoa/Platform/DispatchQueue+Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DispatchQueue+Extensions.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 10/22/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Dispatch 10 | 11 | extension DispatchQueue { 12 | private static var token: DispatchSpecificKey<()> = { 13 | let key = DispatchSpecificKey<()>() 14 | DispatchQueue.main.setSpecific(key: key, value: ()) 15 | return key 16 | }() 17 | 18 | static var isMain: Bool { 19 | DispatchQueue.getSpecific(key: token) != nil 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Pods/RxSwift/Platform/DispatchQueue+Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DispatchQueue+Extensions.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 10/22/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Dispatch 10 | 11 | extension DispatchQueue { 12 | private static var token: DispatchSpecificKey<()> = { 13 | let key = DispatchSpecificKey<()>() 14 | DispatchQueue.main.setSpecific(key: key, value: ()) 15 | return key 16 | }() 17 | 18 | static var isMain: Bool { 19 | DispatchQueue.getSpecific(key: token) != nil 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Disposables/SubscriptionDisposable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SubscriptionDisposable.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 10/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | struct SubscriptionDisposable : Disposable { 10 | private let key: T.DisposeKey 11 | private weak var owner: T? 12 | 13 | init(owner: T, key: T.DisposeKey) { 14 | self.owner = owner 15 | self.key = key 16 | } 17 | 18 | func dispose() { 19 | self.owner?.synchronizedUnsubscribe(self.key) 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Concurrency/Lock.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Lock.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 3/31/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | protocol Lock { 10 | func lock() 11 | func unlock() 12 | } 13 | 14 | // https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20151214/000321.html 15 | typealias SpinLock = RecursiveLock 16 | 17 | extension RecursiveLock : Lock { 18 | @inline(__always) 19 | final func performLocked(_ action: () -> T) -> T { 20 | self.lock(); defer { self.unlock() } 21 | return action() 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Tachiyomi/Resources/Assets.xcassets/ic_updates.imageset/ic_updates_outline_24dp.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/Traits/Signal/PublishRelay+Signal.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PublishRelay+Signal.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 12/28/15. 6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import RxSwift 10 | import RxRelay 11 | 12 | extension PublishRelay { 13 | /// Converts `PublishRelay` to `Signal`. 14 | /// 15 | /// - returns: Observable sequence. 16 | public func asSignal() -> Signal { 17 | let source = self.asObservable() 18 | .observe(on:SignalSharingStrategy.scheduler) 19 | return SharedSequence(source) 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/ObservableConvertibleType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ObservableConvertibleType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 9/17/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Type that can be converted to observable sequence (`Observable`). 10 | public protocol ObservableConvertibleType { 11 | /// Type of elements in sequence. 12 | associatedtype Element 13 | 14 | /// Converts `self` to `Observable` sequence. 15 | /// 16 | /// - returns: Observable sequence that represents `self`. 17 | func asObservable() -> Observable 18 | } 19 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/Traits/Driver/BehaviorRelay+Driver.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BehaviorRelay+Driver.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 10/7/17. 6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import RxSwift 10 | import RxRelay 11 | 12 | extension BehaviorRelay { 13 | /// Converts `BehaviorRelay` to `Driver`. 14 | /// 15 | /// - returns: Observable sequence. 16 | public func asDriver() -> Driver { 17 | let source = self.asObservable() 18 | .observe(on:DriverSharingStrategy.scheduler) 19 | return SharedSequence(source) 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Tachiyomi/Source/Utilities/DatabaseSeeder.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jacob King on 01/09/2021. 3 | // 4 | 5 | import Foundation 6 | 7 | class DatabaseSeeder { 8 | 9 | @available(*, unavailable) 10 | init() { } 11 | 12 | class func seedLocalSource() { 13 | let storageDir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first?.absoluteString.appending("/localstorage") 14 | 15 | let localSource = Source() 16 | localSource.name = "Local Storage" 17 | localSource.rootDirectoryUri = storageDir 18 | localSource.language = "English" 19 | localSource.commit() 20 | } 21 | } -------------------------------------------------------------------------------- /Pods/RxDataSources/Sources/RxDataSources/Deprecated.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Deprecated.swift 3 | // RxDataSources 4 | // 5 | // Created by Krunoslav Zaher on 10/8/17. 6 | // Copyright © 2017 kzaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | extension CollectionViewSectionedDataSource { 11 | @available(*, deprecated, renamed: "configureSupplementaryView") 12 | public var supplementaryViewFactory: ConfigureSupplementaryView? { 13 | get { 14 | return self.configureSupplementaryView 15 | } 16 | set { 17 | self.configureSupplementaryView = newValue 18 | } 19 | } 20 | } 21 | #endif 22 | -------------------------------------------------------------------------------- /Tachiyomi/Source/Interface/Base/BaseTabBarController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jacob King on 28/08/2021. 3 | // 4 | 5 | import Foundation 6 | import UIKit 7 | 8 | class BaseTabBarController: UITabBarController { 9 | override func viewDidLoad() { 10 | super.viewDidLoad() 11 | 12 | tabBar.isTranslucent = true 13 | tabBar.backgroundImage = UIImage() 14 | tabBar.shadowImage = UIImage() 15 | tabBar.tintColor = UIColor.tachiyomiIconActive 16 | tabBar.unselectedItemTintColor = UIColor.tachiyomiIconInactive 17 | } 18 | 19 | override var preferredStatusBarStyle: UIStatusBarStyle { 20 | .lightContent 21 | } 22 | } -------------------------------------------------------------------------------- /Pods/Target Support Files/SharkORM/SharkORM.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SharkORM 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/SharkORM 8 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 12 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SharkORM/SharkORM.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SharkORM 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/SharkORM 8 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 12 | -------------------------------------------------------------------------------- /Tachiyomi/Source/Interface/Base/BaseNavigationController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jacob King on 28/08/2021. 3 | // 4 | 5 | import Foundation 6 | import UIKit 7 | 8 | class BaseNavigationController: UINavigationController { 9 | override func viewDidLoad() { 10 | super.viewDidLoad() 11 | 12 | navigationBar.isTranslucent = true 13 | navigationBar.setBackgroundImage(UIImage(), for: .default) 14 | navigationBar.shadowImage = UIImage() 15 | navigationBar.titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.tachiyomiNavigationTitle] 16 | } 17 | 18 | override var preferredStatusBarStyle: UIStatusBarStyle { 19 | .lightContent 20 | } 21 | } -------------------------------------------------------------------------------- /Tachiyomi/Source/Lifecycle/SceneDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SceneDelegate.swift 3 | // Tachiyomi 4 | // 5 | // Created by Jacob King on 28/08/2021. 6 | // 7 | // 8 | 9 | import UIKit 10 | 11 | class SceneDelegate: UIResponder, UIWindowSceneDelegate { 12 | 13 | var window: UIWindow? 14 | 15 | func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { 16 | guard let windowScene = (scene as? UIWindowScene) else { 17 | return 18 | } 19 | 20 | window = UIWindow(windowScene: windowScene) 21 | window?.rootViewController = RootTabBarController() 22 | window?.makeKeyAndVisible() 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/UIStepper+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIStepper+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Yuta ToKoRo on 9/1/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | extension Reactive where Base: UIStepper { 15 | 16 | /// Reactive wrapper for `value` property. 17 | public var value: ControlProperty { 18 | return base.rx.controlPropertyWithDefaultEvents( 19 | getter: { stepper in 20 | stepper.value 21 | }, setter: { stepper, value in 22 | stepper.value = value 23 | } 24 | ) 25 | } 26 | } 27 | 28 | #endif 29 | 30 | -------------------------------------------------------------------------------- /Pods/RxCocoa/Platform/DataStructures/InfiniteSequence.swift: -------------------------------------------------------------------------------- 1 | // 2 | // InfiniteSequence.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 6/13/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Sequence that repeats `repeatedValue` infinite number of times. 10 | struct InfiniteSequence : Sequence { 11 | typealias Iterator = AnyIterator 12 | 13 | private let repeatedValue: Element 14 | 15 | init(repeatedValue: Element) { 16 | self.repeatedValue = repeatedValue 17 | } 18 | 19 | func makeIterator() -> Iterator { 20 | let repeatedValue = self.repeatedValue 21 | return AnyIterator { repeatedValue } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Pods/RxSwift/Platform/DataStructures/InfiniteSequence.swift: -------------------------------------------------------------------------------- 1 | // 2 | // InfiniteSequence.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 6/13/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Sequence that repeats `repeatedValue` infinite number of times. 10 | struct InfiniteSequence : Sequence { 11 | typealias Iterator = AnyIterator 12 | 13 | private let repeatedValue: Element 14 | 15 | init(repeatedValue: Element) { 16 | self.repeatedValue = repeatedValue 17 | } 18 | 19 | func makeIterator() -> Iterator { 20 | let repeatedValue = self.repeatedValue 21 | return AnyIterator { repeatedValue } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/UISlider+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UISlider+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Alexander van der Werff on 28/05/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) 10 | 11 | import RxSwift 12 | import UIKit 13 | 14 | extension Reactive where Base: UISlider { 15 | 16 | /// Reactive wrapper for `value` property. 17 | public var value: ControlProperty { 18 | return base.rx.controlPropertyWithDefaultEvents( 19 | getter: { slider in 20 | slider.value 21 | }, setter: { slider, value in 22 | slider.value = value 23 | } 24 | ) 25 | } 26 | 27 | } 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Subjects/SubjectType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SubjectType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 3/1/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Represents an object that is both an observable sequence as well as an observer. 10 | public protocol SubjectType : ObservableType { 11 | /// The type of the observer that represents this subject. 12 | /// 13 | /// Usually this type is type of subject itself, but it doesn't have to be. 14 | associatedtype Observer: ObserverType 15 | 16 | /// Returns observer interface for subject. 17 | /// 18 | /// - returns: Observer interface for subject. 19 | func asObserver() -> Observer 20 | 21 | } 22 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxSwift/RxSwift.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/RxSwift 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -suppress-warnings 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/RxSwift 9 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 10 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 11 | SKIP_INSTALL = YES 12 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxSwift/RxSwift.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/RxSwift 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -suppress-warnings 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/RxSwift 9 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 10 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 11 | SKIP_INSTALL = YES 12 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SnapKit/SnapKit.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SnapKit 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -suppress-warnings 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/SnapKit 9 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 10 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 11 | SKIP_INSTALL = YES 12 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SnapKit/SnapKit.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SnapKit 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -suppress-warnings 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/SnapKit 9 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 10 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 11 | SKIP_INSTALL = YES 12 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 13 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/Common/SectionedViewDataSourceType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SectionedViewDataSourceType.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 1/10/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /// Data source with access to underlying sectioned model. 12 | public protocol SectionedViewDataSourceType { 13 | /// Returns model at index path. 14 | /// 15 | /// In case data source doesn't contain any sections when this method is being called, `RxCocoaError.ItemsNotYetBound(object: self)` is thrown. 16 | 17 | /// - parameter indexPath: Model index path 18 | /// - returns: Model at index path. 19 | func model(at indexPath: IndexPath) throws -> Any 20 | } 21 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/macOS/NSSlider+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NSSlider+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Junior B. on 24/05/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(macOS) 10 | 11 | import RxSwift 12 | import Cocoa 13 | 14 | extension Reactive where Base: NSSlider { 15 | 16 | /// Reactive wrapper for `value` property. 17 | public var value: ControlProperty { 18 | return self.base.rx.controlProperty( 19 | getter: { control -> Double in 20 | return control.doubleValue 21 | }, 22 | setter: { control, value in 23 | control.doubleValue = value 24 | } 25 | ) 26 | } 27 | 28 | } 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/UIRefreshControl+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIRefreshControl+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Yosuke Ishikawa on 1/31/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | extension Reactive where Base: UIRefreshControl { 15 | /// Bindable sink for `beginRefreshing()`, `endRefreshing()` methods. 16 | public var isRefreshing: Binder { 17 | return Binder(self.base) { refreshControl, refresh in 18 | if refresh { 19 | refreshControl.beginRefreshing() 20 | } else { 21 | refreshControl.endRefreshing() 22 | } 23 | } 24 | } 25 | 26 | } 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Differentiator/Differentiator.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Differentiator 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -suppress-warnings 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Differentiator 9 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 10 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 11 | SKIP_INSTALL = YES 12 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Differentiator/Differentiator.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Differentiator 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -suppress-warnings 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Differentiator 9 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 10 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 11 | SKIP_INSTALL = YES 12 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 13 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Disposables/NopDisposable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NopDisposable.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 2/15/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Represents a disposable that does nothing on disposal. 10 | /// 11 | /// Nop = No Operation 12 | private struct NopDisposable : Disposable { 13 | 14 | fileprivate static let noOp: Disposable = NopDisposable() 15 | 16 | private init() { 17 | 18 | } 19 | 20 | /// Does nothing. 21 | public func dispose() { 22 | } 23 | } 24 | 25 | extension Disposables { 26 | /** 27 | Creates a disposable that does nothing on disposal. 28 | */ 29 | static public func create() -> Disposable { NopDisposable.noOp } 30 | } 31 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/UIActivityIndicatorView+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIActivityIndicatorView+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Ivan Persidskiy on 02/12/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | extension Reactive where Base: UIActivityIndicatorView { 15 | /// Bindable sink for `startAnimating()`, `stopAnimating()` methods. 16 | public var isAnimating: Binder { 17 | Binder(self.base) { activityIndicator, active in 18 | if active { 19 | activityIndicator.startAnimating() 20 | } else { 21 | activityIndicator.stopAnimating() 22 | } 23 | } 24 | } 25 | } 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/Traits/Driver/ControlEvent+Driver.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ControlEvent+Driver.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 9/19/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import RxSwift 10 | 11 | extension ControlEvent { 12 | /// Converts `ControlEvent` to `Driver` trait. 13 | /// 14 | /// `ControlEvent` already can't fail, so no special case needs to be handled. 15 | public func asDriver() -> Driver { 16 | return self.asDriver { _ -> Driver in 17 | #if DEBUG 18 | rxFatalError("Somehow driver received error from a source that shouldn't fail.") 19 | #else 20 | return Driver.empty() 21 | #endif 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/Foundation/KVORepresentable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // KVORepresentable.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 11/14/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Type that is KVO representable (KVO mechanism can be used to observe it). 10 | public protocol KVORepresentable { 11 | /// Associated KVO type. 12 | associatedtype KVOType 13 | 14 | /// Constructs `Self` using KVO value. 15 | init?(KVOValue: KVOType) 16 | } 17 | 18 | extension KVORepresentable { 19 | /// Initializes `KVORepresentable` with optional value. 20 | init?(KVOValue: KVOType?) { 21 | guard let KVOValue = KVOValue else { 22 | return nil 23 | } 24 | 25 | self.init(KVOValue: KVOValue) 26 | } 27 | } 28 | 29 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/Traits/Signal/ControlEvent+Signal.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ControlEvent+Signal.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 11/1/17. 6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import RxSwift 10 | 11 | extension ControlEvent { 12 | /// Converts `ControlEvent` to `Signal` trait. 13 | /// 14 | /// `ControlEvent` already can't fail, so no special case needs to be handled. 15 | public func asSignal() -> Signal { 16 | return self.asSignal { _ -> Signal in 17 | #if DEBUG 18 | rxFatalError("Somehow signal received error from a source that shouldn't fail.") 19 | #else 20 | return Signal.empty() 21 | #endif 22 | } 23 | } 24 | } 25 | 26 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/Traits/Driver/ControlProperty+Driver.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ControlProperty+Driver.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 9/19/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import RxSwift 10 | 11 | extension ControlProperty { 12 | /// Converts `ControlProperty` to `Driver` trait. 13 | /// 14 | /// `ControlProperty` already can't fail, so no special case needs to be handled. 15 | public func asDriver() -> Driver { 16 | return self.asDriver { _ -> Driver in 17 | #if DEBUG 18 | rxFatalError("Somehow driver received error from a source that shouldn't fail.") 19 | #else 20 | return Driver.empty() 21 | #endif 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxRelay/RxRelay.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/RxRelay 3 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" 4 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 5 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -suppress-warnings 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/RxRelay 10 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 11 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 12 | SKIP_INSTALL = YES 13 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 14 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxRelay/RxRelay.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/RxRelay 3 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" 4 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 5 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -suppress-warnings 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/RxRelay 10 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 11 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 12 | SKIP_INSTALL = YES 13 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 14 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTableViewDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxTableViewDelegateProxy.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 6/15/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | /// For more information take a look at `DelegateProxyType`. 15 | open class RxTableViewDelegateProxy 16 | : RxScrollViewDelegateProxy 17 | , UITableViewDelegate { 18 | 19 | /// Typed parent object. 20 | public weak private(set) var tableView: UITableView? 21 | 22 | /// - parameter tableView: Parent object for delegate proxy. 23 | public init(tableView: UITableView) { 24 | self.tableView = tableView 25 | super.init(scrollView: tableView) 26 | } 27 | 28 | } 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Observable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Observable.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 2/8/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// A type-erased `ObservableType`. 10 | /// 11 | /// It represents a push style sequence. 12 | public class Observable : ObservableType { 13 | init() { 14 | #if TRACE_RESOURCES 15 | _ = Resources.incrementTotal() 16 | #endif 17 | } 18 | 19 | public func subscribe(_ observer: Observer) -> Disposable where Observer.Element == Element { 20 | rxAbstractMethod() 21 | } 22 | 23 | public func asObservable() -> Observable { self } 24 | 25 | deinit { 26 | #if TRACE_RESOURCES 27 | _ = Resources.decrementTotal() 28 | #endif 29 | } 30 | } 31 | 32 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Observers/AnonymousObserver.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AnonymousObserver.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 2/8/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | final class AnonymousObserver: ObserverBase { 10 | typealias EventHandler = (Event) -> Void 11 | 12 | private let eventHandler : EventHandler 13 | 14 | init(_ eventHandler: @escaping EventHandler) { 15 | #if TRACE_RESOURCES 16 | _ = Resources.incrementTotal() 17 | #endif 18 | self.eventHandler = eventHandler 19 | } 20 | 21 | override func onCore(_ event: Event) { 22 | self.eventHandler(event) 23 | } 24 | 25 | #if TRACE_RESOURCES 26 | deinit { 27 | _ = Resources.decrementTotal() 28 | } 29 | #endif 30 | } 31 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Schedulers/HistoricalScheduler.swift: -------------------------------------------------------------------------------- 1 | // 2 | // HistoricalScheduler.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 12/27/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /// Provides a virtual time scheduler that uses `Date` for absolute time and `NSTimeInterval` for relative time. 12 | public class HistoricalScheduler : VirtualTimeScheduler { 13 | 14 | /** 15 | Creates a new historical scheduler with initial clock value. 16 | 17 | - parameter initialClock: Initial value for virtual clock. 18 | */ 19 | public init(initialClock: RxTime = Date(timeIntervalSince1970: 0)) { 20 | super.init(initialClock: initialClock, converter: HistoricalSchedulerTimeConverter()) 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/Protocols/RxPickerViewDataSourceType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxPickerViewDataSourceType.swift 3 | // RxCocoa 4 | // 5 | // Created by Sergey Shulga on 05/07/2017. 6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | /// Marks data source as `UIPickerView` reactive data source enabling it to be used with one of the `bindTo` methods. 15 | public protocol RxPickerViewDataSourceType { 16 | /// Type of elements that can be bound to picker view. 17 | associatedtype Element 18 | 19 | /// New observable sequence event observed. 20 | /// 21 | /// - parameter pickerView: Bound picker view. 22 | /// - parameter observedEvent: Event 23 | func pickerView(_ pickerView: UIPickerView, observedEvent: Event) 24 | } 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxCocoa/RxCocoa.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa 3 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" 4 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 5 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -suppress-warnings 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/RxCocoa 10 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 11 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 12 | SKIP_INSTALL = YES 13 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 14 | -------------------------------------------------------------------------------- /Pods/RxCocoa/Platform/RecursiveLock.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RecursiveLock.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 12/18/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | #if TRACE_RESOURCES 12 | class RecursiveLock: NSRecursiveLock { 13 | override init() { 14 | _ = Resources.incrementTotal() 15 | super.init() 16 | } 17 | 18 | override func lock() { 19 | super.lock() 20 | _ = Resources.incrementTotal() 21 | } 22 | 23 | override func unlock() { 24 | super.unlock() 25 | _ = Resources.decrementTotal() 26 | } 27 | 28 | deinit { 29 | _ = Resources.decrementTotal() 30 | } 31 | } 32 | #else 33 | typealias RecursiveLock = NSRecursiveLock 34 | #endif 35 | -------------------------------------------------------------------------------- /Pods/RxSwift/Platform/RecursiveLock.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RecursiveLock.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 12/18/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | #if TRACE_RESOURCES 12 | class RecursiveLock: NSRecursiveLock { 13 | override init() { 14 | _ = Resources.incrementTotal() 15 | super.init() 16 | } 17 | 18 | override func lock() { 19 | super.lock() 20 | _ = Resources.incrementTotal() 21 | } 22 | 23 | override func unlock() { 24 | super.unlock() 25 | _ = Resources.decrementTotal() 26 | } 27 | 28 | deinit { 29 | _ = Resources.decrementTotal() 30 | } 31 | } 32 | #else 33 | typealias RecursiveLock = NSRecursiveLock 34 | #endif 35 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxCocoa/RxCocoa.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa 3 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" 4 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 5 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -suppress-warnings 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/RxCocoa 10 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 11 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 12 | SKIP_INSTALL = YES 13 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 14 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/ConnectableObservableType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ConnectableObservableType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 3/1/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /** 10 | Represents an observable sequence wrapper that can be connected and disconnected from its underlying observable sequence. 11 | */ 12 | public protocol ConnectableObservableType : ObservableType { 13 | /** 14 | Connects the observable wrapper to its source. All subscribed observers will receive values from the underlying observable sequence as long as the connection is established. 15 | 16 | - returns: Disposable used to disconnect the observable wrapper from its source, causing subscribed observer to stop receiving values from the underlying observable sequence. 17 | */ 18 | func connect() -> Disposable 19 | } 20 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Observers/ObserverBase.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ObserverBase.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 2/15/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | class ObserverBase : Disposable, ObserverType { 10 | private let isStopped = AtomicInt(0) 11 | 12 | func on(_ event: Event) { 13 | switch event { 14 | case .next: 15 | if load(self.isStopped) == 0 { 16 | self.onCore(event) 17 | } 18 | case .error, .completed: 19 | if fetchOr(self.isStopped, 1) == 0 { 20 | self.onCore(event) 21 | } 22 | } 23 | } 24 | 25 | func onCore(_ event: Event) { 26 | rxAbstractMethod() 27 | } 28 | 29 | func dispose() { 30 | fetchOr(self.isStopped, 1) 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/Runtime/include/_RXDelegateProxy.h: -------------------------------------------------------------------------------- 1 | // 2 | // _RXDelegateProxy.h 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 7/4/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface _RXDelegateProxy : NSObject 14 | 15 | @property (nonatomic, weak, readonly) id _forwardToDelegate; 16 | 17 | -(void)_setForwardToDelegate:(id __nullable)forwardToDelegate retainDelegate:(BOOL)retainDelegate NS_SWIFT_NAME(_setForwardToDelegate(_:retainDelegate:)) ; 18 | 19 | -(BOOL)hasWiredImplementationForSelector:(SEL)selector; 20 | -(BOOL)voidDelegateMethodsContain:(SEL)selector; 21 | 22 | -(void)_sentMessage:(SEL)selector withArguments:(NSArray*)arguments; 23 | -(void)_methodInvoked:(SEL)selector withArguments:(NSArray*)arguments; 24 | 25 | @end 26 | 27 | NS_ASSUME_NONNULL_END 28 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/Protocols/RxTableViewDataSourceType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxTableViewDataSourceType.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 6/26/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | /// Marks data source as `UITableView` reactive data source enabling it to be used with one of the `bindTo` methods. 15 | public protocol RxTableViewDataSourceType /*: UITableViewDataSource*/ { 16 | 17 | /// Type of elements that can be bound to table view. 18 | associatedtype Element 19 | 20 | /// New observable sequence event observed. 21 | /// 22 | /// - parameter tableView: Bound table view. 23 | /// - parameter observedEvent: Event 24 | func tableView(_ tableView: UITableView, observedEvent: Event) 25 | } 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /Pods/Differentiator/Sources/Differentiator/Utilities.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Utilities.swift 3 | // RxDataSources 4 | // 5 | // Created by muukii on 8/2/17. 6 | // Copyright © 2017 kzaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | enum DifferentiatorError : Error { 12 | case unwrappingOptional 13 | case preconditionFailed(message: String) 14 | } 15 | 16 | func precondition(_ condition: Bool, _ message: @autoclosure() -> String) throws { 17 | if condition { 18 | return 19 | } 20 | debugFatalError("Precondition failed") 21 | 22 | throw DifferentiatorError.preconditionFailed(message: message()) 23 | } 24 | 25 | func debugFatalError(_ error: Error) { 26 | debugFatalError("\(error)") 27 | } 28 | 29 | func debugFatalError(_ message: String) { 30 | #if DEBUG 31 | fatalError(message) 32 | #else 33 | print(message) 34 | #endif 35 | } 36 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/macOS/NSButton+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NSButton+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 5/17/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(macOS) 10 | 11 | import RxSwift 12 | import Cocoa 13 | 14 | extension Reactive where Base: NSButton { 15 | 16 | /// Reactive wrapper for control event. 17 | public var tap: ControlEvent { 18 | self.controlEvent 19 | } 20 | 21 | /// Reactive wrapper for `state` property`. 22 | public var state: ControlProperty { 23 | return self.base.rx.controlProperty( 24 | getter: { control in 25 | return control.state 26 | }, setter: { (control: NSButton, state: NSControl.StateValue) in 27 | control.state = state 28 | } 29 | ) 30 | } 31 | } 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Schedulers/Internal/ScheduledItem.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ScheduledItem.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 9/2/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | struct ScheduledItem 10 | : ScheduledItemType 11 | , InvocableType { 12 | typealias Action = (T) -> Disposable 13 | 14 | private let action: Action 15 | private let state: T 16 | 17 | private let disposable = SingleAssignmentDisposable() 18 | 19 | var isDisposed: Bool { 20 | self.disposable.isDisposed 21 | } 22 | 23 | init(action: @escaping Action, state: T) { 24 | self.action = action 25 | self.state = state 26 | } 27 | 28 | func invoke() { 29 | self.disposable.setDisposable(self.action(self.state)) 30 | } 31 | 32 | func dispose() { 33 | self.disposable.dispose() 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/Common/RxTarget.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxTarget.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 7/12/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | import RxSwift 12 | 13 | class RxTarget : NSObject 14 | , Disposable { 15 | 16 | private var retainSelf: RxTarget? 17 | 18 | override init() { 19 | super.init() 20 | self.retainSelf = self 21 | 22 | #if TRACE_RESOURCES 23 | _ = Resources.incrementTotal() 24 | #endif 25 | 26 | #if DEBUG 27 | MainScheduler.ensureRunningOnMainThread() 28 | #endif 29 | } 30 | 31 | func dispose() { 32 | #if DEBUG 33 | MainScheduler.ensureRunningOnMainThread() 34 | #endif 35 | self.retainSelf = nil 36 | } 37 | 38 | #if TRACE_RESOURCES 39 | deinit { 40 | _ = Resources.decrementTotal() 41 | } 42 | #endif 43 | } 44 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Observables/Never.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Never.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 8/30/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | extension ObservableType { 10 | 11 | /** 12 | Returns a non-terminating observable sequence, which can be used to denote an infinite duration. 13 | 14 | - seealso: [never operator on reactivex.io](http://reactivex.io/documentation/operators/empty-never-throw.html) 15 | 16 | - returns: An observable sequence whose observers will never get called. 17 | */ 18 | public static func never() -> Observable { 19 | NeverProducer() 20 | } 21 | } 22 | 23 | final private class NeverProducer: Producer { 24 | override func subscribe(_ observer: Observer) -> Disposable where Observer.Element == Element { 25 | Disposables.create() 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/Protocols/RxCollectionViewDataSourceType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxCollectionViewDataSourceType.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 6/29/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | /// Marks data source as `UICollectionView` reactive data source enabling it to be used with one of the `bindTo` methods. 15 | public protocol RxCollectionViewDataSourceType /*: UICollectionViewDataSource*/ { 16 | 17 | /// Type of elements that can be bound to collection view. 18 | associatedtype Element 19 | 20 | /// New observable sequence event observed. 21 | /// 22 | /// - parameter collectionView: Bound collection view. 23 | /// - parameter observedEvent: Event 24 | func collectionView(_ collectionView: UICollectionView, observedEvent: Event) 25 | } 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /Pods/RxDataSources/Sources/RxDataSources/DataSources.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DataSources.swift 3 | // RxDataSources 4 | // 5 | // Created by Krunoslav Zaher on 1/8/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | @_exported import Differentiator 12 | 13 | enum RxDataSourceError: Error { 14 | case preconditionFailed(message: String) 15 | case outOfBounds(indexPath: IndexPath) 16 | } 17 | 18 | func rxPrecondition(_ condition: Bool, _ message: @autoclosure() -> String) throws { 19 | if condition { 20 | return 21 | } 22 | rxDebugFatalError("Precondition failed") 23 | 24 | throw RxDataSourceError.preconditionFailed(message: message()) 25 | } 26 | 27 | func rxDebugFatalError(_ error: Error) { 28 | rxDebugFatalError("\(error)") 29 | } 30 | 31 | func rxDebugFatalError(_ message: String) { 32 | #if DEBUG 33 | fatalError(message) 34 | #else 35 | print(message) 36 | #endif 37 | } 38 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/Runtime/include/_RXKVOObserver.h: -------------------------------------------------------------------------------- 1 | // 2 | // _RXKVOObserver.h 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 7/11/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | /** 12 | ################################################################################ 13 | This file is part of RX private API 14 | ################################################################################ 15 | */ 16 | 17 | // Exists because if written in Swift, reading unowned is disabled during dealloc process 18 | @interface _RXKVOObserver : NSObject 19 | 20 | -(instancetype)initWithTarget:(id)target 21 | retainTarget:(BOOL)retainTarget 22 | keyPath:(NSString*)keyPath 23 | options:(NSKeyValueObservingOptions)options 24 | callback:(void (^)(id))callback; 25 | 26 | -(void)dispose; 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Pods/Differentiator/Sources/Differentiator/ItemPath.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ItemPath.swift 3 | // RxDataSources 4 | // 5 | // Created by Krunoslav Zaher on 1/9/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public struct ItemPath { 12 | public let sectionIndex: Int 13 | public let itemIndex: Int 14 | 15 | public init(sectionIndex: Int, itemIndex: Int) { 16 | self.sectionIndex = sectionIndex 17 | self.itemIndex = itemIndex 18 | } 19 | } 20 | 21 | extension ItemPath : Equatable { 22 | 23 | } 24 | 25 | public func == (lhs: ItemPath, rhs: ItemPath) -> Bool { 26 | return lhs.sectionIndex == rhs.sectionIndex && lhs.itemIndex == rhs.itemIndex 27 | } 28 | 29 | extension ItemPath: Hashable { 30 | 31 | public func hash(into hasher: inout Hasher) { 32 | hasher.combine(sectionIndex.byteSwapped.hashValue) 33 | hasher.combine(itemIndex.hashValue) 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /Pods/RxCocoa/Platform/Platform.Linux.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Platform.Linux.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 12/29/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(Linux) 10 | 11 | import Foundation 12 | 13 | extension Thread { 14 | 15 | static func setThreadLocalStorageValue(_ value: T?, forKey key: String) { 16 | if let newValue = value { 17 | Thread.current.threadDictionary[key] = newValue 18 | } 19 | else { 20 | Thread.current.threadDictionary[key] = nil 21 | } 22 | } 23 | 24 | static func getThreadLocalStorageValueForKey(_ key: String) -> T? { 25 | let currentThread = Thread.current 26 | let threadDictionary = currentThread.threadDictionary 27 | 28 | return threadDictionary[key] as? T 29 | } 30 | } 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /Pods/RxSwift/Platform/Platform.Linux.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Platform.Linux.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 12/29/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(Linux) 10 | 11 | import Foundation 12 | 13 | extension Thread { 14 | 15 | static func setThreadLocalStorageValue(_ value: T?, forKey key: String) { 16 | if let newValue = value { 17 | Thread.current.threadDictionary[key] = newValue 18 | } 19 | else { 20 | Thread.current.threadDictionary[key] = nil 21 | } 22 | } 23 | 24 | static func getThreadLocalStorageValueForKey(_ key: String) -> T? { 25 | let currentThread = Thread.current 26 | let threadDictionary = currentThread.threadDictionary 27 | 28 | return threadDictionary[key] as? T 29 | } 30 | } 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxCocoa/RxCocoa-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 6.2.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxRelay/RxRelay-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 6.2.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxSwift/RxSwift-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 6.2.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SnapKit/SnapKit-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 5.0.1 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Observables/Empty.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Empty.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 8/30/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | extension ObservableType { 10 | /** 11 | Returns an empty observable sequence, using the specified scheduler to send out the single `Completed` message. 12 | 13 | - seealso: [empty operator on reactivex.io](http://reactivex.io/documentation/operators/empty-never-throw.html) 14 | 15 | - returns: An observable sequence with no elements. 16 | */ 17 | public static func empty() -> Observable { 18 | EmptyProducer() 19 | } 20 | } 21 | 22 | final private class EmptyProducer: Producer { 23 | override func subscribe(_ observer: Observer) -> Disposable where Observer.Element == Element { 24 | observer.on(.completed) 25 | return Disposables.create() 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxDataSources/RxDataSources.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/RxDataSources 3 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Differentiator" "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" 4 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 5 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -suppress-warnings 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/RxDataSources 10 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 11 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 12 | SKIP_INSTALL = YES 13 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 14 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SharkORM/SharkORM-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 2.3.62 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxDataSources/RxDataSources-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 5.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/RxDataSources/RxDataSources.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/RxDataSources 3 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Differentiator" "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" 4 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 5 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS -suppress-warnings 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/RxDataSources 10 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 11 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 12 | SKIP_INSTALL = YES 13 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 14 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Differentiator/Differentiator-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 5.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-Tachiyomi/Pods-Tachiyomi-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/Proxies/RxCollectionViewDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxCollectionViewDelegateProxy.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 6/29/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | /// For more information take a look at `DelegateProxyType`. 15 | open class RxCollectionViewDelegateProxy 16 | : RxScrollViewDelegateProxy 17 | , UICollectionViewDelegate 18 | , UICollectionViewDelegateFlowLayout { 19 | 20 | /// Typed parent object. 21 | public weak private(set) var collectionView: UICollectionView? 22 | 23 | /// Initializes `RxCollectionViewDelegateProxy` 24 | /// 25 | /// - parameter collectionView: Parent object for delegate proxy. 26 | public init(collectionView: UICollectionView) { 27 | self.collectionView = collectionView 28 | super.init(scrollView: collectionView) 29 | } 30 | } 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /Pods/Differentiator/Sources/Differentiator/IdentifiableValue.swift: -------------------------------------------------------------------------------- 1 | // 2 | // IdentifiableValue.swift 3 | // RxDataSources 4 | // 5 | // Created by Krunoslav Zaher on 1/7/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public struct IdentifiableValue { 12 | public let value: Value 13 | } 14 | 15 | extension IdentifiableValue 16 | : IdentifiableType { 17 | 18 | public typealias Identity = Value 19 | 20 | public var identity : Identity { 21 | return value 22 | } 23 | } 24 | 25 | extension IdentifiableValue 26 | : Equatable 27 | , CustomStringConvertible 28 | , CustomDebugStringConvertible { 29 | 30 | public var description: String { 31 | return "\(value)" 32 | } 33 | 34 | public var debugDescription: String { 35 | return "\(value)" 36 | } 37 | } 38 | 39 | public func == (lhs: IdentifiableValue, rhs: IdentifiableValue) -> Bool { 40 | return lhs.value == rhs.value 41 | } 42 | -------------------------------------------------------------------------------- /Pods/RxDataSources/Sources/RxDataSources/IntegerType+IdentifiableType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // IntegerType+IdentifiableType.swift 3 | // RxDataSources 4 | // 5 | // Created by Krunoslav Zaher on 7/4/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | extension BinaryInteger { 12 | typealias identity = Self 13 | 14 | public var identity: Self { 15 | return self 16 | } 17 | } 18 | 19 | extension Int : IdentifiableType { 20 | 21 | } 22 | 23 | extension Int8 : IdentifiableType { 24 | 25 | } 26 | 27 | extension Int16 : IdentifiableType { 28 | 29 | } 30 | 31 | extension Int32 : IdentifiableType { 32 | 33 | } 34 | 35 | extension Int64 : IdentifiableType { 36 | 37 | } 38 | 39 | 40 | extension UInt : IdentifiableType { 41 | 42 | } 43 | 44 | extension UInt8 : IdentifiableType { 45 | 46 | } 47 | 48 | extension UInt16 : IdentifiableType { 49 | 50 | } 51 | 52 | extension UInt32 : IdentifiableType { 53 | 54 | } 55 | 56 | extension UInt64 : IdentifiableType { 57 | 58 | } 59 | 60 | -------------------------------------------------------------------------------- /Pods/RxDataSources/Sources/RxDataSources/RxTableViewSectionedReloadDataSource.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxTableViewSectionedReloadDataSource.swift 3 | // RxExample 4 | // 5 | // Created by Krunoslav Zaher on 6/27/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | import Foundation 11 | import UIKit 12 | #if !RX_NO_MODULE 13 | import RxSwift 14 | import RxCocoa 15 | #endif 16 | import Differentiator 17 | 18 | open class RxTableViewSectionedReloadDataSource 19 | : TableViewSectionedDataSource
20 | , RxTableViewDataSourceType { 21 | public typealias Element = [Section] 22 | 23 | open func tableView(_ tableView: UITableView, observedEvent: Event) { 24 | Binder(self) { dataSource, element in 25 | #if DEBUG 26 | dataSource._dataSourceBound = true 27 | #endif 28 | dataSource.setSections(element) 29 | tableView.reloadData() 30 | }.on(observedEvent) 31 | } 32 | } 33 | #endif 34 | -------------------------------------------------------------------------------- /Tachiyomi/Source/Lifecycle/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // Tachiyomi 4 | // 5 | // Created by Jacob King on 28/08/2021. 6 | // 7 | // 8 | 9 | import UIKit 10 | import SharkORM 11 | 12 | @main 13 | class AppDelegate: UIResponder, UIApplicationDelegate, SRKDelegate { 14 | 15 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 16 | SharkORM.setDelegate(self) 17 | SharkORM.openDatabaseNamed("Tachiyomi") 18 | 19 | if FirstRunHelper.isFirstRun() { 20 | DatabaseSeeder.seedLocalSource() 21 | FirstRunHelper.markFirstRunComplete() 22 | } 23 | 24 | return true 25 | } 26 | 27 | func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { 28 | return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /Tachiyomi/Source/Interface/Browse/BrowseTableViewCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jacob King on 01/09/2021. 3 | // 4 | 5 | import Foundation 6 | import UIKit 7 | import SnapKit 8 | 9 | class BrowseTableViewCell: UITableViewCell, Identified { 10 | 11 | private(set) static var identifier = "BrowseTableViewCell" 12 | 13 | private lazy var artworkImageView: UIImageView = { 14 | let it = UIImageView() 15 | it.translatesAutoresizingMaskIntoConstraints = false 16 | return it 17 | }() 18 | 19 | private lazy var nameLabel: UILabel = { 20 | let it = UILabel() 21 | it.translatesAutoresizingMaskIntoConstraints = false 22 | return it 23 | }() 24 | 25 | private lazy var latestButton: UIButton = { 26 | let it = UIButton() 27 | it.translatesAutoresizingMaskIntoConstraints = false 28 | return it 29 | }() 30 | 31 | private lazy var pinButton: UIButton = { 32 | let it = UIButton() 33 | it.translatesAutoresizingMaskIntoConstraints = false 34 | return it 35 | }() 36 | } -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/UISwitch+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UISwitch+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Carlos García on 8/7/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | extension Reactive where Base: UISwitch { 15 | 16 | /// Reactive wrapper for `isOn` property. 17 | public var isOn: ControlProperty { 18 | value 19 | } 20 | 21 | /// Reactive wrapper for `isOn` property. 22 | /// 23 | /// ⚠️ Versions prior to iOS 10.2 were leaking `UISwitch`'s, so on those versions 24 | /// underlying observable sequence won't complete when nothing holds a strong reference 25 | /// to `UISwitch`. 26 | public var value: ControlProperty { 27 | return base.rx.controlPropertyWithDefaultEvents( 28 | getter: { uiSwitch in 29 | uiSwitch.isOn 30 | }, setter: { uiSwitch, value in 31 | uiSwitch.isOn = value 32 | } 33 | ) 34 | } 35 | 36 | } 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Disposables/BooleanDisposable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BooleanDisposable.swift 3 | // RxSwift 4 | // 5 | // Created by Junior B. on 10/29/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Represents a disposable resource that can be checked for disposal status. 10 | public final class BooleanDisposable : Cancelable { 11 | 12 | internal static let BooleanDisposableTrue = BooleanDisposable(isDisposed: true) 13 | private var disposed = false 14 | 15 | /// Initializes a new instance of the `BooleanDisposable` class 16 | public init() { 17 | } 18 | 19 | /// Initializes a new instance of the `BooleanDisposable` class with given value 20 | public init(isDisposed: Bool) { 21 | self.disposed = isDisposed 22 | } 23 | 24 | /// - returns: Was resource disposed. 25 | public var isDisposed: Bool { 26 | self.disposed 27 | } 28 | 29 | /// Sets the status to disposed, which can be observer through the `isDisposed` property. 30 | public func dispose() { 31 | self.disposed = true 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Observables/Error.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Error.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 8/30/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | extension ObservableType { 10 | /** 11 | Returns an observable sequence that terminates with an `error`. 12 | 13 | - seealso: [throw operator on reactivex.io](http://reactivex.io/documentation/operators/empty-never-throw.html) 14 | 15 | - returns: The observable sequence that terminates with specified error. 16 | */ 17 | public static func error(_ error: Swift.Error) -> Observable { 18 | ErrorProducer(error: error) 19 | } 20 | } 21 | 22 | final private class ErrorProducer: Producer { 23 | private let error: Swift.Error 24 | 25 | init(error: Swift.Error) { 26 | self.error = error 27 | } 28 | 29 | override func subscribe(_ observer: Observer) -> Disposable where Observer.Element == Element { 30 | observer.on(.error(self.error)) 31 | return Disposables.create() 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /Pods/RxCocoa/Platform/Platform.Darwin.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Platform.Darwin.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 12/29/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(macOS) || os(iOS) || os(tvOS) || os(watchOS) 10 | 11 | import Darwin 12 | import Foundation 13 | 14 | extension Thread { 15 | static func setThreadLocalStorageValue(_ value: T?, forKey key: NSCopying) { 16 | let currentThread = Thread.current 17 | let threadDictionary = currentThread.threadDictionary 18 | 19 | if let newValue = value { 20 | threadDictionary[key] = newValue 21 | } 22 | else { 23 | threadDictionary[key] = nil 24 | } 25 | } 26 | 27 | static func getThreadLocalStorageValueForKey(_ key: NSCopying) -> T? { 28 | let currentThread = Thread.current 29 | let threadDictionary = currentThread.threadDictionary 30 | 31 | return threadDictionary[key] as? T 32 | } 33 | } 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /Pods/RxSwift/Platform/Platform.Darwin.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Platform.Darwin.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 12/29/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(macOS) || os(iOS) || os(tvOS) || os(watchOS) 10 | 11 | import Darwin 12 | import Foundation 13 | 14 | extension Thread { 15 | static func setThreadLocalStorageValue(_ value: T?, forKey key: NSCopying) { 16 | let currentThread = Thread.current 17 | let threadDictionary = currentThread.threadDictionary 18 | 19 | if let newValue = value { 20 | threadDictionary[key] = newValue 21 | } 22 | else { 23 | threadDictionary[key] = nil 24 | } 25 | } 26 | 27 | static func getThreadLocalStorageValueForKey(_ key: NSCopying) -> T? { 28 | let currentThread = Thread.current 29 | let threadDictionary = currentThread.threadDictionary 30 | 31 | return threadDictionary[key] as? T 32 | } 33 | } 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /Pods/RxDataSources/Sources/RxDataSources/AnimationConfiguration.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AnimationConfiguration.swift 3 | // RxDataSources 4 | // 5 | // Created by Esteban Torres on 5/2/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | import Foundation 11 | import UIKit 12 | 13 | /** 14 | Exposes custom animation styles for insertion, deletion and reloading behavior. 15 | */ 16 | public struct AnimationConfiguration { 17 | public let insertAnimation: UITableView.RowAnimation 18 | public let reloadAnimation: UITableView.RowAnimation 19 | public let deleteAnimation: UITableView.RowAnimation 20 | 21 | public init(insertAnimation: UITableView.RowAnimation = .automatic, 22 | reloadAnimation: UITableView.RowAnimation = .automatic, 23 | deleteAnimation: UITableView.RowAnimation = .automatic) { 24 | self.insertAnimation = insertAnimation 25 | self.reloadAnimation = reloadAnimation 26 | self.deleteAnimation = deleteAnimation 27 | } 28 | } 29 | #endif 30 | -------------------------------------------------------------------------------- /Pods/RxCocoa/LICENSE.md: -------------------------------------------------------------------------------- 1 | **The MIT License** 2 | **Copyright © 2015 Krunoslav Zaher, Shai Mishali** 3 | **All rights reserved.** 4 | 5 | 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: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | 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. 10 | -------------------------------------------------------------------------------- /Pods/RxRelay/LICENSE.md: -------------------------------------------------------------------------------- 1 | **The MIT License** 2 | **Copyright © 2015 Krunoslav Zaher, Shai Mishali** 3 | **All rights reserved.** 4 | 5 | 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: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | 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. 10 | -------------------------------------------------------------------------------- /Pods/RxSwift/LICENSE.md: -------------------------------------------------------------------------------- 1 | **The MIT License** 2 | **Copyright © 2015 Krunoslav Zaher, Shai Mishali** 3 | **All rights reserved.** 4 | 5 | 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: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | 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. 10 | -------------------------------------------------------------------------------- /Pods/RxDataSources/Sources/RxDataSources/Array+Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Array+Extensions.swift 3 | // RxDataSources 4 | // 5 | // Created by Krunoslav Zaher on 4/26/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | import Foundation 11 | 12 | extension Array where Element: SectionModelType { 13 | mutating func moveFromSourceIndexPath(_ sourceIndexPath: IndexPath, destinationIndexPath: IndexPath) { 14 | let sourceSection = self[sourceIndexPath.section] 15 | var sourceItems = sourceSection.items 16 | 17 | let sourceItem = sourceItems.remove(at: sourceIndexPath.item) 18 | 19 | let sourceSectionNew = Element(original: sourceSection, items: sourceItems) 20 | self[sourceIndexPath.section] = sourceSectionNew 21 | 22 | let destinationSection = self[destinationIndexPath.section] 23 | var destinationItems = destinationSection.items 24 | destinationItems.insert(sourceItem, at: destinationIndexPath.item) 25 | 26 | self[destinationIndexPath.section] = Element(original: destinationSection, items: destinationItems) 27 | } 28 | } 29 | #endif 30 | -------------------------------------------------------------------------------- /Pods/Differentiator/LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 RxSwift Community 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 all 13 | 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 THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Pods/RxDataSources/LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 RxSwift Community 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 all 13 | 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 THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Pods/SnapKit/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit 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 | -------------------------------------------------------------------------------- /Pods/RxDataSources/Sources/RxDataSources/RxCollectionViewSectionedReloadDataSource.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxCollectionViewSectionedReloadDataSource.swift 3 | // RxExample 4 | // 5 | // Created by Krunoslav Zaher on 7/2/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | import Foundation 11 | import UIKit 12 | #if !RX_NO_MODULE 13 | import RxSwift 14 | import RxCocoa 15 | #endif 16 | import Differentiator 17 | 18 | open class RxCollectionViewSectionedReloadDataSource 19 | : CollectionViewSectionedDataSource
20 | , RxCollectionViewDataSourceType { 21 | 22 | public typealias Element = [Section] 23 | 24 | open func collectionView(_ collectionView: UICollectionView, observedEvent: Event) { 25 | Binder(self) { dataSource, element in 26 | #if DEBUG 27 | dataSource._dataSourceBound = true 28 | #endif 29 | dataSource.setSections(element) 30 | collectionView.reloadData() 31 | collectionView.collectionViewLayout.invalidateLayout() 32 | }.on(observedEvent) 33 | } 34 | } 35 | #endif 36 | -------------------------------------------------------------------------------- /Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - Differentiator (5.0.0) 3 | - RxCocoa (6.2.0): 4 | - RxRelay (= 6.2.0) 5 | - RxSwift (= 6.2.0) 6 | - RxDataSources (5.0.0): 7 | - Differentiator (~> 5.0) 8 | - RxCocoa (~> 6.0) 9 | - RxSwift (~> 6.0) 10 | - RxRelay (6.2.0): 11 | - RxSwift (= 6.2.0) 12 | - RxSwift (6.2.0) 13 | - SharkORM (2.3.62) 14 | - SnapKit (5.0.1) 15 | 16 | DEPENDENCIES: 17 | - RxDataSources 18 | - RxRelay 19 | - RxSwift 20 | - SharkORM 21 | - SnapKit 22 | 23 | SPEC REPOS: 24 | trunk: 25 | - Differentiator 26 | - RxCocoa 27 | - RxDataSources 28 | - RxRelay 29 | - RxSwift 30 | - SharkORM 31 | - SnapKit 32 | 33 | SPEC CHECKSUMS: 34 | Differentiator: e8497ceab83c1b10ca233716d547b9af21b9344d 35 | RxCocoa: 4baf94bb35f2c0ab31bc0cb9f1900155f646ba42 36 | RxDataSources: aa47cc1ed6c500fa0dfecac5c979b723542d79cf 37 | RxRelay: e72dbfd157807478401ef1982e1c61c945c94b2f 38 | RxSwift: d356ab7bee873611322f134c5f9ef379fa183d8f 39 | SharkORM: ff65244dfc2e1fa4613badad7c42f6febc1951cc 40 | SnapKit: 97b92857e3df3a0c71833cce143274bf6ef8e5eb 41 | 42 | PODFILE CHECKSUM: db392dac9ac4066a627cf5089adff3692f870a5d 43 | 44 | COCOAPODS: 1.10.1 45 | -------------------------------------------------------------------------------- /Pods/Manifest.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - Differentiator (5.0.0) 3 | - RxCocoa (6.2.0): 4 | - RxRelay (= 6.2.0) 5 | - RxSwift (= 6.2.0) 6 | - RxDataSources (5.0.0): 7 | - Differentiator (~> 5.0) 8 | - RxCocoa (~> 6.0) 9 | - RxSwift (~> 6.0) 10 | - RxRelay (6.2.0): 11 | - RxSwift (= 6.2.0) 12 | - RxSwift (6.2.0) 13 | - SharkORM (2.3.62) 14 | - SnapKit (5.0.1) 15 | 16 | DEPENDENCIES: 17 | - RxDataSources 18 | - RxRelay 19 | - RxSwift 20 | - SharkORM 21 | - SnapKit 22 | 23 | SPEC REPOS: 24 | trunk: 25 | - Differentiator 26 | - RxCocoa 27 | - RxDataSources 28 | - RxRelay 29 | - RxSwift 30 | - SharkORM 31 | - SnapKit 32 | 33 | SPEC CHECKSUMS: 34 | Differentiator: e8497ceab83c1b10ca233716d547b9af21b9344d 35 | RxCocoa: 4baf94bb35f2c0ab31bc0cb9f1900155f646ba42 36 | RxDataSources: aa47cc1ed6c500fa0dfecac5c979b723542d79cf 37 | RxRelay: e72dbfd157807478401ef1982e1c61c945c94b2f 38 | RxSwift: d356ab7bee873611322f134c5f9ef379fa183d8f 39 | SharkORM: ff65244dfc2e1fa4613badad7c42f6febc1951cc 40 | SnapKit: 97b92857e3df3a0c71833cce143274bf6ef8e5eb 41 | 42 | PODFILE CHECKSUM: db392dac9ac4066a627cf5089adff3692f870a5d 43 | 44 | COCOAPODS: 1.10.1 45 | -------------------------------------------------------------------------------- /Pods/RxRelay/RxRelay/PublishRelay.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PublishRelay.swift 3 | // RxRelay 4 | // 5 | // Created by Krunoslav Zaher on 3/28/15. 6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import RxSwift 10 | 11 | /// PublishRelay is a wrapper for `PublishSubject`. 12 | /// 13 | /// Unlike `PublishSubject` it can't terminate with error or completed. 14 | public final class PublishRelay: ObservableType { 15 | private let subject: PublishSubject 16 | 17 | // Accepts `event` and emits it to subscribers 18 | public func accept(_ event: Element) { 19 | self.subject.onNext(event) 20 | } 21 | 22 | /// Initializes with internal empty subject. 23 | public init() { 24 | self.subject = PublishSubject() 25 | } 26 | 27 | /// Subscribes observer 28 | public func subscribe(_ observer: Observer) -> Disposable where Observer.Element == Element { 29 | self.subject.subscribe(observer) 30 | } 31 | 32 | /// - returns: Canonical interface for push style sequence 33 | public func asObservable() -> Observable { 34 | self.subject.asObservable() 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /Pods/SharkORM/LICENSE: -------------------------------------------------------------------------------- 1 | This project is licensed under the MIT license. 2 | 3 | Copyright (c) 2013 - 2014 CocoaPods Dev Team 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 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/Foundation/NotificationCenter+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NotificationCenter+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 5/2/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import RxSwift 11 | 12 | extension Reactive where Base: NotificationCenter { 13 | /** 14 | Transforms notifications posted to notification center to observable sequence of notifications. 15 | 16 | - parameter name: Optional name used to filter notifications. 17 | - parameter object: Optional object used to filter notifications. 18 | - returns: Observable sequence of posted notifications. 19 | */ 20 | public func notification(_ name: Notification.Name?, object: AnyObject? = nil) -> Observable { 21 | return Observable.create { [weak object] observer in 22 | let nsObserver = self.base.addObserver(forName: name, object: object, queue: nil) { notification in 23 | observer.on(.next(notification)) 24 | } 25 | 26 | return Disposables.create { 27 | self.base.removeObserver(nsObserver) 28 | } 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/Proxies/RxSearchBarDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxSearchBarDelegateProxy.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 7/4/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | extension UISearchBar: HasDelegate { 15 | public typealias Delegate = UISearchBarDelegate 16 | } 17 | 18 | /// For more information take a look at `DelegateProxyType`. 19 | open class RxSearchBarDelegateProxy 20 | : DelegateProxy 21 | , DelegateProxyType 22 | , UISearchBarDelegate { 23 | 24 | /// Typed parent object. 25 | public weak private(set) var searchBar: UISearchBar? 26 | 27 | /// - parameter searchBar: Parent object for delegate proxy. 28 | public init(searchBar: ParentObject) { 29 | self.searchBar = searchBar 30 | super.init(parentObject: searchBar, delegateProxy: RxSearchBarDelegateProxy.self) 31 | } 32 | 33 | // Register known implementations 34 | public static func registerKnownImplementations() { 35 | self.register { RxSearchBarDelegateProxy(searchBar: $0) } 36 | } 37 | } 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Extensions/Bag+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Bag+Rx.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 10/19/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | 10 | // MARK: forEach 11 | 12 | @inline(__always) 13 | func dispatch(_ bag: Bag<(Event) -> Void>, _ event: Event) { 14 | bag._value0?(event) 15 | 16 | if bag._onlyFastPath { 17 | return 18 | } 19 | 20 | let pairs = bag._pairs 21 | for i in 0 ..< pairs.count { 22 | pairs[i].value(event) 23 | } 24 | 25 | if let dictionary = bag._dictionary { 26 | for element in dictionary.values { 27 | element(event) 28 | } 29 | } 30 | } 31 | 32 | /// Dispatches `dispose` to all disposables contained inside bag. 33 | func disposeAll(in bag: Bag) { 34 | bag._value0?.dispose() 35 | 36 | if bag._onlyFastPath { 37 | return 38 | } 39 | 40 | let pairs = bag._pairs 41 | for i in 0 ..< pairs.count { 42 | pairs[i].value.dispose() 43 | } 44 | 45 | if let dictionary = bag._dictionary { 46 | for element in dictionary.values { 47 | element.dispose() 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/Proxies/RxPickerViewDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxPickerViewDelegateProxy.swift 3 | // RxCocoa 4 | // 5 | // Created by Segii Shulga on 5/12/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) 10 | 11 | import RxSwift 12 | import UIKit 13 | 14 | extension UIPickerView: HasDelegate { 15 | public typealias Delegate = UIPickerViewDelegate 16 | } 17 | 18 | open class RxPickerViewDelegateProxy 19 | : DelegateProxy 20 | , DelegateProxyType 21 | , UIPickerViewDelegate { 22 | 23 | /// Typed parent object. 24 | public weak private(set) var pickerView: UIPickerView? 25 | 26 | /// - parameter pickerView: Parent object for delegate proxy. 27 | public init(pickerView: ParentObject) { 28 | self.pickerView = pickerView 29 | super.init(parentObject: pickerView, delegateProxy: RxPickerViewDelegateProxy.self) 30 | } 31 | 32 | // Register known implementationss 33 | public static func registerKnownImplementations() { 34 | self.register { RxPickerViewDelegateProxy(pickerView: $0) } 35 | } 36 | } 37 | #endif 38 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTextStorageDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxTextStorageDelegateProxy.swift 3 | // RxCocoa 4 | // 5 | // Created by Segii Shulga on 12/30/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import RxSwift 12 | import UIKit 13 | 14 | extension NSTextStorage: HasDelegate { 15 | public typealias Delegate = NSTextStorageDelegate 16 | } 17 | 18 | open class RxTextStorageDelegateProxy 19 | : DelegateProxy 20 | , DelegateProxyType 21 | , NSTextStorageDelegate { 22 | 23 | /// Typed parent object. 24 | public weak private(set) var textStorage: NSTextStorage? 25 | 26 | /// - parameter textStorage: Parent object for delegate proxy. 27 | public init(textStorage: NSTextStorage) { 28 | self.textStorage = textStorage 29 | super.init(parentObject: textStorage, delegateProxy: RxTextStorageDelegateProxy.self) 30 | } 31 | 32 | // Register known implementations 33 | public static func registerKnownImplementations() { 34 | self.register { RxTextStorageDelegateProxy(textStorage: $0) } 35 | } 36 | } 37 | #endif 38 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTabBarControllerDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxTabBarControllerDelegateProxy.swift 3 | // RxCocoa 4 | // 5 | // Created by Yusuke Kita on 2016/12/07. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | extension UITabBarController: HasDelegate { 15 | public typealias Delegate = UITabBarControllerDelegate 16 | } 17 | 18 | /// For more information take a look at `DelegateProxyType`. 19 | open class RxTabBarControllerDelegateProxy 20 | : DelegateProxy 21 | , DelegateProxyType 22 | , UITabBarControllerDelegate { 23 | 24 | /// Typed parent object. 25 | public weak private(set) var tabBar: UITabBarController? 26 | 27 | /// - parameter tabBar: Parent object for delegate proxy. 28 | public init(tabBar: ParentObject) { 29 | self.tabBar = tabBar 30 | super.init(parentObject: tabBar, delegateProxy: RxTabBarControllerDelegateProxy.self) 31 | } 32 | 33 | // Register known implementations 34 | public static func registerKnownImplementations() { 35 | self.register { RxTabBarControllerDelegateProxy(tabBar: $0) } 36 | } 37 | } 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /Tachiyomi/Source/Interface/Browse/BrowseSourcesViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jacob King on 01/09/2021. 3 | // 4 | 5 | import SnapKit 6 | import UIKit 7 | 8 | class BrowseSourcesViewController: BaseViewController { 9 | 10 | private lazy var tableView: UITableView = { 11 | let it = UITableView() 12 | it.translatesAutoresizingMaskIntoConstraints = false 13 | it.backgroundColor = .clear 14 | return it 15 | }() 16 | 17 | private lazy var noResultsView: NoResultsView = { 18 | let it = NoResultsView(text: "You don't have any sources.") 19 | it.translatesAutoresizingMaskIntoConstraints = false 20 | // it.isHidden = true 21 | return it 22 | }() 23 | 24 | override func viewDidLoad() { 25 | super.viewDidLoad() 26 | configureSubviews() 27 | } 28 | 29 | private func configureSubviews() { 30 | [tableView, noResultsView].forEach(view.addSubview) 31 | 32 | tableView.snp.makeConstraints { make in 33 | make.edges.equalToSuperview() 34 | } 35 | 36 | noResultsView.snp.makeConstraints { make in 37 | make.center.equalTo(tableView) 38 | make.width.equalTo(tableView).dividedBy(2) 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Observables/Decode.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Decode.swift 3 | // RxSwift 4 | // 5 | // Created by Shai Mishali on 24/07/2020. 6 | // Copyright © 2020 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public extension ObservableType where Element == Data { 12 | /// Attempt to decode the emitted `Data` using a provided decoder. 13 | /// 14 | /// - parameter type: A `Decodable`-conforming type to attempt to decode to 15 | /// - parameter decoder: A capable decoder, e.g. `JSONDecoder` or `PropertyListDecoder` 16 | /// 17 | /// - note: If using a custom decoder, it must conform to the `DataDecoder` protocol. 18 | /// 19 | /// - returns: An `Observable` of the decoded type 20 | func decode(type: Item.Type, 22 | decoder: Decoder) -> Observable { 23 | map { try decoder.decode(type, from: $0) } 24 | } 25 | } 26 | 27 | /// Represents an entity capable of decoding raw `Data` 28 | /// into a concrete `Decodable` type 29 | public protocol DataDecoder { 30 | func decode(_ type: Item.Type, from data: Data) throws -> Item 31 | } 32 | 33 | extension JSONDecoder: DataDecoder {} 34 | extension PropertyListDecoder: DataDecoder {} 35 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/UIDatePicker+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIDatePicker+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Daniel Tartaglia on 5/31/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) 10 | 11 | import RxSwift 12 | import UIKit 13 | 14 | extension Reactive where Base: UIDatePicker { 15 | /// Reactive wrapper for `date` property. 16 | public var date: ControlProperty { 17 | value 18 | } 19 | 20 | /// Reactive wrapper for `date` property. 21 | public var value: ControlProperty { 22 | return base.rx.controlPropertyWithDefaultEvents( 23 | getter: { datePicker in 24 | datePicker.date 25 | }, setter: { datePicker, value in 26 | datePicker.date = value 27 | } 28 | ) 29 | } 30 | 31 | /// Reactive wrapper for `countDownDuration` property. 32 | public var countDownDuration: ControlProperty { 33 | return base.rx.controlPropertyWithDefaultEvents( 34 | getter: { datePicker in 35 | datePicker.countDownDuration 36 | }, setter: { datePicker, value in 37 | datePicker.countDownDuration = value 38 | } 39 | ) 40 | } 41 | } 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /Tachiyomi/Source/Interface/Browse/BrowseExtensionsViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jacob King on 01/09/2021. 3 | // 4 | 5 | import SnapKit 6 | import UIKit 7 | 8 | class BrowseExtensionsViewController: BaseViewController { 9 | 10 | private lazy var tableView: UITableView = { 11 | let it = UITableView() 12 | it.translatesAutoresizingMaskIntoConstraints = false 13 | it.backgroundColor = .clear 14 | return it 15 | }() 16 | 17 | private lazy var noResultsView: NoResultsView = { 18 | let it = NoResultsView(text: "You don't have any extension repositories configured.", cta: "Add one?") 19 | it.translatesAutoresizingMaskIntoConstraints = false 20 | // it.isHidden = true 21 | return it 22 | }() 23 | 24 | override func viewDidLoad() { 25 | super.viewDidLoad() 26 | configureSubviews() 27 | } 28 | 29 | private func configureSubviews() { 30 | [tableView, noResultsView].forEach(view.addSubview) 31 | 32 | tableView.snp.makeConstraints { make in 33 | make.edges.equalToSuperview() 34 | } 35 | 36 | noResultsView.snp.makeConstraints { make in 37 | make.center.equalTo(tableView) 38 | make.width.equalTo(tableView).dividedBy(2) 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /Tachiyomi/Source/Interface/Library/LibraryRootViewModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jacob King on 31/08/2021. 3 | // 4 | 5 | import Foundation 6 | import UIKit 7 | import RxSwift 8 | import RxDataSources 9 | 10 | class LibraryRootViewModel { 11 | 12 | weak var collectionView: UICollectionView? 13 | let disposeBag = DisposeBag() 14 | 15 | // TEMP Source 16 | let itemSource = Observable.just([ 17 | LibraryItem(title: "Himegoto", imageUrl: nil), 18 | LibraryItem(title: "Bokutachi wa benkyou ga dekinai", imageUrl: nil), 19 | LibraryItem(title: "Futaribeya", imageUrl: nil), 20 | LibraryItem(title: "Yagate kimi ni naru", imageUrl: nil), 21 | LibraryItem(title: "Attack on Titan", imageUrl: nil), 22 | LibraryItem(title: "One Piece", imageUrl: nil) 23 | ]) 24 | 25 | init(collectionView: UICollectionView) { 26 | self.collectionView = collectionView 27 | 28 | collectionView.register(LibraryItemCollectionViewCell.self, forCellWithReuseIdentifier: LibraryItemCollectionViewCell.identifier) 29 | itemSource.bind(to: collectionView.rx.items(cellIdentifier: LibraryItemCollectionViewCell.identifier, cellType: LibraryItemCollectionViewCell.self)) { index, model, cell in 30 | cell.bind(to: model) 31 | } 32 | .disposed(by: disposeBag) 33 | } 34 | } -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/Proxies/RxSearchControllerDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxSearchControllerDelegateProxy.swift 3 | // RxCocoa 4 | // 5 | // Created by Segii Shulga on 3/17/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) 10 | 11 | import RxSwift 12 | import UIKit 13 | 14 | extension UISearchController: HasDelegate { 15 | public typealias Delegate = UISearchControllerDelegate 16 | } 17 | 18 | /// For more information take a look at `DelegateProxyType`. 19 | open class RxSearchControllerDelegateProxy 20 | : DelegateProxy 21 | , DelegateProxyType 22 | , UISearchControllerDelegate { 23 | 24 | /// Typed parent object. 25 | public weak private(set) var searchController: UISearchController? 26 | 27 | /// - parameter searchController: Parent object for delegate proxy. 28 | public init(searchController: UISearchController) { 29 | self.searchController = searchController 30 | super.init(parentObject: searchController, delegateProxy: RxSearchControllerDelegateProxy.self) 31 | } 32 | 33 | // Register known implementations 34 | public static func registerKnownImplementations() { 35 | self.register { RxSearchControllerDelegateProxy(searchController: $0) } 36 | } 37 | } 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/ObserverType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ObserverType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 2/8/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Supports push-style iteration over an observable sequence. 10 | public protocol ObserverType { 11 | /// The type of elements in sequence that observer can observe. 12 | associatedtype Element 13 | 14 | /// Notify observer about sequence event. 15 | /// 16 | /// - parameter event: Event that occurred. 17 | func on(_ event: Event) 18 | } 19 | 20 | /// Convenience API extensions to provide alternate next, error, completed events 21 | extension ObserverType { 22 | 23 | /// Convenience method equivalent to `on(.next(element: Element))` 24 | /// 25 | /// - parameter element: Next element to send to observer(s) 26 | public func onNext(_ element: Element) { 27 | self.on(.next(element)) 28 | } 29 | 30 | /// Convenience method equivalent to `on(.completed)` 31 | public func onCompleted() { 32 | self.on(.completed) 33 | } 34 | 35 | /// Convenience method equivalent to `on(.error(Swift.Error))` 36 | /// - parameter error: Swift.Error to send to observer(s) 37 | public func onError(_ error: Swift.Error) { 38 | self.on(.error(error)) 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/GroupedObservable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // GroupedObservable.swift 3 | // RxSwift 4 | // 5 | // Created by Tomi Koskinen on 01/12/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Represents an observable sequence of elements that have a common key. 10 | public struct GroupedObservable : ObservableType { 11 | /// Gets the common key. 12 | public let key: Key 13 | 14 | private let source: Observable 15 | 16 | /// Initializes grouped observable sequence with key and source observable sequence. 17 | /// 18 | /// - parameter key: Grouped observable sequence key 19 | /// - parameter source: Observable sequence that represents sequence of elements for the key 20 | /// - returns: Grouped observable sequence of elements for the specific key 21 | public init(key: Key, source: Observable) { 22 | self.key = key 23 | self.source = source 24 | } 25 | 26 | /// Subscribes `observer` to receive events for this sequence. 27 | public func subscribe(_ observer: Observer) -> Disposable where Observer.Element == Element { 28 | self.source.subscribe(observer) 29 | } 30 | 31 | /// Converts `self` to `Observable` sequence. 32 | public func asObservable() -> Observable { 33 | self.source 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Pods/SharkORM/SharkORM/Sync/Comms/SyncComms.m: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2010-2018 SharkSync 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 all 13 | // 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 THE 21 | // SOFTWARE. 22 | 23 | 24 | #import "SyncComms.h" 25 | 26 | @implementation SyncComms 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Pods/SharkORM/SharkORM/Sync/Comms/SyncComms.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2010-2018 SharkSync 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 all 13 | // 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 THE 21 | // SOFTWARE. 22 | 23 | 24 | #import 25 | 26 | @interface SyncComms : NSObject 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Pods/SharkORM/SharkORM/Core/SRKRelationship.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2010-2018 SharkSync 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 all 13 | // 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 THE 21 | // SOFTWARE. 22 | 23 | 24 | #import 25 | 26 | @interface SRKRelationship : NSObject 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Traits/Infallible/ObservableConvertibleType+Infallible.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ObservableConvertibleType+Infallible.swift 3 | // RxSwift 4 | // 5 | // Created by Shai Mishali on 27/08/2020. 6 | // Copyright © 2020 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | public extension ObservableConvertibleType { 10 | /// Convert to an `Infallible` 11 | /// 12 | /// - returns: `Infallible` 13 | func asInfallible(onErrorJustReturn element: Element) -> Infallible { 14 | Infallible(self.asObservable().catchAndReturn(element)) 15 | } 16 | 17 | /// Convert to an `Infallible` 18 | /// 19 | /// - parameter onErroFallbackTo: Fall back to this provided infallible on error 20 | /// 21 | /// 22 | /// - returns: `Infallible` 23 | func asInfallible(onErrorFallbackTo infallible: Infallible) -> Infallible { 24 | Infallible(self.asObservable().catch { _ in infallible.asObservable() }) 25 | } 26 | 27 | /// Convert to an `Infallible` 28 | /// 29 | /// - parameter onErrorRecover: Recover with the this infallible closure 30 | /// 31 | /// - returns: `Infallible` 32 | func asInfallible(onErrorRecover: @escaping (Swift.Error) -> Infallible) -> Infallible { 33 | Infallible(asObservable().catch { onErrorRecover($0).asObservable() }) 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /Pods/SharkORM/SharkORM/Core/Events/SRKEventRegistryObject.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2010-2018 SharkSync 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 all 13 | // 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 THE 21 | // SOFTWARE. 22 | 23 | #import "SharkORM.h" 24 | 25 | @interface SRKEventRegistryObject : SRKObject 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Pods/SharkORM/SharkORM/Core/Events/SRKEvent.m: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2010-2018 SharkSync 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 all 13 | // 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 THE 21 | // SOFTWARE. 22 | 23 | 24 | #import 25 | #import "SharkORM.h" 26 | 27 | @implementation SRKEvent 28 | @end 29 | -------------------------------------------------------------------------------- /Pods/SharkORM/SharkORM/Core/Events/SRKEventBlockHolder.m: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2010-2018 SharkSync 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 all 13 | // 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 THE 21 | // SOFTWARE. 22 | 23 | 24 | #import "SRKEventBlockHolder.h" 25 | 26 | @implementation SRKEventBlockHolder 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Pods/SharkORM/SharkORM/Core/Transactions/SRKContext.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2010-2018 SharkSync 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 all 13 | // 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 THE 21 | // SOFTWARE. 22 | 23 | 24 | 25 | #import 26 | 27 | @interface SRKContext : NSObject 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /Pods/SharkORM/SharkORM/Core/Events/SRKEventRegistryObject.m: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2010-2018 SharkSync 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 all 13 | // 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 THE 21 | // SOFTWARE. 22 | 23 | 24 | #import "SRKEventRegistryObject.h" 25 | 26 | @implementation SRKEventRegistryObject 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Pods/SharkORM/SharkORM/Sync/SRKSyncOptions.m: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2010-2018 SharkSync 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 all 13 | // 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 THE 21 | // SOFTWARE. 22 | 23 | #import "SRKSyncOptions.h" 24 | 25 | @implementation SRKSyncOptions 26 | 27 | @dynamic device_id, sync_id; 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Tachiyomi iOS 2 | ##### An iOS port of the popular [Tachiyomi Manga Reader for Android](https://github.com/tachiyomiorg/tachiyomi). 3 | 4 | ## About the Project 5 | 6 | Hello fellow manga enthusiasts! For too long now Android has had the crown when it comes to the best manga reader app with Tachoyomi absolutely destroying any alternatives out there. Having recently moved to iOS for work reasons, I found myself missing the Tachiyomi experience as nothing on iOS comes close. Being that I am capable of porting Tachiyomi to iOS (I am a mobile software developer), I thought I best have a crack at it. 7 | 8 | I should stress that this is a side project of mine and as such I make no guarentees on how quickly it will move - I will be working on it entirely in my free time (of which I don't have much!). There are a number of technical challenges with iOS, especially around how \**ahem*\* 'legitimate content' is accessed, as Apple are notiously strict on this. 9 | 10 | I am working from the Android codebase as a reference, however the port will be implemented with modern best practices in mind and will not be a like for like implementation. Additionally, not all features of the Android version will be present initially; I will be focussing on my own use case of browsing a source, adding to the library and reading - other features *may* follow after. 11 | 12 | Please feel free to star this repo to stay in the loop about updates! -------------------------------------------------------------------------------- /Pods/Differentiator/Sources/Differentiator/SectionModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SectionModel.swift 3 | // RxDataSources 4 | // 5 | // Created by Krunoslav Zaher on 6/16/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public struct SectionModel { 12 | public var model: Section 13 | public var items: [Item] 14 | 15 | public init(model: Section, items: [Item]) { 16 | self.model = model 17 | self.items = items 18 | } 19 | } 20 | 21 | extension SectionModel 22 | : SectionModelType { 23 | public typealias Identity = Section 24 | public typealias Item = ItemType 25 | 26 | public var identity: Section { 27 | return model 28 | } 29 | } 30 | 31 | extension SectionModel 32 | : CustomStringConvertible { 33 | 34 | public var description: String { 35 | return "\(self.model) > \(items)" 36 | } 37 | } 38 | 39 | extension SectionModel { 40 | public init(original: SectionModel, items: [Item]) { 41 | self.model = original.model 42 | self.items = items 43 | } 44 | } 45 | 46 | extension SectionModel 47 | : Equatable where Section: Equatable, ItemType: Equatable { 48 | 49 | public static func == (lhs: SectionModel, rhs: SectionModel) -> Bool { 50 | return lhs.model == rhs.model 51 | && lhs.items == rhs.items 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /Pods/SharkORM/SharkORM/Sync/SRKDefunctObject.m: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2010-2018 SharkSync 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 all 13 | // 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 THE 21 | // SOFTWARE. 22 | 23 | 24 | 25 | #import "SRKDefunctObject.h" 26 | 27 | @implementation SRKDefunctObject 28 | 29 | @dynamic defunctId; 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /Pods/SharkORM/SharkORM/Core/Registry/SRKRegistryEntry.m: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2010-2018 SharkSync 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 all 13 | // 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 THE 21 | // SOFTWARE. 22 | 23 | 24 | 25 | #import "SRKRegistryEntry.h" 26 | #import "SharkORM.h" 27 | 28 | @implementation SRKRegistryEntry 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/Proxies/RxWKNavigationDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxWKNavigationDelegateProxy.swift 3 | // RxCocoa 4 | // 5 | // Created by Giuseppe Lanza on 14/02/2020. 6 | // Copyright © 2020 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(macOS) 10 | 11 | import RxSwift 12 | import WebKit 13 | 14 | @available(iOS 8.0, OSX 10.10, OSXApplicationExtension 10.10, *) 15 | open class RxWKNavigationDelegateProxy 16 | : DelegateProxy 17 | , DelegateProxyType 18 | , WKNavigationDelegate { 19 | 20 | /// Typed parent object. 21 | public weak private(set) var webView: WKWebView? 22 | 23 | /// - parameter webView: Parent object for delegate proxy. 24 | public init(webView: ParentObject) { 25 | self.webView = webView 26 | super.init(parentObject: webView, delegateProxy: RxWKNavigationDelegateProxy.self) 27 | } 28 | 29 | // Register known implementations 30 | public static func registerKnownImplementations() { 31 | self.register { RxWKNavigationDelegateProxy(webView: $0) } 32 | } 33 | 34 | public static func currentDelegate(for object: WKWebView) -> WKNavigationDelegate? { 35 | object.navigationDelegate 36 | } 37 | 38 | public static func setCurrentDelegate(_ delegate: WKNavigationDelegate?, to object: WKWebView) { 39 | object.navigationDelegate = delegate 40 | } 41 | } 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /Pods/SharkORM/SharkORM/Sync/SRKDeferredChange.m: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2010-2018 SharkSync 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 all 13 | // 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 THE 21 | // SOFTWARE. 22 | 23 | 24 | 25 | #import "SRKDeferredChange.h" 26 | 27 | @implementation SRKDeferredChange 28 | 29 | @dynamic className,key,property,value; 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /Pods/SharkORM/SharkORM/Sync/SRKDefunctObject.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2010-2018 SharkSync 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 all 13 | // 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 THE 21 | // SOFTWARE. 22 | 23 | 24 | 25 | #import "SharkORM.h" 26 | 27 | @interface SRKDefunctObject : SRKObject 28 | 29 | @property (strong) NSString* defunctId; 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /Pods/SharkORM/SharkORM/Sync/SRKSyncRegisteredClass.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2010-2018 SharkSync 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 all 13 | // 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 THE 21 | // SOFTWARE. 22 | 23 | #import "SharkORM.h" 24 | 25 | @interface SRKSyncRegisteredClass : SRKObject 26 | 27 | @property (strong) NSString* className; 28 | 29 | @end 30 | -------------------------------------------------------------------------------- /Pods/RxRelay/RxRelay/BehaviorRelay.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BehaviorRelay.swift 3 | // RxRelay 4 | // 5 | // Created by Krunoslav Zaher on 10/7/17. 6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import RxSwift 10 | 11 | /// BehaviorRelay is a wrapper for `BehaviorSubject`. 12 | /// 13 | /// Unlike `BehaviorSubject` it can't terminate with error or completed. 14 | public final class BehaviorRelay: ObservableType { 15 | private let subject: BehaviorSubject 16 | 17 | /// Accepts `event` and emits it to subscribers 18 | public func accept(_ event: Element) { 19 | self.subject.onNext(event) 20 | } 21 | 22 | /// Current value of behavior subject 23 | public var value: Element { 24 | // this try! is ok because subject can't error out or be disposed 25 | return try! self.subject.value() 26 | } 27 | 28 | /// Initializes behavior relay with initial value. 29 | public init(value: Element) { 30 | self.subject = BehaviorSubject(value: value) 31 | } 32 | 33 | /// Subscribes observer 34 | public func subscribe(_ observer: Observer) -> Disposable where Observer.Element == Element { 35 | self.subject.subscribe(observer) 36 | } 37 | 38 | /// - returns: Canonical interface for push style sequence 39 | public func asObservable() -> Observable { 40 | self.subject.asObservable() 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /Pods/SharkORM/SharkORM/Core/SRKError.m: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2010-2018 SharkSync 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 all 13 | // 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 THE 21 | // SOFTWARE. 22 | 23 | 24 | 25 | #import 26 | #import "SharkORM.h" 27 | 28 | @implementation SRKError 29 | 30 | @synthesize errorMessage, sqlQuery; 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /Pods/SharkORM/SharkORM/Sync/Comms/SyncService.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2010-2018 SharkSync 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 all 13 | // 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 THE 21 | // SOFTWARE. 22 | 23 | 24 | #import 25 | 26 | @interface SyncService : NSObject 27 | 28 | + (void)StartService; 29 | + (void)StopService; 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /Pods/SharkORM/SharkORM/Core/PersistableObjects/SRKUnsupportedObject.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2010-2018 SharkSync 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 all 13 | // 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 THE 21 | // SOFTWARE. 22 | 23 | 24 | #import 25 | 26 | @interface SRKUnsupportedObject : NSObject 27 | 28 | @property (strong) NSData* object; 29 | 30 | @end 31 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Observables/First.swift: -------------------------------------------------------------------------------- 1 | // 2 | // First.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 7/31/17. 6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | private final class FirstSink : Sink, ObserverType where Observer.Element == Element? { 10 | typealias Parent = First 11 | 12 | func on(_ event: Event) { 13 | switch event { 14 | case .next(let value): 15 | self.forwardOn(.next(value)) 16 | self.forwardOn(.completed) 17 | self.dispose() 18 | case .error(let error): 19 | self.forwardOn(.error(error)) 20 | self.dispose() 21 | case .completed: 22 | self.forwardOn(.next(nil)) 23 | self.forwardOn(.completed) 24 | self.dispose() 25 | } 26 | } 27 | } 28 | 29 | final class First: Producer { 30 | private let source: Observable 31 | 32 | init(source: Observable) { 33 | self.source = source 34 | } 35 | 36 | override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Element? { 37 | let sink = FirstSink(observer: observer, cancel: cancel) 38 | let subscription = self.source.subscribe(sink) 39 | return (sink: sink, subscription: subscription) 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /Pods/SharkORM/SharkORM/Sync/SRKSyncOptions.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2010-2018 SharkSync 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 all 13 | // 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 THE 21 | // SOFTWARE. 22 | 23 | 24 | 25 | #import "SharkORM.h" 26 | 27 | @interface SRKSyncOptions : SRKObject 28 | 29 | @property (strong) NSString* device_id; 30 | @property (strong) NSString* sync_id; 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/Proxies/RxNavigationControllerDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxNavigationControllerDelegateProxy.swift 3 | // RxCocoa 4 | // 5 | // Created by Diogo on 13/04/17. 6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | extension UINavigationController: HasDelegate { 15 | public typealias Delegate = UINavigationControllerDelegate 16 | } 17 | 18 | /// For more information take a look at `DelegateProxyType`. 19 | open class RxNavigationControllerDelegateProxy 20 | : DelegateProxy 21 | , DelegateProxyType 22 | , UINavigationControllerDelegate { 23 | 24 | /// Typed parent object. 25 | public weak private(set) var navigationController: UINavigationController? 26 | 27 | /// - parameter navigationController: Parent object for delegate proxy. 28 | public init(navigationController: ParentObject) { 29 | self.navigationController = navigationController 30 | super.init(parentObject: navigationController, delegateProxy: RxNavigationControllerDelegateProxy.self) 31 | } 32 | 33 | // Register known implementations 34 | public static func registerKnownImplementations() { 35 | self.register { RxNavigationControllerDelegateProxy(navigationController: $0) } 36 | } 37 | } 38 | #endif 39 | -------------------------------------------------------------------------------- /Pods/SharkORM/SharkORM/Sync/Comms/SyncNetwork.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2010-2018 SharkSync 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 all 13 | // 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 THE 21 | // SOFTWARE. 22 | 23 | 24 | #import 25 | 26 | @interface SyncNetwork : NSObject 27 | 28 | + (instancetype)sharedInstance; 29 | - (void)startService; 30 | - (void)stopService; 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/NSTextStorage+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NSTextStorage+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Segii Shulga on 12/30/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | import RxSwift 11 | import UIKit 12 | 13 | extension Reactive where Base: NSTextStorage { 14 | 15 | /// Reactive wrapper for `delegate`. 16 | /// 17 | /// For more information take a look at `DelegateProxyType` protocol documentation. 18 | public var delegate: DelegateProxy { 19 | return RxTextStorageDelegateProxy.proxy(for: base) 20 | } 21 | 22 | /// Reactive wrapper for `delegate` message. 23 | public var didProcessEditingRangeChangeInLength: Observable<(editedMask: NSTextStorage.EditActions, editedRange: NSRange, delta: Int)> { 24 | return delegate 25 | .methodInvoked(#selector(NSTextStorageDelegate.textStorage(_:didProcessEditing:range:changeInLength:))) 26 | .map { a in 27 | let editedMask = NSTextStorage.EditActions(rawValue: try castOrThrow(UInt.self, a[1]) ) 28 | let editedRange = try castOrThrow(NSValue.self, a[2]).rangeValue 29 | let delta = try castOrThrow(Int.self, a[3]) 30 | 31 | return (editedMask, editedRange, delta) 32 | } 33 | } 34 | } 35 | #endif 36 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Observables/StartWith.swift: -------------------------------------------------------------------------------- 1 | // 2 | // StartWith.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 4/6/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | extension ObservableType { 10 | 11 | /** 12 | Prepends a sequence of values to an observable sequence. 13 | 14 | - seealso: [startWith operator on reactivex.io](http://reactivex.io/documentation/operators/startwith.html) 15 | 16 | - parameter elements: Elements to prepend to the specified sequence. 17 | - returns: The source sequence prepended with the specified values. 18 | */ 19 | public func startWith(_ elements: Element ...) 20 | -> Observable { 21 | return StartWith(source: self.asObservable(), elements: elements) 22 | } 23 | } 24 | 25 | final private class StartWith: Producer { 26 | let elements: [Element] 27 | let source: Observable 28 | 29 | init(source: Observable, elements: [Element]) { 30 | self.source = source 31 | self.elements = elements 32 | super.init() 33 | } 34 | 35 | override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Element { 36 | for e in self.elements { 37 | observer.on(.next(e)) 38 | } 39 | 40 | return (sink: Disposables.create(), subscription: self.source.subscribe(observer)) 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /Pods/SharkORM/SharkORM/Core/PersistableObjects/SRKAES256Extension.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2010-2018 SharkSync 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 all 13 | // 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 THE 21 | // SOFTWARE. 22 | #import 23 | 24 | @interface NSData (SharkORMEncryption) 25 | - (NSData *)SRKAES256EncryptWithKey:(NSString *)key; 26 | - (NSData *)SRKAES256DecryptWithKey:(NSString *)key; 27 | @end 28 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTextViewDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxTextViewDelegateProxy.swift 3 | // RxCocoa 4 | // 5 | // Created by Yuta ToKoRo on 7/19/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | /// For more information take a look at `DelegateProxyType`. 15 | open class RxTextViewDelegateProxy 16 | : RxScrollViewDelegateProxy 17 | , UITextViewDelegate { 18 | 19 | /// Typed parent object. 20 | public weak private(set) var textView: UITextView? 21 | 22 | /// - parameter textview: Parent object for delegate proxy. 23 | public init(textView: UITextView) { 24 | self.textView = textView 25 | super.init(scrollView: textView) 26 | } 27 | 28 | // MARK: delegate methods 29 | 30 | /// For more information take a look at `DelegateProxyType`. 31 | @objc open func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool { 32 | /** 33 | We've had some issues with observing text changes. This is here just in case we need the same hack in future and that 34 | we wouldn't need to change the public interface. 35 | */ 36 | let forwardToDelegate = self.forwardToDelegate() as? UITextViewDelegate 37 | return forwardToDelegate?.textView?(textView, 38 | shouldChangeTextIn: range, 39 | replacementText: text) ?? true 40 | } 41 | } 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /Pods/SharkORM/SharkORM/Private/SRKCommitOptions+Private.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2010-2018 SharkSync 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 all 13 | // 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 THE 21 | // SOFTWARE. 22 | 23 | #ifndef SRKCommitOptions_Private_h 24 | #define SRKCommitOptions_Private_h 25 | 26 | @interface SRKCommitOptions () 27 | 28 | - (void)setDefaultOptions; 29 | 30 | @end 31 | 32 | #endif /* SRKCommitOptions_Private_h */ 33 | -------------------------------------------------------------------------------- /Pods/SharkORM/SharkORM/Core/SRKSQLiteHandle.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2010-2018 SharkSync 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 all 13 | // 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 THE 21 | // SOFTWARE. 22 | 23 | 24 | 25 | #import 26 | #import "sqlite3.h" 27 | 28 | @interface SRKSQLiteHandle : NSObject 29 | 30 | @property sqlite3* databaseHandle; 31 | 32 | - (instancetype)initWithHandle:(sqlite3*)handle; 33 | 34 | @end 35 | -------------------------------------------------------------------------------- /Pods/SnapKit/Source/ConstraintView.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SnapKit 3 | // 4 | // Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | #if os(iOS) || os(tvOS) 25 | import UIKit 26 | #else 27 | import AppKit 28 | #endif 29 | 30 | 31 | #if os(iOS) || os(tvOS) 32 | public typealias ConstraintView = UIView 33 | #else 34 | public typealias ConstraintView = NSView 35 | #endif 36 | -------------------------------------------------------------------------------- /Pods/SharkORM/SharkORM/Sync/SRKSyncRegisteredClass.m: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2010-2018 SharkSync 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 all 13 | // 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 THE 21 | // SOFTWARE. 22 | 23 | #import "SRKSyncRegisteredClass.h" 24 | 25 | @implementation SRKSyncRegisteredClass 26 | 27 | @dynamic className; 28 | 29 | + (SRKIndexDefinition *)indexDefinitionForEntity { 30 | return [[SRKIndexDefinition alloc] init:@[@"className"]]; 31 | } 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /Pods/SnapKit/Source/ConstraintInsets.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SnapKit 3 | // 4 | // Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | #if os(iOS) || os(tvOS) 25 | import UIKit 26 | #else 27 | import AppKit 28 | #endif 29 | 30 | 31 | #if os(iOS) || os(tvOS) 32 | public typealias ConstraintInsets = UIEdgeInsets 33 | #else 34 | public typealias ConstraintInsets = NSEdgeInsets 35 | #endif 36 | -------------------------------------------------------------------------------- /Pods/SharkORM/SharkORM/Core/PersistableObjects/SRKEncryptedObject.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2010-2018 SharkSync 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 all 13 | // 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 THE 21 | // SOFTWARE. 22 | #import 23 | 24 | @interface SRKEncryptedObject : NSObject 25 | 26 | @property (strong) NSData* object; 27 | @property (strong) NSNumber* obscurer; 28 | 29 | - (BOOL)encryptObject:(id)object; 30 | - (id)decryptObject; 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /Pods/SharkORM/SharkORM/Core/SRKRelationship.m: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2010-2018 SharkSync 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 all 13 | // 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 THE 21 | // SOFTWARE. 22 | 23 | 24 | 25 | #import "SharkORM.h" 26 | 27 | @implementation SRKRelationship 28 | 29 | @synthesize sourceProperty, sourceClass, targetProperty, targetClass, entityPropertyName, relationshipType, order, linkTable, linkSourceField, linkTargetField, restrictions; 30 | 31 | @end 32 | -------------------------------------------------------------------------------- /Pods/SharkORM/SharkORM/Core/SRKSQLiteHandle.m: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2010-2018 SharkSync 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 all 13 | // 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 THE 21 | // SOFTWARE. 22 | 23 | 24 | 25 | #import "SRKSQLiteHandle.h" 26 | 27 | @implementation SRKSQLiteHandle 28 | 29 | - (instancetype)initWithHandle:(sqlite3 *)handle { 30 | self = [super init]; 31 | if (self) { 32 | self.databaseHandle = handle; 33 | } 34 | return self; 35 | } 36 | 37 | @end 38 | -------------------------------------------------------------------------------- /Pods/SharkORM/SharkORM/Sync/Comms/SRKSyncNodesList.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2010-2018 SharkSync 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 all 13 | // 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 THE 21 | // SOFTWARE. 22 | 23 | #import 24 | 25 | @interface SRKSyncNodesList : NSObject 26 | 27 | @property (strong) NSMutableArray* nodes; 28 | 29 | - (NSDictionary*)pickNode; 30 | - (void)addNodeWithAddress:(NSString*)pathAndPort priority:(int)priority; 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Observables/AddRef.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AddRef.swift 3 | // RxSwift 4 | // 5 | // Created by Junior B. on 30/10/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | final class AddRefSink : Sink, ObserverType { 10 | typealias Element = Observer.Element 11 | 12 | override init(observer: Observer, cancel: Cancelable) { 13 | super.init(observer: observer, cancel: cancel) 14 | } 15 | 16 | func on(_ event: Event) { 17 | switch event { 18 | case .next: 19 | self.forwardOn(event) 20 | case .completed, .error: 21 | self.forwardOn(event) 22 | self.dispose() 23 | } 24 | } 25 | } 26 | 27 | final class AddRef : Producer { 28 | 29 | private let source: Observable 30 | private let refCount: RefCountDisposable 31 | 32 | init(source: Observable, refCount: RefCountDisposable) { 33 | self.source = source 34 | self.refCount = refCount 35 | } 36 | 37 | override func run(_ observer: Observer, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where Observer.Element == Element { 38 | let releaseDisposable = self.refCount.retain() 39 | let sink = AddRefSink(observer: observer, cancel: cancel) 40 | let subscription = Disposables.create(releaseDisposable, self.source.subscribe(sink)) 41 | 42 | return (sink: sink, subscription: subscription) 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Traits/Infallible/Infallible+Create.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Infallible+Create.swift 3 | // RxSwift 4 | // 5 | // Created by Shai Mishali on 27/08/2020. 6 | // Copyright © 2020 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public enum InfallibleEvent { 12 | /// Next element is produced. 13 | case next(Element) 14 | 15 | /// Sequence completed successfully. 16 | case completed 17 | } 18 | 19 | extension Infallible { 20 | public typealias InfallibleObserver = (InfallibleEvent) -> Void 21 | 22 | /** 23 | Creates an observable sequence from a specified subscribe method implementation. 24 | 25 | - seealso: [create operator on reactivex.io](http://reactivex.io/documentation/operators/create.html) 26 | 27 | - parameter subscribe: Implementation of the resulting observable sequence's `subscribe` method. 28 | - returns: The observable sequence with the specified implementation for the `subscribe` method. 29 | */ 30 | public static func create(subscribe: @escaping (@escaping InfallibleObserver) -> Disposable) -> Infallible { 31 | let source = Observable.create { observer in 32 | subscribe { event in 33 | switch event { 34 | case .next(let element): 35 | observer.onNext(element) 36 | case .completed: 37 | observer.onCompleted() 38 | } 39 | } 40 | } 41 | 42 | return Infallible(source) 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /Pods/SharkORM/SharkORM/Sync/SRKDeferredChange.h: -------------------------------------------------------------------------------- 1 | // MIT License 2 | // 3 | // Copyright (c) 2010-2018 SharkSync 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 all 13 | // 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 THE 21 | // SOFTWARE. 22 | 23 | 24 | #import "SharkORM.h" 25 | 26 | @interface SRKDeferredChange : SRKObject 27 | 28 | @property (strong) NSString* className; 29 | @property (strong) NSString* key; 30 | @property (strong) NSString* property; 31 | @property (strong) NSString* value; 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /Pods/SnapKit/Source/ConstraintDirectionalInsets.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SnapKit 3 | // 4 | // Copyright (c) 2011-Present SnapKit Team - https://github.com/SnapKit 5 | // 6 | // Permission is hereby granted, free of charge, to any person obtaining a copy 7 | // of this software and associated documentation files (the "Software"), to deal 8 | // in the Software without restriction, including without limitation the rights 9 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | // copies of the Software, and to permit persons to whom the Software is 11 | // furnished to do so, subject to the following conditions: 12 | // 13 | // The above copyright notice and this permission notice shall be included in 14 | // all copies or substantial portions of the Software. 15 | // 16 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | // THE SOFTWARE. 23 | 24 | #if os(iOS) || os(tvOS) 25 | import UIKit 26 | #else 27 | import AppKit 28 | #endif 29 | 30 | 31 | #if os(iOS) || os(tvOS) 32 | @available(iOS 11.0, tvOS 11.0, *) 33 | public typealias ConstraintDirectionalInsets = NSDirectionalEdgeInsets 34 | #endif 35 | --------------------------------------------------------------------------------