├── .gitignore ├── Podfile ├── Podfile.lock ├── Pods ├── Alamofire │ ├── LICENSE │ ├── README.md │ └── Source │ │ ├── AFError.swift │ │ ├── Alamofire.swift │ │ ├── DispatchQueue+Alamofire.swift │ │ ├── MultipartFormData.swift │ │ ├── NetworkReachabilityManager.swift │ │ ├── Notifications.swift │ │ ├── ParameterEncoding.swift │ │ ├── Request.swift │ │ ├── Response.swift │ │ ├── ResponseSerialization.swift │ │ ├── Result.swift │ │ ├── ServerTrustPolicy.swift │ │ ├── SessionDelegate.swift │ │ ├── SessionManager.swift │ │ ├── TaskDelegate.swift │ │ ├── Timeline.swift │ │ └── Validation.swift ├── Firebase │ ├── .cocoapods.yml │ ├── CHANGELOG.md │ ├── Core │ │ └── Sources │ │ │ ├── Firebase.h │ │ │ └── module.modulemap │ ├── NOTICES │ └── README.md ├── FirebaseAnalytics │ └── Frameworks │ │ └── FirebaseAnalytics.framework │ │ ├── FirebaseAnalytics │ │ ├── Headers │ │ ├── FIRAnalytics+AppDelegate.h │ │ ├── FIRAnalytics.h │ │ ├── FIRAnalyticsConfiguration.h │ │ ├── FIRApp.h │ │ ├── FIRConfiguration.h │ │ ├── FIREventNames.h │ │ ├── FIROptions.h │ │ ├── FIRParameterNames.h │ │ ├── FIRUserPropertyNames.h │ │ └── FirebaseAnalytics.h │ │ └── Modules │ │ └── module.modulemap ├── FirebaseCore │ └── Frameworks │ │ └── FirebaseCore.framework │ │ ├── FirebaseCore │ │ ├── Headers │ │ ├── FIRAnalyticsConfiguration.h │ │ ├── FIRApp.h │ │ ├── FIRConfiguration.h │ │ ├── FIRLoggerLevel.h │ │ ├── FIROptions.h │ │ └── FirebaseCore.h │ │ └── Modules │ │ └── module.modulemap ├── FirebaseDatabase │ └── Frameworks │ │ └── FirebaseDatabase.framework │ │ ├── FirebaseDatabase │ │ ├── Headers │ │ ├── FIRDataEventType.h │ │ ├── FIRDataSnapshot.h │ │ ├── FIRDatabase.h │ │ ├── FIRDatabaseQuery.h │ │ ├── FIRDatabaseReference.h │ │ ├── FIRMutableData.h │ │ ├── FIRServerValue.h │ │ ├── FIRTransactionResult.h │ │ └── FirebaseDatabase.h │ │ ├── Info.plist │ │ ├── Modules │ │ └── module.modulemap │ │ └── NOTICE ├── FirebaseInstanceID │ ├── CHANGELOG.md │ ├── Frameworks │ │ └── FirebaseInstanceID.framework │ │ │ ├── FirebaseInstanceID │ │ │ ├── Headers │ │ │ ├── FIRInstanceID.h │ │ │ └── FirebaseInstanceID.h │ │ │ └── Modules │ │ │ └── module.modulemap │ └── README.md ├── GoogleToolboxForMac │ ├── Foundation │ │ ├── GTMNSData+zlib.h │ │ └── GTMNSData+zlib.m │ ├── GTMDefines.h │ ├── LICENSE │ └── README.md ├── Headers │ ├── Private │ │ └── Firebase │ │ │ └── Firebase.h │ └── Public │ │ └── Firebase │ │ └── Firebase.h ├── JSQMessagesViewController │ ├── JSQMessagesViewController │ │ ├── Assets │ │ │ └── JSQMessagesAssets.bundle │ │ │ │ ├── Base.lproj │ │ │ │ └── JSQMessages.strings │ │ │ │ ├── Images │ │ │ │ ├── bubble_min.png │ │ │ │ ├── bubble_min@2x.png │ │ │ │ ├── bubble_min@3x.png │ │ │ │ ├── bubble_min_tailless.png │ │ │ │ ├── bubble_min_tailless@2x.png │ │ │ │ ├── bubble_min_tailless@3x.png │ │ │ │ ├── bubble_regular.png │ │ │ │ ├── bubble_regular@2x.png │ │ │ │ ├── bubble_regular@3x.png │ │ │ │ ├── bubble_stroked.png │ │ │ │ ├── bubble_stroked@2x.png │ │ │ │ ├── bubble_stroked@3x.png │ │ │ │ ├── bubble_stroked_tailless.png │ │ │ │ ├── bubble_stroked_tailless@2x.png │ │ │ │ ├── bubble_stroked_tailless@3x.png │ │ │ │ ├── bubble_tailless.png │ │ │ │ ├── bubble_tailless@2x.png │ │ │ │ ├── bubble_tailless@3x.png │ │ │ │ ├── clip.png │ │ │ │ ├── clip@2x.png │ │ │ │ ├── clip@3x.png │ │ │ │ ├── pause.png │ │ │ │ ├── pause@2x.png │ │ │ │ ├── pause@3x.png │ │ │ │ ├── play.png │ │ │ │ ├── play@2x.png │ │ │ │ ├── play@3x.png │ │ │ │ ├── typing.png │ │ │ │ ├── typing@2x.png │ │ │ │ └── typing@3x.png │ │ │ │ ├── Sounds │ │ │ │ ├── message_received.aiff │ │ │ │ └── message_sent.aiff │ │ │ │ ├── ar.lproj │ │ │ │ └── JSQMessages.strings │ │ │ │ ├── de.lproj │ │ │ │ └── JSQMessages.strings │ │ │ │ ├── en.lproj │ │ │ │ └── JSQMessages.strings │ │ │ │ ├── es.lproj │ │ │ │ └── JSQMessages.strings │ │ │ │ ├── fi.lproj │ │ │ │ └── JSQMessages.strings │ │ │ │ ├── fr.lproj │ │ │ │ └── JSQMessages.strings │ │ │ │ ├── he.lproj │ │ │ │ └── JSQMessages.strings │ │ │ │ ├── id.lproj │ │ │ │ └── JSQMessages.strings │ │ │ │ ├── it.lproj │ │ │ │ └── JSQMessages.strings │ │ │ │ ├── ja.lproj │ │ │ │ └── JSQMessages.strings │ │ │ │ ├── ko.lproj │ │ │ │ └── JSQMessages.strings │ │ │ │ ├── ms.lproj │ │ │ │ └── JSQMessages.strings │ │ │ │ ├── nb.lproj │ │ │ │ └── JSQMessages.strings │ │ │ │ ├── nl.lproj │ │ │ │ └── JSQMessages.strings │ │ │ │ ├── pl.lproj │ │ │ │ └── JSQMessages.strings │ │ │ │ ├── pt.lproj │ │ │ │ └── JSQMessages.strings │ │ │ │ ├── ro.lproj │ │ │ │ └── JSQMessages.strings │ │ │ │ ├── ru.lproj │ │ │ │ └── JSQMessages.strings │ │ │ │ ├── th.lproj │ │ │ │ └── JSQMessages.strings │ │ │ │ ├── tr.lproj │ │ │ │ └── JSQMessages.strings │ │ │ │ ├── vi.lproj │ │ │ │ └── JSQMessages.strings │ │ │ │ ├── zh-Hans.lproj │ │ │ │ └── JSQMessages.strings │ │ │ │ └── zh-Hant.lproj │ │ │ │ └── JSQMessages.strings │ │ ├── Categories │ │ │ ├── JSQSystemSoundPlayer+JSQMessages.h │ │ │ ├── JSQSystemSoundPlayer+JSQMessages.m │ │ │ ├── NSBundle+JSQMessages.h │ │ │ ├── NSBundle+JSQMessages.m │ │ │ ├── NSString+JSQMessages.h │ │ │ ├── NSString+JSQMessages.m │ │ │ ├── UIColor+JSQMessages.h │ │ │ ├── UIColor+JSQMessages.m │ │ │ ├── UIDevice+JSQMessages.h │ │ │ ├── UIDevice+JSQMessages.m │ │ │ ├── UIImage+JSQMessages.h │ │ │ ├── UIImage+JSQMessages.m │ │ │ ├── UIView+JSQMessages.h │ │ │ └── UIView+JSQMessages.m │ │ ├── Controllers │ │ │ ├── JSQMessagesKeyboardController.h │ │ │ ├── JSQMessagesKeyboardController.m │ │ │ ├── JSQMessagesViewController.h │ │ │ ├── JSQMessagesViewController.m │ │ │ └── JSQMessagesViewController.xib │ │ ├── Factories │ │ │ ├── JSQMessagesAvatarImageFactory.h │ │ │ ├── JSQMessagesAvatarImageFactory.m │ │ │ ├── JSQMessagesBubbleImageFactory.h │ │ │ ├── JSQMessagesBubbleImageFactory.m │ │ │ ├── JSQMessagesMediaViewBubbleImageMasker.h │ │ │ ├── JSQMessagesMediaViewBubbleImageMasker.m │ │ │ ├── JSQMessagesTimestampFormatter.h │ │ │ ├── JSQMessagesTimestampFormatter.m │ │ │ ├── JSQMessagesToolbarButtonFactory.h │ │ │ └── JSQMessagesToolbarButtonFactory.m │ │ ├── JSQMessages.h │ │ ├── Layout │ │ │ ├── JSQAudioMediaViewAttributes.h │ │ │ ├── JSQAudioMediaViewAttributes.m │ │ │ ├── JSQMessagesBubbleSizeCalculating.h │ │ │ ├── JSQMessagesBubblesSizeCalculator.h │ │ │ ├── JSQMessagesBubblesSizeCalculator.m │ │ │ ├── JSQMessagesCollectionViewFlowLayout.h │ │ │ ├── JSQMessagesCollectionViewFlowLayout.m │ │ │ ├── JSQMessagesCollectionViewFlowLayoutInvalidationContext.h │ │ │ ├── JSQMessagesCollectionViewFlowLayoutInvalidationContext.m │ │ │ ├── JSQMessagesCollectionViewLayoutAttributes.h │ │ │ └── JSQMessagesCollectionViewLayoutAttributes.m │ │ ├── Model │ │ │ ├── JSQAudioMediaItem.h │ │ │ ├── JSQAudioMediaItem.m │ │ │ ├── JSQLocationMediaItem.h │ │ │ ├── JSQLocationMediaItem.m │ │ │ ├── JSQMediaItem.h │ │ │ ├── JSQMediaItem.m │ │ │ ├── JSQMessage.h │ │ │ ├── JSQMessage.m │ │ │ ├── JSQMessageAvatarImageDataSource.h │ │ │ ├── JSQMessageBubbleImageDataSource.h │ │ │ ├── JSQMessageData.h │ │ │ ├── JSQMessageMediaData.h │ │ │ ├── JSQMessagesAvatarImage.h │ │ │ ├── JSQMessagesAvatarImage.m │ │ │ ├── JSQMessagesBubbleImage.h │ │ │ ├── JSQMessagesBubbleImage.m │ │ │ ├── JSQMessagesCollectionViewDataSource.h │ │ │ ├── JSQMessagesCollectionViewDelegateFlowLayout.h │ │ │ ├── JSQPhotoMediaItem.h │ │ │ ├── JSQPhotoMediaItem.m │ │ │ ├── JSQVideoMediaItem.h │ │ │ └── JSQVideoMediaItem.m │ │ └── Views │ │ │ ├── JSQMessagesCellTextView.h │ │ │ ├── JSQMessagesCellTextView.m │ │ │ ├── JSQMessagesCollectionView.h │ │ │ ├── JSQMessagesCollectionView.m │ │ │ ├── JSQMessagesCollectionViewCell.h │ │ │ ├── JSQMessagesCollectionViewCell.m │ │ │ ├── JSQMessagesCollectionViewCellIncoming.h │ │ │ ├── JSQMessagesCollectionViewCellIncoming.m │ │ │ ├── JSQMessagesCollectionViewCellIncoming.xib │ │ │ ├── JSQMessagesCollectionViewCellOutgoing.h │ │ │ ├── JSQMessagesCollectionViewCellOutgoing.m │ │ │ ├── JSQMessagesCollectionViewCellOutgoing.xib │ │ │ ├── JSQMessagesComposerTextView.h │ │ │ ├── JSQMessagesComposerTextView.m │ │ │ ├── JSQMessagesInputToolbar.h │ │ │ ├── JSQMessagesInputToolbar.m │ │ │ ├── JSQMessagesLabel.h │ │ │ ├── JSQMessagesLabel.m │ │ │ ├── JSQMessagesLoadEarlierHeaderView.h │ │ │ ├── JSQMessagesLoadEarlierHeaderView.m │ │ │ ├── JSQMessagesLoadEarlierHeaderView.xib │ │ │ ├── JSQMessagesMediaPlaceholderView.h │ │ │ ├── JSQMessagesMediaPlaceholderView.m │ │ │ ├── JSQMessagesToolbarContentView.h │ │ │ ├── JSQMessagesToolbarContentView.m │ │ │ ├── JSQMessagesToolbarContentView.xib │ │ │ ├── JSQMessagesTypingIndicatorFooterView.h │ │ │ ├── JSQMessagesTypingIndicatorFooterView.m │ │ │ └── JSQMessagesTypingIndicatorFooterView.xib │ ├── LICENSE │ └── README.md ├── JSQSystemSoundPlayer │ ├── JSQSystemSoundPlayer │ │ └── Classes │ │ │ ├── JSQSystemSoundPlayer.h │ │ │ └── JSQSystemSoundPlayer.m │ ├── LICENSE │ └── README.md ├── Kingfisher │ ├── LICENSE │ ├── README.md │ └── Sources │ │ ├── AnimatedImageView.swift │ │ ├── Box.swift │ │ ├── CacheSerializer.swift │ │ ├── Filter.swift │ │ ├── Image.swift │ │ ├── ImageCache.swift │ │ ├── ImageDownloader.swift │ │ ├── ImagePrefetcher.swift │ │ ├── ImageProcessor.swift │ │ ├── ImageTransition.swift │ │ ├── ImageView+Kingfisher.swift │ │ ├── Indicator.swift │ │ ├── Kingfisher.h │ │ ├── Kingfisher.swift │ │ ├── KingfisherManager.swift │ │ ├── KingfisherOptionsInfo.swift │ │ ├── RequestModifier.swift │ │ ├── Resource.swift │ │ ├── String+MD5.swift │ │ ├── ThreadHelper.swift │ │ └── UIButton+Kingfisher.swift ├── Manifest.lock ├── PagingMenuController │ ├── LICENSE │ ├── Pod │ │ └── Classes │ │ │ ├── MenuItemView.swift │ │ │ ├── MenuView.swift │ │ │ ├── PagingMenuController.swift │ │ │ ├── PagingViewController.swift │ │ │ └── Protocols │ │ │ ├── MenuItemViewCustomizable.swift │ │ │ ├── MenuViewCustomizable.swift │ │ │ ├── Pagable.swift │ │ │ └── PagingMenuControllerCustomizable.swift │ └── README.md ├── Pods.xcodeproj │ └── project.pbxproj ├── RxCocoa │ ├── LICENSE.md │ ├── Platform │ │ ├── DataStructures │ │ │ ├── Bag.swift │ │ │ ├── InfiniteSequence.swift │ │ │ ├── PriorityQueue.swift │ │ │ └── Queue.swift │ │ ├── DispatchQueue+Extensions.swift │ │ ├── Platform.Darwin.swift │ │ ├── Platform.Linux.swift │ │ └── RecursiveLock.swift │ ├── README.md │ └── RxCocoa │ │ ├── CocoaUnits │ │ ├── ControlEvent.swift │ │ ├── ControlProperty.swift │ │ ├── Driver │ │ │ ├── ControlEvent+Driver.swift │ │ │ ├── ControlProperty+Driver.swift │ │ │ ├── Driver+Subscription.swift │ │ │ ├── Driver.swift │ │ │ ├── ObservableConvertibleType+Driver.swift │ │ │ └── Variable+Driver.swift │ │ ├── SharedSequence │ │ │ ├── ObservableConvertibleType+SharedSequence.swift │ │ │ ├── SharedSequence+Operators+arity.swift │ │ │ ├── SharedSequence+Operators.swift │ │ │ ├── SharedSequence.swift │ │ │ └── Variable+SharedSequence.swift │ │ └── UIBindingObserver.swift │ │ ├── Common │ │ ├── ControlTarget.swift │ │ ├── DelegateProxy.swift │ │ ├── DelegateProxyType.swift │ │ ├── NSLayoutConstraint+Rx.swift │ │ ├── Observable+Bind.swift │ │ ├── RxCocoaObjCRuntimeError+Extensions.swift │ │ ├── RxTarget.swift │ │ ├── SectionedViewDataSourceType.swift │ │ └── TextInput.swift │ │ ├── Foundation │ │ ├── KVORepresentable+CoreGraphics.swift │ │ ├── KVORepresentable+Swift.swift │ │ ├── KVORepresentable.swift │ │ ├── Logging.swift │ │ ├── NSObject+Rx+KVORepresentable.swift │ │ ├── NSObject+Rx+RawRepresentable.swift │ │ ├── NSObject+Rx.swift │ │ ├── NotificationCenter+Rx.swift │ │ └── URLSession+Rx.swift │ │ ├── Runtime │ │ ├── _RX.m │ │ ├── _RXDelegateProxy.m │ │ ├── _RXKVOObserver.m │ │ ├── _RXObjCRuntime.m │ │ └── include │ │ │ ├── RxCocoaRuntime.h │ │ │ ├── _RX.h │ │ │ ├── _RXDelegateProxy.h │ │ │ ├── _RXKVOObserver.h │ │ │ └── _RXObjCRuntime.h │ │ ├── RxCocoa.h │ │ ├── RxCocoa.swift │ │ └── iOS │ │ ├── DataSources │ │ ├── RxCollectionViewReactiveArrayDataSource.swift │ │ └── RxTableViewReactiveArrayDataSource.swift │ │ ├── Events │ │ └── ItemEvents.swift │ │ ├── NSTextStorage+Rx.swift │ │ ├── Protocols │ │ ├── RxCollectionViewDataSourceType.swift │ │ └── RxTableViewDataSourceType.swift │ │ ├── Proxies │ │ ├── RxCollectionViewDataSourceProxy.swift │ │ ├── RxCollectionViewDelegateProxy.swift │ │ ├── RxPickerViewDelegateProxy.swift │ │ ├── RxScrollViewDelegateProxy.swift │ │ ├── RxSearchBarDelegateProxy.swift │ │ ├── RxSearchControllerDelegateProxy.swift │ │ ├── RxTabBarControllerDelegateProxy.swift │ │ ├── RxTabBarDelegateProxy.swift │ │ ├── RxTableViewDataSourceProxy.swift │ │ ├── RxTableViewDelegateProxy.swift │ │ ├── RxTextStorageDelegateProxy.swift │ │ ├── RxTextViewDelegateProxy.swift │ │ └── RxWebViewDelegateProxy.swift │ │ ├── UIActivityIndicatorView+Rx.swift │ │ ├── UIAlertAction+Rx.swift │ │ ├── UIApplication+Rx.swift │ │ ├── UIBarButtonItem+Rx.swift │ │ ├── UIButton+Rx.swift │ │ ├── UICollectionView+Rx.swift │ │ ├── UIControl+Rx.swift │ │ ├── UIDatePicker+Rx.swift │ │ ├── UIGestureRecognizer+Rx.swift │ │ ├── UIImageView+Rx.swift │ │ ├── UILabel+Rx.swift │ │ ├── UINavigationItem+Rx.swift │ │ ├── UIPageControl+Rx.swift │ │ ├── UIPickerView+Rx.swift │ │ ├── UIProgressView+Rx.swift │ │ ├── UIRefreshControl+Rx.swift │ │ ├── UIScrollView+Rx.swift │ │ ├── UISearchBar+Rx.swift │ │ ├── UISearchController+Rx.swift │ │ ├── UISegmentedControl+Rx.swift │ │ ├── UISlider+Rx.swift │ │ ├── UIStepper+Rx.swift │ │ ├── UISwitch+Rx.swift │ │ ├── UITabBar+Rx.swift │ │ ├── UITabBarController+Rx.swift │ │ ├── UITabBarItem+Rx.swift │ │ ├── UITableView+Rx.swift │ │ ├── UITextField+Rx.swift │ │ ├── UITextView+Rx.swift │ │ ├── UIView+Rx.swift │ │ ├── UIViewController+Rx.swift │ │ └── UIWebView+Rx.swift ├── RxSwift │ ├── LICENSE.md │ ├── Platform │ │ ├── DataStructures │ │ │ ├── Bag.swift │ │ │ ├── InfiniteSequence.swift │ │ │ ├── PriorityQueue.swift │ │ │ └── Queue.swift │ │ ├── DispatchQueue+Extensions.swift │ │ ├── Platform.Darwin.swift │ │ ├── Platform.Linux.swift │ │ └── RecursiveLock.swift │ ├── README.md │ └── RxSwift │ │ ├── AnyObserver.swift │ │ ├── Cancelable.swift │ │ ├── Concurrency │ │ ├── AsyncLock.swift │ │ ├── Lock.swift │ │ ├── LockOwnerType.swift │ │ ├── SynchronizedDisposeType.swift │ │ ├── SynchronizedOnType.swift │ │ ├── SynchronizedSubscribeType.swift │ │ └── SynchronizedUnsubscribeType.swift │ │ ├── ConnectableObservableType.swift │ │ ├── Disposable.swift │ │ ├── Disposables │ │ ├── AnonymousDisposable.swift │ │ ├── BinaryDisposable.swift │ │ ├── BooleanDisposable.swift │ │ ├── CompositeDisposable.swift │ │ ├── Disposables.swift │ │ ├── DisposeBag.swift │ │ ├── DisposeBase.swift │ │ ├── NopDisposable.swift │ │ ├── RefCountDisposable.swift │ │ ├── ScheduledDisposable.swift │ │ ├── SerialDisposable.swift │ │ ├── SingleAssignmentDisposable.swift │ │ └── SubscriptionDisposable.swift │ │ ├── Errors.swift │ │ ├── Event.swift │ │ ├── Extensions │ │ ├── Bag+Rx.swift │ │ └── String+Rx.swift │ │ ├── GroupedObservable.swift │ │ ├── ImmediateSchedulerType.swift │ │ ├── Observable.swift │ │ ├── ObservableConvertibleType.swift │ │ ├── ObservableType+Extensions.swift │ │ ├── ObservableType.swift │ │ ├── Observables │ │ ├── Implementations │ │ │ ├── AddRef.swift │ │ │ ├── Amb.swift │ │ │ ├── AnonymousObservable.swift │ │ │ ├── Buffer.swift │ │ │ ├── Catch.swift │ │ │ ├── CombineLatest+Collection.swift │ │ │ ├── CombineLatest+arity.swift │ │ │ ├── CombineLatest.swift │ │ │ ├── Concat.swift │ │ │ ├── ConnectableObservable.swift │ │ │ ├── Debounce.swift │ │ │ ├── Debug.swift │ │ │ ├── DefaultIfEmpty.swift │ │ │ ├── Deferred.swift │ │ │ ├── Delay.swift │ │ │ ├── DelaySubscription.swift │ │ │ ├── DistinctUntilChanged.swift │ │ │ ├── Do.swift │ │ │ ├── ElementAt.swift │ │ │ ├── Empty.swift │ │ │ ├── Error.swift │ │ │ ├── Filter.swift │ │ │ ├── Generate.swift │ │ │ ├── GroupBy.swift │ │ │ ├── Just.swift │ │ │ ├── Map.swift │ │ │ ├── Merge.swift │ │ │ ├── Multicast.swift │ │ │ ├── Never.swift │ │ │ ├── ObserveOn.swift │ │ │ ├── ObserveOnSerialDispatchQueue.swift │ │ │ ├── Optional.swift │ │ │ ├── Producer.swift │ │ │ ├── Range.swift │ │ │ ├── Reduce.swift │ │ │ ├── RefCount.swift │ │ │ ├── Repeat.swift │ │ │ ├── RetryWhen.swift │ │ │ ├── Sample.swift │ │ │ ├── Scan.swift │ │ │ ├── Sequence.swift │ │ │ ├── ShareReplay1.swift │ │ │ ├── ShareReplay1WhileConnected.swift │ │ │ ├── SingleAsync.swift │ │ │ ├── Sink.swift │ │ │ ├── Skip.swift │ │ │ ├── SkipUntil.swift │ │ │ ├── SkipWhile.swift │ │ │ ├── StartWith.swift │ │ │ ├── SubscribeOn.swift │ │ │ ├── Switch.swift │ │ │ ├── SwitchIfEmpty.swift │ │ │ ├── Take.swift │ │ │ ├── TakeLast.swift │ │ │ ├── TakeUntil.swift │ │ │ ├── TakeWhile.swift │ │ │ ├── Throttle.swift │ │ │ ├── Timeout.swift │ │ │ ├── Timer.swift │ │ │ ├── ToArray.swift │ │ │ ├── Using.swift │ │ │ ├── Window.swift │ │ │ ├── WithLatestFrom.swift │ │ │ ├── Zip+Collection.swift │ │ │ ├── Zip+arity.swift │ │ │ └── Zip.swift │ │ ├── Observable+Aggregate.swift │ │ ├── Observable+Binding.swift │ │ ├── Observable+Concurrency.swift │ │ ├── Observable+Creation.swift │ │ ├── Observable+Debug.swift │ │ ├── Observable+Multiple.swift │ │ ├── Observable+Single.swift │ │ ├── Observable+StandardSequenceOperators.swift │ │ └── Observable+Time.swift │ │ ├── ObserverType.swift │ │ ├── Observers │ │ ├── AnonymousObserver.swift │ │ ├── ObserverBase.swift │ │ └── TailRecursiveSink.swift │ │ ├── Reactive.swift │ │ ├── Rx.swift │ │ ├── RxMutableBox.swift │ │ ├── SchedulerType.swift │ │ ├── Schedulers │ │ ├── ConcurrentDispatchQueueScheduler.swift │ │ ├── ConcurrentMainScheduler.swift │ │ ├── CurrentThreadScheduler.swift │ │ ├── HistoricalScheduler.swift │ │ ├── HistoricalSchedulerTimeConverter.swift │ │ ├── ImmediateScheduler.swift │ │ ├── Internal │ │ │ ├── AnonymousInvocable.swift │ │ │ ├── DispatchQueueConfiguration.swift │ │ │ ├── InvocableScheduledItem.swift │ │ │ ├── InvocableType.swift │ │ │ ├── ScheduledItem.swift │ │ │ └── ScheduledItemType.swift │ │ ├── MainScheduler.swift │ │ ├── OperationQueueScheduler.swift │ │ ├── RecursiveScheduler.swift │ │ ├── SchedulerServices+Emulation.swift │ │ ├── SerialDispatchQueueScheduler.swift │ │ ├── VirtualTimeConverterType.swift │ │ └── VirtualTimeScheduler.swift │ │ └── Subjects │ │ ├── BehaviorSubject.swift │ │ ├── PublishSubject.swift │ │ ├── ReplaySubject.swift │ │ ├── SubjectType.swift │ │ └── Variable.swift ├── SQLite.swift │ ├── CocoaPods │ │ ├── appletvos │ │ │ └── module.modulemap │ │ ├── appletvsimulator │ │ │ └── module.modulemap │ │ ├── iphoneos-10.0 │ │ │ └── module.modulemap │ │ ├── iphoneos │ │ │ └── module.modulemap │ │ ├── iphonesimulator-10.0 │ │ │ └── module.modulemap │ │ ├── iphonesimulator │ │ │ └── module.modulemap │ │ ├── macosx-10.11 │ │ │ └── module.modulemap │ │ ├── macosx-10.12 │ │ │ └── module.modulemap │ │ ├── macosx │ │ │ └── module.modulemap │ │ ├── watchos │ │ │ └── module.modulemap │ │ └── watchsimulator │ │ │ └── module.modulemap │ ├── LICENSE.txt │ ├── README.md │ └── Sources │ │ ├── SQLite │ │ ├── Core │ │ │ ├── Blob.swift │ │ │ ├── Connection.swift │ │ │ ├── Statement.swift │ │ │ └── Value.swift │ │ ├── Extensions │ │ │ ├── FTS4.swift │ │ │ ├── FTS5.swift │ │ │ └── RTree.swift │ │ ├── Foundation.swift │ │ ├── Helpers.swift │ │ ├── SQLite.h │ │ └── Typed │ │ │ ├── AggregateFunctions.swift │ │ │ ├── Collation.swift │ │ │ ├── CoreFunctions.swift │ │ │ ├── CustomFunctions.swift │ │ │ ├── Expression.swift │ │ │ ├── Operators.swift │ │ │ ├── Query.swift │ │ │ ├── Schema.swift │ │ │ └── Setter.swift │ │ └── SQLiteObjc │ │ ├── SQLite-Bridging.m │ │ ├── fts3_tokenizer.h │ │ └── include │ │ └── SQLite-Bridging.h ├── SwiftyJSON │ ├── LICENSE │ ├── README.md │ └── Source │ │ └── SwiftyJSON.swift └── Target Support Files │ ├── Alamofire │ ├── Alamofire-dummy.m │ ├── Alamofire-prefix.pch │ ├── Alamofire-umbrella.h │ ├── Alamofire.modulemap │ ├── Alamofire.xcconfig │ └── Info.plist │ ├── GoogleToolboxForMac │ ├── GoogleToolboxForMac-dummy.m │ ├── GoogleToolboxForMac-prefix.pch │ ├── GoogleToolboxForMac-umbrella.h │ ├── GoogleToolboxForMac.modulemap │ ├── GoogleToolboxForMac.xcconfig │ └── Info.plist │ ├── JSQMessagesViewController │ ├── Info.plist │ ├── JSQMessagesViewController-dummy.m │ ├── JSQMessagesViewController-prefix.pch │ ├── JSQMessagesViewController-umbrella.h │ ├── JSQMessagesViewController.modulemap │ └── JSQMessagesViewController.xcconfig │ ├── JSQSystemSoundPlayer │ ├── Info.plist │ ├── JSQSystemSoundPlayer-dummy.m │ ├── JSQSystemSoundPlayer-prefix.pch │ ├── JSQSystemSoundPlayer-umbrella.h │ ├── JSQSystemSoundPlayer.modulemap │ └── JSQSystemSoundPlayer.xcconfig │ ├── Kingfisher │ ├── Info.plist │ ├── Kingfisher-dummy.m │ ├── Kingfisher-prefix.pch │ ├── Kingfisher-umbrella.h │ ├── Kingfisher.modulemap │ └── Kingfisher.xcconfig │ ├── PagingMenuController │ ├── Info.plist │ ├── PagingMenuController-dummy.m │ ├── PagingMenuController-prefix.pch │ ├── PagingMenuController-umbrella.h │ ├── PagingMenuController.modulemap │ └── PagingMenuController.xcconfig │ ├── Pods-TrySwift2017ChatApp │ ├── Info.plist │ ├── Pods-TrySwift2017ChatApp-acknowledgements.markdown │ ├── Pods-TrySwift2017ChatApp-acknowledgements.plist │ ├── Pods-TrySwift2017ChatApp-dummy.m │ ├── Pods-TrySwift2017ChatApp-frameworks.sh │ ├── Pods-TrySwift2017ChatApp-resources.sh │ ├── Pods-TrySwift2017ChatApp-umbrella.h │ ├── Pods-TrySwift2017ChatApp.debug.xcconfig │ ├── Pods-TrySwift2017ChatApp.modulemap │ └── Pods-TrySwift2017ChatApp.release.xcconfig │ ├── RxCocoa │ ├── Info.plist │ ├── RxCocoa-dummy.m │ ├── RxCocoa-prefix.pch │ ├── RxCocoa-umbrella.h │ ├── RxCocoa.modulemap │ └── RxCocoa.xcconfig │ ├── RxSwift │ ├── Info.plist │ ├── RxSwift-dummy.m │ ├── RxSwift-prefix.pch │ ├── RxSwift-umbrella.h │ ├── RxSwift.modulemap │ └── RxSwift.xcconfig │ ├── SQLite.swift │ ├── Info.plist │ ├── SQLite.swift-dummy.m │ ├── SQLite.swift-prefix.pch │ ├── SQLite.swift-umbrella.h │ ├── SQLite.swift.modulemap │ └── SQLite.swift.xcconfig │ └── SwiftyJSON │ ├── Info.plist │ ├── SwiftyJSON-dummy.m │ ├── SwiftyJSON-prefix.pch │ ├── SwiftyJSON-umbrella.h │ ├── SwiftyJSON.modulemap │ └── SwiftyJSON.xcconfig ├── README.md ├── TrySwift2017ChatApp.xcodeproj ├── project.pbxproj └── project.xcworkspace │ └── contents.xcworkspacedata ├── TrySwift2017ChatApp.xcworkspace └── contents.xcworkspacedata └── TrySwift2017ChatApp ├── AppDelegate.swift ├── Assets.xcassets ├── Account.imageset │ ├── Contents.json │ ├── ic_account_circle_48pt.png │ ├── ic_account_circle_48pt_2x.png │ └── ic_account_circle_48pt_3x.png ├── AppIcon.appiconset │ └── Contents.json ├── Check.imageset │ ├── Contents.json │ ├── next-1.png │ └── next.png ├── Contents.json ├── Message.imageset │ ├── Contents.json │ ├── ic_message_48pt.png │ ├── ic_message_48pt_2x.png │ └── ic_message_48pt_3x.png ├── UserIcon.imageset │ ├── Contents.json │ ├── ktanaka117-1.jpg │ ├── ktanaka117-2.jpg │ └── ktanaka117.jpg ├── bk_firebase.imageset │ ├── Contents.json │ ├── bk_firebase@2x-1.jpg │ ├── bk_firebase@2x-2.jpg │ └── bk_firebase@2x.jpg ├── btn_light_blue.imageset │ ├── Contents.json │ └── btn_light_blue@2x.png ├── google_firebase.imageset │ ├── Contents.json │ ├── google_firebase@2x-1.png │ ├── google_firebase@2x-2.png │ └── google_firebase@2x.png ├── rico_green.imageset │ ├── Contents.json │ └── rico_green@2x.png ├── slack-background.imageset │ ├── Contents.json │ ├── slack-background-1.jpg │ ├── slack-background-2.jpg │ └── slack-background.jpg ├── slack-icon.imageset │ ├── Contents.json │ ├── Slack_Mark_White_Web-1.png │ ├── Slack_Mark_White_Web-2.png │ └── Slack_Mark_White_Web.png ├── twitter-background.imageset │ ├── Contents.json │ ├── twitter-background-1.png │ ├── twitter-background-2.png │ └── twitter-background.png └── twitter-icon.imageset │ ├── Contents.json │ ├── Twitter_Logo_White_On_Image-1.png │ ├── Twitter_Logo_White_On_Image-2.png │ └── Twitter_Logo_White_On_Image.png ├── Base.lproj └── LaunchScreen.storyboard ├── Data ├── AppDelegate.swift ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json ├── Base.lproj │ ├── LaunchScreen.storyboard │ └── Main.storyboard ├── Info.plist ├── MessageEntity.swift ├── MessageListEntity.swift ├── MessageListTranslator.swift ├── MessageTranslator.swift ├── MessageType.swift ├── Request.swift ├── Twitter │ ├── FHSStream.h │ ├── FHSStream.m │ ├── FHSTwitterEngine.h │ ├── FHSTwitterEngine.m │ ├── Message.swift │ ├── TwitterAuthorizeViewController.swift │ ├── TwitterDemo-Bridging-Header.h │ └── User.swift ├── UserEntity.swift ├── ViewController.swift └── trySwift2017-SwiftyChat-Bridging-Header.h ├── Feed.storyboard ├── FeedList.storyboard ├── FeedListTableViewCell.swift ├── FeedListTableViewCell.xib ├── FeedListViewController.swift ├── FeedViewController.swift ├── Firebase ├── AppCommon.swift ├── AppUtility.swift ├── ChatController.swift ├── MyMessage.swift ├── Name.storyboard ├── NameController.swift ├── SQLiteManager.swift ├── Users.storyboard ├── UsersCell.swift ├── UsersController.swift ├── UsersDTO.swift ├── UsersModel.swift └── ViewController.swift ├── GoogleService-Info.plist ├── Info.plist ├── LinkAccount.storyboard ├── LinkAccountTableViewCell.swift ├── LinkAccountTableViewCell.xib ├── LinkAccountViewController.swift ├── RoomViewController.swift ├── ServiceType.swift └── UIView+Extension.swift /Podfile: -------------------------------------------------------------------------------- 1 | # Uncomment the next line to define a global platform for your project 2 | # platform :ios, '9.0' 3 | 4 | target 'TrySwift2017ChatApp' do 5 | # Comment the next line if you're not using Swift and don't want to use dynamic frameworks 6 | use_frameworks! 7 | 8 | # Pods for TrySwift2017ChatApp 9 | pod "PagingMenuController" 10 | pod "JSQMessagesViewController" 11 | 12 | pod 'SwiftyJSON' 13 | pod 'Alamofire' 14 | pod 'Kingfisher' 15 | 16 | 17 | post_install do |installer| 18 | installer.pods_project.targets.each do |target| 19 | target.build_configurations.each do |config| 20 | config.build_settings['SWIFT_VERSION'] = '3.0' 21 | end 22 | end 23 | end 24 | 25 | end 26 | -------------------------------------------------------------------------------- /Pods/Alamofire/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2014-2016 Alamofire Software Foundation (http://alamofire.org/) 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining a copy 4 | of this software and associated documentation files (the "Software"), to deal 5 | in the Software without restriction, including without limitation the rights 6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 | copies of the Software, and to permit persons to whom the Software is 8 | furnished to do so, subject to the following conditions: 9 | 10 | The above copyright notice and this permission notice shall be included in 11 | all copies or substantial portions of the Software. 12 | 13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 19 | THE SOFTWARE. 20 | -------------------------------------------------------------------------------- /Pods/Firebase/.cocoapods.yml: -------------------------------------------------------------------------------- 1 | try: 2 | install: 3 | pre: 4 | - git clone https://github.com/firebase/quickstart-ios 5 | 6 | -------------------------------------------------------------------------------- /Pods/Firebase/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | Please go to https://firebase.google.com/support/release-notes/ios#3.14.0 2 | to view the Firebase iOS release notes. 3 | 4 | You can find information about prior changes to the Firebase pod and Firebase 5 | Database [here](https://www.firebase.com/docs/ios/changelog.html). 6 | -------------------------------------------------------------------------------- /Pods/Firebase/Core/Sources/module.modulemap: -------------------------------------------------------------------------------- 1 | module Firebase { 2 | export * 3 | header "Firebase.h" 4 | } -------------------------------------------------------------------------------- /Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/FirebaseAnalytics: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/FirebaseAnalytics -------------------------------------------------------------------------------- /Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRAnalyticsConfiguration.h: -------------------------------------------------------------------------------- 1 | #import 2 | -------------------------------------------------------------------------------- /Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRApp.h: -------------------------------------------------------------------------------- 1 | #import 2 | -------------------------------------------------------------------------------- /Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRConfiguration.h: -------------------------------------------------------------------------------- 1 | #import 2 | -------------------------------------------------------------------------------- /Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIROptions.h: -------------------------------------------------------------------------------- 1 | #import 2 | -------------------------------------------------------------------------------- /Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FIRUserPropertyNames.h: -------------------------------------------------------------------------------- 1 | /// @file FIRUserPropertyNames.h 2 | /// 3 | /// Predefined user property names. 4 | /// 5 | /// A UserProperty is an attribute that describes the app-user. By supplying UserProperties, you can 6 | /// later analyze different behaviors of various segments of your userbase. You may supply up to 25 7 | /// unique UserProperties per app, and you can use the name and value of your choosing for each one. 8 | /// UserProperty names can be up to 24 characters long, may only contain alphanumeric characters and 9 | /// underscores ("_"), and must start with an alphabetic character. UserProperty values can be up to 10 | /// 36 characters long. The "firebase_" prefix is reserved and should not be used. 11 | 12 | /// The method used to sign in. For example, "google", "facebook" or "twitter". 13 | static NSString *const kFIRUserPropertySignUpMethod = @"sign_up_method"; 14 | -------------------------------------------------------------------------------- /Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Headers/FirebaseAnalytics.h: -------------------------------------------------------------------------------- 1 | #import "FIRAnalyticsConfiguration.h" 2 | #import "FIRApp.h" 3 | #import "FIRConfiguration.h" 4 | #import "FIROptions.h" 5 | #import "FIRAnalytics+AppDelegate.h" 6 | #import "FIRAnalytics.h" 7 | #import "FIREventNames.h" 8 | #import "FIRParameterNames.h" 9 | #import "FIRUserPropertyNames.h" 10 | -------------------------------------------------------------------------------- /Pods/FirebaseAnalytics/Frameworks/FirebaseAnalytics.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module FirebaseAnalytics { 2 | umbrella header "FirebaseAnalytics.h" 3 | export * 4 | module * { export *} 5 | link "sqlite3" 6 | link "z" 7 | link framework "CoreGraphics" 8 | link framework "Foundation" 9 | link framework "UIKit" 10 | } -------------------------------------------------------------------------------- /Pods/FirebaseCore/Frameworks/FirebaseCore.framework/FirebaseCore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/Pods/FirebaseCore/Frameworks/FirebaseCore.framework/FirebaseCore -------------------------------------------------------------------------------- /Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIRLoggerLevel.h: -------------------------------------------------------------------------------- 1 | /** 2 | * The log levels used by internal logging. 3 | */ 4 | typedef NS_ENUM(NSInteger, FIRLoggerLevel) { 5 | FIRLoggerLevelError = 3 /*ASL_LEVEL_ERR*/, 6 | FIRLoggerLevelWarning = 4 /*ASL_LEVEL_WARNING*/, 7 | FIRLoggerLevelNotice = 5 /*ASL_LEVEL_NOTICE*/, 8 | FIRLoggerLevelInfo = 6 /*ASL_LEVEL_INFO*/, 9 | FIRLoggerLevelDebug = 7 /*ASL_LEVEL_DEBUG*/, 10 | FIRLoggerLevelMin = FIRLoggerLevelError, 11 | FIRLoggerLevelMax = FIRLoggerLevelDebug 12 | }; 13 | -------------------------------------------------------------------------------- /Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FirebaseCore.h: -------------------------------------------------------------------------------- 1 | #import "FIRAnalyticsConfiguration.h" 2 | #import "FIRApp.h" 3 | #import "FIRConfiguration.h" 4 | #import "FIRLoggerLevel.h" 5 | #import "FIROptions.h" 6 | -------------------------------------------------------------------------------- /Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module FirebaseCore { 2 | umbrella header "FirebaseCore.h" 3 | export * 4 | module * { export *} 5 | link "c++" 6 | link "z" 7 | link framework "CoreGraphics" 8 | link framework "Foundation" 9 | link framework "UIKit" 10 | } -------------------------------------------------------------------------------- /Pods/FirebaseDatabase/Frameworks/FirebaseDatabase.framework/FirebaseDatabase: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/Pods/FirebaseDatabase/Frameworks/FirebaseDatabase.framework/FirebaseDatabase -------------------------------------------------------------------------------- /Pods/FirebaseDatabase/Frameworks/FirebaseDatabase.framework/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/Pods/FirebaseDatabase/Frameworks/FirebaseDatabase.framework/Info.plist -------------------------------------------------------------------------------- /Pods/FirebaseDatabase/Frameworks/FirebaseDatabase.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module FirebaseDatabase { 2 | umbrella header "FirebaseDatabase.h" 3 | 4 | export * 5 | module * { export * } 6 | 7 | link framework "CFNetwork" 8 | link framework "Security" 9 | link framework "SystemConfiguration" 10 | 11 | link "c++" 12 | link "icucore" 13 | } 14 | -------------------------------------------------------------------------------- /Pods/FirebaseInstanceID/CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # 2017-01-31 -- v1.0.9 2 | 3 | - Removed an error being mistakenly logged to the console. 4 | 5 | # 2016-07-06 -- v1.0.8 6 | 7 | - Don't store InstanceID plists in Documents folder. 8 | 9 | # 2016-06-19 -- v1.0.7 10 | 11 | - Fix remote-notifications warning on app submission. 12 | 13 | # 2016-05-16 -- v1.0.6 14 | 15 | - Fix CocoaPod linter issues for InstanceID pod. 16 | 17 | # 2016-05-13 -- v1.0.5 18 | 19 | - Fix Authorization errors for InstanceID tokens. 20 | 21 | # 2016-05-11 -- v1.0.4 22 | 23 | - Reduce wait for InstanceID token during parallel requests. 24 | 25 | # 2016-04-18 -- v1.0.3 26 | 27 | - Change flag to disable swizzling to *FirebaseAppDelegateProxyEnabled*. 28 | - Fix incessant Keychain errors while accessing InstanceID. 29 | - Fix max retries for fetching IID token. 30 | 31 | # 2016-04-18 -- v1.0.2 32 | 33 | - Register for remote notifications on iOS8+ in the SDK itself. 34 | -------------------------------------------------------------------------------- /Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/FirebaseInstanceID: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/FirebaseInstanceID -------------------------------------------------------------------------------- /Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Headers/FirebaseInstanceID.h: -------------------------------------------------------------------------------- 1 | #import "FIRInstanceID.h" 2 | -------------------------------------------------------------------------------- /Pods/FirebaseInstanceID/Frameworks/FirebaseInstanceID.framework/Modules/module.modulemap: -------------------------------------------------------------------------------- 1 | framework module FirebaseInstanceID { 2 | umbrella header "FirebaseInstanceID.h" 3 | export * 4 | module * { export *} 5 | link framework "Foundation" 6 | link framework "UIKit" 7 | } -------------------------------------------------------------------------------- /Pods/FirebaseInstanceID/README.md: -------------------------------------------------------------------------------- 1 | # InstanceID SDK for iOS 2 | 3 | Instance ID provides a unique ID per instance of your apps and also provides a 4 | mechanism to authenticate and authorize actions, like sending messages via 5 | Firebase Cloud Messaging (FCM). 6 | 7 | 8 | Please visit [our developer 9 | site](https://developers.google.com/instance-id/) for integration instructions, 10 | documentation, support information, and terms of service. 11 | -------------------------------------------------------------------------------- /Pods/GoogleToolboxForMac/README.md: -------------------------------------------------------------------------------- 1 | # GTM: Google Toolbox for Mac # 2 | 3 | **Project site**
4 | **Discussion group** 5 | 6 | # Google Toolbox for Mac # 7 | 8 | A collection of source from different Google projects that may be of use to 9 | developers working other iOS or OS X projects. 10 | 11 | If you find a problem/bug or want a new feature to be included in the Google 12 | Toolbox for Mac, please join the 13 | [discussion group](http://groups.google.com/group/google-toolbox-for-mac) 14 | or submit an 15 | [issue](https://github.com/google/google-toolbox-for-mac/issues). 16 | -------------------------------------------------------------------------------- /Pods/Headers/Private/Firebase/Firebase.h: -------------------------------------------------------------------------------- 1 | ../../../Firebase/Core/Sources/Firebase.h -------------------------------------------------------------------------------- /Pods/Headers/Public/Firebase/Firebase.h: -------------------------------------------------------------------------------- 1 | ../../../Firebase/Core/Sources/Firebase.h -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Base.lproj/JSQMessages.strings: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jesse Squires 3 | // http://www.jessesquires.com 4 | // 5 | // 6 | // Documentation 7 | // http://cocoadocs.org/docsets/JSQMessagesViewController 8 | // 9 | // 10 | // GitHub 11 | // https://github.com/jessesquires/JSQMessagesViewController 12 | // 13 | // 14 | // License 15 | // Copyright (c) 2014 Jesse Squires 16 | // Released under an MIT license: http://opensource.org/licenses/MIT 17 | // 18 | 19 | // ******************************** 20 | // Special thanks to the localization contributors! 21 | // 22 | // https://github.com/jessesquires/JSQMessagesViewController/issues/237 23 | // ******************************** 24 | 25 | "load_earlier_messages" = "Load Earlier Messages"; 26 | 27 | "send" = "Send"; 28 | 29 | "new_message" = "New Message"; 30 | 31 | "text_message_accessibility_label" = "%@: %@"; 32 | 33 | "media_message_accessibility_label" = "%@: media message"; 34 | 35 | "accessory_button_accessibility_label" = "Share media"; 36 | 37 | "new_message_received_accessibility_announcement" = "New message received"; -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/bubble_min.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/bubble_min.png -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/bubble_min@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/bubble_min@2x.png -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/bubble_min@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/bubble_min@3x.png -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/bubble_min_tailless.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/bubble_min_tailless.png -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/bubble_min_tailless@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/bubble_min_tailless@2x.png -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/bubble_min_tailless@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/bubble_min_tailless@3x.png -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/bubble_regular.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/bubble_regular.png -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/bubble_regular@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/bubble_regular@2x.png -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/bubble_regular@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/bubble_regular@3x.png -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/bubble_stroked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/bubble_stroked.png -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/bubble_stroked@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/bubble_stroked@2x.png -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/bubble_stroked@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/bubble_stroked@3x.png -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/bubble_stroked_tailless.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/bubble_stroked_tailless.png -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/bubble_stroked_tailless@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/bubble_stroked_tailless@2x.png -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/bubble_stroked_tailless@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/bubble_stroked_tailless@3x.png -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/bubble_tailless.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/bubble_tailless.png -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/bubble_tailless@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/bubble_tailless@2x.png -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/bubble_tailless@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/bubble_tailless@3x.png -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/clip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/clip.png -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/clip@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/clip@2x.png -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/clip@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/clip@3x.png -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/pause.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/pause.png -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/pause@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/pause@2x.png -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/pause@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/pause@3x.png -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/play.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/play.png -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/play@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/play@2x.png -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/play@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/play@3x.png -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/typing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/typing.png -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/typing@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/typing@2x.png -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/typing@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Images/typing@3x.png -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Sounds/message_received.aiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Sounds/message_received.aiff -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Sounds/message_sent.aiff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/Sounds/message_sent.aiff -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/ar.lproj/JSQMessages.strings: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jesse Squires 3 | // http://www.jessesquires.com 4 | // 5 | // 6 | // Documentation 7 | // http://cocoadocs.org/docsets/JSQMessagesViewController 8 | // 9 | // 10 | // GitHub 11 | // https://github.com/jessesquires/JSQMessagesViewController 12 | // 13 | // 14 | // License 15 | // Copyright (c) 2014 Jesse Squires 16 | // Released under an MIT license: http://opensource.org/licenses/MIT 17 | // 18 | 19 | // ******************************** 20 | // Special thanks to the localization contributors! 21 | // 22 | // https://github.com/jessesquires/JSQMessagesViewController/issues/237 23 | // ******************************** 24 | 25 | "load_earlier_messages" = "تحميل الرسائل السابقة"; 26 | 27 | "send" = "أرسال"; 28 | 29 | "new_message" = "رسالة جديدة"; 30 | -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/de.lproj/JSQMessages.strings: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jesse Squires 3 | // http://www.jessesquires.com 4 | // 5 | // 6 | // Documentation 7 | // http://cocoadocs.org/docsets/JSQMessagesViewController 8 | // 9 | // 10 | // GitHub 11 | // https://github.com/jessesquires/JSQMessagesViewController 12 | // 13 | // 14 | // License 15 | // Copyright (c) 2014 Jesse Squires 16 | // Released under an MIT license: http://opensource.org/licenses/MIT 17 | // 18 | 19 | // ******************************** 20 | // Special thanks to the localization contributors! 21 | // 22 | // https://github.com/jessesquires/JSQMessagesViewController/issues/237 23 | // ******************************** 24 | 25 | "load_earlier_messages" = "Ältere Nachrichten laden"; 26 | 27 | "send" = "Senden"; 28 | 29 | "new_message" = "Neue Nachricht"; 30 | 31 | "text_message_accessibility_label" = "%@: %@"; 32 | 33 | "media_message_accessibility_label" = "%@: media Nachricht"; 34 | 35 | "accessory_button_accessibility_label" = "Aktien media"; 36 | 37 | "new_message_received_accessibility_announcement" = "Neue Nachricht empfangen"; 38 | -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/en.lproj/JSQMessages.strings: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jesse Squires 3 | // http://www.jessesquires.com 4 | // 5 | // 6 | // Documentation 7 | // http://cocoadocs.org/docsets/JSQMessagesViewController 8 | // 9 | // 10 | // GitHub 11 | // https://github.com/jessesquires/JSQMessagesViewController 12 | // 13 | // 14 | // License 15 | // Copyright (c) 2014 Jesse Squires 16 | // Released under an MIT license: http://opensource.org/licenses/MIT 17 | // 18 | 19 | // ******************************** 20 | // Special thanks to the localization contributors! 21 | // 22 | // https://github.com/jessesquires/JSQMessagesViewController/issues/237 23 | // ******************************** 24 | 25 | "load_earlier_messages" = "Load Earlier Messages"; 26 | 27 | "send" = "Send"; 28 | 29 | "new_message" = "New Message"; 30 | 31 | "text_message_accessibility_label" = "%@: %@"; 32 | 33 | "media_message_accessibility_label" = "%@: media message"; 34 | 35 | "accessory_button_accessibility_label" = "Share media"; 36 | 37 | "new_message_received_accessibility_announcement" = "New message received"; -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/es.lproj/JSQMessages.strings: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jesse Squires 3 | // http://www.jessesquires.com 4 | // 5 | // 6 | // Documentation 7 | // http://cocoadocs.org/docsets/JSQMessagesViewController 8 | // 9 | // 10 | // GitHub 11 | // https://github.com/jessesquires/JSQMessagesViewController 12 | // 13 | // 14 | // License 15 | // Copyright (c) 2014 Jesse Squires 16 | // Released under an MIT license: http://opensource.org/licenses/MIT 17 | // 18 | 19 | // ******************************** 20 | // Special thanks to the localization contributors! 21 | // 22 | // https://github.com/jessesquires/JSQMessagesViewController/issues/237 23 | // ******************************** 24 | 25 | "load_earlier_messages" = "Cargar mensajes anteriores"; 26 | 27 | "send" = "Enviar"; 28 | 29 | "new_message" = "Nuevo mensaje"; 30 | 31 | "text_message_accessibility_label" = "%@: %@"; 32 | 33 | "media_message_accessibility_label" = "%@: imagen"; 34 | 35 | "accessory_button_accessibility_label" = "Intercambio de archivos"; 36 | 37 | "new_message_received_accessibility_announcement" = "mensaje recibido"; 38 | -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/fi.lproj/JSQMessages.strings: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jesse Squires 3 | // http://www.jessesquires.com 4 | // 5 | // 6 | // Documentation 7 | // http://cocoadocs.org/docsets/JSQMessagesViewController 8 | // 9 | // 10 | // GitHub 11 | // https://github.com/jessesquires/JSQMessagesViewController 12 | // 13 | // 14 | // License 15 | // Copyright (c) 2014 Jesse Squires 16 | // Released under an MIT license: http://opensource.org/licenses/MIT 17 | // 18 | 19 | // ******************************** 20 | // Special thanks to the localization contributors! 21 | // 22 | // https://github.com/jessesquires/JSQMessagesViewController/issues/237 23 | // ******************************** 24 | 25 | "load_earlier_messages" = "Lataa aiempia viestejä"; 26 | 27 | "send" = "Lähetä"; 28 | 29 | "new_message" = "Uusi viesti"; 30 | -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/fr.lproj/JSQMessages.strings: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jesse Squires 3 | // http://www.jessesquires.com 4 | // 5 | // 6 | // Documentation 7 | // http://cocoadocs.org/docsets/JSQMessagesViewController 8 | // 9 | // 10 | // GitHub 11 | // https://github.com/jessesquires/JSQMessagesViewController 12 | // 13 | // 14 | // License 15 | // Copyright (c) 2014 Jesse Squires 16 | // Released under an MIT license: http://opensource.org/licenses/MIT 17 | // 18 | 19 | // ******************************** 20 | // Special thanks to the localization contributors! 21 | // 22 | // https://github.com/jessesquires/JSQMessagesViewController/issues/237 23 | // ******************************** 24 | 25 | "load_earlier_messages" = "Messages précedents"; 26 | 27 | "send" = "Envoyer"; 28 | 29 | "new_message" = "Nouveau message"; 30 | 31 | "text_message_accessibility_label" = "%@: %@"; 32 | 33 | "media_message_accessibility_label" = "%@: image"; 34 | 35 | "accessory_button_accessibility_label" = "Partager fichier"; 36 | 37 | "new_message_received_accessibility_announcement" = "Nouveau message reçu"; 38 | -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/he.lproj/JSQMessages.strings: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jesse Squires 3 | // http://www.jessesquires.com 4 | // 5 | // 6 | // Documentation 7 | // http://cocoadocs.org/docsets/JSQMessagesViewController 8 | // 9 | // 10 | // GitHub 11 | // https://github.com/jessesquires/JSQMessagesViewController 12 | // 13 | // 14 | // License 15 | // Copyright (c) 2014 Jesse Squires 16 | // Released under an MIT license: http://opensource.org/licenses/MIT 17 | // 18 | 19 | // ******************************** 20 | // Special thanks to the localization contributors! 21 | // 22 | // https://github.com/jessesquires/JSQMessagesViewController/issues/237 23 | // ******************************** 24 | 25 | "load_earlier_messages" = "טען הודעות קודמות"; 26 | 27 | "send" = "שלח"; 28 | 29 | "new_message" = "הודעה חדשה"; 30 | -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/id.lproj/JSQMessages.strings: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jesse Squires 3 | // http://www.jessesquires.com 4 | // 5 | // 6 | // Documentation 7 | // http://cocoadocs.org/docsets/JSQMessagesViewController 8 | // 9 | // 10 | // GitHub 11 | // https://github.com/jessesquires/JSQMessagesViewController 12 | // 13 | // 14 | // License 15 | // Copyright (c) 2014 Jesse Squires 16 | // Released under an MIT license: http://opensource.org/licenses/MIT 17 | // 18 | 19 | // ******************************** 20 | // Special thanks to the localization contributors! 21 | // 22 | // https://github.com/jessesquires/JSQMessagesViewController/issues/237 23 | // ******************************** 24 | 25 | "load_earlier_messages" = "Muat Pesan Sebelumnya"; 26 | 27 | "send" = "Kirim"; 28 | 29 | "new_message" = "Pesan Baru"; 30 | -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/it.lproj/JSQMessages.strings: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jesse Squires 3 | // http://www.jessesquires.com 4 | // 5 | // 6 | // Documentation 7 | // http://cocoadocs.org/docsets/JSQMessagesViewController 8 | // 9 | // 10 | // GitHub 11 | // https://github.com/jessesquires/JSQMessagesViewController 12 | // 13 | // 14 | // License 15 | // Copyright (c) 2014 Jesse Squires 16 | // Released under an MIT license: http://opensource.org/licenses/MIT 17 | // 18 | 19 | // ******************************** 20 | // Special thanks to the localization contributors! 21 | // 22 | // https://github.com/jessesquires/JSQMessagesViewController/issues/237 23 | // ******************************** 24 | 25 | "load_earlier_messages" = "Carica messaggi precedenti"; 26 | 27 | "send" = "Invia"; 28 | 29 | "new_message" = "Nuovo Messaggio"; 30 | -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/ja.lproj/JSQMessages.strings: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jesse Squires 3 | // http://www.jessesquires.com 4 | // 5 | // 6 | // Documentation 7 | // http://cocoadocs.org/docsets/JSQMessagesViewController 8 | // 9 | // 10 | // GitHub 11 | // https://github.com/jessesquires/JSQMessagesViewController 12 | // 13 | // 14 | // License 15 | // Copyright (c) 2014 Jesse Squires 16 | // Released under an MIT license: http://opensource.org/licenses/MIT 17 | // 18 | 19 | // ******************************** 20 | // Special thanks to the localization contributors! 21 | // 22 | // https://github.com/jessesquires/JSQMessagesViewController/issues/237 23 | // ******************************** 24 | 25 | "load_earlier_messages" = "古いメッセージを読み込む"; 26 | 27 | "send" = "送信"; 28 | 29 | "new_message" = "新しいメッセージ"; 30 | -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/ko.lproj/JSQMessages.strings: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jesse Squires 3 | // http://www.jessesquires.com 4 | // 5 | // 6 | // Documentation 7 | // http://cocoadocs.org/docsets/JSQMessagesViewController 8 | // 9 | // 10 | // GitHub 11 | // https://github.com/jessesquires/JSQMessagesViewController 12 | // 13 | // 14 | // License 15 | // Copyright (c) 2014 Jesse Squires 16 | // Released under an MIT license: http://opensource.org/licenses/MIT 17 | // 18 | 19 | // ******************************** 20 | // Special thanks to the localization contributors! 21 | // 22 | // https://github.com/jessesquires/JSQMessagesViewController/issues/237 23 | // ******************************** 24 | 25 | "load_earlier_messages" = "이전 메시지 불러오기"; 26 | 27 | "send" = "전송"; 28 | 29 | "new_message" = "새로운 메시지"; 30 | -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/ms.lproj/JSQMessages.strings: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jesse Squires 3 | // http://www.jessesquires.com 4 | // 5 | // 6 | // Documentation 7 | // http://cocoadocs.org/docsets/JSQMessagesViewController 8 | // 9 | // 10 | // GitHub 11 | // https://github.com/jessesquires/JSQMessagesViewController 12 | // 13 | // 14 | // License 15 | // Copyright (c) 2014 Jesse Squires 16 | // Released under an MIT license: http://opensource.org/licenses/MIT 17 | // 18 | 19 | // ******************************** 20 | // Special thanks to the localization contributors! 21 | // 22 | // https://github.com/jessesquires/JSQMessagesViewController/issues/237 23 | // ******************************** 24 | 25 | "load_earlier_messages" = "Muat Turun Mesej Lama"; 26 | 27 | "send" = "Hantar"; 28 | 29 | "new_message" = "Mesej Baru"; 30 | -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/nb.lproj/JSQMessages.strings: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jesse Squires 3 | // http://www.jessesquires.com 4 | // 5 | // 6 | // Documentation 7 | // http://cocoadocs.org/docsets/JSQMessagesViewController 8 | // 9 | // 10 | // GitHub 11 | // https://github.com/jessesquires/JSQMessagesViewController 12 | // 13 | // 14 | // License 15 | // Copyright (c) 2014 Jesse Squires 16 | // Released under an MIT license: http://opensource.org/licenses/MIT 17 | // 18 | 19 | // ******************************** 20 | // Special thanks to the localization contributors! 21 | // 22 | // https://github.com/jessesquires/JSQMessagesViewController/issues/237 23 | // ******************************** 24 | 25 | "load_earlier_messages" = "Last tidligere beskjeder"; 26 | 27 | "send" = "Send"; 28 | 29 | "new_message" = "Ny melding"; 30 | 31 | "text_message_accessibility_label" = "%@: %@"; 32 | 33 | "media_message_accessibility_label" = "%@: mediamelding"; 34 | 35 | "accessory_button_accessibility_label" = "Del media"; 36 | 37 | "new_message_received_accessibility_announcement" = "Ny melding mottatt"; 38 | -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/nl.lproj/JSQMessages.strings: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jesse Squires 3 | // http://www.jessesquires.com 4 | // 5 | // 6 | // Documentation 7 | // http://cocoadocs.org/docsets/JSQMessagesViewController 8 | // 9 | // 10 | // GitHub 11 | // https://github.com/jessesquires/JSQMessagesViewController 12 | // 13 | // 14 | // License 15 | // Copyright (c) 2014 Jesse Squires 16 | // Released under an MIT license: http://opensource.org/licenses/MIT 17 | // 18 | 19 | // ******************************** 20 | // Special thanks to the localization contributors! 21 | // 22 | // https://github.com/jessesquires/JSQMessagesViewController/issues/237 23 | // ******************************** 24 | 25 | "load_earlier_messages" = "Laad eerdere berichten"; 26 | 27 | "send" = "Stuur"; 28 | 29 | "new_message" = "Nieuw bericht"; 30 | -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/pl.lproj/JSQMessages.strings: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jesse Squires 3 | // http://www.jessesquires.com 4 | // 5 | // 6 | // Documentation 7 | // http://cocoadocs.org/docsets/JSQMessagesViewController 8 | // 9 | // 10 | // GitHub 11 | // https://github.com/jessesquires/JSQMessagesViewController 12 | // 13 | // 14 | // License 15 | // Copyright (c) 2014 Jesse Squires 16 | // Released under an MIT license: http://opensource.org/licenses/MIT 17 | // 18 | 19 | // ******************************** 20 | // Special thanks to the localization contributors! 21 | // 22 | // https://github.com/jessesquires/JSQMessagesViewController/issues/237 23 | // ******************************** 24 | 25 | "load_earlier_messages" = "Otwórz wcześniejsze wiadomości"; 26 | 27 | "send" = "Wyślij"; 28 | 29 | "new_message" = "Nowa wiadomość"; 30 | -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/pt.lproj/JSQMessages.strings: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jesse Squires 3 | // http://www.jessesquires.com 4 | // 5 | // 6 | // Documentation 7 | // http://cocoadocs.org/docsets/JSQMessagesViewController 8 | // 9 | // 10 | // GitHub 11 | // https://github.com/jessesquires/JSQMessagesViewController 12 | // 13 | // 14 | // License 15 | // Copyright (c) 2014 Jesse Squires 16 | // Released under an MIT license: http://opensource.org/licenses/MIT 17 | // 18 | 19 | // ******************************** 20 | // Special thanks to the localization contributors! 21 | // 22 | // https://github.com/jessesquires/JSQMessagesViewController/issues/237 23 | // ******************************** 24 | 25 | "load_earlier_messages" = "Carregar mensagens anteriores"; 26 | 27 | "send" = "Enviar"; 28 | 29 | "new_message" = "Nova Mensagem"; 30 | -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/ro.lproj/JSQMessages.strings: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jesse Squires 3 | // http://www.jessesquires.com 4 | // 5 | // 6 | // Documentation 7 | // http://cocoadocs.org/docsets/JSQMessagesViewController 8 | // 9 | // 10 | // GitHub 11 | // https://github.com/jessesquires/JSQMessagesViewController 12 | // 13 | // 14 | // License 15 | // Copyright (c) 2014 Jesse Squires 16 | // Released under an MIT license: http://opensource.org/licenses/MIT 17 | // 18 | 19 | // ******************************** 20 | // Special thanks to the localization contributors! 21 | // 22 | // https://github.com/jessesquires/JSQMessagesViewController/issues/237 23 | // ******************************** 24 | 25 | "load_earlier_messages" = "Încărcați mesajele anterioare"; 26 | 27 | "send" = "Trimiteți"; 28 | 29 | "new_message" = "Mesaj nou"; 30 | -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/ru.lproj/JSQMessages.strings: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jesse Squires 3 | // http://www.jessesquires.com 4 | // 5 | // 6 | // Documentation 7 | // http://cocoadocs.org/docsets/JSQMessagesViewController 8 | // 9 | // 10 | // GitHub 11 | // https://github.com/jessesquires/JSQMessagesViewController 12 | // 13 | // 14 | // License 15 | // Copyright (c) 2014 Jesse Squires 16 | // Released under an MIT license: http://opensource.org/licenses/MIT 17 | // 18 | 19 | // ******************************** 20 | // Special thanks to the localization contributors! 21 | // 22 | // https://github.com/jessesquires/JSQMessagesViewController/issues/237 23 | // ******************************** 24 | 25 | "load_earlier_messages" = "Предыдущие сообщения"; 26 | 27 | "send" = "Отпр"; 28 | 29 | "new_message" = "Сообщение"; 30 | -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/th.lproj/JSQMessages.strings: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jesse Squires 3 | // http://www.jessesquires.com 4 | // 5 | // 6 | // Documentation 7 | // http://cocoadocs.org/docsets/JSQMessagesViewController 8 | // 9 | // 10 | // GitHub 11 | // https://github.com/jessesquires/JSQMessagesViewController 12 | // 13 | // 14 | // License 15 | // Copyright (c) 2014 Jesse Squires 16 | // Released under an MIT license: http://opensource.org/licenses/MIT 17 | // 18 | 19 | // ******************************** 20 | // Special thanks to the localization contributors! 21 | // 22 | // https://github.com/jessesquires/JSQMessagesViewController/issues/237 23 | // ******************************** 24 | 25 | "load_earlier_messages" = "โหลดข้อความก่อนหน้า"; 26 | 27 | "send" = "ส่ง"; 28 | 29 | "new_message" = "ข้อความใหม่"; 30 | -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/tr.lproj/JSQMessages.strings: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jesse Squires 3 | // http://www.jessesquires.com 4 | // 5 | // 6 | // Documentation 7 | // http://cocoadocs.org/docsets/JSQMessagesViewController 8 | // 9 | // 10 | // GitHub 11 | // https://github.com/jessesquires/JSQMessagesViewController 12 | // 13 | // 14 | // License 15 | // Copyright (c) 2014 Jesse Squires 16 | // Released under an MIT license: http://opensource.org/licenses/MIT 17 | // 18 | 19 | // ******************************** 20 | // Special thanks to the localization contributors! 21 | // 22 | // https://github.com/jessesquires/JSQMessagesViewController/issues/237 23 | // ******************************** 24 | 25 | "load_earlier_messages" = "Eski mesajları yükle"; 26 | 27 | "send" = "Gönder"; 28 | 29 | "new_message" = "Yeni Mesaj"; 30 | -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/vi.lproj/JSQMessages.strings: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jesse Squires 3 | // http://www.jessesquires.com 4 | // 5 | // 6 | // Documentation 7 | // http://cocoadocs.org/docsets/JSQMessagesViewController 8 | // 9 | // 10 | // GitHub 11 | // https://github.com/jessesquires/JSQMessagesViewController 12 | // 13 | // 14 | // License 15 | // Copyright (c) 2014 Jesse Squires 16 | // Released under an MIT license: http://opensource.org/licenses/MIT 17 | // 18 | 19 | // ******************************** 20 | // Special thanks to the localization contributors! 21 | // 22 | // https://github.com/jessesquires/JSQMessagesViewController/issues/237 23 | // ******************************** 24 | 25 | "load_earlier_messages" = "Tải thêm tin nhắn"; 26 | 27 | "send" = "Gửi"; 28 | 29 | "new_message" = "Tin nhắn mới"; 30 | -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/zh-Hans.lproj/JSQMessages.strings: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jesse Squires 3 | // http://www.jessesquires.com 4 | // 5 | // 6 | // Documentation 7 | // http://cocoadocs.org/docsets/JSQMessagesViewController 8 | // 9 | // 10 | // GitHub 11 | // https://github.com/jessesquires/JSQMessagesViewController 12 | // 13 | // 14 | // License 15 | // Copyright (c) 2014 Jesse Squires 16 | // Released under an MIT license: http://opensource.org/licenses/MIT 17 | // 18 | 19 | // ******************************** 20 | // Special thanks to the localization contributors! 21 | // 22 | // https://github.com/jessesquires/JSQMessagesViewController/issues/237 23 | // ******************************** 24 | 25 | "load_earlier_messages" = "载入较早的信息"; 26 | 27 | "send" = "发送"; 28 | 29 | "new_message" = "新信息"; 30 | -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle/zh-Hant.lproj/JSQMessages.strings: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jesse Squires 3 | // http://www.jessesquires.com 4 | // 5 | // 6 | // Documentation 7 | // http://cocoadocs.org/docsets/JSQMessagesViewController 8 | // 9 | // 10 | // GitHub 11 | // https://github.com/jessesquires/JSQMessagesViewController 12 | // 13 | // 14 | // License 15 | // Copyright (c) 2014 Jesse Squires 16 | // Released under an MIT license: http://opensource.org/licenses/MIT 17 | // 18 | 19 | // ******************************** 20 | // Special thanks to the localization contributors! 21 | // 22 | // https://github.com/jessesquires/JSQMessagesViewController/issues/237 23 | // ******************************** 24 | 25 | "load_earlier_messages" = "載入之前的訊息"; 26 | 27 | "send" = "傳送"; 28 | 29 | "new_message" = "新信息"; 30 | -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Categories/JSQSystemSoundPlayer+JSQMessages.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jesse Squires 3 | // http://www.jessesquires.com 4 | // 5 | // 6 | // Documentation 7 | // http://cocoadocs.org/docsets/JSQMessagesViewController 8 | // 9 | // 10 | // GitHub 11 | // https://github.com/jessesquires/JSQMessagesViewController 12 | // 13 | // 14 | // License 15 | // Copyright (c) 2014 Jesse Squires 16 | // Released under an MIT license: http://opensource.org/licenses/MIT 17 | // 18 | 19 | #import 20 | 21 | @interface JSQSystemSoundPlayer (JSQMessages) 22 | 23 | /** 24 | * Plays the default sound for received messages. 25 | */ 26 | + (void)jsq_playMessageReceivedSound; 27 | 28 | /** 29 | * Plays the default sound for received messages *as an alert*, invoking device vibration if available. 30 | */ 31 | + (void)jsq_playMessageReceivedAlert; 32 | 33 | /** 34 | * Plays the default sound for sent messages. 35 | */ 36 | + (void)jsq_playMessageSentSound; 37 | 38 | /** 39 | * Plays the default sound for sent messages *as an alert*, invoking device vibration if available. 40 | */ 41 | + (void)jsq_playMessageSentAlert; 42 | 43 | @end 44 | -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Categories/NSBundle+JSQMessages.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jesse Squires 3 | // http://www.jessesquires.com 4 | // 5 | // 6 | // Documentation 7 | // http://cocoadocs.org/docsets/JSQMessagesViewController 8 | // 9 | // 10 | // GitHub 11 | // https://github.com/jessesquires/JSQMessagesViewController 12 | // 13 | // 14 | // License 15 | // Copyright (c) 2014 Jesse Squires 16 | // Released under an MIT license: http://opensource.org/licenses/MIT 17 | // 18 | 19 | #import 20 | 21 | @interface NSBundle (JSQMessages) 22 | 23 | /** 24 | * @return The bundle for JSQMessagesViewController. 25 | */ 26 | + (NSBundle *)jsq_messagesBundle; 27 | 28 | /** 29 | * @return The bundle for assets in JSQMessagesViewController. 30 | */ 31 | + (NSBundle *)jsq_messagesAssetBundle; 32 | 33 | /** 34 | * Returns a localized version of the string designated by the specified key and residing in the JSQMessages table. 35 | * 36 | * @param key The key for a string in the JSQMessages table. 37 | * 38 | * @return A localized version of the string designated by key in the JSQMessages table. 39 | */ 40 | + (NSString *)jsq_localizedStringForKey:(NSString *)key; 41 | 42 | @end 43 | -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Categories/NSBundle+JSQMessages.m: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jesse Squires 3 | // http://www.jessesquires.com 4 | // 5 | // 6 | // Documentation 7 | // http://cocoadocs.org/docsets/JSQMessagesViewController 8 | // 9 | // 10 | // GitHub 11 | // https://github.com/jessesquires/JSQMessagesViewController 12 | // 13 | // 14 | // License 15 | // Copyright (c) 2014 Jesse Squires 16 | // Released under an MIT license: http://opensource.org/licenses/MIT 17 | // 18 | 19 | #import "NSBundle+JSQMessages.h" 20 | 21 | #import "JSQMessagesViewController.h" 22 | 23 | @implementation NSBundle (JSQMessages) 24 | 25 | + (NSBundle *)jsq_messagesBundle 26 | { 27 | return [NSBundle bundleForClass:[JSQMessagesViewController class]]; 28 | } 29 | 30 | + (NSBundle *)jsq_messagesAssetBundle 31 | { 32 | NSString *bundleResourcePath = [NSBundle jsq_messagesBundle].resourcePath; 33 | NSString *assetPath = [bundleResourcePath stringByAppendingPathComponent:@"JSQMessagesAssets.bundle"]; 34 | return [NSBundle bundleWithPath:assetPath]; 35 | } 36 | 37 | + (NSString *)jsq_localizedStringForKey:(NSString *)key 38 | { 39 | return NSLocalizedStringFromTableInBundle(key, @"JSQMessages", [NSBundle jsq_messagesAssetBundle], nil); 40 | } 41 | 42 | @end 43 | -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Categories/NSString+JSQMessages.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jesse Squires 3 | // http://www.jessesquires.com 4 | // 5 | // 6 | // Documentation 7 | // http://cocoadocs.org/docsets/JSQMessagesViewController 8 | // 9 | // 10 | // GitHub 11 | // https://github.com/jessesquires/JSQMessagesViewController 12 | // 13 | // 14 | // License 15 | // Copyright (c) 2014 Jesse Squires 16 | // Released under an MIT license: http://opensource.org/licenses/MIT 17 | // 18 | 19 | #import 20 | 21 | @interface NSString (JSQMessages) 22 | 23 | /** 24 | * @return A copy of the receiver with all leading and trailing whitespace removed. 25 | */ 26 | - (NSString *)jsq_stringByTrimingWhitespace; 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Categories/NSString+JSQMessages.m: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jesse Squires 3 | // http://www.jessesquires.com 4 | // 5 | // 6 | // Documentation 7 | // http://cocoadocs.org/docsets/JSQMessagesViewController 8 | // 9 | // 10 | // GitHub 11 | // https://github.com/jessesquires/JSQMessagesViewController 12 | // 13 | // 14 | // License 15 | // Copyright (c) 2014 Jesse Squires 16 | // Released under an MIT license: http://opensource.org/licenses/MIT 17 | // 18 | 19 | #import "NSString+JSQMessages.h" 20 | 21 | @implementation NSString (JSQMessages) 22 | 23 | - (NSString *)jsq_stringByTrimingWhitespace 24 | { 25 | return [self stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 26 | } 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Categories/UIDevice+JSQMessages.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jesse Squires 3 | // http://www.jessesquires.com 4 | // 5 | // 6 | // Documentation 7 | // http://cocoadocs.org/docsets/JSQMessagesViewController 8 | // 9 | // 10 | // GitHub 11 | // https://github.com/jessesquires/JSQMessagesViewController 12 | // 13 | // 14 | // License 15 | // Copyright (c) 2014 Jesse Squires 16 | // Released under an MIT license: http://opensource.org/licenses/MIT 17 | // 18 | 19 | #import 20 | 21 | @interface UIDevice (JSQMessages) 22 | 23 | /** 24 | * @return Whether or not the current device is running a version of iOS before 8.0. 25 | */ 26 | + (BOOL)jsq_isCurrentDeviceBeforeiOS8; 27 | 28 | /** 29 | * @return Whether or not the current device is running a version of iOS after 9.0. 30 | */ 31 | + (BOOL)jsq_isCurrentDeviceAfteriOS9; 32 | 33 | @end 34 | -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Categories/UIDevice+JSQMessages.m: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jesse Squires 3 | // http://www.jessesquires.com 4 | // 5 | // 6 | // Documentation 7 | // http://cocoadocs.org/docsets/JSQMessagesViewController 8 | // 9 | // 10 | // GitHub 11 | // https://github.com/jessesquires/JSQMessagesViewController 12 | // 13 | // 14 | // License 15 | // Copyright (c) 2014 Jesse Squires 16 | // Released under an MIT license: http://opensource.org/licenses/MIT 17 | // 18 | 19 | #import "UIDevice+JSQMessages.h" 20 | 21 | @implementation UIDevice (JSQMessages) 22 | 23 | + (BOOL)jsq_isCurrentDeviceBeforeiOS8 24 | { 25 | // iOS < 8.0 26 | return [[UIDevice currentDevice].systemVersion compare:@"8.0" options:NSNumericSearch] == NSOrderedAscending; 27 | } 28 | 29 | + (BOOL)jsq_isCurrentDeviceAfteriOS9 30 | { 31 | // iOS > 9.0 32 | return [[UIDevice currentDevice].systemVersion compare:@"9.0" options:NSNumericSearch] == NSOrderedDescending; 33 | } 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Categories/UIView+JSQMessages.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jesse Squires 3 | // http://www.jessesquires.com 4 | // 5 | // 6 | // Documentation 7 | // http://cocoadocs.org/docsets/JSQMessagesViewController 8 | // 9 | // 10 | // GitHub 11 | // https://github.com/jessesquires/JSQMessagesViewController 12 | // 13 | // 14 | // License 15 | // Copyright (c) 2014 Jesse Squires 16 | // Released under an MIT license: http://opensource.org/licenses/MIT 17 | // 18 | 19 | #import 20 | 21 | @interface UIView (JSQMessages) 22 | 23 | /** 24 | * Pins the subview of the receiver to the edge of its frame, as specified by the given attribute, by adding a layout constraint. 25 | * 26 | * @param subview The subview to which the receiver will be pinned. 27 | * @param attribute The layout constraint attribute specifying one of `NSLayoutAttributeBottom`, `NSLayoutAttributeTop`, `NSLayoutAttributeLeading`, `NSLayoutAttributeTrailing`. 28 | */ 29 | - (void)jsq_pinSubview:(UIView *)subview toEdge:(NSLayoutAttribute)attribute; 30 | 31 | /** 32 | * Pins all edges of the specified subview to the receiver. 33 | * 34 | * @param subview The subview to which the receiver will be pinned. 35 | */ 36 | - (void)jsq_pinAllEdgesOfSubview:(UIView *)subview; 37 | 38 | @end 39 | -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Views/JSQMessagesCellTextView.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jesse Squires 3 | // http://www.jessesquires.com 4 | // 5 | // 6 | // Documentation 7 | // http://cocoadocs.org/docsets/JSQMessagesViewController 8 | // 9 | // 10 | // GitHub 11 | // https://github.com/jessesquires/JSQMessagesViewController 12 | // 13 | // 14 | // License 15 | // Copyright (c) 2014 Jesse Squires 16 | // Released under an MIT license: http://opensource.org/licenses/MIT 17 | // 18 | 19 | #import 20 | 21 | /** 22 | * `JSQMessagesCellTextView` is a subclass of `UITextView` that is used to display text 23 | * in a `JSQMessagesCollectionViewCell`. 24 | */ 25 | @interface JSQMessagesCellTextView : UITextView 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Views/JSQMessagesCollectionViewCellIncoming.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jesse Squires 3 | // http://www.jessesquires.com 4 | // 5 | // 6 | // Documentation 7 | // http://cocoadocs.org/docsets/JSQMessagesViewController 8 | // 9 | // 10 | // GitHub 11 | // https://github.com/jessesquires/JSQMessagesViewController 12 | // 13 | // 14 | // License 15 | // Copyright (c) 2014 Jesse Squires 16 | // Released under an MIT license: http://opensource.org/licenses/MIT 17 | // 18 | 19 | #import "JSQMessagesCollectionViewCell.h" 20 | 21 | /** 22 | * A `JSQMessagesCollectionViewCellIncoming` object is a concrete instance 23 | * of `JSQMessagesCollectionViewCell` that represents an incoming message data item. 24 | */ 25 | @interface JSQMessagesCollectionViewCellIncoming : JSQMessagesCollectionViewCell 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Views/JSQMessagesCollectionViewCellIncoming.m: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jesse Squires 3 | // http://www.jessesquires.com 4 | // 5 | // 6 | // Documentation 7 | // http://cocoadocs.org/docsets/JSQMessagesViewController 8 | // 9 | // 10 | // GitHub 11 | // https://github.com/jessesquires/JSQMessagesViewController 12 | // 13 | // 14 | // License 15 | // Copyright (c) 2014 Jesse Squires 16 | // Released under an MIT license: http://opensource.org/licenses/MIT 17 | // 18 | 19 | #import "JSQMessagesCollectionViewCellIncoming.h" 20 | 21 | @implementation JSQMessagesCollectionViewCellIncoming 22 | 23 | #pragma mark - Overrides 24 | 25 | - (void)awakeFromNib 26 | { 27 | [super awakeFromNib]; 28 | self.messageBubbleTopLabel.textAlignment = NSTextAlignmentLeft; 29 | self.cellBottomLabel.textAlignment = NSTextAlignmentLeft; 30 | } 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Views/JSQMessagesCollectionViewCellOutgoing.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jesse Squires 3 | // http://www.jessesquires.com 4 | // 5 | // 6 | // Documentation 7 | // http://cocoadocs.org/docsets/JSQMessagesViewController 8 | // 9 | // 10 | // GitHub 11 | // https://github.com/jessesquires/JSQMessagesViewController 12 | // 13 | // 14 | // License 15 | // Copyright (c) 2014 Jesse Squires 16 | // Released under an MIT license: http://opensource.org/licenses/MIT 17 | // 18 | 19 | #import "JSQMessagesCollectionViewCell.h" 20 | 21 | /** 22 | * A `JSQMessagesCollectionViewCellOutgoing` object is a concrete instance 23 | * of `JSQMessagesCollectionViewCell` that represents an outgoing message data item. 24 | */ 25 | @interface JSQMessagesCollectionViewCellOutgoing : JSQMessagesCollectionViewCell 26 | 27 | @end 28 | -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Views/JSQMessagesCollectionViewCellOutgoing.m: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jesse Squires 3 | // http://www.jessesquires.com 4 | // 5 | // 6 | // Documentation 7 | // http://cocoadocs.org/docsets/JSQMessagesViewController 8 | // 9 | // 10 | // GitHub 11 | // https://github.com/jessesquires/JSQMessagesViewController 12 | // 13 | // 14 | // License 15 | // Copyright (c) 2014 Jesse Squires 16 | // Released under an MIT license: http://opensource.org/licenses/MIT 17 | // 18 | 19 | #import "JSQMessagesCollectionViewCellOutgoing.h" 20 | 21 | @implementation JSQMessagesCollectionViewCellOutgoing 22 | 23 | #pragma mark - Overrides 24 | 25 | - (void)awakeFromNib 26 | { 27 | [super awakeFromNib]; 28 | self.messageBubbleTopLabel.textAlignment = NSTextAlignmentRight; 29 | self.cellBottomLabel.textAlignment = NSTextAlignmentRight; 30 | } 31 | 32 | @end 33 | -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/JSQMessagesViewController/Views/JSQMessagesLabel.h: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Jesse Squires 3 | // http://www.jessesquires.com 4 | // 5 | // 6 | // Documentation 7 | // http://cocoadocs.org/docsets/JSQMessagesViewController 8 | // 9 | // 10 | // GitHub 11 | // https://github.com/jessesquires/JSQMessagesViewController 12 | // 13 | // 14 | // License 15 | // Copyright (c) 2014 Jesse Squires 16 | // Released under an MIT license: http://opensource.org/licenses/MIT 17 | // 18 | 19 | #import 20 | 21 | /** 22 | * `JSQMessagesLabel` is a subclass of `UILabel` that adds support for a `textInsets` property, 23 | * which is similar to the `textContainerInset` property of `UITextView`. 24 | */ 25 | @interface JSQMessagesLabel : UILabel 26 | 27 | /** 28 | * The inset of the text layout area within the label's content area. The default value is `UIEdgeInsetsZero`. 29 | * 30 | * @discussion This property provides text margins for the text laid out in the label. 31 | * The inset values provided must be greater than or equal to `0.0f`. 32 | */ 33 | @property (assign, nonatomic) UIEdgeInsets textInsets; 34 | 35 | @end 36 | -------------------------------------------------------------------------------- /Pods/JSQMessagesViewController/LICENSE: -------------------------------------------------------------------------------- 1 | 2 | MIT License 3 | Copyright (c) 2013-present Jesse Squires 4 | 5 | http://www.jessesquires.com 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and 8 | associated documentation files (the "Software"), to deal in the Software without restriction, including 9 | without limitation the rights 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 furnished to do so, subject to the 11 | 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 IMPLIED, INCLUDING BUT NOT 17 | LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 18 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE 20 | OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /Pods/JSQSystemSoundPlayer/LICENSE: -------------------------------------------------------------------------------- 1 | 2 | MIT License 3 | Copyright (c) 2013 Jesse Squires 4 | 5 | http://www.hexedbits.com 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and 8 | associated documentation files (the "Software"), to deal in the Software without restriction, including 9 | without limitation the rights 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 furnished to do so, subject to the 11 | 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 IMPLIED, INCLUDING BUT NOT 17 | LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 18 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 19 | IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE 20 | OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 21 | -------------------------------------------------------------------------------- /Pods/Kingfisher/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2017 Wei Wang 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 | -------------------------------------------------------------------------------- /Pods/Kingfisher/Sources/Box.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Box.swift 3 | // Kingfisher 4 | // 5 | // Created by WANG WEI on 2016/09/12. 6 | // Copyright © 2016年 Wei Wang. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | class Box { 12 | let value: T 13 | init(value: T) { 14 | self.value = value 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Pods/PagingMenuController/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 Yusuke Kita 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 | 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 22 | THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /Pods/PagingMenuController/Pod/Classes/Protocols/Pagable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Pagable.swift 3 | // PagingMenuController 4 | // 5 | // Created by Yusuke Kita on 6/10/16. 6 | // Copyright (c) 2016 kitasuke. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | protocol Pagable { 12 | var currentPage: Int { get } 13 | var previousPage: Int { get } 14 | var nextPage: Int { get } 15 | func update(currentPage page: Int) 16 | } 17 | 18 | extension Pagable { 19 | func update(currentPage page: Int) {} 20 | } 21 | -------------------------------------------------------------------------------- /Pods/RxCocoa/LICENSE.md: -------------------------------------------------------------------------------- 1 | **The MIT License** 2 | **Copyright © 2015 Krunoslav Zaher** 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. -------------------------------------------------------------------------------- /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 Element = E 12 | typealias Iterator = AnyIterator 13 | 14 | private let _repeatedValue: E 15 | 16 | init(repeatedValue: E) { 17 | _repeatedValue = repeatedValue 18 | } 19 | 20 | func makeIterator() -> Iterator { 21 | let repeatedValue = _repeatedValue 22 | return AnyIterator { 23 | return repeatedValue 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /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 | return DispatchQueue.getSpecific(key: token) != nil 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /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 | typealias RecursiveLock = NSRecursiveLock 12 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/CocoaUnits/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 | #if !RX_NO_MODULE 10 | import RxSwift 11 | #endif 12 | 13 | extension ControlEvent { 14 | /// Converts `ControlEvent` to `Driver` unit. 15 | /// 16 | /// `ControlEvent` already can't fail, so no special case needs to be handled. 17 | public func asDriver() -> Driver { 18 | return self.asDriver { (error) -> Driver in 19 | #if DEBUG 20 | rxFatalError("Somehow driver received error from a source that shouldn't fail.") 21 | #else 22 | return Driver.empty() 23 | #endif 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/CocoaUnits/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 | #if !RX_NO_MODULE 10 | import RxSwift 11 | #endif 12 | 13 | extension ControlProperty { 14 | /// Converts `ControlProperty` to `Driver` unit. 15 | /// 16 | /// `ControlProperty` already can't fail, so no special case needs to be handled. 17 | public func asDriver() -> Driver { 18 | return self.asDriver { (error) -> Driver in 19 | #if DEBUG 20 | rxFatalError("Somehow driver received error from a source that shouldn't fail.") 21 | #else 22 | return Driver.empty() 23 | #endif 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/CocoaUnits/Driver/Variable+Driver.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Variable+Driver.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 12/28/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if !RX_NO_MODULE 10 | import RxSwift 11 | #endif 12 | 13 | extension Variable { 14 | /// Converts `Variable` to `Driver` unit. 15 | /// 16 | /// - returns: Driving observable sequence. 17 | public func asDriver() -> Driver { 18 | let source = self.asObservable() 19 | .observeOn(DriverSharingStrategy.scheduler) 20 | return Driver(source) 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/CocoaUnits/SharedSequence/Variable+SharedSequence.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Variable+SharedSequence.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 12/28/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if !RX_NO_MODULE 10 | import RxSwift 11 | #endif 12 | 13 | extension Variable { 14 | /// Converts `Variable` to `SharedSequence` unit. 15 | /// 16 | /// - returns: Observable sequence. 17 | public func asSharedSequence(strategy: SharingStrategy.Type = SharingStrategy.self) -> SharedSequence { 18 | let source = self.asObservable() 19 | .observeOn(SharingStrategy.scheduler) 20 | return SharedSequence(source) 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/Common/NSLayoutConstraint+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NSLayoutConstraint+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(Linux) 10 | 11 | #if os(macOS) 12 | import Cocoa 13 | #else 14 | import UIKit 15 | #endif 16 | 17 | #if !RX_NO_MODULE 18 | import RxSwift 19 | #endif 20 | 21 | #if os(iOS) || os(macOS) || os(tvOS) 22 | extension Reactive where Base: NSLayoutConstraint { 23 | /// Bindable sink for `constant` property. 24 | public var constant: UIBindingObserver { 25 | return UIBindingObserver(UIElement: self.base) { constraint, constant in 26 | constraint.constant = constant 27 | } 28 | } 29 | 30 | /// Bindable sink for `active` property. 31 | @available(iOS 8, OSX 10.10, *) 32 | public var active: UIBindingObserver { 33 | return UIBindingObserver(UIElement: self.base) { constraint, value in 34 | constraint.isActive = value 35 | } 36 | } 37 | } 38 | 39 | #endif 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /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 class Foundation.NSObject 10 | 11 | #if !RX_NO_MODULE 12 | import RxSwift 13 | #endif 14 | 15 | class RxTarget : NSObject 16 | , Disposable { 17 | 18 | private var retainSelf: RxTarget? 19 | 20 | override init() { 21 | super.init() 22 | self.retainSelf = self 23 | 24 | #if TRACE_RESOURCES 25 | _ = Resources.incrementTotal() 26 | #endif 27 | 28 | #if DEBUG 29 | MainScheduler.ensureExecutingOnScheduler() 30 | #endif 31 | } 32 | 33 | func dispose() { 34 | #if DEBUG 35 | MainScheduler.ensureExecutingOnScheduler() 36 | #endif 37 | self.retainSelf = nil 38 | } 39 | 40 | #if TRACE_RESOURCES 41 | deinit { 42 | _ = Resources.decrementTotal() 43 | } 44 | #endif 45 | } 46 | -------------------------------------------------------------------------------- /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 struct Foundation.IndexPath 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/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/Foundation/Logging.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Logging.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 4/3/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import struct Foundation.URLRequest 10 | 11 | /// Simple logging settings for RxCocoa library. 12 | public struct Logging { 13 | public typealias LogURLRequest = (URLRequest) -> Bool 14 | 15 | /// Log URL requests to standard output in curl format. 16 | public static var URLRequests: LogURLRequest = { _ in 17 | #if DEBUG 18 | return true 19 | #else 20 | return false 21 | #endif 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /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 class Foundation.NotificationCenter 10 | import struct Foundation.Notification 11 | 12 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | 16 | extension Reactive where Base: NotificationCenter { 17 | /** 18 | Transforms notifications posted to notification center to observable sequence of notifications. 19 | 20 | - parameter name: Optional name used to filter notifications. 21 | - parameter object: Optional object used to filter notifications. 22 | - returns: Observable sequence of posted notifications. 23 | */ 24 | public func notification(_ name: Notification.Name?, object: AnyObject? = nil) -> Observable { 25 | return Observable.create { [weak object] observer in 26 | let nsObserver = self.base.addObserver(forName: name, object: object, queue: nil) { notification in 27 | observer.on(.next(notification)) 28 | } 29 | 30 | return Disposables.create { 31 | self.base.removeObserver(nsObserver) 32 | } 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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/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; 18 | 19 | -(BOOL)hasWiredImplementationForSelector:(SEL)selector; 20 | 21 | -(void)_sentMessage:(SEL)selector withArguments:(NSArray*)arguments; 22 | -(void)_methodInvoked:(SEL)selector withArguments:(NSArray*)arguments; 23 | 24 | @end 25 | 26 | NS_ASSUME_NONNULL_END 27 | -------------------------------------------------------------------------------- /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/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 "_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[]; -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | 16 | /// Marks data source as `UICollectionView` reactive data source enabling it to be used with one of the `bindTo` methods. 17 | public protocol RxCollectionViewDataSourceType /*: UICollectionViewDataSource*/ { 18 | 19 | /// Type of elements that can be bound to collection view. 20 | associatedtype Element 21 | 22 | /// New observable sequence event observed. 23 | /// 24 | /// - parameter collectionView: Bound collection view. 25 | /// - parameter observedEvent: Event 26 | func collectionView(_ collectionView: UICollectionView, observedEvent: Event) -> Void 27 | } 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /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 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | 16 | /// Marks data source as `UITableView` reactive data source enabling it to be used with one of the `bindTo` methods. 17 | public protocol RxTableViewDataSourceType /*: UITableViewDataSource*/ { 18 | 19 | /// Type of elements that can be bound to table view. 20 | associatedtype Element 21 | 22 | /// New observable sequence event observed. 23 | /// 24 | /// - parameter tableView: Bound table view. 25 | /// - parameter observedEvent: Event 26 | func tableView(_ tableView: UITableView, observedEvent: Event) -> Void 27 | } 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /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 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | 16 | /// For more information take a look at `DelegateProxyType`. 17 | public class RxCollectionViewDelegateProxy 18 | : RxScrollViewDelegateProxy 19 | , UICollectionViewDelegate 20 | , UICollectionViewDelegateFlowLayout { 21 | 22 | /// Typed parent object. 23 | public weak private(set) var collectionView: UICollectionView? 24 | 25 | /// Initializes `RxCollectionViewDelegateProxy` 26 | /// 27 | /// - parameter parentObject: Parent object for delegate proxy. 28 | public required init(parentObject: AnyObject) { 29 | self.collectionView = castOrFatalError(parentObject) 30 | super.init(parentObject: parentObject) 31 | } 32 | } 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /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 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | 16 | /// For more information take a look at `DelegateProxyType`. 17 | public class RxTableViewDelegateProxy 18 | : RxScrollViewDelegateProxy 19 | , UITableViewDelegate { 20 | 21 | 22 | /// Typed parent object. 23 | public weak private(set) var tableView: UITableView? 24 | 25 | /// Initializes `RxTableViewDelegateProxy` 26 | /// 27 | /// - parameter parentObject: Parent object for delegate proxy. 28 | public required init(parentObject: AnyObject) { 29 | self.tableView = castOrFatalError(parentObject) 30 | super.init(parentObject: parentObject) 31 | } 32 | 33 | } 34 | 35 | #endif 36 | -------------------------------------------------------------------------------- /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 | import UIKit 11 | 12 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | 16 | extension Reactive where Base: UIActivityIndicatorView { 17 | 18 | /// Bindable sink for `startAnimating()`, `stopAnimating()` methods. 19 | public var isAnimating: UIBindingObserver { 20 | return UIBindingObserver(UIElement: self.base) { activityIndicator, active in 21 | if active { 22 | activityIndicator.startAnimating() 23 | } else { 24 | activityIndicator.stopAnimating() 25 | } 26 | } 27 | } 28 | 29 | } 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/UIAlertAction+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIAlertAction+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Andrew Breckenridge on 5/7/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | 13 | #if !RX_NO_MODULE 14 | import RxSwift 15 | #endif 16 | 17 | extension Reactive where Base: UIAlertAction { 18 | 19 | /// Bindable sink for `enabled` property. 20 | public var isEnabled: UIBindingObserver { 21 | return UIBindingObserver(UIElement: self.base) { alertAction, value in 22 | alertAction.isEnabled = value 23 | } 24 | } 25 | 26 | } 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/UIApplication+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIApplication+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Mads Bøgeskov on 18/01/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) 10 | import UIKit 11 | 12 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | 16 | extension Reactive where Base: UIApplication { 17 | 18 | /// Bindable sink for `networkActivityIndicatorVisible`. 19 | public var isNetworkActivityIndicatorVisible: UIBindingObserver { 20 | return UIBindingObserver(UIElement: self.base) { application, active in 21 | application.isNetworkActivityIndicatorVisible = active 22 | } 23 | } 24 | } 25 | #endif 26 | 27 | -------------------------------------------------------------------------------- /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 | #if !RX_NO_MODULE 12 | import RxSwift 13 | #endif 14 | import UIKit 15 | 16 | extension Reactive where Base: UIDatePicker { 17 | /// Reactive wrapper for `date` property. 18 | public var date: ControlProperty { 19 | return value 20 | } 21 | 22 | /// Reactive wrapper for `date` property. 23 | public var value: ControlProperty { 24 | return UIControl.rx.value( 25 | self.base, 26 | getter: { datePicker in 27 | datePicker.date 28 | }, setter: { datePicker, value in 29 | datePicker.date = value 30 | } 31 | ) 32 | } 33 | 34 | } 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/UILabel+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UILabel+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 4/1/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | #if !RX_NO_MODULE 12 | import RxSwift 13 | #endif 14 | import UIKit 15 | 16 | extension Reactive where Base: UILabel { 17 | 18 | /// Bindable sink for `text` property. 19 | public var text: UIBindingObserver { 20 | return UIBindingObserver(UIElement: self.base) { label, text in 21 | label.text = text 22 | } 23 | } 24 | 25 | /// Bindable sink for `attributedText` property. 26 | public var attributedText: UIBindingObserver { 27 | return UIBindingObserver(UIElement: self.base) { label, text in 28 | label.attributedText = text 29 | } 30 | } 31 | 32 | } 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/UINavigationItem+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UINavigationItem+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by kumapo on 2016/05/09. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | 16 | extension Reactive where Base: UINavigationItem { 17 | 18 | /// Bindable sink for `title` property. 19 | public var title: UIBindingObserver { 20 | return UIBindingObserver(UIElement: self.base) { navigationItem, text in 21 | navigationItem.title = text 22 | } 23 | } 24 | 25 | } 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/UIPageControl+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIPageControl+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Francesco Puntillo on 14/04/2016. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | #if !RX_NO_MODULE 12 | import RxSwift 13 | #endif 14 | import UIKit 15 | 16 | extension Reactive where Base: UIPageControl { 17 | 18 | /// Bindable sink for `currentPage` property. 19 | public var currentPage: UIBindingObserver { 20 | return UIBindingObserver(UIElement: self.base) { controller, page in 21 | controller.currentPage = page 22 | } 23 | } 24 | 25 | /// Bindable sink for `numberOfPages` property. 26 | public var numberOfPages: UIBindingObserver { 27 | return UIBindingObserver(UIElement: self.base) { controller, page in 28 | controller.numberOfPages = page 29 | } 30 | } 31 | 32 | } 33 | 34 | #endif 35 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/UIProgressView+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIProgressView+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Samuel Bae on 2/27/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | #if !RX_NO_MODULE 12 | import RxSwift 13 | #endif 14 | import UIKit 15 | 16 | extension Reactive where Base: UIProgressView { 17 | 18 | /// Bindable sink for `progress` property 19 | public var progress: UIBindingObserver { 20 | return UIBindingObserver(UIElement: self.base) { progressView, progress in 21 | progressView.progress = progress 22 | } 23 | } 24 | 25 | } 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /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 | import UIKit 11 | 12 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | 16 | extension Reactive where Base: UIRefreshControl { 17 | 18 | /// Bindable sink for `beginRefreshing()`, `endRefreshing()` methods. 19 | @available(*, deprecated, renamed: "isRefreshing") 20 | public var refreshing: UIBindingObserver { 21 | return self.isRefreshing 22 | } 23 | 24 | /// Bindable sink for `beginRefreshing()`, `endRefreshing()` methods. 25 | public var isRefreshing: UIBindingObserver { 26 | return UIBindingObserver(UIElement: self.base) { refreshControl, refresh in 27 | if refresh { 28 | refreshControl.beginRefreshing() 29 | } else { 30 | refreshControl.endRefreshing() 31 | } 32 | } 33 | } 34 | 35 | } 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/UISegmentedControl+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UISegmentedControl+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) || os(tvOS) 10 | 11 | import UIKit 12 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | 16 | 17 | extension Reactive where Base: UISegmentedControl { 18 | /// Reactive wrapper for `selectedSegmentIndex` property. 19 | public var selectedSegmentIndex: ControlProperty { 20 | return value 21 | } 22 | 23 | /// Reactive wrapper for `selectedSegmentIndex` property. 24 | public var value: ControlProperty { 25 | return UIControl.rx.value( 26 | self.base, 27 | getter: { segmentedControl in 28 | segmentedControl.selectedSegmentIndex 29 | }, setter: { segmentedControl, value in 30 | segmentedControl.selectedSegmentIndex = value 31 | } 32 | ) 33 | } 34 | 35 | } 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /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 | #if !RX_NO_MODULE 12 | import RxSwift 13 | #endif 14 | import UIKit 15 | 16 | extension Reactive where Base: UISlider { 17 | 18 | /// Reactive wrapper for `value` property. 19 | public var value: ControlProperty { 20 | return UIControl.rx.value( 21 | self.base, 22 | getter: { slider in 23 | slider.value 24 | }, setter: { slider, value in 25 | slider.value = value 26 | } 27 | ) 28 | } 29 | 30 | } 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /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 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | 16 | extension Reactive where Base: UIStepper { 17 | 18 | /// Reactive wrapper for `value` property. 19 | public var value: ControlProperty { 20 | return UIControl.rx.value( 21 | self.base, 22 | getter: { stepper in 23 | stepper.value 24 | }, setter: { stepper, value in 25 | stepper.value = value 26 | } 27 | ) 28 | } 29 | 30 | } 31 | 32 | #endif 33 | 34 | -------------------------------------------------------------------------------- /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 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | 16 | 17 | extension Reactive where Base: UISwitch { 18 | 19 | /// Reactive wrapper for `isOn` property. 20 | public var isOn: ControlProperty { 21 | return value 22 | } 23 | 24 | /** 25 | Reactive wrapper for `isOn` property. 26 | 27 | **⚠️ Versions prior to iOS 10.2 were leaking `UIButton`s, so on those versions 28 | underlying observable sequence won't complete when nothing holds a strong reference 29 | to UISwitch.⚠️** 30 | */ 31 | public var value: ControlProperty { 32 | return UIControl.rx.value( 33 | self.base, 34 | getter: { uiSwitch in 35 | uiSwitch.isOn 36 | }, setter: { uiSwitch, value in 37 | uiSwitch.isOn = value 38 | } 39 | ) 40 | } 41 | 42 | } 43 | 44 | #endif 45 | 46 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/UITabBarItem+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UITabBarItem+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Mateusz Derks on 04/03/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | 16 | extension Reactive where Base: UITabBarItem { 17 | 18 | /// Bindable sink for `badgeValue` property. 19 | public var badgeValue: UIBindingObserver { 20 | return UIBindingObserver(UIElement: self.base) { tabBarItem, badgeValue in 21 | tabBarItem.badgeValue = badgeValue 22 | } 23 | } 24 | 25 | } 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/UITextField+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UITextField+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 2/21/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | #if !RX_NO_MODULE 12 | import RxSwift 13 | #endif 14 | import UIKit 15 | 16 | extension Reactive where Base: UITextField { 17 | /// Reactive wrapper for `text` property. 18 | public var text: ControlProperty { 19 | return value 20 | } 21 | 22 | /// Reactive wrapper for `text` property. 23 | public var value: ControlProperty { 24 | return UIControl.rx.value( 25 | base, 26 | getter: { textField in 27 | textField.text 28 | }, setter: { textField, value in 29 | // This check is important because setting text value always clears control state 30 | // including marked text selection which is imporant for proper input 31 | // when IME input method is used. 32 | if textField.text != value { 33 | textField.text = value 34 | } 35 | } 36 | ) 37 | } 38 | 39 | } 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/UIView+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIView+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(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | 16 | extension Reactive where Base: UIView { 17 | /// Bindable sink for `hidden` property. 18 | public var isHidden: UIBindingObserver { 19 | return UIBindingObserver(UIElement: self.base) { view, hidden in 20 | view.isHidden = hidden 21 | } 22 | } 23 | 24 | /// Bindable sink for `alpha` property. 25 | public var alpha: UIBindingObserver { 26 | return UIBindingObserver(UIElement: self.base) { view, alpha in 27 | view.alpha = alpha 28 | } 29 | } 30 | } 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /Pods/RxCocoa/RxCocoa/iOS/UIViewController+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewController+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Kyle Fuller on 27/05/2016. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) 10 | import UIKit 11 | 12 | #if !RX_NO_MODULE 13 | import RxSwift 14 | #endif 15 | 16 | extension Reactive where Base: UIViewController { 17 | 18 | /// Bindable sink for `title`. 19 | public var title: UIBindingObserver { 20 | return UIBindingObserver(UIElement: self.base) { viewController, title in 21 | viewController.title = title 22 | } 23 | } 24 | 25 | } 26 | #endif 27 | -------------------------------------------------------------------------------- /Pods/RxSwift/LICENSE.md: -------------------------------------------------------------------------------- 1 | **The MIT License** 2 | **Copyright © 2015 Krunoslav Zaher** 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. -------------------------------------------------------------------------------- /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 Element = E 12 | typealias Iterator = AnyIterator 13 | 14 | private let _repeatedValue: E 15 | 16 | init(repeatedValue: E) { 17 | _repeatedValue = repeatedValue 18 | } 19 | 20 | func makeIterator() -> Iterator { 21 | let repeatedValue = _repeatedValue 22 | return AnyIterator { 23 | return repeatedValue 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /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 | return DispatchQueue.getSpecific(key: token) != nil 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /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 | typealias RecursiveLock = NSRecursiveLock 12 | -------------------------------------------------------------------------------- /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/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: () -> Void) { 20 | lock(); defer { unlock() } 21 | action() 22 | } 23 | 24 | @inline(__always) 25 | final func calculateLocked(_ action: () -> T) -> T { 26 | lock(); defer { unlock() } 27 | return action() 28 | } 29 | 30 | @inline(__always) 31 | final func calculateLockedOrFail(_ action: () throws -> T) throws -> T { 32 | lock(); defer { unlock() } 33 | let result = try action() 34 | return result 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /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 : class, Lock { 10 | var _lock: RecursiveLock { get } 11 | } 12 | 13 | extension LockOwnerType { 14 | func lock() { 15 | _lock.lock() 16 | } 17 | 18 | func unlock() { 19 | _lock.unlock() 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /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 : class, Disposable, Lock { 10 | func _synchronized_dispose() 11 | } 12 | 13 | extension SynchronizedDisposeType { 14 | func synchronizedDispose() { 15 | lock(); defer { unlock() } 16 | _synchronized_dispose() 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /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 : class, ObserverType, Lock { 10 | func _synchronized_on(_ event: Event) 11 | } 12 | 13 | extension SynchronizedOnType { 14 | func synchronizedOn(_ event: Event) { 15 | lock(); defer { unlock() } 16 | _synchronized_on(event) 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Concurrency/SynchronizedSubscribeType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SynchronizedSubscribeType.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 SynchronizedSubscribeType : class, ObservableType, Lock { 10 | func _synchronized_subscribe(_ observer: O) -> Disposable where O.E == E 11 | } 12 | 13 | extension SynchronizedSubscribeType { 14 | func synchronizedSubscribe(_ observer: O) -> Disposable where O.E == E { 15 | lock(); defer { unlock() } 16 | return _synchronized_subscribe(observer) 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /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 : class { 10 | associatedtype DisposeKey 11 | 12 | func synchronizedUnsubscribe(_ disposeKey: DisposeKey) 13 | } 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/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 | /// Respresents a disposable resource. 10 | public protocol Disposable { 11 | /// Dispose resource. 12 | func dispose() 13 | } 14 | -------------------------------------------------------------------------------- /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 : Disposable, Cancelable { 11 | 12 | internal static let BooleanDisposableTrue = BooleanDisposable(isDisposed: true) 13 | private var _isDisposed = 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._isDisposed = isDisposed 22 | } 23 | 24 | /// - returns: Was resource disposed. 25 | public var isDisposed: Bool { 26 | return _isDisposed 27 | } 28 | 29 | /// Sets the status to disposed, which can be observer through the `isDisposed` property. 30 | public func dispose() { 31 | _isDisposed = true 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /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/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 | let _ = Resources.incrementTotal() 14 | #endif 15 | } 16 | 17 | deinit { 18 | #if TRACE_RESOURCES 19 | let _ = Resources.decrementTotal() 20 | #endif 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /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 | fileprivate struct NopDisposable : Disposable { 13 | 14 | fileprivate static let noOp: Disposable = NopDisposable() 15 | 16 | fileprivate 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 { 30 | return NopDisposable.noOp 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /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 | _owner = owner 15 | _key = key 16 | } 17 | 18 | func dispose() { 19 | _owner?.synchronizedUnsubscribe(_key) 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Extensions/String+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // String+Rx.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 12/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | extension String { 10 | /// This is needed because on Linux Swift doesn't have `rangeOfString(..., options: .BackwardsSearch)` 11 | func lastIndexOf(_ character: Character) -> Index? { 12 | var index = endIndex 13 | while index > startIndex { 14 | index = self.index(before: index) 15 | if self[index] == character { 16 | return index 17 | } 18 | } 19 | 20 | return nil 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /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 | /// Type of elements in sequence. 14 | public typealias E = Element 15 | 16 | init() { 17 | #if TRACE_RESOURCES 18 | let _ = Resources.incrementTotal() 19 | #endif 20 | } 21 | 22 | public func subscribe(_ observer: O) -> Disposable where O.E == E { 23 | abstractMethod() 24 | } 25 | 26 | public func asObservable() -> Observable { 27 | return self 28 | } 29 | 30 | deinit { 31 | #if TRACE_RESOURCES 32 | let _ = Resources.decrementTotal() 33 | #endif 34 | } 35 | 36 | // this is kind of ugly I know :( 37 | // Swift compiler reports "Not supported yet" when trying to override protocol extensions, so ¯\_(ツ)_/¯ 38 | 39 | /// Optimizations for map operator 40 | internal func composeMap(_ selector: @escaping (Element) throws -> R) -> Observable { 41 | return Map(source: self, transform: selector) 42 | } 43 | } 44 | 45 | -------------------------------------------------------------------------------- /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 (`Observer`). 10 | public protocol ObservableConvertibleType { 11 | /// Type of elements in sequence. 12 | associatedtype E 13 | 14 | /// Converts `self` to `Observable` sequence. 15 | /// 16 | /// - returns: Observable sequence that represents `self`. 17 | func asObservable() -> Observable 18 | } 19 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Observables/Implementations/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 | final class Empty : Producer { 10 | override func subscribe(_ observer: O) -> Disposable where O.E == Element { 11 | observer.on(.completed) 12 | return Disposables.create() 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Observables/Implementations/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 | final class Error : Producer { 10 | private let _error: Swift.Error 11 | 12 | init(error: Swift.Error) { 13 | _error = error 14 | } 15 | 16 | override func subscribe(_ observer: O) -> Disposable where O.E == Element { 17 | observer.on(.error(_error)) 18 | return Disposables.create() 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Observables/Implementations/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 | final class Never : Producer { 10 | override func subscribe(_ observer: O) -> Disposable where O.E == Element { 11 | return Disposables.create() 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Observables/Implementations/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 | final class StartWith: Producer { 10 | let elements: [Element] 11 | let source: Observable 12 | 13 | init(source: Observable, elements: [Element]) { 14 | self.source = source 15 | self.elements = elements 16 | super.init() 17 | } 18 | 19 | override func run(_ observer: O, cancel: Cancelable) -> (sink: Disposable, subscription: Disposable) where O.E == Element { 20 | for e in elements { 21 | observer.on(.next(e)) 22 | } 23 | 24 | return (sink: Disposables.create(), subscription: source.subscribe(observer)) 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/Observables/Observable+Debug.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Observable+Debug.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 5/2/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | // MARK: debug 10 | 11 | extension ObservableType { 12 | 13 | /** 14 | Prints received events for all observers on standard output. 15 | 16 | - seealso: [do operator on reactivex.io](http://reactivex.io/documentation/operators/do.html) 17 | 18 | - parameter identifier: Identifier that is printed together with event description to standard output. 19 | - parameter trimOutput: Should output be trimmed to max 40 characters. 20 | - returns: An observable sequence whose events are printed to standard output. 21 | */ 22 | public func debug(_ identifier: String? = nil, trimOutput: Bool = false, file: String = #file, line: UInt = #line, function: String = #function) 23 | -> Observable { 24 | return Debug(source: self, identifier: identifier, trimOutput: trimOutput, file: file, line: line, function: function) 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /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 Element = ElementType 11 | 12 | typealias EventHandler = (Event) -> Void 13 | 14 | private let _eventHandler : EventHandler 15 | 16 | init(_ eventHandler: @escaping EventHandler) { 17 | #if TRACE_RESOURCES 18 | let _ = Resources.incrementTotal() 19 | #endif 20 | _eventHandler = eventHandler 21 | } 22 | 23 | override func onCore(_ event: Event) { 24 | return _eventHandler(event) 25 | } 26 | 27 | #if TRACE_RESOURCES 28 | deinit { 29 | let _ = Resources.decrementTotal() 30 | } 31 | #endif 32 | } 33 | -------------------------------------------------------------------------------- /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 | typealias E = ElementType 11 | 12 | private var _isStopped: AtomicInt = 0 13 | 14 | func on(_ event: Event) { 15 | switch event { 16 | case .next: 17 | if _isStopped == 0 { 18 | onCore(event) 19 | } 20 | case .error, .completed: 21 | 22 | if !AtomicCompareAndSwap(0, 1, &_isStopped) { 23 | return 24 | } 25 | 26 | onCore(event) 27 | } 28 | } 29 | 30 | func onCore(_ event: Event) { 31 | abstractMethod() 32 | } 33 | 34 | func dispose() { 35 | _ = AtomicCompareAndSwap(0, 1, &_isStopped) 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /Pods/RxSwift/RxSwift/RxMutableBox.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxMutableBox.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 5/22/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Creates mutable reference wrapper for any type. 10 | final class RxMutableBox : CustomDebugStringConvertible { 11 | /// Wrapped value 12 | var value : T 13 | 14 | /// Creates reference wrapper for `value`. 15 | /// 16 | /// - parameter value: Value to wrap. 17 | init (_ value: T) { 18 | self.value = value 19 | } 20 | } 21 | 22 | extension RxMutableBox { 23 | /// - returns: Box description. 24 | var debugDescription: String { 25 | return "MutatingBox(\(self.value))" 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /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 struct Foundation.Date 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/RxSwift/RxSwift/Schedulers/Internal/AnonymousInvocable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AnonymousInvocable.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 AnonymousInvocable : InvocableType { 10 | private let _action: () -> () 11 | 12 | init(_ action: @escaping () -> ()) { 13 | _action = action 14 | } 15 | 16 | func invoke() { 17 | _action() 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /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 | _invocable = invocable 16 | _state = state 17 | } 18 | 19 | func invoke() { 20 | _invocable.invoke(_state) 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /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/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 | return _disposable.isDisposed 21 | } 22 | 23 | init(action: @escaping Action, state: T) { 24 | _action = action 25 | _state = state 26 | } 27 | 28 | func invoke() { 29 | _disposable.setDisposable(_action(_state)) 30 | } 31 | 32 | func dispose() { 33 | _disposable.dispose() 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 SubjectObserverType : ObserverType 15 | 16 | /// Returns observer interface for subject. 17 | /// 18 | /// - returns: Observer interface for subject. 19 | func asObserver() -> SubjectObserverType 20 | 21 | } 22 | -------------------------------------------------------------------------------- /Pods/SQLite.swift/CocoaPods/appletvos/module.modulemap: -------------------------------------------------------------------------------- 1 | module CSQLite [system] { 2 | header "/Applications/Xcode.app/Contents/Developer/Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS.sdk/usr/include/sqlite3.h" 3 | export * 4 | } 5 | -------------------------------------------------------------------------------- /Pods/SQLite.swift/CocoaPods/appletvsimulator/module.modulemap: -------------------------------------------------------------------------------- 1 | module CSQLite [system] { 2 | header "/Applications/Xcode.app/Contents/Developer/Platforms/AppleTVSimulator.platform/Developer/SDKs/AppleTVSimulator.sdk/usr/include/sqlite3.h" 3 | export * 4 | } 5 | -------------------------------------------------------------------------------- /Pods/SQLite.swift/CocoaPods/iphoneos-10.0/module.modulemap: -------------------------------------------------------------------------------- 1 | module CSQLite [system] { 2 | header "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.0.sdk/usr/include/sqlite3.h" 3 | export * 4 | } 5 | -------------------------------------------------------------------------------- /Pods/SQLite.swift/CocoaPods/iphoneos/module.modulemap: -------------------------------------------------------------------------------- 1 | module CSQLite [system] { 2 | header "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/sqlite3.h" 3 | export * 4 | } 5 | -------------------------------------------------------------------------------- /Pods/SQLite.swift/CocoaPods/iphonesimulator-10.0/module.modulemap: -------------------------------------------------------------------------------- 1 | module CSQLite [system] { 2 | header "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator10.0.sdk/usr/include/sqlite3.h" 3 | export * 4 | } 5 | -------------------------------------------------------------------------------- /Pods/SQLite.swift/CocoaPods/iphonesimulator/module.modulemap: -------------------------------------------------------------------------------- 1 | module CSQLite [system] { 2 | header "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/include/sqlite3.h" 3 | export * 4 | } 5 | -------------------------------------------------------------------------------- /Pods/SQLite.swift/CocoaPods/macosx-10.11/module.modulemap: -------------------------------------------------------------------------------- 1 | module CSQLite [system] { 2 | header "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/sqlite3.h" 3 | export * 4 | } 5 | -------------------------------------------------------------------------------- /Pods/SQLite.swift/CocoaPods/macosx-10.12/module.modulemap: -------------------------------------------------------------------------------- 1 | module CSQLite [system] { 2 | header "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include/sqlite3.h" 3 | export * 4 | } 5 | -------------------------------------------------------------------------------- /Pods/SQLite.swift/CocoaPods/macosx/module.modulemap: -------------------------------------------------------------------------------- 1 | module CSQLite [system] { 2 | header "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sqlite3.h" 3 | export * 4 | } 5 | -------------------------------------------------------------------------------- /Pods/SQLite.swift/CocoaPods/watchos/module.modulemap: -------------------------------------------------------------------------------- 1 | module CSQLite [system] { 2 | header "/Applications/Xcode.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS.sdk/usr/include/sqlite3.h" 3 | export * 4 | } 5 | -------------------------------------------------------------------------------- /Pods/SQLite.swift/CocoaPods/watchsimulator/module.modulemap: -------------------------------------------------------------------------------- 1 | module CSQLite [system] { 2 | header "/Applications/Xcode.app/Contents/Developer/Platforms/WatchSimulator.platform/Developer/SDKs/WatchSimulator.sdk/usr/include/sqlite3.h" 3 | export * 4 | } 5 | -------------------------------------------------------------------------------- /Pods/SQLite.swift/LICENSE.txt: -------------------------------------------------------------------------------- 1 | (The MIT License) 2 | 3 | Copyright (c) 2014-2015 Stephen Celis () 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/SQLite.swift/Sources/SQLite/SQLite.h: -------------------------------------------------------------------------------- 1 | @import Foundation; 2 | 3 | FOUNDATION_EXPORT double SQLiteVersionNumber; 4 | FOUNDATION_EXPORT const unsigned char SQLiteVersionString[]; 5 | 6 | #import 7 | -------------------------------------------------------------------------------- /Pods/SwiftyJSON/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2016 Ruoyu Fu 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/Target Support Files/Alamofire/Alamofire-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Alamofire : NSObject 3 | @end 4 | @implementation PodsDummy_Alamofire 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Alamofire/Alamofire-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/Alamofire/Alamofire-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 AlamofireVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char AlamofireVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Alamofire/Alamofire.modulemap: -------------------------------------------------------------------------------- 1 | framework module Alamofire { 2 | umbrella header "Alamofire-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Alamofire/Alamofire.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/Alamofire 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseAnalytics" "${PODS_ROOT}/Headers/Public/FirebaseCore" "${PODS_ROOT}/Headers/Public/FirebaseDatabase" "${PODS_ROOT}/Headers/Public/FirebaseInstanceID" 4 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 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}/Alamofire 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Alamofire/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 | 4.4.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/GoogleToolboxForMac/GoogleToolboxForMac-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_GoogleToolboxForMac : NSObject 3 | @end 4 | @implementation PodsDummy_GoogleToolboxForMac 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/GoogleToolboxForMac/GoogleToolboxForMac-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/GoogleToolboxForMac/GoogleToolboxForMac-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 "GTMDefines.h" 14 | #import "GTMNSData+zlib.h" 15 | 16 | FOUNDATION_EXPORT double GoogleToolboxForMacVersionNumber; 17 | FOUNDATION_EXPORT const unsigned char GoogleToolboxForMacVersionString[]; 18 | 19 | -------------------------------------------------------------------------------- /Pods/Target Support Files/GoogleToolboxForMac/GoogleToolboxForMac.modulemap: -------------------------------------------------------------------------------- 1 | framework module GoogleToolboxForMac { 2 | umbrella header "GoogleToolboxForMac-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/GoogleToolboxForMac/GoogleToolboxForMac.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/GoogleToolboxForMac 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseAnalytics" "${PODS_ROOT}/Headers/Public/FirebaseCore" "${PODS_ROOT}/Headers/Public/FirebaseDatabase" "${PODS_ROOT}/Headers/Public/FirebaseInstanceID" 4 | OTHER_LDFLAGS = -l"z" 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}/GoogleToolboxForMac 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/GoogleToolboxForMac/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.1.1 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/JSQMessagesViewController/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 | 7.3.4 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/JSQMessagesViewController/JSQMessagesViewController-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_JSQMessagesViewController : NSObject 3 | @end 4 | @implementation PodsDummy_JSQMessagesViewController 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/JSQMessagesViewController/JSQMessagesViewController-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/JSQMessagesViewController/JSQMessagesViewController.modulemap: -------------------------------------------------------------------------------- 1 | framework module JSQMessagesViewController { 2 | umbrella header "JSQMessagesViewController-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/JSQMessagesViewController/JSQMessagesViewController.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/JSQMessagesViewController 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/JSQSystemSoundPlayer" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseAnalytics" "${PODS_ROOT}/Headers/Public/FirebaseCore" "${PODS_ROOT}/Headers/Public/FirebaseDatabase" "${PODS_ROOT}/Headers/Public/FirebaseInstanceID" 5 | OTHER_LDFLAGS = -framework "AVFoundation" -framework "CoreGraphics" -framework "CoreLocation" -framework "MapKit" -framework "QuartzCore" 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}/JSQMessagesViewController 10 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 11 | SKIP_INSTALL = YES 12 | -------------------------------------------------------------------------------- /Pods/Target Support Files/JSQSystemSoundPlayer/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.0.1 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/JSQSystemSoundPlayer/JSQSystemSoundPlayer-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_JSQSystemSoundPlayer : NSObject 3 | @end 4 | @implementation PodsDummy_JSQSystemSoundPlayer 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/JSQSystemSoundPlayer/JSQSystemSoundPlayer-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/JSQSystemSoundPlayer/JSQSystemSoundPlayer-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 "JSQSystemSoundPlayer.h" 14 | 15 | FOUNDATION_EXPORT double JSQSystemSoundPlayerVersionNumber; 16 | FOUNDATION_EXPORT const unsigned char JSQSystemSoundPlayerVersionString[]; 17 | 18 | -------------------------------------------------------------------------------- /Pods/Target Support Files/JSQSystemSoundPlayer/JSQSystemSoundPlayer.modulemap: -------------------------------------------------------------------------------- 1 | framework module JSQSystemSoundPlayer { 2 | umbrella header "JSQSystemSoundPlayer-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/JSQSystemSoundPlayer/JSQSystemSoundPlayer.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/JSQSystemSoundPlayer 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseAnalytics" "${PODS_ROOT}/Headers/Public/FirebaseCore" "${PODS_ROOT}/Headers/Public/FirebaseDatabase" "${PODS_ROOT}/Headers/Public/FirebaseInstanceID" 4 | OTHER_LDFLAGS = -framework "AudioToolbox" -framework "Foundation" -framework "UIKit" 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}/JSQSystemSoundPlayer 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Kingfisher/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 | 3.5.1 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Kingfisher/Kingfisher-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Kingfisher : NSObject 3 | @end 4 | @implementation PodsDummy_Kingfisher 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Kingfisher/Kingfisher-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/Kingfisher/Kingfisher-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 "Kingfisher.h" 14 | 15 | FOUNDATION_EXPORT double KingfisherVersionNumber; 16 | FOUNDATION_EXPORT const unsigned char KingfisherVersionString[]; 17 | 18 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Kingfisher/Kingfisher.modulemap: -------------------------------------------------------------------------------- 1 | framework module Kingfisher { 2 | umbrella header "Kingfisher-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Kingfisher/Kingfisher.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/Kingfisher 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseAnalytics" "${PODS_ROOT}/Headers/Public/FirebaseCore" "${PODS_ROOT}/Headers/Public/FirebaseDatabase" "${PODS_ROOT}/Headers/Public/FirebaseInstanceID" 4 | OTHER_LDFLAGS = -framework "CFNetwork" 5 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 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}/Kingfisher 10 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 11 | SKIP_INSTALL = YES 12 | SWIFT_VERSION = 3.0 13 | -------------------------------------------------------------------------------- /Pods/Target Support Files/PagingMenuController/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.2.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/PagingMenuController/PagingMenuController-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_PagingMenuController : NSObject 3 | @end 4 | @implementation PodsDummy_PagingMenuController 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/PagingMenuController/PagingMenuController-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/PagingMenuController/PagingMenuController-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 PagingMenuControllerVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char PagingMenuControllerVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/PagingMenuController/PagingMenuController.modulemap: -------------------------------------------------------------------------------- 1 | framework module PagingMenuController { 2 | umbrella header "PagingMenuController-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/PagingMenuController/PagingMenuController.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/PagingMenuController 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseAnalytics" "${PODS_ROOT}/Headers/Public/FirebaseCore" "${PODS_ROOT}/Headers/Public/FirebaseDatabase" "${PODS_ROOT}/Headers/Public/FirebaseInstanceID" 4 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 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}/PagingMenuController 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-TrySwift2017ChatApp/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/Target Support Files/Pods-TrySwift2017ChatApp/Pods-TrySwift2017ChatApp-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_TrySwift2017ChatApp : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_TrySwift2017ChatApp 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-TrySwift2017ChatApp/Pods-TrySwift2017ChatApp-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_TrySwift2017ChatAppVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_TrySwift2017ChatAppVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/Pods-TrySwift2017ChatApp/Pods-TrySwift2017ChatApp.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_TrySwift2017ChatApp { 2 | umbrella header "Pods-TrySwift2017ChatApp-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/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 | 3.2.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /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/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/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 "RxCocoa.h" 14 | #import "RxCocoaRuntime.h" 15 | #import "_RX.h" 16 | #import "_RXDelegateProxy.h" 17 | #import "_RXKVOObserver.h" 18 | #import "_RXObjCRuntime.h" 19 | 20 | FOUNDATION_EXPORT double RxCocoaVersionNumber; 21 | FOUNDATION_EXPORT const unsigned char RxCocoaVersionString[]; 22 | 23 | -------------------------------------------------------------------------------- /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/RxCocoa/RxCocoa.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/RxCocoa 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$PODS_CONFIGURATION_BUILD_DIR/RxSwift" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseAnalytics" "${PODS_ROOT}/Headers/Public/FirebaseCore" "${PODS_ROOT}/Headers/Public/FirebaseDatabase" "${PODS_ROOT}/Headers/Public/FirebaseInstanceID" 5 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 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 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 11 | SKIP_INSTALL = YES 12 | -------------------------------------------------------------------------------- /Pods/Target Support Files/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 | 3.2.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /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/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/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/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/RxSwift/RxSwift.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/RxSwift 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseAnalytics" "${PODS_ROOT}/Headers/Public/FirebaseCore" "${PODS_ROOT}/Headers/Public/FirebaseDatabase" "${PODS_ROOT}/Headers/Public/FirebaseInstanceID" 4 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 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 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SQLite.swift/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 | 0.11.2 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SQLite.swift/SQLite.swift-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_SQLite_swift : NSObject 3 | @end 4 | @implementation PodsDummy_SQLite_swift 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SQLite.swift/SQLite.swift-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/SQLite.swift/SQLite.swift-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 "SQLite.h" 14 | #import "SQLite-Bridging.h" 15 | 16 | FOUNDATION_EXPORT double SQLiteVersionNumber; 17 | FOUNDATION_EXPORT const unsigned char SQLiteVersionString[]; 18 | 19 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SQLite.swift/SQLite.swift.modulemap: -------------------------------------------------------------------------------- 1 | framework module SQLite { 2 | umbrella header "SQLite.swift-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SwiftyJSON/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 | 3.1.4 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SwiftyJSON/SwiftyJSON-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_SwiftyJSON : NSObject 3 | @end 4 | @implementation PodsDummy_SwiftyJSON 5 | @end 6 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SwiftyJSON/SwiftyJSON-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/SwiftyJSON/SwiftyJSON-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 SwiftyJSONVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char SwiftyJSONVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SwiftyJSON/SwiftyJSON.modulemap: -------------------------------------------------------------------------------- 1 | framework module SwiftyJSON { 2 | umbrella header "SwiftyJSON-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /Pods/Target Support Files/SwiftyJSON/SwiftyJSON.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = $PODS_CONFIGURATION_BUILD_DIR/SwiftyJSON 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | HEADER_SEARCH_PATHS = "${PODS_ROOT}/Headers/Private" "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/Firebase" "${PODS_ROOT}/Headers/Public/FirebaseAnalytics" "${PODS_ROOT}/Headers/Public/FirebaseCore" "${PODS_ROOT}/Headers/Public/FirebaseDatabase" "${PODS_ROOT}/Headers/Public/FirebaseInstanceID" 4 | OTHER_SWIFT_FLAGS = $(inherited) "-D" "COCOAPODS" 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}/SwiftyJSON 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | SWIFT_VERSION = 3.0 12 | -------------------------------------------------------------------------------- /TrySwift2017ChatApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /TrySwift2017ChatApp.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/Account.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_account_circle_48pt.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic_account_circle_48pt_2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "ic_account_circle_48pt_3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/Account.imageset/ic_account_circle_48pt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/TrySwift2017ChatApp/Assets.xcassets/Account.imageset/ic_account_circle_48pt.png -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/Account.imageset/ic_account_circle_48pt_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/TrySwift2017ChatApp/Assets.xcassets/Account.imageset/ic_account_circle_48pt_2x.png -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/Account.imageset/ic_account_circle_48pt_3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/TrySwift2017ChatApp/Assets.xcassets/Account.imageset/ic_account_circle_48pt_3x.png -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "20x20", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "20x20", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "29x29", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "29x29", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "40x40", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "40x40", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "idiom" : "iphone", 35 | "size" : "60x60", 36 | "scale" : "2x" 37 | }, 38 | { 39 | "idiom" : "iphone", 40 | "size" : "60x60", 41 | "scale" : "3x" 42 | } 43 | ], 44 | "info" : { 45 | "version" : 1, 46 | "author" : "xcode" 47 | } 48 | } -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/Check.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "next.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "next-1.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/Check.imageset/next-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/TrySwift2017ChatApp/Assets.xcassets/Check.imageset/next-1.png -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/Check.imageset/next.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/TrySwift2017ChatApp/Assets.xcassets/Check.imageset/next.png -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/Message.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ic_message_48pt.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ic_message_48pt_2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "ic_message_48pt_3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/Message.imageset/ic_message_48pt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/TrySwift2017ChatApp/Assets.xcassets/Message.imageset/ic_message_48pt.png -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/Message.imageset/ic_message_48pt_2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/TrySwift2017ChatApp/Assets.xcassets/Message.imageset/ic_message_48pt_2x.png -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/Message.imageset/ic_message_48pt_3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/TrySwift2017ChatApp/Assets.xcassets/Message.imageset/ic_message_48pt_3x.png -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/UserIcon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "ktanaka117-1.jpg", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "ktanaka117.jpg", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "ktanaka117-2.jpg", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/UserIcon.imageset/ktanaka117-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/TrySwift2017ChatApp/Assets.xcassets/UserIcon.imageset/ktanaka117-1.jpg -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/UserIcon.imageset/ktanaka117-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/TrySwift2017ChatApp/Assets.xcassets/UserIcon.imageset/ktanaka117-2.jpg -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/UserIcon.imageset/ktanaka117.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/TrySwift2017ChatApp/Assets.xcassets/UserIcon.imageset/ktanaka117.jpg -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/bk_firebase.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "bk_firebase@2x-1.jpg", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "bk_firebase@2x.jpg", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "bk_firebase@2x-2.jpg", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/bk_firebase.imageset/bk_firebase@2x-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/TrySwift2017ChatApp/Assets.xcassets/bk_firebase.imageset/bk_firebase@2x-1.jpg -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/bk_firebase.imageset/bk_firebase@2x-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/TrySwift2017ChatApp/Assets.xcassets/bk_firebase.imageset/bk_firebase@2x-2.jpg -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/bk_firebase.imageset/bk_firebase@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/TrySwift2017ChatApp/Assets.xcassets/bk_firebase.imageset/bk_firebase@2x.jpg -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/btn_light_blue.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "btn_light_blue@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/btn_light_blue.imageset/btn_light_blue@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/TrySwift2017ChatApp/Assets.xcassets/btn_light_blue.imageset/btn_light_blue@2x.png -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/google_firebase.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "google_firebase@2x-2.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "google_firebase@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "google_firebase@2x-1.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/google_firebase.imageset/google_firebase@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/TrySwift2017ChatApp/Assets.xcassets/google_firebase.imageset/google_firebase@2x-1.png -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/google_firebase.imageset/google_firebase@2x-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/TrySwift2017ChatApp/Assets.xcassets/google_firebase.imageset/google_firebase@2x-2.png -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/google_firebase.imageset/google_firebase@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/TrySwift2017ChatApp/Assets.xcassets/google_firebase.imageset/google_firebase@2x.png -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/rico_green.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "rico_green@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/rico_green.imageset/rico_green@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/TrySwift2017ChatApp/Assets.xcassets/rico_green.imageset/rico_green@2x.png -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/slack-background.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "slack-background.jpg", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "slack-background-1.jpg", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "slack-background-2.jpg", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/slack-background.imageset/slack-background-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/TrySwift2017ChatApp/Assets.xcassets/slack-background.imageset/slack-background-1.jpg -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/slack-background.imageset/slack-background-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/TrySwift2017ChatApp/Assets.xcassets/slack-background.imageset/slack-background-2.jpg -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/slack-background.imageset/slack-background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/TrySwift2017ChatApp/Assets.xcassets/slack-background.imageset/slack-background.jpg -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/slack-icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Slack_Mark_White_Web-2.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "Slack_Mark_White_Web.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "Slack_Mark_White_Web-1.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/slack-icon.imageset/Slack_Mark_White_Web-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/TrySwift2017ChatApp/Assets.xcassets/slack-icon.imageset/Slack_Mark_White_Web-1.png -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/slack-icon.imageset/Slack_Mark_White_Web-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/TrySwift2017ChatApp/Assets.xcassets/slack-icon.imageset/Slack_Mark_White_Web-2.png -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/slack-icon.imageset/Slack_Mark_White_Web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/TrySwift2017ChatApp/Assets.xcassets/slack-icon.imageset/Slack_Mark_White_Web.png -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/twitter-background.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "twitter-background.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "twitter-background-1.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "twitter-background-2.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/twitter-background.imageset/twitter-background-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/TrySwift2017ChatApp/Assets.xcassets/twitter-background.imageset/twitter-background-1.png -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/twitter-background.imageset/twitter-background-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/TrySwift2017ChatApp/Assets.xcassets/twitter-background.imageset/twitter-background-2.png -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/twitter-background.imageset/twitter-background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/TrySwift2017ChatApp/Assets.xcassets/twitter-background.imageset/twitter-background.png -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/twitter-icon.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "Twitter_Logo_White_On_Image-1.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "Twitter_Logo_White_On_Image.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "Twitter_Logo_White_On_Image-2.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/twitter-icon.imageset/Twitter_Logo_White_On_Image-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/TrySwift2017ChatApp/Assets.xcassets/twitter-icon.imageset/Twitter_Logo_White_On_Image-1.png -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/twitter-icon.imageset/Twitter_Logo_White_On_Image-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/TrySwift2017ChatApp/Assets.xcassets/twitter-icon.imageset/Twitter_Logo_White_On_Image-2.png -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Assets.xcassets/twitter-icon.imageset/Twitter_Logo_White_On_Image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/d-date/trySwift2017-SwiftyChat/fc674559e05a281833cca73d60a394feda838abb/TrySwift2017ChatApp/Assets.xcassets/twitter-icon.imageset/Twitter_Logo_White_On_Image.png -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Data/MessageListEntity.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MessageListEntity.swift 3 | // trySwift2017-SwiftyChat 4 | // 5 | // Created by 廣瀬雄大 on 2017/03/04. 6 | // Copyright © 2017年 廣瀬雄大. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | protocol MessageListEntity { 12 | associatedtype EntityType 13 | var list: [EntityType] { get } 14 | } 15 | 16 | struct TwitterMessageListEntity: MessageListEntity { 17 | var list: [TwitterMessageEntity] 18 | } 19 | 20 | struct SlackMessageListEntity: MessageListEntity { 21 | var list: [SlackMessageEntity] 22 | } 23 | 24 | struct GoogleMessageListEntity: MessageListEntity { 25 | var list: [GoogleMessageEntity] 26 | } 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Data/MessageType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MessageType.swift 3 | // trySwift2017-SwiftyChat 4 | // 5 | // Created by 廣瀬雄大 on 2017/03/04. 6 | // Copyright © 2017年 廣瀬雄大. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | enum MessageType: Int { 12 | case unknown 13 | case string 14 | case image 15 | } 16 | -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Data/Request.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Request.swift 3 | // trySwift2017-SwiftyChat 4 | // 5 | // Created by 廣瀬雄大 on 2017/03/04. 6 | // Copyright © 2017年 廣瀬雄大. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import Alamofire 11 | import SwiftyJSON 12 | 13 | struct Request { 14 | let url: String 15 | 16 | func request( 17 | done: @escaping ((Alamofire.Result) -> Void) 18 | ) { 19 | Alamofire.request(url).responseJSON { response in 20 | if let error = response.result.error { 21 | done(Result.failure(error)) 22 | return 23 | } 24 | if let value = response.result.value { 25 | done(Result.success(JSON(value))) 26 | return 27 | } 28 | 29 | let error = NSError(domain: "com.chat.com", code: 1000, userInfo: nil) 30 | done(Result.failure(error)) 31 | } 32 | 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Data/Twitter/FHSStream.h: -------------------------------------------------------------------------------- 1 | // 2 | // FHSStream.h 3 | // FHSTwitterEngine 4 | // 5 | // Created by Nathaniel Symer on 3/9/14. 6 | // Copyright (c) 2014 Nathaniel Symer. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "FHSTwitterEngine.h" 11 | 12 | @interface FHSStream : NSObject 13 | 14 | @property (nonatomic, copy) StreamBlock block; 15 | 16 | + (FHSStream *)streamWithURL:(NSString *)url httpMethod:(NSString *)httpMethod parameters:(NSDictionary *)params timeout:(float)timeout block:(StreamBlock)block; 17 | 18 | - (void)stop; 19 | - (void)start; 20 | 21 | @end 22 | -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Data/Twitter/Message.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Message.swift 3 | // TwitterDemo 4 | // 5 | // Created by Ravi Shankar on 04/03/17. 6 | // Copyright © 2017 Ravi Shankar. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct Message { 12 | let text: String 13 | let user: User 14 | let imageURLs: [String]? 15 | let id: String 16 | } 17 | -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Data/Twitter/TwitterDemo-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | // 2 | // Use this file to import your target's public headers that you would like to expose to Swift. 3 | // 4 | 5 | #import "FHSTwitterEngine.h" 6 | -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Data/Twitter/User.swift: -------------------------------------------------------------------------------- 1 | // 2 | // User.swift 3 | // TwitterDemo 4 | // 5 | // Created by Ravi Shankar on 04/03/17. 6 | // Copyright © 2017 Ravi Shankar. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct User { 12 | let id: String 13 | let name: String 14 | let subName: String? 15 | let iconURL: String? 16 | } 17 | -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Data/UserEntity.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UserEntity.swift 3 | // trySwift2017-SwiftyChat 4 | // 5 | // Created by 廣瀬雄大 on 2017/03/04. 6 | // Copyright © 2017年 廣瀬雄大. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | protocol UserEntity { 12 | var id: String? { get } 13 | var name: String? { get } 14 | var subName: String? { get } 15 | var iconUrl: String? { get } 16 | } 17 | 18 | struct TwitterUserEntity: UserEntity { 19 | let id: String? 20 | let name: String? 21 | let subName: String? 22 | let iconUrl: String? 23 | } 24 | 25 | struct SlackUserEntity: UserEntity { 26 | let id: String? 27 | let name: String? 28 | let subName: String? 29 | let iconUrl: String? 30 | } 31 | 32 | struct GoogleUserEntity: UserEntity { 33 | let id: String? 34 | let name: String? 35 | let subName: String? 36 | let iconUrl: String? 37 | } 38 | -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Data/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // trySwift2017-SwiftyChat 4 | // 5 | // Created by 廣瀬雄大 on 2017/03/04. 6 | // Copyright © 2017年 廣瀬雄大. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import Alamofire 11 | 12 | class ViewController: UIViewController { 13 | 14 | override func viewDidLoad() { 15 | super.viewDidLoad() 16 | 17 | Request(url: "http://echo.jsontest.com/key/value/one/two") 18 | .request { result in 19 | switch result { 20 | case .success(let value): 21 | print(value) 22 | case .failure(let error): 23 | print(error) 24 | } 25 | 26 | } 27 | } 28 | 29 | override func didReceiveMemoryWarning() { 30 | super.didReceiveMemoryWarning() 31 | } 32 | } 33 | 34 | -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Data/trySwift2017-SwiftyChat-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | // 2 | // Use this file to import your target's public headers that you would like to expose to Swift. 3 | // 4 | 5 | #import "FHSTwitterEngine.h" 6 | -------------------------------------------------------------------------------- /TrySwift2017ChatApp/FeedListTableViewCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // FeedTableViewCell.swift 3 | // TrySwift2017ChatApp 4 | // 5 | // Created by 田中賢治 on 2017/03/04. 6 | // Copyright © 2017年 田中賢治. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import Kingfisher 11 | 12 | class FeedListTableViewCell: UITableViewCell { 13 | @IBOutlet weak var feedImageView: UIImageView! 14 | @IBOutlet weak var serviceImageView: UIImageView! 15 | @IBOutlet weak var feedNameLabel: UILabel! 16 | @IBOutlet weak var lastMessageLabel: UILabel! 17 | 18 | override func awakeFromNib() { 19 | super.awakeFromNib() 20 | 21 | feedImageView.backgroundColor = UIColor.red 22 | serviceImageView.backgroundColor = UIColor.blue 23 | } 24 | 25 | func setup(with serviceType: ServiceType, iconUrl: String, lastMessage: String) { 26 | if let url = URL(string: iconUrl) { 27 | feedImageView.kf.setImage(with: url) 28 | } 29 | serviceImageView.image = serviceType.image 30 | 31 | feedNameLabel.text = serviceType.name 32 | lastMessageLabel.text = lastMessage 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Firebase/AppCommon.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppCommon.swift 3 | // TestSlack 4 | // 5 | // Created by 李慶燦 on 2017/03/04. 6 | // Copyright © 2017年 李慶燦. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct UDKey { 12 | static var UserId = "userid" 13 | static var UserName = "username" 14 | static var AvatarUrl = "avatarurl" 15 | } 16 | 17 | struct Conversation { 18 | let firstName: String? 19 | let lastName: String? 20 | let preferredName: String? 21 | let smsNumber: String 22 | let id: String? 23 | let latestMessage: String? 24 | let isRead: Bool 25 | } 26 | -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Firebase/MyMessage.swift: -------------------------------------------------------------------------------- 1 | // 2 | // MyMessage.swift 3 | // Demo 4 | // 5 | // Created by RN-079 on 2017/01/13. 6 | // Copyright © 2017年 RN-079. All rights reserved. 7 | // 8 | 9 | import JSQMessagesViewController 10 | 11 | class MyMessage : JSQMessage { 12 | var messageId: String 13 | 14 | init!(messageId: String, senderId: String!, senderDisplayName: String!, date: Date!, media: JSQMessageMediaData!) { 15 | self.messageId = messageId 16 | super.init(senderId: senderId, senderDisplayName: senderDisplayName, date: date, media: media) 17 | } 18 | 19 | init!(messageId: String, senderId: String!, senderDisplayName: String!, date: Date!, text: String!) { 20 | self.messageId = messageId 21 | super.init(senderId: senderId, senderDisplayName: senderDisplayName, date: date, text: text) 22 | } 23 | 24 | required init?(coder aDecoder: NSCoder) { 25 | self.messageId = AppUtility.getMessageId() 26 | super.init(coder: aDecoder) 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Firebase/UsersCell.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UsersCell.swift 3 | // TestSlack 4 | // 5 | // Created by 李慶燦 on 2017/03/04. 6 | // Copyright © 2017年 李慶燦. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import RxSwift 11 | 12 | class UsersCell: UITableViewCell { 13 | @IBOutlet weak var avatarView : UIImageView! 14 | @IBOutlet weak var userNameLbl: UILabel! 15 | @IBOutlet weak var chatLbl : UILabel! 16 | @IBOutlet weak var timeLbl: UILabel! 17 | @IBOutlet weak var unreadView: UIView! 18 | 19 | var disposeBag = DisposeBag() 20 | 21 | override func prepareForReuse() { 22 | super.prepareForReuse() 23 | avatarView.image = nil 24 | userNameLbl.text = nil 25 | chatLbl.text = nil 26 | 27 | disposeBag = DisposeBag() 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /TrySwift2017ChatApp/Firebase/UsersDTO.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UsersDTO.swift 3 | // TestSlack 4 | // 5 | // Created by 李慶燦 on 2017/03/04. 6 | // Copyright © 2017年 李慶燦. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import RxSwift 11 | 12 | class UsersDTO : AnyObject { 13 | var userId: String 14 | var userName: String 15 | var avatarUrl: String 16 | var lastMessage = Variable("") 17 | var lastMessageTime = Variable("now") 18 | var isReaded = Variable(false) 19 | 20 | init(userId: String, userName: String, avatarUrl: String) { 21 | self.userId = userId 22 | self.userName = userName 23 | self.avatarUrl = avatarUrl 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /TrySwift2017ChatApp/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 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | LSRequiresIPhoneOS 22 | 23 | UILaunchStoryboardName 24 | LaunchScreen 25 | UIRequiredDeviceCapabilities 26 | 27 | armv7 28 | 29 | UISupportedInterfaceOrientations 30 | 31 | UIInterfaceOrientationPortrait 32 | UIInterfaceOrientationLandscapeLeft 33 | UIInterfaceOrientationLandscapeRight 34 | 35 | 36 | 37 | -------------------------------------------------------------------------------- /TrySwift2017ChatApp/ServiceType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ServiceType.swift 3 | // TrySwift2017ChatApp 4 | // 5 | // Created by 廣瀬雄大 on 2017/03/04. 6 | // Copyright © 2017年 田中賢治. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | enum ServiceType: String { 12 | case twitter 13 | case slack 14 | case firebase 15 | 16 | var image: UIImage? { 17 | switch self { 18 | case .twitter: 19 | return #imageLiteral(resourceName: "twitter-icon") 20 | case .slack: 21 | return #imageLiteral(resourceName: "slack-icon") 22 | case .firebase: 23 | return nil 24 | } 25 | } 26 | 27 | var name: String { 28 | return self.rawValue.uppercased() 29 | } 30 | } 31 | --------------------------------------------------------------------------------