From fb1c3ad04a692ab8893a30fe1de0c4d76fc46260 Mon Sep 17 00:00:00 2001 From: Diego Sanchez Date: Tue, 2 Feb 2016 17:19:44 +0000 Subject: [PATCH] Renames BMACircle* -> Circle* --- Chatto/Chatto.xcodeproj/project.pbxproj | 4 +- .../ChattoAdditions.xcodeproj/project.pbxproj | 56 +- .../PhotoMessages/Views/PhotoBubbleView.swift | 4 +- ChattoAdditions/Source/ChattoAdditions.h | 2 +- .../BMACircleIconView.m | 276 - .../BMACircleProgressIndicatorView.m | 235 - .../BMACircleProgressView.m | 158 - .../{BMACircleIconView.h => CircleIconView.h} | 22 +- .../CircleIconView.m | 297 ++ ...orView.h => CircleProgressIndicatorView.h} | 39 +- .../CircleProgressIndicatorView.m | 238 + ...cleProgressView.h => CircleProgressView.h} | 2 +- .../CircleProgressView.m | 172 + ChattoApp/Podfile.lock | 7 +- .../ChattoAdditions/BMACircleIconView.h | 1 - .../BMACircleProgressIndicatorView.h | 1 - .../ChattoAdditions/BMACircleProgressView.h | 1 - .../Private/ChattoAdditions/CircleIconView.h | 1 + .../CircleProgressIndicatorView.h | 1 + .../ChattoAdditions/CircleProgressView.h | 1 + .../Pods/Local Podspecs/Chatto.podspec.json | 10 +- .../ChattoAdditions.podspec.json | 10 +- ChattoApp/Pods/Manifest.lock | 7 +- ChattoApp/Pods/Pods.xcodeproj/project.pbxproj | 4733 ++++++++++++----- .../xcshareddata/xcschemes/Chatto.xcscheme | 2 +- .../xcschemes/ChattoAdditions.xcscheme | 2 +- .../ChattoAdditions-umbrella.h | 6 +- 27 files changed, 4344 insertions(+), 1944 deletions(-) delete mode 100644 ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/BMACircleIconView.m delete mode 100644 ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/BMACircleProgressIndicatorView.m delete mode 100644 ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/BMACircleProgressView.m rename ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/{BMACircleIconView.h => CircleIconView.h} (77%) create mode 100644 ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/CircleIconView.m rename ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/{BMACircleProgressIndicatorView.h => CircleProgressIndicatorView.h} (63%) create mode 100644 ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/CircleProgressIndicatorView.m rename ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/{BMACircleProgressView.h => CircleProgressView.h} (96%) create mode 100644 ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/CircleProgressView.m delete mode 120000 ChattoApp/Pods/Headers/Private/ChattoAdditions/BMACircleIconView.h delete mode 120000 ChattoApp/Pods/Headers/Private/ChattoAdditions/BMACircleProgressIndicatorView.h delete mode 120000 ChattoApp/Pods/Headers/Private/ChattoAdditions/BMACircleProgressView.h create mode 120000 ChattoApp/Pods/Headers/Private/ChattoAdditions/CircleIconView.h create mode 120000 ChattoApp/Pods/Headers/Private/ChattoAdditions/CircleProgressIndicatorView.h create mode 120000 ChattoApp/Pods/Headers/Private/ChattoAdditions/CircleProgressView.h diff --git a/Chatto/Chatto.xcodeproj/project.pbxproj b/Chatto/Chatto.xcodeproj/project.pbxproj index 98af394..539776e 100644 --- a/Chatto/Chatto.xcodeproj/project.pbxproj +++ b/Chatto/Chatto.xcodeproj/project.pbxproj @@ -474,7 +474,7 @@ buildSettings = { INFOPLIST_FILE = Tests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.badoo.BMAChatFrameworkTests; + PRODUCT_BUNDLE_IDENTIFIER = com.badoo.ChattoTests; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -484,7 +484,7 @@ buildSettings = { INFOPLIST_FILE = Tests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.badoo.BMAChatFrameworkTests; + PRODUCT_BUNDLE_IDENTIFIER = com.badoo.ChattoTests; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; diff --git a/ChattoAdditions/ChattoAdditions.xcodeproj/project.pbxproj b/ChattoAdditions/ChattoAdditions.xcodeproj/project.pbxproj index 6f3f181..5a1ea60 100644 --- a/ChattoAdditions/ChattoAdditions.xcodeproj/project.pbxproj +++ b/ChattoAdditions/ChattoAdditions.xcodeproj/project.pbxproj @@ -60,12 +60,12 @@ C3C0CC621BFE496A0052747C /* TextChatInputItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CC191BFE496A0052747C /* TextChatInputItem.swift */; }; C3C0CC631BFE496A0052747C /* KeyedOperationQueue.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CC1A1BFE496A0052747C /* KeyedOperationQueue.swift */; }; C3C0CC641BFE496A0052747C /* Observable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CC1B1BFE496A0052747C /* Observable.swift */; }; - C3C0CC661BFE496A0052747C /* BMACircleIconView.h in Headers */ = {isa = PBXBuildFile; fileRef = C3C0CC1F1BFE496A0052747C /* BMACircleIconView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C3C0CC671BFE496A0052747C /* BMACircleIconView.m in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CC201BFE496A0052747C /* BMACircleIconView.m */; }; - C3C0CC681BFE496A0052747C /* BMACircleProgressIndicatorView.h in Headers */ = {isa = PBXBuildFile; fileRef = C3C0CC211BFE496A0052747C /* BMACircleProgressIndicatorView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C3C0CC691BFE496A0052747C /* BMACircleProgressIndicatorView.m in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CC221BFE496A0052747C /* BMACircleProgressIndicatorView.m */; }; - C3C0CC6A1BFE496A0052747C /* BMACircleProgressView.h in Headers */ = {isa = PBXBuildFile; fileRef = C3C0CC231BFE496A0052747C /* BMACircleProgressView.h */; }; - C3C0CC6B1BFE496A0052747C /* BMACircleProgressView.m in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CC241BFE496A0052747C /* BMACircleProgressView.m */; }; + C3C0CC661BFE496A0052747C /* CircleIconView.h in Headers */ = {isa = PBXBuildFile; fileRef = C3C0CC1F1BFE496A0052747C /* CircleIconView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C3C0CC671BFE496A0052747C /* CircleIconView.m in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CC201BFE496A0052747C /* CircleIconView.m */; }; + C3C0CC681BFE496A0052747C /* CircleProgressIndicatorView.h in Headers */ = {isa = PBXBuildFile; fileRef = C3C0CC211BFE496A0052747C /* CircleProgressIndicatorView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C3C0CC691BFE496A0052747C /* CircleProgressIndicatorView.m in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CC221BFE496A0052747C /* CircleProgressIndicatorView.m */; }; + C3C0CC6A1BFE496A0052747C /* CircleProgressView.h in Headers */ = {isa = PBXBuildFile; fileRef = C3C0CC231BFE496A0052747C /* CircleProgressView.h */; }; + C3C0CC6B1BFE496A0052747C /* CircleProgressView.m in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CC241BFE496A0052747C /* CircleProgressView.m */; }; C3C0CC6C1BFE496A0052747C /* CircleProgressIndicator.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C3C0CC251BFE496A0052747C /* CircleProgressIndicator.xcassets */; }; C3C0CC851BFE49700052747C /* ChatInputBarTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CC771BFE49700052747C /* ChatInputBarTests.swift */; }; C3C0CC861BFE49700052747C /* ChatInputItemTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CC781BFE49700052747C /* ChatInputItemTests.swift */; }; @@ -145,12 +145,12 @@ C3C0CC191BFE496A0052747C /* TextChatInputItem.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextChatInputItem.swift; sourceTree = ""; }; C3C0CC1A1BFE496A0052747C /* KeyedOperationQueue.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KeyedOperationQueue.swift; sourceTree = ""; }; C3C0CC1B1BFE496A0052747C /* Observable.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Observable.swift; sourceTree = ""; }; - C3C0CC1F1BFE496A0052747C /* BMACircleIconView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BMACircleIconView.h; sourceTree = ""; }; - C3C0CC201BFE496A0052747C /* BMACircleIconView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BMACircleIconView.m; sourceTree = ""; }; - C3C0CC211BFE496A0052747C /* BMACircleProgressIndicatorView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BMACircleProgressIndicatorView.h; sourceTree = ""; }; - C3C0CC221BFE496A0052747C /* BMACircleProgressIndicatorView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BMACircleProgressIndicatorView.m; sourceTree = ""; }; - C3C0CC231BFE496A0052747C /* BMACircleProgressView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BMACircleProgressView.h; sourceTree = ""; }; - C3C0CC241BFE496A0052747C /* BMACircleProgressView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BMACircleProgressView.m; sourceTree = ""; }; + C3C0CC1F1BFE496A0052747C /* CircleIconView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CircleIconView.h; sourceTree = ""; }; + C3C0CC201BFE496A0052747C /* CircleIconView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CircleIconView.m; sourceTree = ""; }; + C3C0CC211BFE496A0052747C /* CircleProgressIndicatorView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CircleProgressIndicatorView.h; sourceTree = ""; }; + C3C0CC221BFE496A0052747C /* CircleProgressIndicatorView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CircleProgressIndicatorView.m; sourceTree = ""; }; + C3C0CC231BFE496A0052747C /* CircleProgressView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CircleProgressView.h; sourceTree = ""; }; + C3C0CC241BFE496A0052747C /* CircleProgressView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CircleProgressView.m; sourceTree = ""; }; C3C0CC251BFE496A0052747C /* CircleProgressIndicator.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = CircleProgressIndicator.xcassets; sourceTree = ""; }; C3C0CC751BFE49700052747C /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; C3C0CC771BFE49700052747C /* ChatInputBarTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatInputBarTests.swift; sourceTree = ""; }; @@ -372,12 +372,12 @@ C3C0CC1E1BFE496A0052747C /* CircleProgressIndicatorView */ = { isa = PBXGroup; children = ( - C3C0CC1F1BFE496A0052747C /* BMACircleIconView.h */, - C3C0CC201BFE496A0052747C /* BMACircleIconView.m */, - C3C0CC211BFE496A0052747C /* BMACircleProgressIndicatorView.h */, - C3C0CC221BFE496A0052747C /* BMACircleProgressIndicatorView.m */, - C3C0CC231BFE496A0052747C /* BMACircleProgressView.h */, - C3C0CC241BFE496A0052747C /* BMACircleProgressView.m */, + C3C0CC1F1BFE496A0052747C /* CircleIconView.h */, + C3C0CC201BFE496A0052747C /* CircleIconView.m */, + C3C0CC211BFE496A0052747C /* CircleProgressIndicatorView.h */, + C3C0CC221BFE496A0052747C /* CircleProgressIndicatorView.m */, + C3C0CC231BFE496A0052747C /* CircleProgressView.h */, + C3C0CC241BFE496A0052747C /* CircleProgressView.m */, C3C0CC251BFE496A0052747C /* CircleProgressIndicator.xcassets */, ); path = CircleProgressIndicatorView; @@ -434,10 +434,10 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - C3C0CC6A1BFE496A0052747C /* BMACircleProgressView.h in Headers */, - C3C0CC661BFE496A0052747C /* BMACircleIconView.h in Headers */, + C3C0CC6A1BFE496A0052747C /* CircleProgressView.h in Headers */, + C3C0CC661BFE496A0052747C /* CircleIconView.h in Headers */, C36F9C4B1BFE4A89001E9D8F /* ChattoAdditions.h in Headers */, - C3C0CC681BFE496A0052747C /* BMACircleProgressIndicatorView.h in Headers */, + C3C0CC681BFE496A0052747C /* CircleProgressIndicatorView.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -570,7 +570,7 @@ C3C0CC571BFE496A0052747C /* LiveCameraCell.swift in Sources */, C3C0CC591BFE496A0052747C /* PhotosChatInputItem.swift in Sources */, C3C0CC3A1BFE496A0052747C /* PhotoMessageCollectionViewCell.swift in Sources */, - C3C0CC691BFE496A0052747C /* BMACircleProgressIndicatorView.m in Sources */, + C3C0CC691BFE496A0052747C /* CircleProgressIndicatorView.m in Sources */, C3C0CC5D1BFE496A0052747C /* PhotosInputDataProvider.swift in Sources */, C3C0CC5C1BFE496A0052747C /* PhotosInputCellProvider.swift in Sources */, C3C0CC3C1BFE496A0052747C /* TextMessageModel.swift in Sources */, @@ -596,13 +596,13 @@ C3C0CC2E1BFE496A0052747C /* BaseMessageCollectionViewCell.swift in Sources */, C3C0CC5A1BFE496A0052747C /* PhotosInputCameraPicker.swift in Sources */, C3C0CC551BFE496A0052747C /* ExpandableTextView.swift in Sources */, - C3C0CC6B1BFE496A0052747C /* BMACircleProgressView.m in Sources */, + C3C0CC6B1BFE496A0052747C /* CircleProgressView.m in Sources */, C3C0CC371BFE496A0052747C /* PhotoMessageViewModel.swift in Sources */, C3C0CC2F1BFE496A0052747C /* BaseMessageCollectionViewCellDefaultSyle.swift in Sources */, C3C0CC5B1BFE496A0052747C /* PhotosInputCell.swift in Sources */, C3C0CC561BFE496A0052747C /* HorizontalStackScrollView.swift in Sources */, C3C0CC5F1BFE496A0052747C /* PhotosInputViewItemSizeCalculator.swift in Sources */, - C3C0CC671BFE496A0052747C /* BMACircleIconView.m in Sources */, + C3C0CC671BFE496A0052747C /* CircleIconView.m in Sources */, C3C0CC301BFE496A0052747C /* ViewDefinitions.swift in Sources */, C3C0CC531BFE496A0052747C /* ChatInputItem.swift in Sources */, C3C0CC421BFE496A0052747C /* TextMessageCollectionViewCell.swift in Sources */, @@ -741,7 +741,7 @@ INFOPLIST_FILE = "$(SRCROOT)/Source/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.badoo.BMAChatFrameworkAdditions; + PRODUCT_BUNDLE_IDENTIFIER = com.badoo.ChattoAdditions; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; }; @@ -757,7 +757,7 @@ INFOPLIST_FILE = "$(SRCROOT)/Source/Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.badoo.BMAChatFrameworkAdditions; + PRODUCT_BUNDLE_IDENTIFIER = com.badoo.ChattoAdditions; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; }; @@ -768,7 +768,7 @@ buildSettings = { INFOPLIST_FILE = Tests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.badoo.BMAChatFrameworkAdditionsTests; + PRODUCT_BUNDLE_IDENTIFIER = com.badoo.ChattoAdditionsTests; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Debug; @@ -778,7 +778,7 @@ buildSettings = { INFOPLIST_FILE = Tests/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.badoo.BMAChatFrameworkAdditionsTests; + PRODUCT_BUNDLE_IDENTIFIER = com.badoo.ChattoAdditionsTests; PRODUCT_NAME = "$(TARGET_NAME)"; }; name = Release; diff --git a/ChattoAdditions/Source/Chat Items/PhotoMessages/Views/PhotoBubbleView.swift b/ChattoAdditions/Source/Chat Items/PhotoMessages/Views/PhotoBubbleView.swift index 3e3e70d..040227b 100644 --- a/ChattoAdditions/Source/Chat Items/PhotoMessages/Views/PhotoBubbleView.swift +++ b/ChattoAdditions/Source/Chat Items/PhotoMessages/Views/PhotoBubbleView.swift @@ -78,8 +78,8 @@ public final class PhotoBubbleView: UIView, MaximumLayoutWidthSpecificable, Back - private var progressIndicatorView: BMACircleProgressIndicatorView = { - let progressView = BMACircleProgressIndicatorView(size: CGSize(width: 33, height: 33)) + private var progressIndicatorView: CircleProgressIndicatorView = { + let progressView = CircleProgressIndicatorView(size: CGSize(width: 33, height: 33)) return progressView }() diff --git a/ChattoAdditions/Source/ChattoAdditions.h b/ChattoAdditions/Source/ChattoAdditions.h index b28e210..9f2f61b 100644 --- a/ChattoAdditions/Source/ChattoAdditions.h +++ b/ChattoAdditions/Source/ChattoAdditions.h @@ -32,4 +32,4 @@ FOUNDATION_EXPORT const unsigned char ChattoAdditionsVersionString[]; // In this header, you should import all the public headers of your framework using statements like #import -#import "BMACircleProgressIndicatorView.h" +#import "CircleProgressIndicatorView.h" diff --git a/ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/BMACircleIconView.m b/ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/BMACircleIconView.m deleted file mode 100644 index f3f02ba..0000000 --- a/ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/BMACircleIconView.m +++ /dev/null @@ -1,276 +0,0 @@ -/* - The MIT License (MIT) - - Copyright (c) 2015-present Badoo Trading Limited. - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. -*/ - -#import "BMACircleIconView.h" - -struct BMACircleProgressIconPoints { - CGPoint bma_top; - CGPoint bma_centre; - CGPoint bma_bottom; - CGPoint bma_left; - CGPoint bma_right; -}; - -@interface BMACircleIconView () -@property (nonatomic) BMACircleIconType type; - -@property (nonatomic, strong) UIImageView *iconView; -@property (nonatomic, strong) UILabel *titleView; - -@property (nonatomic, strong) CAShapeLayer *iconLayer; -@property (nonatomic, assign) struct BMACircleProgressIconPoints iconPoints; - -@property (nonatomic, assign) CGFloat lineWidth; -@property (nonatomic, strong) UIColor *lineColor; -@end - -@implementation BMACircleIconView - -- (instancetype)initWithCoder:(NSCoder *)coder { - self = [super initWithCoder:coder]; - if (self) { - [self commonInit]; - } - return self; -} - -- (instancetype)initWithFrame:(CGRect)frame { - self = [super initWithFrame:frame]; - if (self) { - [self commonInit]; - } - return self; -} - -- (void)commonInit { - [self initIconLayer]; - [self initIconView]; - [self initTitleView]; -} - -- (void)initIconLayer { - self.iconLayer = [CAShapeLayer layer]; - _iconLayer.strokeColor = _lineColor.CGColor; - _iconLayer.fillColor = nil; - _iconLayer.lineCap = kCALineCapRound; - _iconLayer.lineWidth = _lineWidth; - _iconLayer.fillRule = kCAFillRuleNonZero; - [self.layer addSublayer:_iconLayer]; -} - -- (void)initIconView { - self.iconView = [[UIImageView alloc] initWithFrame:self.bounds]; - self.iconView.contentMode = UIViewContentModeCenter; - [self addSubview:self.iconView]; -} - -- (void)initTitleView { - self.titleView = [[UILabel alloc] initWithFrame:self.bounds]; - self.titleView.textAlignment = NSTextAlignmentCenter; - // FIXME -// self.titleView.font = [BMANewConnectionsUIDevFeature isAvailable] ? [BMAStyleSheet fontForTypeStyle:BMATypeStyleBodySmallNormal] : [UIFont systemFontOfSize:12]; - [self addSubview:self.titleView]; -} - -#pragma mark - iconLayer - -- (void)setupIconLayerWithType:(BMACircleIconType)type { - [self setupIconPointsWithType:type]; - switch (type) { - case BMACircleIconTypeArrowUp: - [self drawArrowPointingTo:self.iconPoints.bma_top]; - break; - case BMACircleIconTypeArrowDown: - [self drawArrowPointingTo:self.iconPoints.bma_bottom]; - break; - case BMACircleIconTypeStop: - [self drawStop]; - break; - default: - _iconLayer.path = nil; - _iconLayer.fillColor = nil; - break; - } -} - -- (void)setupIconPointsWithType:(BMACircleIconType)type { - struct BMACircleProgressIconPoints points = {}; - points.bma_centre = CGPointMake(self.bounds.size.width / 2, self.bounds.size.height / 2); - points.bma_bottom = CGPointMake(points.bma_centre.x, points.bma_centre.y + (self.outterCircleRadius - self.verticalMargin)); - points.bma_top = CGPointMake(points.bma_centre.x, points.bma_centre.y - (self.outterCircleRadius - self.verticalMargin)); - - switch (type) { - case BMACircleIconTypeArrowDown: - points.bma_left = CGPointMake(points.bma_centre.x - (self.outterCircleRadius - self.horizontalMargin), points.bma_centre.y); - points.bma_right = CGPointMake(points.bma_centre.x + (self.outterCircleRadius - self.horizontalMargin), points.bma_centre.y); - break; - case BMACircleIconTypeArrowUp: - points.bma_left = CGPointMake(points.bma_centre.x - (self.outterCircleRadius - self.horizontalMargin), points.bma_centre.y); - points.bma_right = CGPointMake(points.bma_centre.x + (self.outterCircleRadius - self.horizontalMargin), points.bma_centre.y); - break; - default: - break; - } - - self.iconPoints = points; -} - -- (void)drawArrowPointingTo:(CGPoint)point { - UIBezierPath *path = [UIBezierPath bezierPath]; - [path moveToPoint:self.iconPoints.bma_left]; - [path addLineToPoint:point]; - [path closePath]; - - [path moveToPoint:point]; - [path addLineToPoint:self.iconPoints.bma_right]; - [path closePath]; - - [path moveToPoint:self.iconPoints.bma_top]; - [path addLineToPoint:self.iconPoints.bma_centre]; - [path addLineToPoint:self.iconPoints.bma_bottom]; - [path closePath]; - - _iconLayer.lineWidth = _lineWidth; - _iconLayer.lineCap = kCALineCapRound; - [_iconLayer setPath:path.CGPath]; - [_iconLayer setStrokeColor:self.lineColor.CGColor]; - [_iconLayer setFillColor:nil]; -} - -- (void)drawStop { - CGFloat radius = (self.bounds.size.width) / 2; - UIBezierPath *stopPath = [UIBezierPath bezierPath]; - [stopPath moveToPoint:CGPointMake(0, 0)]; - [stopPath addLineToPoint:CGPointMake(self.horizontalMargin, 0.0)]; - [stopPath addLineToPoint:CGPointMake(self.horizontalMargin, self.horizontalMargin)]; - [stopPath addLineToPoint:CGPointMake(0.0, self.horizontalMargin)]; - [stopPath closePath]; - [stopPath applyTransform:CGAffineTransformMakeTranslation(radius * (1 - self.horizontalMarginCoef), radius * (1 - self.horizontalMarginCoef))]; - - [_iconLayer setPath:stopPath.CGPath]; - [_iconLayer setStrokeColor:self.lineColor.CGColor]; - [_iconLayer setFillColor:self.lineColor.CGColor]; -} - -#pragma mark - icon view - -- (void)setupIconViewWithType:(BMACircleIconType)type { - NSString *imageName = nil; - switch (type) { - case BMACircleIconTypeInfinity: - imageName = @"infinity_icon_norm"; - break; - case BMACircleIconTypeExclamation: - imageName = @"warning_icon_norm"; - break; - case BMACircleIconTypeCheck: - imageName = @"tick_viewed_icon_norm"; - break; - default: - break; - } - - if (imageName) { - self.iconView.image = [UIImage imageNamed:imageName inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil]; - } -} - -#pragma mark - icon view - -- (void)setupVisibilityWithType:(BMACircleIconType)type { - self.titleView.hidden = YES; - self.iconLayer.hidden = YES; - self.iconView.hidden = YES; - - switch (type) { - case BMACircleIconTypeInfinity: - case BMACircleIconTypeExclamation: - case BMACircleIconTypeCheck: - self.iconView.hidden = NO; - break; - case BMACircleIconTypeArrowDown: - case BMACircleIconTypeArrowUp: - case BMACircleIconTypeStop: - self.iconLayer.hidden = NO; - break; - case BMACircleIconTypeText: - self.titleView.hidden = NO; - break; - default: - break; - } -} - -#pragma mark - life cycle - -- (void)layoutSubviews { - [super layoutSubviews]; - _iconLayer.frame = self.bounds; -} - -#pragma mark - actions - -- (void)setType:(BMACircleIconType)type { - _type = type; - [self setupVisibilityWithType:_type]; - - [self setupIconLayerWithType:_type]; - [self setupIconViewWithType:_type]; -} - -- (void)setTitle:(NSAttributedString *)title { - [self setType:BMACircleIconTypeText]; - self.titleView.attributedText = title; -} - -- (void)setLineColor:(UIColor *)lineColor { - _lineColor = lineColor; - _iconLayer.strokeColor = lineColor.CGColor; - _titleView.textColor = lineColor; -} - -- (void)setLineWidth:(CGFloat)lineWidth { - _lineWidth = lineWidth; - _iconLayer.lineWidth = lineWidth; -} - -#pragma mark - defaults - -- (CGFloat)verticalMargin { - return self.bounds.size.width * 0.28; -} - -- (CGFloat)horizontalMargin { - return self.bounds.size.width * 0.29; -} - -- (CGFloat)outterCircleRadius { - return (self.bounds.size.width - 2 * _lineWidth) / 2; -} - -- (CGFloat)horizontalMarginCoef { - return 0.28; -} - -@end diff --git a/ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/BMACircleProgressIndicatorView.m b/ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/BMACircleProgressIndicatorView.m deleted file mode 100644 index 8109962..0000000 --- a/ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/BMACircleProgressIndicatorView.m +++ /dev/null @@ -1,235 +0,0 @@ -/* - The MIT License (MIT) - - Copyright (c) 2015-present Badoo Trading Limited. - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. -*/ - -#import "BMACircleProgressIndicatorView.h" -#import "BMACircleProgressView.h" - -@interface BMACircleProgressIndicatorView () -@property (nonatomic, assign) BOOL supportsCancel; -@property (nonatomic, strong) UIGestureRecognizer *stopLoadingTap; - -@property (nonatomic, assign) CGFloat progress; - -@property (nonatomic, strong) BMACircleProgressView *progressView; -@property (nonatomic, strong) BMACircleIconView *circleIconView; -@end - -@implementation BMACircleProgressIndicatorView - -+ (instancetype)defaultProgressIndicatorView { - BMACircleProgressIndicatorView *view = [[BMACircleProgressIndicatorView alloc] initWithFrame:CGRectMake(.0f, .0f, 28.0f, 28.0f)]; - view.backgroundColor = [UIColor clearColor]; - return view; -} - -+ (instancetype)progressIndicatorViewWithSize:(CGSize)size { - BMACircleProgressIndicatorView *view = [[BMACircleProgressIndicatorView alloc] initWithFrame:CGRectMake(.0f, .0f, size.width, size.height)]; - view.backgroundColor = [UIColor clearColor]; - return view; -} - -- (instancetype)initWithCoder:(NSCoder *)coder { - self = [super initWithCoder:coder]; - if (self) { - [self commonInit]; - } - return self; -} - -- (instancetype)initWithFrame:(CGRect)frame { - self = [super initWithFrame:frame]; - if (self) { - [self commonInit]; - } - return self; -} - -- (void)commonInit { - _progressLineColor = [self defaultLineColor]; - _progressLineWidth = [self defaultLineWidth]; - - _progressView = [[BMACircleProgressView alloc] initWithFrame:self.bounds]; - [_progressView setLineColor:[self defaultLineColor]]; - [_progressView setLineWidth:[self defaultLineWidth]]; - [self addSubview:_progressView]; - - _circleIconView = [[BMACircleIconView alloc] initWithFrame:self.bounds]; - [_circleIconView setLineColor:[self defaultLineColor]]; - [_circleIconView setLineWidth:[self defaultLineWidth]]; - [self addSubview:_circleIconView]; -} - -#pragma mark - stop gesture recognizer - -- (void)addStopGestureRecognizer { - if (self.stopLoadingTap) { - return; - } - - self.stopLoadingTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(stopLoadingTapped)]; - [self addGestureRecognizer:self.stopLoadingTap]; -} - -- (void)removeStopGestureRecognizer { - if (self.stopLoadingTap) { - [self removeGestureRecognizer:self.stopLoadingTap]; - self.stopLoadingTap = nil; - } -} - -- (void)stopLoadingTapped { - [self removeStopGestureRecognizer]; -} - -#pragma mark - Animations - -- (void)prepareForLoading { - [self removeStopGestureRecognizer]; - [self.progressView prepareForLoading]; -} - -#pragma mark - Setters - -- (void)setProgressType:(BMACircleProgressType)progressType { - _progressType = progressType; - [self updateIconViewType]; -} - -- (void)setProgressStatus:(BMACircleProgressStatus)progressStatus { - _progressStatus = progressStatus; - - [self.progressView finishPrepareForLoading]; - [self.progressView setLineColor:self.progressLineColor]; - [self setProgressType:_progressType]; - - switch (_progressStatus) { - case BMACircleProgressStatusFailed: - [self.progressView setLineColor:[UIColor clearColor]]; - break; - case BMACircleProgressStatusStarting: - [self prepareForLoading]; - break; - case BMACircleProgressStatusInProgress: - if (self.supportsCancel) { - [self addStopGestureRecognizer]; - } - break; - case BMACircleProgressStatusCompleted: - break; - default: - break; - } -} - -- (void)updateIconViewType { - switch (_progressType) { - case BMACircleProgressTypeUndefined: - case BMACircleProgressTypeIcon: - case BMACircleProgressTypeTimer: - [self.circleIconView setType:BMACircleIconTypeText]; - break; - case BMACircleProgressTypeUpload: - [self.circleIconView setType:BMACircleIconTypeArrowUp]; - break; - case BMACircleProgressTypeDownload: - [self.circleIconView setType:BMACircleIconTypeArrowDown]; - break; - } - - switch (_progressStatus) { - case BMACircleProgressStatusFailed: - [self.circleIconView setType:BMACircleIconTypeExclamation]; - break; - case BMACircleProgressStatusInProgress: - if (self.supportsCancel) { - [self.circleIconView setType:BMACircleIconTypeStop]; - } - break; - case BMACircleProgressStatusCompleted: - [self.circleIconView setType:BMACircleIconTypeCheck]; - break; - default: - break; - } -} - -#pragma mark - Setters - -- (void)setProgress:(CGFloat)progress { - if (progress > 1.0) { - progress = 1.0; - } - - if (_progress != progress) { - _progress = progress; - [self.progressView setProgress:progress]; - } -} - -- (void)setTimerTitle:(NSAttributedString *)title { - [self setProgressType:BMACircleProgressTypeTimer]; - [self.circleIconView setTitle:title]; -} - -- (void)setTextTitle:(NSAttributedString *)title { - [self setProgressType:BMACircleProgressTypeIcon]; - [self.circleIconView setTitle:title]; -} - -- (void)setIconType:(BMACircleIconType)type { - [self.circleIconView setType:type]; -} - -#pragma mark - Default Settings - -- (UIColor *)defaultLineColor { - return [UIColor colorWithRed:0 green:0.47 blue:1 alpha:1.0]; -} - -- (UIColor *)defaultRedLineColor { - return [UIColor colorWithRed:0.92 green:0.18 blue:0.18 alpha:1.0]; -} - -- (CGFloat)defaultLineWidth { - return fmaxf(self.frame.size.width * 0.01, 1.02f); -} - -- (void)setProgressLineColor:(UIColor *)color { - _progressLineColor = color; - [self.progressView setLineColor:color]; - [self updateViews]; - -} -- (void)setProgressLineWidth:(CGFloat)width { - _progressLineWidth = width; - [self.progressView setLineWidth:width]; - [self updateViews]; -} - -- (void)updateViews { - [self setProgressStatus:self.progressStatus]; - [self setProgressType:self.progressType]; -} - -@end diff --git a/ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/BMACircleProgressView.m b/ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/BMACircleProgressView.m deleted file mode 100644 index 85504e9..0000000 --- a/ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/BMACircleProgressView.m +++ /dev/null @@ -1,158 +0,0 @@ -/* - The MIT License (MIT) - - Copyright (c) 2015-present Badoo Trading Limited. - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. -*/ - -#import "BMACircleProgressView.h" - -@interface BMACircleProgressView () -@property (nonatomic, assign) CGFloat lineWidth; -@property (nonatomic, strong) UIColor *lineColor; -@property (nonatomic, strong) CAShapeLayer *bgLayer; -@property (nonatomic, strong) CAShapeLayer *progressLayer; -@property (nonatomic, assign, getter=isPreparingForLoading) BOOL preparingForLoading; -@property (nonatomic, assign) CGFloat progress; -@end - -@implementation BMACircleProgressView - -- (instancetype)initWithCoder:(NSCoder *)coder { - self = [super initWithCoder:coder]; - if (self) { - [self commonInit]; - } - return self; -} - -- (instancetype)initWithFrame:(CGRect)frame { - self = [super initWithFrame:frame]; - if (self) { - [self commonInit]; - } - return self; -} - -- (void)commonInit { - [self addSubLayers]; - [self updateBgLayer]; -} - -#pragma mark - layers - -- (void)addSubLayers { - [self addBgLayer]; - [self addProgressLayer]; -} - -- (void)addBgLayer { - self.bgLayer = [CAShapeLayer layer]; - _bgLayer.strokeColor = _lineColor.CGColor; - _bgLayer.fillColor = self.backgroundColor.CGColor; - _bgLayer.lineCap = kCALineCapRound; - _bgLayer.lineWidth = _lineWidth; - [self.layer addSublayer:_bgLayer]; -} - -- (void)addProgressLayer { - self.progressLayer = [CAShapeLayer layer]; - _progressLayer.strokeColor = _lineColor.CGColor; - _progressLayer.fillColor = nil; - _progressLayer.lineCap = kCALineCapSquare; - _progressLayer.lineWidth = _lineWidth * 2.2; - [self.layer addSublayer:_progressLayer]; -} - -#pragma mark - life cycle - -- (void)layoutSubviews { - [super layoutSubviews]; - _bgLayer.frame = self.bounds; - _progressLayer.frame = self.bounds; -} - -#pragma mark - actions - -- (void)prepareForLoading { - self.preparingForLoading = YES; - [self updateBgLayer]; - CABasicAnimation *rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"]; - rotationAnimation.toValue = [NSNumber numberWithFloat:M_PI * 2.0]; - rotationAnimation.duration = 1; - rotationAnimation.cumulative = YES; - rotationAnimation.repeatCount = HUGE_VALF; - [_bgLayer addAnimation:rotationAnimation forKey:@"rotationAnimation"]; -} - -- (void)finishPrepareForLoading { - if (self.preparingForLoading) { - [_bgLayer removeAllAnimations]; - self.preparingForLoading = NO; - [self updateBgLayer]; - } -} - -- (void)setProgress:(CGFloat)progress { - if (progress >= 0.0 && progress <= 1.0) { - _progress = progress; - _progressLayer.hidden = _progress >= 1.0; - [self updateProgressLayer]; - } -} - -#pragma mark - line style - -- (void)setLineColor:(UIColor *)lineColor { - _lineColor = lineColor; - _bgLayer.strokeColor = lineColor.CGColor; - _progressLayer.strokeColor = lineColor.CGColor; - [self updateBgLayer]; -} - -- (void)setLineWidth:(CGFloat)lineWidth { - _lineWidth = lineWidth; - _bgLayer.lineWidth = lineWidth; - _progressLayer.lineWidth = lineWidth * 2.0; - [self updateBgLayer]; -} - -#pragma mark - Update Layers - -- (void)updateBgLayer { - CGFloat spinningGapInCircle = self.isPreparingForLoading ? 1.8 : 2.0; - CGFloat radius = CGRectGetWidth(self.bounds) / 2 - self.lineWidth; - CGPoint center = CGPointMake(CGRectGetMidX(self.bounds), CGRectGetMidY(self.bounds)); - UIBezierPath *bgCircle = [UIBezierPath bezierPathWithArcCenter:center radius:radius startAngle:-M_PI_2 endAngle:(spinningGapInCircle * M_PI - M_PI_2)clockwise:YES]; - bgCircle.lineWidth = _lineWidth; - bgCircle.lineCapStyle = kCGLineCapRound; - _bgLayer.path = bgCircle.CGPath; -} - -- (void)updateProgressLayer { - CGFloat radius = (self.bounds.size.width - _lineWidth * 4) / 2.0; - CGPoint center = CGPointMake(CGRectGetMidX(self.bounds), CGRectGetMidY(self.bounds)); - UIBezierPath *progressCircle = [UIBezierPath bezierPathWithArcCenter:center radius:radius startAngle:-M_PI_2 endAngle:self.progress * 2 * M_PI - M_PI_2 clockwise:YES]; - progressCircle.lineCapStyle = kCGLineCapButt; - progressCircle.lineWidth = _lineWidth; - _progressLayer.path = progressCircle.CGPath; -} - -@end diff --git a/ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/BMACircleIconView.h b/ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/CircleIconView.h similarity index 77% rename from ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/BMACircleIconView.h rename to ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/CircleIconView.h index ad36737..9cb7a3c 100644 --- a/ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/BMACircleIconView.h +++ b/ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/CircleIconView.h @@ -24,22 +24,22 @@ @import UIKit; -typedef NS_ENUM(NSUInteger, BMACircleIconType) { - BMACircleIconTypeUndefined, +typedef NS_ENUM(NSUInteger, CircleIconType) { + CircleIconTypeUndefined, - BMACircleIconTypeInfinity, - BMACircleIconTypeExclamation, - BMACircleIconTypeCheck, + CircleIconTypeInfinity, + CircleIconTypeExclamation, + CircleIconTypeCheck, - BMACircleIconTypeArrowDown, - BMACircleIconTypeArrowUp, - BMACircleIconTypeStop, + CircleIconTypeArrowDown, + CircleIconTypeArrowUp, + CircleIconTypeStop, - BMACircleIconTypeText + CircleIconTypeText }; -@interface BMACircleIconView : UIView -- (void)setType:(BMACircleIconType)type; +@interface CircleIconView : UIView +- (void)setType:(CircleIconType)type; - (void)setTitle:(NSAttributedString *)title; - (void)setLineWidth:(CGFloat)lineWidth; diff --git a/ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/CircleIconView.m b/ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/CircleIconView.m new file mode 100644 index 0000000..544e418 --- /dev/null +++ b/ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/CircleIconView.m @@ -0,0 +1,297 @@ +/* + The MIT License (MIT) + + Copyright (c) 2015-present Badoo Trading Limited. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +*/ + +#import "CircleIconView.h" + +struct CircleProgressIconPoints { + CGPoint bma_top; + CGPoint bma_centre; + CGPoint bma_bottom; + CGPoint bma_left; + CGPoint bma_right; +}; + +@interface CircleIconView () +@property(nonatomic) CircleIconType type; + +@property(nonatomic, strong) UIImageView *iconView; +@property(nonatomic, strong) UILabel *titleView; + +@property(nonatomic, strong) CAShapeLayer *iconLayer; +@property(nonatomic, assign) struct CircleProgressIconPoints iconPoints; + +@property(nonatomic, assign) CGFloat lineWidth; +@property(nonatomic, strong) UIColor *lineColor; +@end + +@implementation CircleIconView + +- (instancetype)initWithCoder:(NSCoder *)coder { + self = [super initWithCoder:coder]; + if (self) { + [self commonInit]; + } + return self; +} + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self commonInit]; + } + return self; +} + +- (void)commonInit { + [self initIconLayer]; + [self initIconView]; + [self initTitleView]; +} + +- (void)initIconLayer { + self.iconLayer = [CAShapeLayer layer]; + _iconLayer.strokeColor = _lineColor.CGColor; + _iconLayer.fillColor = nil; + _iconLayer.lineCap = kCALineCapRound; + _iconLayer.lineWidth = _lineWidth; + _iconLayer.fillRule = kCAFillRuleNonZero; + [self.layer addSublayer:_iconLayer]; +} + +- (void)initIconView { + self.iconView = [[UIImageView alloc] initWithFrame:self.bounds]; + self.iconView.contentMode = UIViewContentModeCenter; + [self addSubview:self.iconView]; +} + +- (void)initTitleView { + self.titleView = [[UILabel alloc] initWithFrame:self.bounds]; + self.titleView.textAlignment = NSTextAlignmentCenter; + // FIXME + // self.titleView.font = [NewConnectionsUIDevFeature isAvailable] ? + // [StyleSheet fontForTypeStyle:TypeStyleBodySmallNormal] : [UIFont + // systemFontOfSize:12]; + [self addSubview:self.titleView]; +} + +#pragma mark - iconLayer + +- (void)setupIconLayerWithType:(CircleIconType)type { + [self setupIconPointsWithType:type]; + switch (type) { + case CircleIconTypeArrowUp: + [self drawArrowPointingTo:self.iconPoints.bma_top]; + break; + case CircleIconTypeArrowDown: + [self drawArrowPointingTo:self.iconPoints.bma_bottom]; + break; + case CircleIconTypeStop: + [self drawStop]; + break; + default: + _iconLayer.path = nil; + _iconLayer.fillColor = nil; + break; + } +} + +- (void)setupIconPointsWithType:(CircleIconType)type { + struct CircleProgressIconPoints points = {}; + points.bma_centre = + CGPointMake(self.bounds.size.width / 2, self.bounds.size.height / 2); + points.bma_bottom = CGPointMake( + points.bma_centre.x, + points.bma_centre.y + (self.outterCircleRadius - self.verticalMargin)); + points.bma_top = CGPointMake( + points.bma_centre.x, + points.bma_centre.y - (self.outterCircleRadius - self.verticalMargin)); + + switch (type) { + case CircleIconTypeArrowDown: + points.bma_left = CGPointMake( + points.bma_centre.x - (self.outterCircleRadius - self.horizontalMargin), + points.bma_centre.y); + points.bma_right = CGPointMake( + points.bma_centre.x + (self.outterCircleRadius - self.horizontalMargin), + points.bma_centre.y); + break; + case CircleIconTypeArrowUp: + points.bma_left = CGPointMake( + points.bma_centre.x - (self.outterCircleRadius - self.horizontalMargin), + points.bma_centre.y); + points.bma_right = CGPointMake( + points.bma_centre.x + (self.outterCircleRadius - self.horizontalMargin), + points.bma_centre.y); + break; + default: + break; + } + + self.iconPoints = points; +} + +- (void)drawArrowPointingTo:(CGPoint)point { + UIBezierPath *path = [UIBezierPath bezierPath]; + [path moveToPoint:self.iconPoints.bma_left]; + [path addLineToPoint:point]; + [path closePath]; + + [path moveToPoint:point]; + [path addLineToPoint:self.iconPoints.bma_right]; + [path closePath]; + + [path moveToPoint:self.iconPoints.bma_top]; + [path addLineToPoint:self.iconPoints.bma_centre]; + [path addLineToPoint:self.iconPoints.bma_bottom]; + [path closePath]; + + _iconLayer.lineWidth = _lineWidth; + _iconLayer.lineCap = kCALineCapRound; + [_iconLayer setPath:path.CGPath]; + [_iconLayer setStrokeColor:self.lineColor.CGColor]; + [_iconLayer setFillColor:nil]; +} + +- (void)drawStop { + CGFloat radius = (self.bounds.size.width) / 2; + UIBezierPath *stopPath = [UIBezierPath bezierPath]; + [stopPath moveToPoint:CGPointMake(0, 0)]; + [stopPath addLineToPoint:CGPointMake(self.horizontalMargin, 0.0)]; + [stopPath + addLineToPoint:CGPointMake(self.horizontalMargin, self.horizontalMargin)]; + [stopPath addLineToPoint:CGPointMake(0.0, self.horizontalMargin)]; + [stopPath closePath]; + [stopPath applyTransform:CGAffineTransformMakeTranslation( + radius * (1 - self.horizontalMarginCoef), + radius * (1 - self.horizontalMarginCoef))]; + + [_iconLayer setPath:stopPath.CGPath]; + [_iconLayer setStrokeColor:self.lineColor.CGColor]; + [_iconLayer setFillColor:self.lineColor.CGColor]; +} + +#pragma mark - icon view + +- (void)setupIconViewWithType:(CircleIconType)type { + NSString *imageName = nil; + switch (type) { + case CircleIconTypeInfinity: + imageName = @"infinity_icon_norm"; + break; + case CircleIconTypeExclamation: + imageName = @"warning_icon_norm"; + break; + case CircleIconTypeCheck: + imageName = @"tick_viewed_icon_norm"; + break; + default: + break; + } + + if (imageName) { + self.iconView.image = + [UIImage imageNamed:imageName + inBundle:[NSBundle bundleForClass:[self class]] + compatibleWithTraitCollection:nil]; + } +} + +#pragma mark - icon view + +- (void)setupVisibilityWithType:(CircleIconType)type { + self.titleView.hidden = YES; + self.iconLayer.hidden = YES; + self.iconView.hidden = YES; + + switch (type) { + case CircleIconTypeInfinity: + case CircleIconTypeExclamation: + case CircleIconTypeCheck: + self.iconView.hidden = NO; + break; + case CircleIconTypeArrowDown: + case CircleIconTypeArrowUp: + case CircleIconTypeStop: + self.iconLayer.hidden = NO; + break; + case CircleIconTypeText: + self.titleView.hidden = NO; + break; + default: + break; + } +} + +#pragma mark - life cycle + +- (void)layoutSubviews { + [super layoutSubviews]; + _iconLayer.frame = self.bounds; +} + +#pragma mark - actions + +- (void)setType:(CircleIconType)type { + _type = type; + [self setupVisibilityWithType:_type]; + + [self setupIconLayerWithType:_type]; + [self setupIconViewWithType:_type]; +} + +- (void)setTitle:(NSAttributedString *)title { + [self setType:CircleIconTypeText]; + self.titleView.attributedText = title; +} + +- (void)setLineColor:(UIColor *)lineColor { + _lineColor = lineColor; + _iconLayer.strokeColor = lineColor.CGColor; + _titleView.textColor = lineColor; +} + +- (void)setLineWidth:(CGFloat)lineWidth { + _lineWidth = lineWidth; + _iconLayer.lineWidth = lineWidth; +} + +#pragma mark - defaults + +- (CGFloat)verticalMargin { + return self.bounds.size.width * 0.28; +} + +- (CGFloat)horizontalMargin { + return self.bounds.size.width * 0.29; +} + +- (CGFloat)outterCircleRadius { + return (self.bounds.size.width - 2 * _lineWidth) / 2; +} + +- (CGFloat)horizontalMarginCoef { + return 0.28; +} + +@end diff --git a/ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/BMACircleProgressIndicatorView.h b/ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/CircleProgressIndicatorView.h similarity index 63% rename from ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/BMACircleProgressIndicatorView.h rename to ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/CircleProgressIndicatorView.h index cb3fd5b..afb93a9 100644 --- a/ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/BMACircleProgressIndicatorView.h +++ b/ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/CircleProgressIndicatorView.h @@ -23,30 +23,30 @@ */ #import -#import "BMACircleIconView.h" +#import "CircleIconView.h" -typedef NS_ENUM(NSUInteger, BMACircleProgressType) { - BMACircleProgressTypeUndefined, - BMACircleProgressTypeIcon, - BMACircleProgressTypeTimer, - BMACircleProgressTypeUpload, - BMACircleProgressTypeDownload, +typedef NS_ENUM(NSUInteger, CircleProgressType) { + CircleProgressTypeUndefined, + CircleProgressTypeIcon, + CircleProgressTypeTimer, + CircleProgressTypeUpload, + CircleProgressTypeDownload, }; -typedef NS_ENUM(NSUInteger, BMACircleProgressStatus) { - BMACircleProgressStatusUndefined, - BMACircleProgressStatusStarting, - BMACircleProgressStatusInProgress, - BMACircleProgressStatusCompleted, - BMACircleProgressStatusFailed, +typedef NS_ENUM(NSUInteger, CircleProgressStatus) { + CircleProgressStatusUndefined, + CircleProgressStatusStarting, + CircleProgressStatusInProgress, + CircleProgressStatusCompleted, + CircleProgressStatusFailed, }; -@interface BMACircleProgressIndicatorView : UIView +@interface CircleProgressIndicatorView : UIView -@property (nonatomic) BMACircleProgressType progressType; -@property (nonatomic) BMACircleProgressStatus progressStatus; -@property (nonatomic, strong) UIColor *progressLineColor; -@property (nonatomic, assign) CGFloat progressLineWidth; +@property(nonatomic) CircleProgressType progressType; +@property(nonatomic) CircleProgressStatus progressStatus; +@property(nonatomic, strong) UIColor *progressLineColor; +@property(nonatomic, assign) CGFloat progressLineWidth; + (instancetype)defaultProgressIndicatorView; + (instancetype)progressIndicatorViewWithSize:(CGSize)size; @@ -54,8 +54,7 @@ typedef NS_ENUM(NSUInteger, BMACircleProgressStatus) { - (void)setProgress:(CGFloat)progress; - (void)setTimerTitle:(NSAttributedString *)title; - (void)setTextTitle:(NSAttributedString *)title; -- (void)setIconType:(BMACircleIconType)type; +- (void)setIconType:(CircleIconType)type; - (void)setSupportsCancel:(BOOL)supportsCancel; - @end diff --git a/ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/CircleProgressIndicatorView.m b/ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/CircleProgressIndicatorView.m new file mode 100644 index 0000000..bdcdc53 --- /dev/null +++ b/ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/CircleProgressIndicatorView.m @@ -0,0 +1,238 @@ +/* + The MIT License (MIT) + + Copyright (c) 2015-present Badoo Trading Limited. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +*/ + +#import "CircleProgressIndicatorView.h" +#import "CircleProgressView.h" + +@interface CircleProgressIndicatorView () +@property(nonatomic, assign) BOOL supportsCancel; +@property(nonatomic, strong) UIGestureRecognizer *stopLoadingTap; + +@property(nonatomic, assign) CGFloat progress; + +@property(nonatomic, strong) CircleProgressView *progressView; +@property(nonatomic, strong) CircleIconView *circleIconView; +@end + +@implementation CircleProgressIndicatorView + ++ (instancetype)defaultProgressIndicatorView { + CircleProgressIndicatorView *view = [[CircleProgressIndicatorView alloc] + initWithFrame:CGRectMake(.0f, .0f, 28.0f, 28.0f)]; + view.backgroundColor = [UIColor clearColor]; + return view; +} + ++ (instancetype)progressIndicatorViewWithSize:(CGSize)size { + CircleProgressIndicatorView *view = [[CircleProgressIndicatorView alloc] + initWithFrame:CGRectMake(.0f, .0f, size.width, size.height)]; + view.backgroundColor = [UIColor clearColor]; + return view; +} + +- (instancetype)initWithCoder:(NSCoder *)coder { + self = [super initWithCoder:coder]; + if (self) { + [self commonInit]; + } + return self; +} + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self commonInit]; + } + return self; +} + +- (void)commonInit { + _progressLineColor = [self defaultLineColor]; + _progressLineWidth = [self defaultLineWidth]; + + _progressView = [[CircleProgressView alloc] initWithFrame:self.bounds]; + [_progressView setLineColor:[self defaultLineColor]]; + [_progressView setLineWidth:[self defaultLineWidth]]; + [self addSubview:_progressView]; + + _circleIconView = [[CircleIconView alloc] initWithFrame:self.bounds]; + [_circleIconView setLineColor:[self defaultLineColor]]; + [_circleIconView setLineWidth:[self defaultLineWidth]]; + [self addSubview:_circleIconView]; +} + +#pragma mark - stop gesture recognizer + +- (void)addStopGestureRecognizer { + if (self.stopLoadingTap) { + return; + } + + self.stopLoadingTap = [[UITapGestureRecognizer alloc] + initWithTarget:self + action:@selector(stopLoadingTapped)]; + [self addGestureRecognizer:self.stopLoadingTap]; +} + +- (void)removeStopGestureRecognizer { + if (self.stopLoadingTap) { + [self removeGestureRecognizer:self.stopLoadingTap]; + self.stopLoadingTap = nil; + } +} + +- (void)stopLoadingTapped { + [self removeStopGestureRecognizer]; +} + +#pragma mark - Animations + +- (void)prepareForLoading { + [self removeStopGestureRecognizer]; + [self.progressView prepareForLoading]; +} + +#pragma mark - Setters + +- (void)setProgressType:(CircleProgressType)progressType { + _progressType = progressType; + [self updateIconViewType]; +} + +- (void)setProgressStatus:(CircleProgressStatus)progressStatus { + _progressStatus = progressStatus; + + [self.progressView finishPrepareForLoading]; + [self.progressView setLineColor:self.progressLineColor]; + [self setProgressType:_progressType]; + + switch (_progressStatus) { + case CircleProgressStatusFailed: + [self.progressView setLineColor:[UIColor clearColor]]; + break; + case CircleProgressStatusStarting: + [self prepareForLoading]; + break; + case CircleProgressStatusInProgress: + if (self.supportsCancel) { + [self addStopGestureRecognizer]; + } + break; + case CircleProgressStatusCompleted: + break; + default: + break; + } +} + +- (void)updateIconViewType { + switch (_progressType) { + case CircleProgressTypeUndefined: + case CircleProgressTypeIcon: + case CircleProgressTypeTimer: + [self.circleIconView setType:CircleIconTypeText]; + break; + case CircleProgressTypeUpload: + [self.circleIconView setType:CircleIconTypeArrowUp]; + break; + case CircleProgressTypeDownload: + [self.circleIconView setType:CircleIconTypeArrowDown]; + break; + } + + switch (_progressStatus) { + case CircleProgressStatusFailed: + [self.circleIconView setType:CircleIconTypeExclamation]; + break; + case CircleProgressStatusInProgress: + if (self.supportsCancel) { + [self.circleIconView setType:CircleIconTypeStop]; + } + break; + case CircleProgressStatusCompleted: + [self.circleIconView setType:CircleIconTypeCheck]; + break; + default: + break; + } +} + +#pragma mark - Setters + +- (void)setProgress:(CGFloat)progress { + if (progress > 1.0) { + progress = 1.0; + } + + if (_progress != progress) { + _progress = progress; + [self.progressView setProgress:progress]; + } +} + +- (void)setTimerTitle:(NSAttributedString *)title { + [self setProgressType:CircleProgressTypeTimer]; + [self.circleIconView setTitle:title]; +} + +- (void)setTextTitle:(NSAttributedString *)title { + [self setProgressType:CircleProgressTypeIcon]; + [self.circleIconView setTitle:title]; +} + +- (void)setIconType:(CircleIconType)type { + [self.circleIconView setType:type]; +} + +#pragma mark - Default Settings + +- (UIColor *)defaultLineColor { + return [UIColor colorWithRed:0 green:0.47 blue:1 alpha:1.0]; +} + +- (UIColor *)defaultRedLineColor { + return [UIColor colorWithRed:0.92 green:0.18 blue:0.18 alpha:1.0]; +} + +- (CGFloat)defaultLineWidth { + return fmaxf(self.frame.size.width * 0.01, 1.02f); +} + +- (void)setProgressLineColor:(UIColor *)color { + _progressLineColor = color; + [self.progressView setLineColor:color]; + [self updateViews]; +} +- (void)setProgressLineWidth:(CGFloat)width { + _progressLineWidth = width; + [self.progressView setLineWidth:width]; + [self updateViews]; +} + +- (void)updateViews { + [self setProgressStatus:self.progressStatus]; + [self setProgressType:self.progressType]; +} + +@end diff --git a/ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/BMACircleProgressView.h b/ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/CircleProgressView.h similarity index 96% rename from ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/BMACircleProgressView.h rename to ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/CircleProgressView.h index ee3a1f2..03b8f81 100644 --- a/ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/BMACircleProgressView.h +++ b/ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/CircleProgressView.h @@ -24,7 +24,7 @@ @import UIKit; -@interface BMACircleProgressView : UIView +@interface CircleProgressView : UIView - (void)prepareForLoading; - (void)finishPrepareForLoading; - (void)setProgress:(CGFloat)progress; diff --git a/ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/CircleProgressView.m b/ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/CircleProgressView.m new file mode 100644 index 0000000..19b0261 --- /dev/null +++ b/ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/CircleProgressView.m @@ -0,0 +1,172 @@ +/* + The MIT License (MIT) + + Copyright (c) 2015-present Badoo Trading Limited. + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +*/ + +#import "CircleProgressView.h" + +@interface CircleProgressView () +@property(nonatomic, assign) CGFloat lineWidth; +@property(nonatomic, strong) UIColor *lineColor; +@property(nonatomic, strong) CAShapeLayer *bgLayer; +@property(nonatomic, strong) CAShapeLayer *progressLayer; +@property(nonatomic, assign, getter=isPreparingForLoading) + BOOL preparingForLoading; +@property(nonatomic, assign) CGFloat progress; +@end + +@implementation CircleProgressView + +- (instancetype)initWithCoder:(NSCoder *)coder { + self = [super initWithCoder:coder]; + if (self) { + [self commonInit]; + } + return self; +} + +- (instancetype)initWithFrame:(CGRect)frame { + self = [super initWithFrame:frame]; + if (self) { + [self commonInit]; + } + return self; +} + +- (void)commonInit { + [self addSubLayers]; + [self updateBgLayer]; +} + +#pragma mark - layers + +- (void)addSubLayers { + [self addBgLayer]; + [self addProgressLayer]; +} + +- (void)addBgLayer { + self.bgLayer = [CAShapeLayer layer]; + _bgLayer.strokeColor = _lineColor.CGColor; + _bgLayer.fillColor = self.backgroundColor.CGColor; + _bgLayer.lineCap = kCALineCapRound; + _bgLayer.lineWidth = _lineWidth; + [self.layer addSublayer:_bgLayer]; +} + +- (void)addProgressLayer { + self.progressLayer = [CAShapeLayer layer]; + _progressLayer.strokeColor = _lineColor.CGColor; + _progressLayer.fillColor = nil; + _progressLayer.lineCap = kCALineCapSquare; + _progressLayer.lineWidth = _lineWidth * 2.2; + [self.layer addSublayer:_progressLayer]; +} + +#pragma mark - life cycle + +- (void)layoutSubviews { + [super layoutSubviews]; + _bgLayer.frame = self.bounds; + _progressLayer.frame = self.bounds; +} + +#pragma mark - actions + +- (void)prepareForLoading { + self.preparingForLoading = YES; + [self updateBgLayer]; + CABasicAnimation *rotationAnimation = + [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"]; + rotationAnimation.toValue = [NSNumber numberWithFloat:M_PI * 2.0]; + rotationAnimation.duration = 1; + rotationAnimation.cumulative = YES; + rotationAnimation.repeatCount = HUGE_VALF; + [_bgLayer addAnimation:rotationAnimation forKey:@"rotationAnimation"]; +} + +- (void)finishPrepareForLoading { + if (self.preparingForLoading) { + [_bgLayer removeAllAnimations]; + self.preparingForLoading = NO; + [self updateBgLayer]; + } +} + +- (void)setProgress:(CGFloat)progress { + if (progress >= 0.0 && progress <= 1.0) { + _progress = progress; + _progressLayer.hidden = _progress >= 1.0; + [self updateProgressLayer]; + } +} + +#pragma mark - line style + +- (void)setLineColor:(UIColor *)lineColor { + _lineColor = lineColor; + _bgLayer.strokeColor = lineColor.CGColor; + _progressLayer.strokeColor = lineColor.CGColor; + [self updateBgLayer]; +} + +- (void)setLineWidth:(CGFloat)lineWidth { + _lineWidth = lineWidth; + _bgLayer.lineWidth = lineWidth; + _progressLayer.lineWidth = lineWidth * 2.0; + [self updateBgLayer]; +} + +#pragma mark - Update Layers + +- (void)updateBgLayer { + CGFloat spinningGapInCircle = self.isPreparingForLoading ? 1.8 : 2.0; + CGFloat radius = CGRectGetWidth(self.bounds) / 2 - self.lineWidth; + CGPoint center = + CGPointMake(CGRectGetMidX(self.bounds), CGRectGetMidY(self.bounds)); + UIBezierPath *bgCircle = [UIBezierPath + bezierPathWithArcCenter:center + radius:radius + startAngle:-M_PI_2 + endAngle:(spinningGapInCircle * M_PI - M_PI_2) + clockwise:YES]; + bgCircle.lineWidth = _lineWidth; + bgCircle.lineCapStyle = kCGLineCapRound; + _bgLayer.path = bgCircle.CGPath; +} + +- (void)updateProgressLayer { + CGFloat radius = (self.bounds.size.width - _lineWidth * 4) / 2.0; + CGPoint center = + CGPointMake(CGRectGetMidX(self.bounds), CGRectGetMidY(self.bounds)); + UIBezierPath *progressCircle = + [UIBezierPath bezierPathWithArcCenter:center + radius:radius + startAngle:-M_PI_2 + endAngle:self.progress * 2 * M_PI - M_PI_2 + clockwise:YES]; + progressCircle.lineCapStyle = kCGLineCapButt; + progressCircle.lineWidth = _lineWidth; + _progressLayer.path = progressCircle.CGPath; +} + +@end diff --git a/ChattoApp/Podfile.lock b/ChattoApp/Podfile.lock index daf8f09..c9e9b18 100644 --- a/ChattoApp/Podfile.lock +++ b/ChattoApp/Podfile.lock @@ -1,6 +1,7 @@ PODS: - Chatto (1.0.0) - - ChattoAdditions (1.0.0) + - ChattoAdditions (1.0.0): + - Chatto DEPENDENCIES: - Chatto (from `..`) @@ -13,7 +14,7 @@ EXTERNAL SOURCES: :path: ".." SPEC CHECKSUMS: - Chatto: 8fc659c895e22c20d3d180f71f589b196d1fa840 - ChattoAdditions: f65ba0cf7b8812320e59b5d72349182e8acabbde + Chatto: 531b14bbb7d21dfc50a86fc4ff70a90367171403 + ChattoAdditions: 27c7b59f4c1b1d51d5f37c7199164982fcc59edf COCOAPODS: 0.39.0 diff --git a/ChattoApp/Pods/Headers/Private/ChattoAdditions/BMACircleIconView.h b/ChattoApp/Pods/Headers/Private/ChattoAdditions/BMACircleIconView.h deleted file mode 120000 index e2b9ac2..0000000 --- a/ChattoApp/Pods/Headers/Private/ChattoAdditions/BMACircleIconView.h +++ /dev/null @@ -1 +0,0 @@ -../../../../../ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/BMACircleIconView.h \ No newline at end of file diff --git a/ChattoApp/Pods/Headers/Private/ChattoAdditions/BMACircleProgressIndicatorView.h b/ChattoApp/Pods/Headers/Private/ChattoAdditions/BMACircleProgressIndicatorView.h deleted file mode 120000 index 641ebf7..0000000 --- a/ChattoApp/Pods/Headers/Private/ChattoAdditions/BMACircleProgressIndicatorView.h +++ /dev/null @@ -1 +0,0 @@ -../../../../../ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/BMACircleProgressIndicatorView.h \ No newline at end of file diff --git a/ChattoApp/Pods/Headers/Private/ChattoAdditions/BMACircleProgressView.h b/ChattoApp/Pods/Headers/Private/ChattoAdditions/BMACircleProgressView.h deleted file mode 120000 index c0ed64c..0000000 --- a/ChattoApp/Pods/Headers/Private/ChattoAdditions/BMACircleProgressView.h +++ /dev/null @@ -1 +0,0 @@ -../../../../../ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/BMACircleProgressView.h \ No newline at end of file diff --git a/ChattoApp/Pods/Headers/Private/ChattoAdditions/CircleIconView.h b/ChattoApp/Pods/Headers/Private/ChattoAdditions/CircleIconView.h new file mode 120000 index 0000000..72099fe --- /dev/null +++ b/ChattoApp/Pods/Headers/Private/ChattoAdditions/CircleIconView.h @@ -0,0 +1 @@ +../../../../../ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/CircleIconView.h \ No newline at end of file diff --git a/ChattoApp/Pods/Headers/Private/ChattoAdditions/CircleProgressIndicatorView.h b/ChattoApp/Pods/Headers/Private/ChattoAdditions/CircleProgressIndicatorView.h new file mode 120000 index 0000000..f0df357 --- /dev/null +++ b/ChattoApp/Pods/Headers/Private/ChattoAdditions/CircleProgressIndicatorView.h @@ -0,0 +1 @@ +../../../../../ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/CircleProgressIndicatorView.h \ No newline at end of file diff --git a/ChattoApp/Pods/Headers/Private/ChattoAdditions/CircleProgressView.h b/ChattoApp/Pods/Headers/Private/ChattoAdditions/CircleProgressView.h new file mode 120000 index 0000000..87ab596 --- /dev/null +++ b/ChattoApp/Pods/Headers/Private/ChattoAdditions/CircleProgressView.h @@ -0,0 +1 @@ +../../../../../ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/CircleProgressView.h \ No newline at end of file diff --git a/ChattoApp/Pods/Local Podspecs/Chatto.podspec.json b/ChattoApp/Pods/Local Podspecs/Chatto.podspec.json index 888308e..95babea 100644 --- a/ChattoApp/Pods/Local Podspecs/Chatto.podspec.json +++ b/ChattoApp/Pods/Local Podspecs/Chatto.podspec.json @@ -10,16 +10,14 @@ "platforms": { "ios": "8.0" }, + "authors": { + "Diego Sanchez": "diego.sanchezr@gmail.com" + }, "source": { "git": "https://github.com/badoo/Chatto.git", "tag": "1.0.0" }, "source_files": "Chatto/Source/**/*.{h,m,swift}", "public_header_files": "Chatto/Source/**/*.h", - "requires_arc": true, - "resources": [ - "Chatto/Source/**/*.xib", - "Chatto/Source/**/*.storyboard", - "Chatto/Source/**/*.xcassets" - ] + "requires_arc": true } diff --git a/ChattoApp/Pods/Local Podspecs/ChattoAdditions.podspec.json b/ChattoApp/Pods/Local Podspecs/ChattoAdditions.podspec.json index 9a0a266..e8b5be0 100644 --- a/ChattoApp/Pods/Local Podspecs/ChattoAdditions.podspec.json +++ b/ChattoApp/Pods/Local Podspecs/ChattoAdditions.podspec.json @@ -10,6 +10,9 @@ "platforms": { "ios": "8.0" }, + "authors": { + "Diego Sanchez": "diego.sanchezr@gmail.com" + }, "source": { "git": "https://github.com/badoo/Chatto.git", "tag": "1.0.0" @@ -21,5 +24,10 @@ "ChattoAdditions/Source/**/*.xib", "ChattoAdditions/Source/**/*.storyboard", "ChattoAdditions/Source/**/*.xcassets" - ] + ], + "dependencies": { + "Chatto": [ + + ] + } } diff --git a/ChattoApp/Pods/Manifest.lock b/ChattoApp/Pods/Manifest.lock index daf8f09..c9e9b18 100644 --- a/ChattoApp/Pods/Manifest.lock +++ b/ChattoApp/Pods/Manifest.lock @@ -1,6 +1,7 @@ PODS: - Chatto (1.0.0) - - ChattoAdditions (1.0.0) + - ChattoAdditions (1.0.0): + - Chatto DEPENDENCIES: - Chatto (from `..`) @@ -13,7 +14,7 @@ EXTERNAL SOURCES: :path: ".." SPEC CHECKSUMS: - Chatto: 8fc659c895e22c20d3d180f71f589b196d1fa840 - ChattoAdditions: f65ba0cf7b8812320e59b5d72349182e8acabbde + Chatto: 531b14bbb7d21dfc50a86fc4ff70a90367171403 + ChattoAdditions: 27c7b59f4c1b1d51d5f37c7199164982fcc59edf COCOAPODS: 0.39.0 diff --git a/ChattoApp/Pods/Pods.xcodeproj/project.pbxproj b/ChattoApp/Pods/Pods.xcodeproj/project.pbxproj index 4a7d77c..7a59b53 100644 --- a/ChattoApp/Pods/Pods.xcodeproj/project.pbxproj +++ b/ChattoApp/Pods/Pods.xcodeproj/project.pbxproj @@ -1,1189 +1,3544 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 002B5A26F366E6023987B367C87BB489 /* KeyedOperationQueue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 97EC8D64F772F020E4A9E737D4A050C3 /* KeyedOperationQueue.swift */; }; - 009190E3F05F45D8D6C88DEA3CA2C170 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E4E89230EF59BC255123B67864ACF77 /* Foundation.framework */; }; - 0325565FCB74211571561E24990FB20B /* BMACircleProgressView.h in Headers */ = {isa = PBXBuildFile; fileRef = 7D523AF402F1173DD57457A0E56922E6 /* BMACircleProgressView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 03C9B7AD6D1B9E070A1C0873049AD8C4 /* PhotoBubbleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A090C4E7541E04C60FEC74B26A1983D8 /* PhotoBubbleView.swift */; }; - 08E01B83171FC50F2FEB6BA3F64804DE /* Text.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 2A0D073A6C8292215CF9C18BDE409BE1 /* Text.xcassets */; }; - 096336EFFA54ECBFE77D0D54E0BC6605 /* TextBubbleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6570F04FDD5CC8C2BC932E82306D690 /* TextBubbleView.swift */; }; - 0A8585B0216AD8F0EE3E4E8249F6E583 /* ExpandableTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D24BCF073CE16056F253257894CF66DD /* ExpandableTextView.swift */; }; - 0B708F3EE9E20A49271E9568166F9816 /* PhotoMessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B766F68048B2995D20C6DF8D77A6429 /* PhotoMessageViewModel.swift */; }; - 0B7419E6F6B5DDE92FCA9E39591D1302 /* HorizontalStackScrollView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4549EAD309CDA9A0C8B82AC7F9381D1 /* HorizontalStackScrollView.swift */; }; - 10E519D0240AC705F4F20D7CF2B688B0 /* BaseMessageModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73D0E435C33C19717B04811C0F73600E /* BaseMessageModel.swift */; }; - 10E87AD8A7A60CF5C63B1CA393582B9C /* PhotosInputViewItemSizeCalculator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2FC91F230E6B87767585794C423F4732 /* PhotosInputViewItemSizeCalculator.swift */; }; - 126C1428338753E21E4A3995D9CE22BB /* Observable.swift in Sources */ = {isa = PBXBuildFile; fileRef = A62E24EAB3E41E6298553D72F1AACB0B /* Observable.swift */; }; - 241C748798DAF0D5E04B7732182B6F49 /* ReusableXibView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5EB60CC19EC06054D693A3635FC065C8 /* ReusableXibView.swift */; }; - 26D16A3CE67615A896870C532E6B3077 /* TextMessageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0115F92456789DC5293B80ADE95E0C9F /* TextMessageCollectionViewCell.swift */; }; - 28DCD4A088B398ABCC8C207C2A5F2BD5 /* PhotoMessageAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7BFD9A3C31260386847F9B7920E6FC80 /* PhotoMessageAssets.xcassets */; }; - 29F83E8FF41A83054541861A968055BE /* BaseMessageCollectionViewCellDefaultSyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = F9295E06CBFBBA5200243C4EE50AFA67 /* BaseMessageCollectionViewCellDefaultSyle.swift */; }; - 2C5275E45E5AE03D924F591858AA0177 /* ChatViewController+Changes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 70FE4F431B11E0A2ECFBA12B1B7D34F9 /* ChatViewController+Changes.swift */; }; - 2C5BDA00C3CEDCF442A1A517E53194C5 /* ChatViewController+Presenters.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E5BAE193ABA7143A3C14A2E27DB8085 /* ChatViewController+Presenters.swift */; }; - 2E9C36219046B88FD21376EEA87166BB /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8544C25F17FD6BA40AE7191260F8B89D /* Utils.swift */; }; - 32DAF43AFC51B342D0FE6BD1F581EDD4 /* BaseMessageAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 667C1CA3478EA3D81ADADD11F7EFB62C /* BaseMessageAssets.xcassets */; }; - 33DF2A02C3E616E5A383F41CF84D6623 /* PhotosInputCameraPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 637A06D57DDDE2353B5A90D3F0897A6C /* PhotosInputCameraPicker.swift */; }; - 363177D4F27487B0A55B64A32DD28A9D /* PhotosInputDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9BE76FB30802E2048AEF7A804E8FA056 /* PhotosInputDataProvider.swift */; }; - 37A9B2E6EA90CAA4D2028AE2FF50364D /* BMACircleProgressIndicatorView.m in Sources */ = {isa = PBXBuildFile; fileRef = 90DA51B10129517CD3241737D8212E87 /* BMACircleProgressIndicatorView.m */; }; - 3A5BB927F0A0F42D00291C19830064E3 /* LiveCameraCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3333BED070BA5CD346B481AB6022E549 /* LiveCameraCell.swift */; }; - 3FD84E7F6E8FD080806385BFEAE8E9FB /* ChatInputBarAppearance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 23398C34333A5A585408BF38AE0C2065 /* ChatInputBarAppearance.swift */; }; - 43B30806B751F6B6D29513916D9802BE /* TextMessagePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5902D05B5BB1C50C7F4680DD211F6AA5 /* TextMessagePresenter.swift */; }; - 44C556A45E71209AB9AE692F76AA98A7 /* BaseMessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCECC6BEBDCA29F005882EBE7E4A6CFA /* BaseMessageViewModel.swift */; }; - 45F266FBE931F2E977A7411BF82D6262 /* BMACircleIconView.m in Sources */ = {isa = PBXBuildFile; fileRef = B2055A377052896E80DCFBE0BD246F0C /* BMACircleIconView.m */; }; - 47794E72BFB7C2F6CC29ED9EFBD0DAA6 /* ChatViewController+Scrolling.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9DC97BE236B7B291614A7F105F62815 /* ChatViewController+Scrolling.swift */; }; - 4D49CD0E497DB8BF0FDA4EAB65BF1C8A /* KeyboardTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B62EFE5AEB88F47C417D132452C5724 /* KeyboardTracker.swift */; }; - 558E0CB64A448006A7E88711769D761D /* ChatViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31C61B7E2DB25FF1ADB483FEED157D81 /* ChatViewController.swift */; }; - 55DE4AF8460D469495654AF4AA249E00 /* ChattoAdditions-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FB5030FB81D772482E145FF745310021 /* ChattoAdditions-dummy.m */; }; - 57E14A69838A3BCE22B1F01B597A74CD /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E4E89230EF59BC255123B67864ACF77 /* Foundation.framework */; }; - 5CF4B0009F5EE5240A128150BEBBF1CD /* TextMessagePresenterBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = CEA37B6B7D260CE35E463E68DE47C0F0 /* TextMessagePresenterBuilder.swift */; }; - 5DBF6832752F0ECF3CD8E14CCDDC851B /* TextMessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7019E99B21789BA603247FD118DFB1AF /* TextMessageViewModel.swift */; }; - 5DFA99DCCBE023FF77ED832CA854A833 /* AccessoryViewRevealer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B5087CD6F6BFB113692DA332EB62100 /* AccessoryViewRevealer.swift */; }; - 61C421AA18A0C32D0531414F0B55F202 /* ChatCollectionViewLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BA2F03625F2F7189A89830233BA1528 /* ChatCollectionViewLayout.swift */; }; - 639456EBC008A775805ADD0964560889 /* BaseMessageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = D1B9575301EAF330DF2C9F01CFC35126 /* BaseMessageCollectionViewCell.swift */; }; - 68D0351426E0494FC782C18126BB7BDD /* Pods-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 894E5DA93A9F359521A89826BE6DA777 /* Pods-dummy.m */; }; - 6F395C963A19315CA78620454739D76D /* BMACircleProgressIndicatorView.h in Headers */ = {isa = PBXBuildFile; fileRef = 705BC399BD4B077E37975D15C89248C5 /* BMACircleProgressIndicatorView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7403DF9C589D875EE74DC47F57E0E82E /* ChatItemProtocolDefinitions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8DFADD757D9E0D8289EB018E3D00686F /* ChatItemProtocolDefinitions.swift */; }; - 75A7C247CC380FEDAE0AC8E13A902A81 /* BaseMessagePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A560B5BC0929E09496CB42FC6FF4B42 /* BaseMessagePresenter.swift */; }; - 7E87E3B6EE110EB522B10B826F6C7B5A /* PhotoMessageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = E50EDA3F59861363F8D1562C64520389 /* PhotoMessageCollectionViewCell.swift */; }; - 82FA25352D04CBA297D40C0A009A0B98 /* ViewDefinitions.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6269251CBD6458BEEDBEDA08B64C442 /* ViewDefinitions.swift */; }; - 8471D19BA239ED6CACAAB5B4FBA78029 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3E4E89230EF59BC255123B67864ACF77 /* Foundation.framework */; }; - 884522B49E2BAD4E3E2F2A4B94D3806C /* ChatInputBarPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4AC819B1D861D4DAB565E0F55A285701 /* ChatInputBarPresenter.swift */; }; - 8C0965CFDAF20A1CD776B46B5748331E /* ChatDataSourceProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAFB8B0EEDF14A1BF0CD593AB0450BE7 /* ChatDataSourceProtocol.swift */; }; - 8DC795C7E817F36FA3E134C0898665C3 /* ChattoAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 4927E8B748B6DCD67DA10E42879EEC22 /* ChattoAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 94C8F0A64F20C587F2446EB58B23826A /* CollectionChanges.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2E619ED0E2DD9480F11CCD3B0D06AFC /* CollectionChanges.swift */; }; - 94FFDFAB71DB3D729AC5E3ECAB8844D7 /* BaseChatItemPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6559DEDD0FDE1E6B645A304DAA4E372A /* BaseChatItemPresenter.swift */; }; - 977604CBF52F03DD8E2545AF18A13DA1 /* ChatInputItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 681E03D75C85DD9F68B05EFA215C12DA /* ChatInputItemView.swift */; }; - A0BFAF574FF83E9BC1C35FAB0951F054 /* PhotoMessageModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D38FF70C7961730494358A781BBD4266 /* PhotoMessageModel.swift */; }; - A4030DB5C6302772A563302E77F87A35 /* TextChatInputItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CE0C32F2E53D253FBD890532AA9201C /* TextChatInputItem.swift */; }; - B12B4E17FDDED7344E1515820D265A55 /* PhotoMessageCollectionViewCellDefaultStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = BBC78D5C31DE842F5996D6DFE95CBE39 /* PhotoMessageCollectionViewCellDefaultStyle.swift */; }; - B5DC5D3B818ED2A4F5D15261EB896837 /* Pods-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 2BCC458FDD5F692BBB2BFC64BB5701FC /* Pods-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C263C02056CA9239835BD74021CAB9E6 /* BMACircleIconView.h in Headers */ = {isa = PBXBuildFile; fileRef = FFE38DED26B0571BEE5E712475ABADF6 /* BMACircleIconView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C683422158F5968A8A29B58E2FDD5B4D /* CircleProgressIndicator.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = DA69C4842198E41E23867E01B0161612 /* CircleProgressIndicator.xcassets */; }; - C6D5EB63747F98C3C77DA1EDC92313EF /* ChattoAdditions-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 5A4BF7E99DD1960EA3ACDCE6F29D58BB /* ChattoAdditions-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - C72F8298DD9F4584FBCA7522D477F0FA /* PhotoMessagePresenterBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC2C226C413CE617F8BF06BE47C11C73 /* PhotoMessagePresenterBuilder.swift */; }; - C91B43D8D4E76E6C100BED750A1DFCC2 /* Photos.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D2B2293D7D418420AB03F0584A71EB69 /* Photos.xcassets */; }; - CD86F8472C608530EDA2A8062FCFF602 /* BMACircleProgressView.m in Sources */ = {isa = PBXBuildFile; fileRef = 4BEFA2B639E0EAEFD4F8BAE75750419C /* BMACircleProgressView.m */; }; - CE3DD65F68B73E1360C064CBCD78B995 /* ChatItemDecorationAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A3C388748081057087ABCD9B0DDC950 /* ChatItemDecorationAttributes.swift */; }; - D2D9B5C18D7A84F7945B137EFF0C037A /* Chatto-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 42D8BFA51D1A4D7997DDA3DAEEC7BB3A /* Chatto-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - D730F78B60375FDC9C61182D11A29C2D /* ChatInputItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE14101F8C4BA1B959F36608FBAA4982 /* ChatInputItem.swift */; }; - D8ADF68A721AF157D657BCDE1EB0EF97 /* ChatInputBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = F16CAF022D5603843128A2381A0B6887 /* ChatInputBar.swift */; }; - D8E2ACC7B73521A6A273104C6448CC0D /* PhotosInputCellProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4306E5B302B20801B08011A90E0FF1F8 /* PhotosInputCellProvider.swift */; }; - DA17F011A9E7A91E1C536A7AF4277A7D /* PhotosInputCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5E415AF9FF70A25E565DD75E7A5B741 /* PhotosInputCell.swift */; }; - DE48608D5088FE0236779F84761E2BB8 /* SerialTaskQueue.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5784D88764B0B37D2F1F0A0FA3190C3 /* SerialTaskQueue.swift */; }; - DFC0EF316B5D2A73B069CEE5F109D8F0 /* PhotosChatInputItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D102E537B24FD32C4408CDC03234189 /* PhotosChatInputItem.swift */; }; - E4C32DC33587BD2B3561B95808F01DD9 /* Chatto.h in Headers */ = {isa = PBXBuildFile; fileRef = C1E67DA90AD21E5BD1C2A650617D2A2A /* Chatto.h */; settings = {ATTRIBUTES = (Public, ); }; }; - ECA9A9F5D34C77359C6952AD6FC90A18 /* DummyChatItemPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB0BAE425A4CCABBA1A695F76B8523BA /* DummyChatItemPresenter.swift */; }; - ED0283B0B9FE358BC4153E6BAB8BE20D /* Chatto-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 41A9B2AAC21030F2945A94BC7CBD1423 /* Chatto-dummy.m */; }; - ED32334D81D400DF44DA6241F9031735 /* TextMessageModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D92F80EFA905D1D2B49E78A544CA770E /* TextMessageModel.swift */; }; - F046DB45E23C2EC3AEB503BA9ED9D7FE /* PhotosInputView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B04C38B6EBC9EC62019D9CF55AA0238E /* PhotosInputView.swift */; }; - F2F9769B419FBB68234DF719455BD3F5 /* ChatInputBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = 64098046251F40CFE18AABFF28F8AF30 /* ChatInputBar.xib */; }; - F9D8DEFADE4E9CFAE555231D4B47D692 /* PhotoMessagePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0EBAA11EA89A45AAD5EEC0671CB697E /* PhotoMessagePresenter.swift */; }; - FEC08045769E34751B886D59AF870259 /* AnimationUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31E6E29A9A89094B4B607C4C341D18FF /* AnimationUtils.swift */; }; - FF04074C5FE7407BE8AD21A5E66FE372 /* TextMessageCollectionViewCellDefaultStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00C42DE4E7BA84C9B0F5D1A68BE58C87 /* TextMessageCollectionViewCellDefaultStyle.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 3A4012010BE69B97E46A5FB84F2302AC /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = 7AF7E2DF8892E014AE5FCDF57A214D19; - remoteInfo = Chatto; - }; - 75FE19E41E61A16534ECC3755AD1FB04 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D41D8CD98F00B204E9800998ECF8427E /* Project object */; - proxyType = 1; - remoteGlobalIDString = 9210D689EDE02CF0CCA185C18130DC9B; - remoteInfo = ChattoAdditions; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXFileReference section */ - 00C42DE4E7BA84C9B0F5D1A68BE58C87 /* TextMessageCollectionViewCellDefaultStyle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextMessageCollectionViewCellDefaultStyle.swift; sourceTree = ""; }; - 0115F92456789DC5293B80ADE95E0C9F /* TextMessageCollectionViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextMessageCollectionViewCell.swift; sourceTree = ""; }; - 0CE0C32F2E53D253FBD890532AA9201C /* TextChatInputItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextChatInputItem.swift; sourceTree = ""; }; - 23398C34333A5A585408BF38AE0C2065 /* ChatInputBarAppearance.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatInputBarAppearance.swift; sourceTree = ""; }; - 2A0D073A6C8292215CF9C18BDE409BE1 /* Text.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; path = Text.xcassets; sourceTree = ""; }; - 2A560B5BC0929E09496CB42FC6FF4B42 /* BaseMessagePresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseMessagePresenter.swift; sourceTree = ""; }; - 2BCC458FDD5F692BBB2BFC64BB5701FC /* Pods-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-umbrella.h"; sourceTree = ""; }; - 2E5BAE193ABA7143A3C14A2E27DB8085 /* ChatViewController+Presenters.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "ChatViewController+Presenters.swift"; sourceTree = ""; }; - 2FC91F230E6B87767585794C423F4732 /* PhotosInputViewItemSizeCalculator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputViewItemSizeCalculator.swift; sourceTree = ""; }; - 31C61B7E2DB25FF1ADB483FEED157D81 /* ChatViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatViewController.swift; sourceTree = ""; }; - 31E6E29A9A89094B4B607C4C341D18FF /* AnimationUtils.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AnimationUtils.swift; sourceTree = ""; }; - 3333BED070BA5CD346B481AB6022E549 /* LiveCameraCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LiveCameraCell.swift; sourceTree = ""; }; - 3D102E537B24FD32C4408CDC03234189 /* PhotosChatInputItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosChatInputItem.swift; sourceTree = ""; }; - 3E4E89230EF59BC255123B67864ACF77 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - 41A9B2AAC21030F2945A94BC7CBD1423 /* Chatto-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Chatto-dummy.m"; sourceTree = ""; }; - 42D8BFA51D1A4D7997DDA3DAEEC7BB3A /* Chatto-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Chatto-umbrella.h"; sourceTree = ""; }; - 4306E5B302B20801B08011A90E0FF1F8 /* PhotosInputCellProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputCellProvider.swift; sourceTree = ""; }; - 4927E8B748B6DCD67DA10E42879EEC22 /* ChattoAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = ChattoAdditions.h; sourceTree = ""; }; - 4AC819B1D861D4DAB565E0F55A285701 /* ChatInputBarPresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatInputBarPresenter.swift; sourceTree = ""; }; - 4BA2F03625F2F7189A89830233BA1528 /* ChatCollectionViewLayout.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatCollectionViewLayout.swift; sourceTree = ""; }; - 4BEFA2B639E0EAEFD4F8BAE75750419C /* BMACircleProgressView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = BMACircleProgressView.m; sourceTree = ""; }; - 58294E0D6B459AFD04DEA87154A8368F /* Chatto.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Chatto.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 5902D05B5BB1C50C7F4680DD211F6AA5 /* TextMessagePresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextMessagePresenter.swift; sourceTree = ""; }; - 5A4BF7E99DD1960EA3ACDCE6F29D58BB /* ChattoAdditions-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ChattoAdditions-umbrella.h"; sourceTree = ""; }; - 5B62EFE5AEB88F47C417D132452C5724 /* KeyboardTracker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = KeyboardTracker.swift; sourceTree = ""; }; - 5EB60CC19EC06054D693A3635FC065C8 /* ReusableXibView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ReusableXibView.swift; sourceTree = ""; }; - 637A06D57DDDE2353B5A90D3F0897A6C /* PhotosInputCameraPicker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputCameraPicker.swift; sourceTree = ""; }; - 64098046251F40CFE18AABFF28F8AF30 /* ChatInputBar.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; path = ChatInputBar.xib; sourceTree = ""; }; - 6559DEDD0FDE1E6B645A304DAA4E372A /* BaseChatItemPresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseChatItemPresenter.swift; sourceTree = ""; }; - 664656BDB7A47AC9ECBA2D58EB550D51 /* Chatto.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = Chatto.modulemap; sourceTree = ""; }; - 667C1CA3478EA3D81ADADD11F7EFB62C /* BaseMessageAssets.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; path = BaseMessageAssets.xcassets; sourceTree = ""; }; - 681E03D75C85DD9F68B05EFA215C12DA /* ChatInputItemView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatInputItemView.swift; sourceTree = ""; }; - 7019E99B21789BA603247FD118DFB1AF /* TextMessageViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextMessageViewModel.swift; sourceTree = ""; }; - 705BC399BD4B077E37975D15C89248C5 /* BMACircleProgressIndicatorView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = BMACircleProgressIndicatorView.h; sourceTree = ""; }; - 70FE4F431B11E0A2ECFBA12B1B7D34F9 /* ChatViewController+Changes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "ChatViewController+Changes.swift"; sourceTree = ""; }; - 73D0E435C33C19717B04811C0F73600E /* BaseMessageModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseMessageModel.swift; sourceTree = ""; }; - 79A9DEDC89FE8336BF5FEDAAF75BF7FC /* Pods.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = Pods.modulemap; sourceTree = ""; }; - 7B5087CD6F6BFB113692DA332EB62100 /* AccessoryViewRevealer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AccessoryViewRevealer.swift; sourceTree = ""; }; - 7BFD9A3C31260386847F9B7920E6FC80 /* PhotoMessageAssets.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; path = PhotoMessageAssets.xcassets; sourceTree = ""; }; - 7D523AF402F1173DD57457A0E56922E6 /* BMACircleProgressView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = BMACircleProgressView.h; sourceTree = ""; }; - 7DF19D1C33F02CDBE97223A0F2535E5C /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 8544C25F17FD6BA40AE7191260F8B89D /* Utils.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Utils.swift; sourceTree = ""; }; - 87B213035BAC5F75386F62D3C75D2342 /* Pods-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-acknowledgements.plist"; sourceTree = ""; }; - 894E5DA93A9F359521A89826BE6DA777 /* Pods-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-dummy.m"; sourceTree = ""; }; - 8A3C388748081057087ABCD9B0DDC950 /* ChatItemDecorationAttributes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatItemDecorationAttributes.swift; sourceTree = ""; }; - 8DFADD757D9E0D8289EB018E3D00686F /* ChatItemProtocolDefinitions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatItemProtocolDefinitions.swift; sourceTree = ""; }; - 90DA51B10129517CD3241737D8212E87 /* BMACircleProgressIndicatorView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = BMACircleProgressIndicatorView.m; sourceTree = ""; }; - 977577C045EDA9D9D1F46E2598D19FC7 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Pods.debug.xcconfig; sourceTree = ""; }; - 97EC8D64F772F020E4A9E737D4A050C3 /* KeyedOperationQueue.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = KeyedOperationQueue.swift; sourceTree = ""; }; - 9B766F68048B2995D20C6DF8D77A6429 /* PhotoMessageViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoMessageViewModel.swift; sourceTree = ""; }; - 9BE76FB30802E2048AEF7A804E8FA056 /* PhotosInputDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputDataProvider.swift; sourceTree = ""; }; - A090C4E7541E04C60FEC74B26A1983D8 /* PhotoBubbleView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoBubbleView.swift; sourceTree = ""; }; - A210C8B9CA993A2C831727CE2515A3DE /* ChattoAdditions-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ChattoAdditions-prefix.pch"; sourceTree = ""; }; - A62E24EAB3E41E6298553D72F1AACB0B /* Observable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Observable.swift; sourceTree = ""; }; - A65DE185A12E70BE17EFA373F195C9E6 /* Chatto.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Chatto.xcconfig; sourceTree = ""; }; - AF3827E052F4369A86F32B555BFE2E80 /* Chatto-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Chatto-prefix.pch"; sourceTree = ""; }; - AF5BD772CABAA008A4802F6B3A73307E /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - B04C38B6EBC9EC62019D9CF55AA0238E /* PhotosInputView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputView.swift; sourceTree = ""; }; - B2055A377052896E80DCFBE0BD246F0C /* BMACircleIconView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = BMACircleIconView.m; sourceTree = ""; }; - B6570F04FDD5CC8C2BC932E82306D690 /* TextBubbleView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextBubbleView.swift; sourceTree = ""; }; - B9DC97BE236B7B291614A7F105F62815 /* ChatViewController+Scrolling.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "ChatViewController+Scrolling.swift"; sourceTree = ""; }; - BA6428E9F66FD5A23C0A2E06ED26CD2F /* Podfile */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - BBC78D5C31DE842F5996D6DFE95CBE39 /* PhotoMessageCollectionViewCellDefaultStyle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoMessageCollectionViewCellDefaultStyle.swift; sourceTree = ""; }; - C0EBAA11EA89A45AAD5EEC0671CB697E /* PhotoMessagePresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoMessagePresenter.swift; sourceTree = ""; }; - C117BD8C68DD05EFED4E96C19B341962 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - C1E67DA90AD21E5BD1C2A650617D2A2A /* Chatto.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = Chatto.h; sourceTree = ""; }; - CBC0F7C552B739C909B650A0F42F7F38 /* Pods-resources.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-resources.sh"; sourceTree = ""; }; - CC2C226C413CE617F8BF06BE47C11C73 /* PhotoMessagePresenterBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoMessagePresenterBuilder.swift; sourceTree = ""; }; - CCECC6BEBDCA29F005882EBE7E4A6CFA /* BaseMessageViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseMessageViewModel.swift; sourceTree = ""; }; - CE7CD41DBBB972864685F06362CCC494 /* ChattoAdditions.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ChattoAdditions.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - CEA37B6B7D260CE35E463E68DE47C0F0 /* TextMessagePresenterBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextMessagePresenterBuilder.swift; sourceTree = ""; }; - D0405803033A2A777B8E4DFA0C1800ED /* Pods-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-acknowledgements.markdown"; sourceTree = ""; }; - D1B9575301EAF330DF2C9F01CFC35126 /* BaseMessageCollectionViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseMessageCollectionViewCell.swift; sourceTree = ""; }; - D24BCF073CE16056F253257894CF66DD /* ExpandableTextView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ExpandableTextView.swift; sourceTree = ""; }; - D2B2293D7D418420AB03F0584A71EB69 /* Photos.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; path = Photos.xcassets; sourceTree = ""; }; - D38FF70C7961730494358A781BBD4266 /* PhotoMessageModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoMessageModel.swift; sourceTree = ""; }; - D5E415AF9FF70A25E565DD75E7A5B741 /* PhotosInputCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputCell.swift; sourceTree = ""; }; - D92F80EFA905D1D2B49E78A544CA770E /* TextMessageModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextMessageModel.swift; sourceTree = ""; }; - DA312349A49333542E6F4B36B329960E /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Pods.release.xcconfig; sourceTree = ""; }; - DA69C4842198E41E23867E01B0161612 /* CircleProgressIndicator.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; path = CircleProgressIndicator.xcassets; sourceTree = ""; }; - DD7E5A5969A01E3A504D0135C6F25CFF /* ChattoAdditions.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ChattoAdditions.xcconfig; sourceTree = ""; }; - E2E619ED0E2DD9480F11CCD3B0D06AFC /* CollectionChanges.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CollectionChanges.swift; sourceTree = ""; }; - E50EDA3F59861363F8D1562C64520389 /* PhotoMessageCollectionViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoMessageCollectionViewCell.swift; sourceTree = ""; }; - E5784D88764B0B37D2F1F0A0FA3190C3 /* SerialTaskQueue.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = SerialTaskQueue.swift; sourceTree = ""; }; - E7F21354943D9F42A70697D5A5EF72E9 /* Pods-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-frameworks.sh"; sourceTree = ""; }; - E8446514FBAD26C0E18F24A5715AEF67 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - EB0BAE425A4CCABBA1A695F76B8523BA /* DummyChatItemPresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DummyChatItemPresenter.swift; sourceTree = ""; }; - EE14101F8C4BA1B959F36608FBAA4982 /* ChatInputItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatInputItem.swift; sourceTree = ""; }; - F16CAF022D5603843128A2381A0B6887 /* ChatInputBar.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatInputBar.swift; sourceTree = ""; }; - F4549EAD309CDA9A0C8B82AC7F9381D1 /* HorizontalStackScrollView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = HorizontalStackScrollView.swift; sourceTree = ""; }; - F6269251CBD6458BEEDBEDA08B64C442 /* ViewDefinitions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ViewDefinitions.swift; sourceTree = ""; }; - F9295E06CBFBBA5200243C4EE50AFA67 /* BaseMessageCollectionViewCellDefaultSyle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseMessageCollectionViewCellDefaultSyle.swift; sourceTree = ""; }; - FAFB8B0EEDF14A1BF0CD593AB0450BE7 /* ChatDataSourceProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatDataSourceProtocol.swift; sourceTree = ""; }; - FB5030FB81D772482E145FF745310021 /* ChattoAdditions-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "ChattoAdditions-dummy.m"; sourceTree = ""; }; - FC4E873D2874D2207B97F63437C9827E /* ChattoAdditions.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = ChattoAdditions.modulemap; sourceTree = ""; }; - FFE38DED26B0571BEE5E712475ABADF6 /* BMACircleIconView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = BMACircleIconView.h; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - AA0A3028C0C3EF43EDE100AABBFB1926 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 57E14A69838A3BCE22B1F01B597A74CD /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - B502FC1C06782AB119E7B550426A5182 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 009190E3F05F45D8D6C88DEA3CA2C170 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E625D698677F51C1049B239AD65C4F60 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 8471D19BA239ED6CACAAB5B4FBA78029 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 02E98763D4A6CFA615BD940D2419A125 /* Source */ = { - isa = PBXGroup; - children = ( - C1E67DA90AD21E5BD1C2A650617D2A2A /* Chatto.h */, - E5784D88764B0B37D2F1F0A0FA3190C3 /* SerialTaskQueue.swift */, - FB596DB3E0A07D813D0A8B3190CC87DF /* Chat Items */, - A3F89FD76835798018E5DE45573D5F3F /* ChatController */, - ); - path = Source; - sourceTree = ""; - }; - 05D31F297955F0F0DD4FEC528EE49A5F /* UI Components */ = { - isa = PBXGroup; - children = ( - 2359A998D9C76796BE410695F6524156 /* CircleProgressIndicatorView */, - ); - path = "UI Components"; - sourceTree = ""; - }; - 0830C6876687803EBD18173FA46E6A63 /* Support Files */ = { - isa = PBXGroup; - children = ( - 664656BDB7A47AC9ECBA2D58EB550D51 /* Chatto.modulemap */, - A65DE185A12E70BE17EFA373F195C9E6 /* Chatto.xcconfig */, - 41A9B2AAC21030F2945A94BC7CBD1423 /* Chatto-dummy.m */, - AF3827E052F4369A86F32B555BFE2E80 /* Chatto-prefix.pch */, - 42D8BFA51D1A4D7997DDA3DAEEC7BB3A /* Chatto-umbrella.h */, - C117BD8C68DD05EFED4E96C19B341962 /* Info.plist */, - ); - name = "Support Files"; - path = "ChattoApp/Pods/Target Support Files/Chatto"; - sourceTree = ""; - }; - 0E7726F07BAD9AC95C0FB541855E2AE4 /* Resources */ = { - isa = PBXGroup; - children = ( - 6E5712D008F1D3582EB2F57000DC0F18 /* ChattoAdditions */, - ); - name = Resources; - sourceTree = ""; - }; - 1C8DD2806DDEC6C4DE1DE2F13C5295BA /* Text */ = { - isa = PBXGroup; - children = ( - 0CE0C32F2E53D253FBD890532AA9201C /* TextChatInputItem.swift */, - ); - path = Text; - sourceTree = ""; - }; - 2359A998D9C76796BE410695F6524156 /* CircleProgressIndicatorView */ = { - isa = PBXGroup; - children = ( - DA69C4842198E41E23867E01B0161612 /* CircleProgressIndicator.xcassets */, - ); - path = CircleProgressIndicatorView; - sourceTree = ""; - }; - 23CC058C87AD2CF0D378D217EE78620F /* PhotoMessages */ = { - isa = PBXGroup; - children = ( - A3643B3F3761685639739C82F2307E77 /* Views */, - ); - path = PhotoMessages; - sourceTree = ""; - }; - 35784B943EDF77E81962AF955E2122E1 /* Views */ = { - isa = PBXGroup; - children = ( - A090C4E7541E04C60FEC74B26A1983D8 /* PhotoBubbleView.swift */, - E50EDA3F59861363F8D1562C64520389 /* PhotoMessageCollectionViewCell.swift */, - BBC78D5C31DE842F5996D6DFE95CBE39 /* PhotoMessageCollectionViewCellDefaultStyle.swift */, - ); - path = Views; - sourceTree = ""; - }; - 3882A61CF128C4409DEE2E421E4EA59D /* Chatto */ = { - isa = PBXGroup; - children = ( - 6A94AF8F3D77223D1DE72DC3C971502B /* Chatto */, - 0830C6876687803EBD18173FA46E6A63 /* Support Files */, - ); - name = Chatto; - path = ../..; - sourceTree = ""; - }; - 4132B6A0B82C9AD10C98563576173FA9 /* BaseMessage */ = { - isa = PBXGroup; - children = ( - 73D0E435C33C19717B04811C0F73600E /* BaseMessageModel.swift */, - 2A560B5BC0929E09496CB42FC6FF4B42 /* BaseMessagePresenter.swift */, - CCECC6BEBDCA29F005882EBE7E4A6CFA /* BaseMessageViewModel.swift */, - FFA8F01724F587E5E59A7FF51CB8DE82 /* Views */, - ); - path = BaseMessage; - sourceTree = ""; - }; - 43B2D39ACB83720FAE1D14EC5F213849 /* Views */ = { - isa = PBXGroup; - children = ( - B6570F04FDD5CC8C2BC932E82306D690 /* TextBubbleView.swift */, - 0115F92456789DC5293B80ADE95E0C9F /* TextMessageCollectionViewCell.swift */, - 00C42DE4E7BA84C9B0F5D1A68BE58C87 /* TextMessageCollectionViewCellDefaultStyle.swift */, - ); - path = Views; - sourceTree = ""; - }; - 506DC1B37003C9C4393D540E196DEF41 /* ChattoAdditions */ = { - isa = PBXGroup; - children = ( - 7F5203F70424BF8FE0A443C488977D78 /* ChattoAdditions */, - 0E7726F07BAD9AC95C0FB541855E2AE4 /* Resources */, - 5C4A68DF3D211320E5061770B0C3B112 /* Support Files */, - ); - name = ChattoAdditions; - path = ../..; - sourceTree = ""; - }; - 5C4A68DF3D211320E5061770B0C3B112 /* Support Files */ = { - isa = PBXGroup; - children = ( - FC4E873D2874D2207B97F63437C9827E /* ChattoAdditions.modulemap */, - DD7E5A5969A01E3A504D0135C6F25CFF /* ChattoAdditions.xcconfig */, - FB5030FB81D772482E145FF745310021 /* ChattoAdditions-dummy.m */, - A210C8B9CA993A2C831727CE2515A3DE /* ChattoAdditions-prefix.pch */, - 5A4BF7E99DD1960EA3ACDCE6F29D58BB /* ChattoAdditions-umbrella.h */, - AF5BD772CABAA008A4802F6B3A73307E /* Info.plist */, - ); - name = "Support Files"; - path = "ChattoApp/Pods/Target Support Files/ChattoAdditions"; - sourceTree = ""; - }; - 6A94AF8F3D77223D1DE72DC3C971502B /* Chatto */ = { - isa = PBXGroup; - children = ( - 02E98763D4A6CFA615BD940D2419A125 /* Source */, - ); - path = Chatto; - sourceTree = ""; - }; - 6C5B434C2A4737145DBA9318EF0B164D /* Input */ = { - isa = PBXGroup; - children = ( - 64098046251F40CFE18AABFF28F8AF30 /* ChatInputBar.xib */, - C322C204C7D59AB4720A2CAD6C38078B /* Photos */, - 8E746D60240566BFD95B5FDB0589F010 /* Text */, - ); - path = Input; - sourceTree = ""; - }; - 6E5712D008F1D3582EB2F57000DC0F18 /* ChattoAdditions */ = { - isa = PBXGroup; - children = ( - BDCB2EC04F318F528132F68C371EE9CD /* Source */, - ); - path = ChattoAdditions; - sourceTree = ""; - }; - 7468334D2E29C3979DE993CD32ACC1CC /* Input */ = { - isa = PBXGroup; - children = ( - F16CAF022D5603843128A2381A0B6887 /* ChatInputBar.swift */, - 23398C34333A5A585408BF38AE0C2065 /* ChatInputBarAppearance.swift */, - 4AC819B1D861D4DAB565E0F55A285701 /* ChatInputBarPresenter.swift */, - EE14101F8C4BA1B959F36608FBAA4982 /* ChatInputItem.swift */, - 681E03D75C85DD9F68B05EFA215C12DA /* ChatInputItemView.swift */, - D24BCF073CE16056F253257894CF66DD /* ExpandableTextView.swift */, - F4549EAD309CDA9A0C8B82AC7F9381D1 /* HorizontalStackScrollView.swift */, - 5EB60CC19EC06054D693A3635FC065C8 /* ReusableXibView.swift */, - 99CF1DE7C434899AC0FF56172A90C7B7 /* Photos */, - 1C8DD2806DDEC6C4DE1DE2F13C5295BA /* Text */, - ); - path = Input; - sourceTree = ""; - }; - 75D98FF52E597A11900E131B6C4E1ADA /* Pods */ = { - isa = PBXGroup; - children = ( - E8446514FBAD26C0E18F24A5715AEF67 /* Info.plist */, - 79A9DEDC89FE8336BF5FEDAAF75BF7FC /* Pods.modulemap */, - D0405803033A2A777B8E4DFA0C1800ED /* Pods-acknowledgements.markdown */, - 87B213035BAC5F75386F62D3C75D2342 /* Pods-acknowledgements.plist */, - 894E5DA93A9F359521A89826BE6DA777 /* Pods-dummy.m */, - E7F21354943D9F42A70697D5A5EF72E9 /* Pods-frameworks.sh */, - CBC0F7C552B739C909B650A0F42F7F38 /* Pods-resources.sh */, - 2BCC458FDD5F692BBB2BFC64BB5701FC /* Pods-umbrella.h */, - 977577C045EDA9D9D1F46E2598D19FC7 /* Pods.debug.xcconfig */, - DA312349A49333542E6F4B36B329960E /* Pods.release.xcconfig */, - ); - name = Pods; - path = "Target Support Files/Pods"; - sourceTree = ""; - }; - 7B25C629ADCBF309A6CC76BE734D5A5B /* Source */ = { - isa = PBXGroup; - children = ( - 31E6E29A9A89094B4B607C4C341D18FF /* AnimationUtils.swift */, - 4927E8B748B6DCD67DA10E42879EEC22 /* ChattoAdditions.h */, - 97EC8D64F772F020E4A9E737D4A050C3 /* KeyedOperationQueue.swift */, - A62E24EAB3E41E6298553D72F1AACB0B /* Observable.swift */, - 8544C25F17FD6BA40AE7191260F8B89D /* Utils.swift */, - F6E06C5F7EB5590920E4A39BD92857FD /* Chat Items */, - 7468334D2E29C3979DE993CD32ACC1CC /* Input */, - AFB70FD5FE6FEDFA0F3361C99F63A627 /* UI Components */, - ); - path = Source; - sourceTree = ""; - }; - 7DB346D0F39D3F0E887471402A8071AB = { - isa = PBXGroup; - children = ( - BA6428E9F66FD5A23C0A2E06ED26CD2F /* Podfile */, - DF648B3CF24B9FDB22C46C8F894C25FE /* Development Pods */, - BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */, - C1BDB953EFC03352CF11E24248A50AA7 /* Products */, - B7B80995527643776607AFFA75B91E24 /* Targets Support Files */, - ); - sourceTree = ""; - }; - 7F5203F70424BF8FE0A443C488977D78 /* ChattoAdditions */ = { - isa = PBXGroup; - children = ( - 7B25C629ADCBF309A6CC76BE734D5A5B /* Source */, - ); - path = ChattoAdditions; - sourceTree = ""; - }; - 8E746D60240566BFD95B5FDB0589F010 /* Text */ = { - isa = PBXGroup; - children = ( - 2A0D073A6C8292215CF9C18BDE409BE1 /* Text.xcassets */, - ); - path = Text; - sourceTree = ""; - }; - 9486F27E9C712C62F6856EC5E1DFD468 /* BaseMessage */ = { - isa = PBXGroup; - children = ( - 9950012E86344A91EE5E3EF4834DEBC1 /* Views */, - ); - path = BaseMessage; - sourceTree = ""; - }; - 9950012E86344A91EE5E3EF4834DEBC1 /* Views */ = { - isa = PBXGroup; - children = ( - 667C1CA3478EA3D81ADADD11F7EFB62C /* BaseMessageAssets.xcassets */, - ); - path = Views; - sourceTree = ""; - }; - 99CF1DE7C434899AC0FF56172A90C7B7 /* Photos */ = { - isa = PBXGroup; - children = ( - 3333BED070BA5CD346B481AB6022E549 /* LiveCameraCell.swift */, - 3D102E537B24FD32C4408CDC03234189 /* PhotosChatInputItem.swift */, - 637A06D57DDDE2353B5A90D3F0897A6C /* PhotosInputCameraPicker.swift */, - D5E415AF9FF70A25E565DD75E7A5B741 /* PhotosInputCell.swift */, - 4306E5B302B20801B08011A90E0FF1F8 /* PhotosInputCellProvider.swift */, - 9BE76FB30802E2048AEF7A804E8FA056 /* PhotosInputDataProvider.swift */, - B04C38B6EBC9EC62019D9CF55AA0238E /* PhotosInputView.swift */, - 2FC91F230E6B87767585794C423F4732 /* PhotosInputViewItemSizeCalculator.swift */, - ); - path = Photos; - sourceTree = ""; - }; - 9D65F6F8D154102D72975E41D8A9A87A /* CircleProgressIndicatorView */ = { - isa = PBXGroup; - children = ( - FFE38DED26B0571BEE5E712475ABADF6 /* BMACircleIconView.h */, - B2055A377052896E80DCFBE0BD246F0C /* BMACircleIconView.m */, - 705BC399BD4B077E37975D15C89248C5 /* BMACircleProgressIndicatorView.h */, - 90DA51B10129517CD3241737D8212E87 /* BMACircleProgressIndicatorView.m */, - 7D523AF402F1173DD57457A0E56922E6 /* BMACircleProgressView.h */, - 4BEFA2B639E0EAEFD4F8BAE75750419C /* BMACircleProgressView.m */, - ); - path = CircleProgressIndicatorView; - sourceTree = ""; - }; - A3643B3F3761685639739C82F2307E77 /* Views */ = { - isa = PBXGroup; - children = ( - 7BFD9A3C31260386847F9B7920E6FC80 /* PhotoMessageAssets.xcassets */, - ); - path = Views; - sourceTree = ""; - }; - A3F89FD76835798018E5DE45573D5F3F /* ChatController */ = { - isa = PBXGroup; - children = ( - 7B5087CD6F6BFB113692DA332EB62100 /* AccessoryViewRevealer.swift */, - 4BA2F03625F2F7189A89830233BA1528 /* ChatCollectionViewLayout.swift */, - FAFB8B0EEDF14A1BF0CD593AB0450BE7 /* ChatDataSourceProtocol.swift */, - 31C61B7E2DB25FF1ADB483FEED157D81 /* ChatViewController.swift */, - 70FE4F431B11E0A2ECFBA12B1B7D34F9 /* ChatViewController+Changes.swift */, - 2E5BAE193ABA7143A3C14A2E27DB8085 /* ChatViewController+Presenters.swift */, - B9DC97BE236B7B291614A7F105F62815 /* ChatViewController+Scrolling.swift */, - E2E619ED0E2DD9480F11CCD3B0D06AFC /* CollectionChanges.swift */, - 5B62EFE5AEB88F47C417D132452C5724 /* KeyboardTracker.swift */, - ); - path = ChatController; - sourceTree = ""; - }; - A518D2A6B2CC93AD5FC6EF88205E08E8 /* Chat Items */ = { - isa = PBXGroup; - children = ( - 9486F27E9C712C62F6856EC5E1DFD468 /* BaseMessage */, - 23CC058C87AD2CF0D378D217EE78620F /* PhotoMessages */, - ); - path = "Chat Items"; - sourceTree = ""; - }; - AFB70FD5FE6FEDFA0F3361C99F63A627 /* UI Components */ = { - isa = PBXGroup; - children = ( - 9D65F6F8D154102D72975E41D8A9A87A /* CircleProgressIndicatorView */, - ); - path = "UI Components"; - sourceTree = ""; - }; - B7B80995527643776607AFFA75B91E24 /* Targets Support Files */ = { - isa = PBXGroup; - children = ( - 75D98FF52E597A11900E131B6C4E1ADA /* Pods */, - ); - name = "Targets Support Files"; - sourceTree = ""; - }; - BC3CA7F9E30CC8F7E2DD044DD34432FC /* Frameworks */ = { - isa = PBXGroup; - children = ( - BF6342C8B29F4CEEA088EFF7AB4DE362 /* iOS */, - ); - name = Frameworks; - sourceTree = ""; - }; - BDCB2EC04F318F528132F68C371EE9CD /* Source */ = { - isa = PBXGroup; - children = ( - A518D2A6B2CC93AD5FC6EF88205E08E8 /* Chat Items */, - 6C5B434C2A4737145DBA9318EF0B164D /* Input */, - 05D31F297955F0F0DD4FEC528EE49A5F /* UI Components */, - ); - path = Source; - sourceTree = ""; - }; - BF6342C8B29F4CEEA088EFF7AB4DE362 /* iOS */ = { - isa = PBXGroup; - children = ( - 3E4E89230EF59BC255123B67864ACF77 /* Foundation.framework */, - ); - name = iOS; - sourceTree = ""; - }; - C1BDB953EFC03352CF11E24248A50AA7 /* Products */ = { - isa = PBXGroup; - children = ( - 58294E0D6B459AFD04DEA87154A8368F /* Chatto.framework */, - CE7CD41DBBB972864685F06362CCC494 /* ChattoAdditions.framework */, - 7DF19D1C33F02CDBE97223A0F2535E5C /* Pods.framework */, - ); - name = Products; - sourceTree = ""; - }; - C322C204C7D59AB4720A2CAD6C38078B /* Photos */ = { - isa = PBXGroup; - children = ( - D2B2293D7D418420AB03F0584A71EB69 /* Photos.xcassets */, - ); - path = Photos; - sourceTree = ""; - }; - CC27B0AA8783E403851467DA308D736D /* TextMessages */ = { - isa = PBXGroup; - children = ( - D92F80EFA905D1D2B49E78A544CA770E /* TextMessageModel.swift */, - 5902D05B5BB1C50C7F4680DD211F6AA5 /* TextMessagePresenter.swift */, - CEA37B6B7D260CE35E463E68DE47C0F0 /* TextMessagePresenterBuilder.swift */, - 7019E99B21789BA603247FD118DFB1AF /* TextMessageViewModel.swift */, - 43B2D39ACB83720FAE1D14EC5F213849 /* Views */, - ); - path = TextMessages; - sourceTree = ""; - }; - DF648B3CF24B9FDB22C46C8F894C25FE /* Development Pods */ = { - isa = PBXGroup; - children = ( - 3882A61CF128C4409DEE2E421E4EA59D /* Chatto */, - 506DC1B37003C9C4393D540E196DEF41 /* ChattoAdditions */, - ); - name = "Development Pods"; - sourceTree = ""; - }; - EEAABA8E8443311507CD9BB41E35B286 /* PhotoMessages */ = { - isa = PBXGroup; - children = ( - D38FF70C7961730494358A781BBD4266 /* PhotoMessageModel.swift */, - C0EBAA11EA89A45AAD5EEC0671CB697E /* PhotoMessagePresenter.swift */, - CC2C226C413CE617F8BF06BE47C11C73 /* PhotoMessagePresenterBuilder.swift */, - 9B766F68048B2995D20C6DF8D77A6429 /* PhotoMessageViewModel.swift */, - 35784B943EDF77E81962AF955E2122E1 /* Views */, - ); - path = PhotoMessages; - sourceTree = ""; - }; - F6E06C5F7EB5590920E4A39BD92857FD /* Chat Items */ = { - isa = PBXGroup; - children = ( - 8A3C388748081057087ABCD9B0DDC950 /* ChatItemDecorationAttributes.swift */, - 4132B6A0B82C9AD10C98563576173FA9 /* BaseMessage */, - EEAABA8E8443311507CD9BB41E35B286 /* PhotoMessages */, - CC27B0AA8783E403851467DA308D736D /* TextMessages */, - ); - path = "Chat Items"; - sourceTree = ""; - }; - FB596DB3E0A07D813D0A8B3190CC87DF /* Chat Items */ = { - isa = PBXGroup; - children = ( - 6559DEDD0FDE1E6B645A304DAA4E372A /* BaseChatItemPresenter.swift */, - 8DFADD757D9E0D8289EB018E3D00686F /* ChatItemProtocolDefinitions.swift */, - EB0BAE425A4CCABBA1A695F76B8523BA /* DummyChatItemPresenter.swift */, - ); - path = "Chat Items"; - sourceTree = ""; - }; - FFA8F01724F587E5E59A7FF51CB8DE82 /* Views */ = { - isa = PBXGroup; - children = ( - D1B9575301EAF330DF2C9F01CFC35126 /* BaseMessageCollectionViewCell.swift */, - F9295E06CBFBBA5200243C4EE50AFA67 /* BaseMessageCollectionViewCellDefaultSyle.swift */, - F6269251CBD6458BEEDBEDA08B64C442 /* ViewDefinitions.swift */, - ); - path = Views; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 0D4563F2E2197EAA6A27C1DDAB837884 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - D2D9B5C18D7A84F7945B137EFF0C037A /* Chatto-umbrella.h in Headers */, - E4C32DC33587BD2B3561B95808F01DD9 /* Chatto.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 70D77E6C8B815EBD66FF9CE04922FDF1 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - B5DC5D3B818ED2A4F5D15261EB896837 /* Pods-umbrella.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - E7F136943D89366C302CAF637EC4D2E7 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - C263C02056CA9239835BD74021CAB9E6 /* BMACircleIconView.h in Headers */, - 6F395C963A19315CA78620454739D76D /* BMACircleProgressIndicatorView.h in Headers */, - 0325565FCB74211571561E24990FB20B /* BMACircleProgressView.h in Headers */, - C6D5EB63747F98C3C77DA1EDC92313EF /* ChattoAdditions-umbrella.h in Headers */, - 8DC795C7E817F36FA3E134C0898665C3 /* ChattoAdditions.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 7AF7E2DF8892E014AE5FCDF57A214D19 /* Chatto */ = { - isa = PBXNativeTarget; - buildConfigurationList = 998B194A41236B68BCB6666A8FBBAB4B /* Build configuration list for PBXNativeTarget "Chatto" */; - buildPhases = ( - A558D4E304973D767B60720832587522 /* Sources */, - B502FC1C06782AB119E7B550426A5182 /* Frameworks */, - 0D4563F2E2197EAA6A27C1DDAB837884 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = Chatto; - productName = Chatto; - productReference = 58294E0D6B459AFD04DEA87154A8368F /* Chatto.framework */; - productType = "com.apple.product-type.framework"; - }; - 9210D689EDE02CF0CCA185C18130DC9B /* ChattoAdditions */ = { - isa = PBXNativeTarget; - buildConfigurationList = AC02B9349BA36F17C5D8C8042F96ABE2 /* Build configuration list for PBXNativeTarget "ChattoAdditions" */; - buildPhases = ( - F0233275B4301DE9445F335CAF226D56 /* Sources */, - AA0A3028C0C3EF43EDE100AABBFB1926 /* Frameworks */, - E7F136943D89366C302CAF637EC4D2E7 /* Headers */, - 973CFAD9FBE1509E36DD692CAB27B7C5 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = ChattoAdditions; - productName = ChattoAdditions; - productReference = CE7CD41DBBB972864685F06362CCC494 /* ChattoAdditions.framework */; - productType = "com.apple.product-type.framework"; - }; - AF6C60699C45E376AB593B5FA984954E /* Pods */ = { - isa = PBXNativeTarget; - buildConfigurationList = 3F635F51C46E8B20880BB7EF933DD874 /* Build configuration list for PBXNativeTarget "Pods" */; - buildPhases = ( - 659E3A6A1BC77CD2033B4E15551A6EB0 /* Sources */, - E625D698677F51C1049B239AD65C4F60 /* Frameworks */, - 70D77E6C8B815EBD66FF9CE04922FDF1 /* Headers */, - ); - buildRules = ( - ); - dependencies = ( - 698E976767454CEA971282CD4122B5D2 /* PBXTargetDependency */, - E37197B156C72EB287049632D6C5DA8A /* PBXTargetDependency */, - ); - name = Pods; - productName = Pods; - productReference = 7DF19D1C33F02CDBE97223A0F2535E5C /* Pods.framework */; - productType = "com.apple.product-type.framework"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - D41D8CD98F00B204E9800998ECF8427E /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 0700; - LastUpgradeCheck = 0700; - }; - buildConfigurationList = 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = 7DB346D0F39D3F0E887471402A8071AB; - productRefGroup = C1BDB953EFC03352CF11E24248A50AA7 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 7AF7E2DF8892E014AE5FCDF57A214D19 /* Chatto */, - 9210D689EDE02CF0CCA185C18130DC9B /* ChattoAdditions */, - AF6C60699C45E376AB593B5FA984954E /* Pods */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 973CFAD9FBE1509E36DD692CAB27B7C5 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 32DAF43AFC51B342D0FE6BD1F581EDD4 /* BaseMessageAssets.xcassets in Resources */, - F2F9769B419FBB68234DF719455BD3F5 /* ChatInputBar.xib in Resources */, - C683422158F5968A8A29B58E2FDD5B4D /* CircleProgressIndicator.xcassets in Resources */, - 28DCD4A088B398ABCC8C207C2A5F2BD5 /* PhotoMessageAssets.xcassets in Resources */, - C91B43D8D4E76E6C100BED750A1DFCC2 /* Photos.xcassets in Resources */, - 08E01B83171FC50F2FEB6BA3F64804DE /* Text.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 659E3A6A1BC77CD2033B4E15551A6EB0 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 68D0351426E0494FC782C18126BB7BDD /* Pods-dummy.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - A558D4E304973D767B60720832587522 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 5DFA99DCCBE023FF77ED832CA854A833 /* AccessoryViewRevealer.swift in Sources */, - 94FFDFAB71DB3D729AC5E3ECAB8844D7 /* BaseChatItemPresenter.swift in Sources */, - 61C421AA18A0C32D0531414F0B55F202 /* ChatCollectionViewLayout.swift in Sources */, - 8C0965CFDAF20A1CD776B46B5748331E /* ChatDataSourceProtocol.swift in Sources */, - 7403DF9C589D875EE74DC47F57E0E82E /* ChatItemProtocolDefinitions.swift in Sources */, - ED0283B0B9FE358BC4153E6BAB8BE20D /* Chatto-dummy.m in Sources */, - 2C5275E45E5AE03D924F591858AA0177 /* ChatViewController+Changes.swift in Sources */, - 2C5BDA00C3CEDCF442A1A517E53194C5 /* ChatViewController+Presenters.swift in Sources */, - 47794E72BFB7C2F6CC29ED9EFBD0DAA6 /* ChatViewController+Scrolling.swift in Sources */, - 558E0CB64A448006A7E88711769D761D /* ChatViewController.swift in Sources */, - 94C8F0A64F20C587F2446EB58B23826A /* CollectionChanges.swift in Sources */, - ECA9A9F5D34C77359C6952AD6FC90A18 /* DummyChatItemPresenter.swift in Sources */, - 4D49CD0E497DB8BF0FDA4EAB65BF1C8A /* KeyboardTracker.swift in Sources */, - DE48608D5088FE0236779F84761E2BB8 /* SerialTaskQueue.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - F0233275B4301DE9445F335CAF226D56 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - FEC08045769E34751B886D59AF870259 /* AnimationUtils.swift in Sources */, - 639456EBC008A775805ADD0964560889 /* BaseMessageCollectionViewCell.swift in Sources */, - 29F83E8FF41A83054541861A968055BE /* BaseMessageCollectionViewCellDefaultSyle.swift in Sources */, - 10E519D0240AC705F4F20D7CF2B688B0 /* BaseMessageModel.swift in Sources */, - 75A7C247CC380FEDAE0AC8E13A902A81 /* BaseMessagePresenter.swift in Sources */, - 44C556A45E71209AB9AE692F76AA98A7 /* BaseMessageViewModel.swift in Sources */, - 45F266FBE931F2E977A7411BF82D6262 /* BMACircleIconView.m in Sources */, - 37A9B2E6EA90CAA4D2028AE2FF50364D /* BMACircleProgressIndicatorView.m in Sources */, - CD86F8472C608530EDA2A8062FCFF602 /* BMACircleProgressView.m in Sources */, - D8ADF68A721AF157D657BCDE1EB0EF97 /* ChatInputBar.swift in Sources */, - 3FD84E7F6E8FD080806385BFEAE8E9FB /* ChatInputBarAppearance.swift in Sources */, - 884522B49E2BAD4E3E2F2A4B94D3806C /* ChatInputBarPresenter.swift in Sources */, - D730F78B60375FDC9C61182D11A29C2D /* ChatInputItem.swift in Sources */, - 977604CBF52F03DD8E2545AF18A13DA1 /* ChatInputItemView.swift in Sources */, - CE3DD65F68B73E1360C064CBCD78B995 /* ChatItemDecorationAttributes.swift in Sources */, - 55DE4AF8460D469495654AF4AA249E00 /* ChattoAdditions-dummy.m in Sources */, - 0A8585B0216AD8F0EE3E4E8249F6E583 /* ExpandableTextView.swift in Sources */, - 0B7419E6F6B5DDE92FCA9E39591D1302 /* HorizontalStackScrollView.swift in Sources */, - 002B5A26F366E6023987B367C87BB489 /* KeyedOperationQueue.swift in Sources */, - 3A5BB927F0A0F42D00291C19830064E3 /* LiveCameraCell.swift in Sources */, - 126C1428338753E21E4A3995D9CE22BB /* Observable.swift in Sources */, - 03C9B7AD6D1B9E070A1C0873049AD8C4 /* PhotoBubbleView.swift in Sources */, - 7E87E3B6EE110EB522B10B826F6C7B5A /* PhotoMessageCollectionViewCell.swift in Sources */, - B12B4E17FDDED7344E1515820D265A55 /* PhotoMessageCollectionViewCellDefaultStyle.swift in Sources */, - A0BFAF574FF83E9BC1C35FAB0951F054 /* PhotoMessageModel.swift in Sources */, - F9D8DEFADE4E9CFAE555231D4B47D692 /* PhotoMessagePresenter.swift in Sources */, - C72F8298DD9F4584FBCA7522D477F0FA /* PhotoMessagePresenterBuilder.swift in Sources */, - 0B708F3EE9E20A49271E9568166F9816 /* PhotoMessageViewModel.swift in Sources */, - DFC0EF316B5D2A73B069CEE5F109D8F0 /* PhotosChatInputItem.swift in Sources */, - 33DF2A02C3E616E5A383F41CF84D6623 /* PhotosInputCameraPicker.swift in Sources */, - DA17F011A9E7A91E1C536A7AF4277A7D /* PhotosInputCell.swift in Sources */, - D8E2ACC7B73521A6A273104C6448CC0D /* PhotosInputCellProvider.swift in Sources */, - 363177D4F27487B0A55B64A32DD28A9D /* PhotosInputDataProvider.swift in Sources */, - F046DB45E23C2EC3AEB503BA9ED9D7FE /* PhotosInputView.swift in Sources */, - 10E87AD8A7A60CF5C63B1CA393582B9C /* PhotosInputViewItemSizeCalculator.swift in Sources */, - 241C748798DAF0D5E04B7732182B6F49 /* ReusableXibView.swift in Sources */, - 096336EFFA54ECBFE77D0D54E0BC6605 /* TextBubbleView.swift in Sources */, - A4030DB5C6302772A563302E77F87A35 /* TextChatInputItem.swift in Sources */, - 26D16A3CE67615A896870C532E6B3077 /* TextMessageCollectionViewCell.swift in Sources */, - FF04074C5FE7407BE8AD21A5E66FE372 /* TextMessageCollectionViewCellDefaultStyle.swift in Sources */, - ED32334D81D400DF44DA6241F9031735 /* TextMessageModel.swift in Sources */, - 43B30806B751F6B6D29513916D9802BE /* TextMessagePresenter.swift in Sources */, - 5CF4B0009F5EE5240A128150BEBBF1CD /* TextMessagePresenterBuilder.swift in Sources */, - 5DBF6832752F0ECF3CD8E14CCDDC851B /* TextMessageViewModel.swift in Sources */, - 2E9C36219046B88FD21376EEA87166BB /* Utils.swift in Sources */, - 82FA25352D04CBA297D40C0A009A0B98 /* ViewDefinitions.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 698E976767454CEA971282CD4122B5D2 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = Chatto; - target = 7AF7E2DF8892E014AE5FCDF57A214D19 /* Chatto */; - targetProxy = 3A4012010BE69B97E46A5FB84F2302AC /* PBXContainerItemProxy */; - }; - E37197B156C72EB287049632D6C5DA8A /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = ChattoAdditions; - target = 9210D689EDE02CF0CCA185C18130DC9B /* ChattoAdditions */; - targetProxy = 75FE19E41E61A16534ECC3755AD1FB04 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin XCBuildConfiguration section */ - 0D98BB57B382420C6D082403D6F19496 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = A65DE185A12E70BE17EFA373F195C9E6 /* Chatto.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Chatto/Chatto-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/Chatto/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/Chatto/Chatto.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = Chatto; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 1C3FFA4958DD0EB59C26EFD65CB5186C /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = A65DE185A12E70BE17EFA373F195C9E6 /* Chatto.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/Chatto/Chatto-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/Chatto/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/Chatto/Chatto.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_NAME = Chatto; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 3DB4B008BE2BB362AB0F3C8E15FD02A1 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = DD7E5A5969A01E3A504D0135C6F25CFF /* ChattoAdditions.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/ChattoAdditions/ChattoAdditions-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/ChattoAdditions/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/ChattoAdditions/ChattoAdditions.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_NAME = ChattoAdditions; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 6CB6E4468702F035931CFCBDAE97D095 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = DD7E5A5969A01E3A504D0135C6F25CFF /* ChattoAdditions.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_PREFIX_HEADER = "Target Support Files/ChattoAdditions/ChattoAdditions-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/ChattoAdditions/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/ChattoAdditions/ChattoAdditions.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_NAME = ChattoAdditions; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - A70CDAD61F90AC503C7D04CC22DA2923 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - ONLY_ACTIVE_ARCH = YES; - STRIP_INSTALLED_PRODUCT = NO; - SYMROOT = "${SRCROOT}/../build"; - }; - name = Debug; - }; - D1CBF7ED1C4CCB0A2600FEC5035FA59B /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = DA312349A49333542E6F4B36B329960E /* Pods.release.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - INFOPLIST_FILE = "Target Support Files/Pods/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods/Pods.modulemap"; - MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_NAME = Pods; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - DCE277310A043383EC97FC45344064D9 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 977577C045EDA9D9D1F46E2598D19FC7 /* Pods.debug.xcconfig */; - buildSettings = { - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - INFOPLIST_FILE = "Target Support Files/Pods/Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods/Pods.modulemap"; - MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_NAME = Pods; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - FB45FFD90572718D82AB9092B750F0CA /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = YES; - ENABLE_NS_ASSERTIONS = NO; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_PREPROCESSOR_DEFINITIONS = "RELEASE=1"; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - STRIP_INSTALLED_PRODUCT = NO; - SYMROOT = "${SRCROOT}/../build"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 2D8E8EC45A3A1A1D94AE762CB5028504 /* Build configuration list for PBXProject "Pods" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - A70CDAD61F90AC503C7D04CC22DA2923 /* Debug */, - FB45FFD90572718D82AB9092B750F0CA /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 3F635F51C46E8B20880BB7EF933DD874 /* Build configuration list for PBXNativeTarget "Pods" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - DCE277310A043383EC97FC45344064D9 /* Debug */, - D1CBF7ED1C4CCB0A2600FEC5035FA59B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 998B194A41236B68BCB6666A8FBBAB4B /* Build configuration list for PBXNativeTarget "Chatto" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 1C3FFA4958DD0EB59C26EFD65CB5186C /* Debug */, - 0D98BB57B382420C6D082403D6F19496 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - AC02B9349BA36F17C5D8C8042F96ABE2 /* Build configuration list for PBXNativeTarget "ChattoAdditions" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 6CB6E4468702F035931CFCBDAE97D095 /* Debug */, - 3DB4B008BE2BB362AB0F3C8E15FD02A1 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = D41D8CD98F00B204E9800998ECF8427E /* Project object */; -} + + + + + archiveVersion + 1 + classes + + objectVersion + 46 + objects + + 009190E3F05F45D8D6C88DEA3CA2C170 + + fileRef + 9CE13526223A899F54C1E16E05F8946F + isa + PBXBuildFile + + 00C42DE4E7BA84C9B0F5D1A68BE58C87 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + TextMessageCollectionViewCellDefaultStyle.swift + sourceTree + <group> + + 0115F92456789DC5293B80ADE95E0C9F + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + TextMessageCollectionViewCell.swift + sourceTree + <group> + + 02E98763D4A6CFA615BD940D2419A125 + + children + + C1E67DA90AD21E5BD1C2A650617D2A2A + E5784D88764B0B37D2F1F0A0FA3190C3 + FB596DB3E0A07D813D0A8B3190CC87DF + A3F89FD76835798018E5DE45573D5F3F + + isa + PBXGroup + name + Source + path + Source + sourceTree + <group> + + 05D31F297955F0F0DD4FEC528EE49A5F + + children + + 2359A998D9C76796BE410695F6524156 + + isa + PBXGroup + name + UI Components + path + UI Components + sourceTree + <group> + + 0830C6876687803EBD18173FA46E6A63 + + children + + 664656BDB7A47AC9ECBA2D58EB550D51 + A65DE185A12E70BE17EFA373F195C9E6 + 41A9B2AAC21030F2945A94BC7CBD1423 + AF3827E052F4369A86F32B555BFE2E80 + 42D8BFA51D1A4D7997DDA3DAEEC7BB3A + C117BD8C68DD05EFED4E96C19B341962 + + isa + PBXGroup + name + Support Files + path + ChattoApp/Pods/Target Support Files/Chatto + sourceTree + <group> + + 0938863B64F4AE791D7EAFDEFAD09085 + + fileRef + CBA0556F9682A8263E184A5F4851B9AD + isa + PBXBuildFile + settings + + ATTRIBUTES + + Public + + + + 09BD679DB19419AE64123C48BDA1D4E8 + + fileRef + FB5030FB81D772482E145FF745310021 + isa + PBXBuildFile + + 0CE0C32F2E53D253FBD890532AA9201C + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + TextChatInputItem.swift + sourceTree + <group> + + 0D4563F2E2197EAA6A27C1DDAB837884 + + buildActionMask + 2147483647 + files + + D2D9B5C18D7A84F7945B137EFF0C037A + E4C32DC33587BD2B3561B95808F01DD9 + + isa + PBXHeadersBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + 0D98BB57B382420C6D082403D6F19496 + + baseConfigurationReference + A65DE185A12E70BE17EFA373F195C9E6 + buildSettings + + CODE_SIGN_IDENTITY[sdk=iphoneos*] + iPhone Developer + CURRENT_PROJECT_VERSION + 1 + DEFINES_MODULE + YES + DYLIB_COMPATIBILITY_VERSION + 1 + DYLIB_CURRENT_VERSION + 1 + DYLIB_INSTALL_NAME_BASE + @rpath + ENABLE_STRICT_OBJC_MSGSEND + YES + GCC_PREFIX_HEADER + Target Support Files/Chatto/Chatto-prefix.pch + INFOPLIST_FILE + Target Support Files/Chatto/Info.plist + INSTALL_PATH + $(LOCAL_LIBRARY_DIR)/Frameworks + IPHONEOS_DEPLOYMENT_TARGET + 8.0 + LD_RUNPATH_SEARCH_PATHS + + $(inherited) + @executable_path/Frameworks + @loader_path/Frameworks + + MODULEMAP_FILE + Target Support Files/Chatto/Chatto.modulemap + MTL_ENABLE_DEBUG_INFO + NO + PRODUCT_NAME + Chatto + SDKROOT + iphoneos + SKIP_INSTALL + YES + TARGETED_DEVICE_FAMILY + 1,2 + VERSIONING_SYSTEM + apple-generic + VERSION_INFO_PREFIX + + + isa + XCBuildConfiguration + name + Release + + 0E7726F07BAD9AC95C0FB541855E2AE4 + + children + + 6E5712D008F1D3582EB2F57000DC0F18 + + isa + PBXGroup + name + Resources + sourceTree + <group> + + 1281E83BEA9A48C95D01A3CFFB17E893 + + fileRef + 5A4BF7E99DD1960EA3ACDCE6F29D58BB + isa + PBXBuildFile + settings + + ATTRIBUTES + + Public + + + + 135C12037302D7FC90A29E5A12128734 + + fileRef + 637A06D57DDDE2353B5A90D3F0897A6C + isa + PBXBuildFile + + 1450F7E23B95E33D58368BB36C594CCF + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + path + CircleIconView.h + sourceTree + <group> + + 167D53F6123B5236B27506A95BA7851A + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + path + CircleProgressView.m + sourceTree + <group> + + 172A7832E1A396868678E4EB69EC12D5 + + fileRef + 4306E5B302B20801B08011A90E0FF1F8 + isa + PBXBuildFile + + 17C5314D4E48DD75B9B2D33978F8495A + + fileRef + 23398C34333A5A585408BF38AE0C2065 + isa + PBXBuildFile + + 1BEA3E8EE37844059E557750F6F3467D + + fileRef + 3333BED070BA5CD346B481AB6022E549 + isa + PBXBuildFile + + 1C3FFA4958DD0EB59C26EFD65CB5186C + + baseConfigurationReference + A65DE185A12E70BE17EFA373F195C9E6 + buildSettings + + CODE_SIGN_IDENTITY[sdk=iphoneos*] + iPhone Developer + CURRENT_PROJECT_VERSION + 1 + DEFINES_MODULE + YES + DYLIB_COMPATIBILITY_VERSION + 1 + DYLIB_CURRENT_VERSION + 1 + DYLIB_INSTALL_NAME_BASE + @rpath + ENABLE_STRICT_OBJC_MSGSEND + YES + GCC_PREFIX_HEADER + Target Support Files/Chatto/Chatto-prefix.pch + INFOPLIST_FILE + Target Support Files/Chatto/Info.plist + INSTALL_PATH + $(LOCAL_LIBRARY_DIR)/Frameworks + IPHONEOS_DEPLOYMENT_TARGET + 8.0 + LD_RUNPATH_SEARCH_PATHS + + $(inherited) + @executable_path/Frameworks + @loader_path/Frameworks + + MODULEMAP_FILE + Target Support Files/Chatto/Chatto.modulemap + MTL_ENABLE_DEBUG_INFO + YES + PRODUCT_NAME + Chatto + SDKROOT + iphoneos + SKIP_INSTALL + YES + SWIFT_OPTIMIZATION_LEVEL + -Onone + TARGETED_DEVICE_FAMILY + 1,2 + VERSIONING_SYSTEM + apple-generic + VERSION_INFO_PREFIX + + + isa + XCBuildConfiguration + name + Debug + + 1C8DD2806DDEC6C4DE1DE2F13C5295BA + + children + + 0CE0C32F2E53D253FBD890532AA9201C + + isa + PBXGroup + name + Text + path + Text + sourceTree + <group> + + 21E7AEFC96DF3C318E59AFC99A5F2F87 + + fileRef + 31E6E29A9A89094B4B607C4C341D18FF + isa + PBXBuildFile + + 23398C34333A5A585408BF38AE0C2065 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + ChatInputBarAppearance.swift + sourceTree + <group> + + 2359A998D9C76796BE410695F6524156 + + children + + DA69C4842198E41E23867E01B0161612 + + isa + PBXGroup + name + CircleProgressIndicatorView + path + CircleProgressIndicatorView + sourceTree + <group> + + 23CC058C87AD2CF0D378D217EE78620F + + children + + A3643B3F3761685639739C82F2307E77 + + isa + PBXGroup + name + PhotoMessages + path + PhotoMessages + sourceTree + <group> + + 2A0D073A6C8292215CF9C18BDE409BE1 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + folder.assetcatalog + path + Text.xcassets + sourceTree + <group> + + 2A560B5BC0929E09496CB42FC6FF4B42 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + BaseMessagePresenter.swift + sourceTree + <group> + + 2BCC458FDD5F692BBB2BFC64BB5701FC + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + path + Pods-umbrella.h + sourceTree + <group> + + 2C5275E45E5AE03D924F591858AA0177 + + fileRef + 70FE4F431B11E0A2ECFBA12B1B7D34F9 + isa + PBXBuildFile + + 2C5BDA00C3CEDCF442A1A517E53194C5 + + fileRef + 2E5BAE193ABA7143A3C14A2E27DB8085 + isa + PBXBuildFile + + 2D8E8EC45A3A1A1D94AE762CB5028504 + + buildConfigurations + + A70CDAD61F90AC503C7D04CC22DA2923 + FB45FFD90572718D82AB9092B750F0CA + + defaultConfigurationIsVisible + 0 + defaultConfigurationName + Release + isa + XCConfigurationList + + 2E5BAE193ABA7143A3C14A2E27DB8085 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + ChatViewController+Presenters.swift + sourceTree + <group> + + 2FC2C1302FD5B8205152057E1B255477 + + fileRef + A9160597BE3659155259293AABCB3555 + isa + PBXBuildFile + + 2FC91F230E6B87767585794C423F4732 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + PhotosInputViewItemSizeCalculator.swift + sourceTree + <group> + + 31A4C2E8EED4E2085BB5E8A7F1D9FBBB + + baseConfigurationReference + DD7E5A5969A01E3A504D0135C6F25CFF + buildSettings + + CODE_SIGN_IDENTITY[sdk=iphoneos*] + iPhone Developer + CURRENT_PROJECT_VERSION + 1 + DEFINES_MODULE + YES + DYLIB_COMPATIBILITY_VERSION + 1 + DYLIB_CURRENT_VERSION + 1 + DYLIB_INSTALL_NAME_BASE + @rpath + ENABLE_STRICT_OBJC_MSGSEND + YES + GCC_PREFIX_HEADER + Target Support Files/ChattoAdditions/ChattoAdditions-prefix.pch + INFOPLIST_FILE + Target Support Files/ChattoAdditions/Info.plist + INSTALL_PATH + $(LOCAL_LIBRARY_DIR)/Frameworks + IPHONEOS_DEPLOYMENT_TARGET + 8.0 + LD_RUNPATH_SEARCH_PATHS + + $(inherited) + @executable_path/Frameworks + @loader_path/Frameworks + + MODULEMAP_FILE + Target Support Files/ChattoAdditions/ChattoAdditions.modulemap + MTL_ENABLE_DEBUG_INFO + YES + PRODUCT_NAME + ChattoAdditions + SDKROOT + iphoneos + SKIP_INSTALL + YES + SWIFT_OPTIMIZATION_LEVEL + -Onone + TARGETED_DEVICE_FAMILY + 1,2 + VERSIONING_SYSTEM + apple-generic + VERSION_INFO_PREFIX + + + isa + XCBuildConfiguration + name + Debug + + 31C61B7E2DB25FF1ADB483FEED157D81 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + ChatViewController.swift + sourceTree + <group> + + 31E6E29A9A89094B4B607C4C341D18FF + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + AnimationUtils.swift + sourceTree + <group> + + 3333BED070BA5CD346B481AB6022E549 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + LiveCameraCell.swift + sourceTree + <group> + + 33468BC8EC486396F2339403DDB8C8A3 + + fileRef + D92F80EFA905D1D2B49E78A544CA770E + isa + PBXBuildFile + + 33CFA9817381D5D452D65F3CE2F73E1B + + fileRef + 8544C25F17FD6BA40AE7191260F8B89D + isa + PBXBuildFile + + 35784B943EDF77E81962AF955E2122E1 + + children + + A090C4E7541E04C60FEC74B26A1983D8 + E50EDA3F59861363F8D1562C64520389 + BBC78D5C31DE842F5996D6DFE95CBE39 + + isa + PBXGroup + name + Views + path + Views + sourceTree + <group> + + 36440BE9E9EA3F580694F74AC894187D + + baseConfigurationReference + DD7E5A5969A01E3A504D0135C6F25CFF + buildSettings + + CODE_SIGN_IDENTITY[sdk=iphoneos*] + iPhone Developer + CURRENT_PROJECT_VERSION + 1 + DEFINES_MODULE + YES + DYLIB_COMPATIBILITY_VERSION + 1 + DYLIB_CURRENT_VERSION + 1 + DYLIB_INSTALL_NAME_BASE + @rpath + ENABLE_STRICT_OBJC_MSGSEND + YES + GCC_PREFIX_HEADER + Target Support Files/ChattoAdditions/ChattoAdditions-prefix.pch + INFOPLIST_FILE + Target Support Files/ChattoAdditions/Info.plist + INSTALL_PATH + $(LOCAL_LIBRARY_DIR)/Frameworks + IPHONEOS_DEPLOYMENT_TARGET + 8.0 + LD_RUNPATH_SEARCH_PATHS + + $(inherited) + @executable_path/Frameworks + @loader_path/Frameworks + + MODULEMAP_FILE + Target Support Files/ChattoAdditions/ChattoAdditions.modulemap + MTL_ENABLE_DEBUG_INFO + NO + PRODUCT_NAME + ChattoAdditions + SDKROOT + iphoneos + SKIP_INSTALL + YES + TARGETED_DEVICE_FAMILY + 1,2 + VERSIONING_SYSTEM + apple-generic + VERSION_INFO_PREFIX + + + isa + XCBuildConfiguration + name + Release + + 36820B14073A38BC33D0028CCCEF48D1 + + fileRef + B6570F04FDD5CC8C2BC932E82306D690 + isa + PBXBuildFile + + 37FAE4CA5C70625D5AE777B5D3CC5429 + + fileRef + DA69C4842198E41E23867E01B0161612 + isa + PBXBuildFile + + 3882A61CF128C4409DEE2E421E4EA59D + + children + + 6A94AF8F3D77223D1DE72DC3C971502B + 0830C6876687803EBD18173FA46E6A63 + + isa + PBXGroup + name + Chatto + path + ../.. + sourceTree + <group> + + 3A4012010BE69B97E46A5FB84F2302AC + + containerPortal + D41D8CD98F00B204E9800998ECF8427E + isa + PBXContainerItemProxy + proxyType + 1 + remoteGlobalIDString + 7AF7E2DF8892E014AE5FCDF57A214D19 + remoteInfo + Chatto + + 3C99EADA4754BC7B0BFB33A977FD5192 + + fileRef + CEA37B6B7D260CE35E463E68DE47C0F0 + isa + PBXBuildFile + + 3D102E537B24FD32C4408CDC03234189 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + PhotosChatInputItem.swift + sourceTree + <group> + + 3D557CE5B2A13E659FB504ED9E4351CB + + fileRef + F4549EAD309CDA9A0C8B82AC7F9381D1 + isa + PBXBuildFile + + 3D5944B7FBF068C523CA6742F67FEF47 + + fileRef + F6269251CBD6458BEEDBEDA08B64C442 + isa + PBXBuildFile + + 3F635F51C46E8B20880BB7EF933DD874 + + buildConfigurations + + DCE277310A043383EC97FC45344064D9 + D1CBF7ED1C4CCB0A2600FEC5035FA59B + + defaultConfigurationIsVisible + 0 + defaultConfigurationName + Release + isa + XCConfigurationList + + 4132B6A0B82C9AD10C98563576173FA9 + + children + + 73D0E435C33C19717B04811C0F73600E + 2A560B5BC0929E09496CB42FC6FF4B42 + CCECC6BEBDCA29F005882EBE7E4A6CFA + FFA8F01724F587E5E59A7FF51CB8DE82 + + isa + PBXGroup + name + BaseMessage + path + BaseMessage + sourceTree + <group> + + 41A9B2AAC21030F2945A94BC7CBD1423 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + path + Chatto-dummy.m + sourceTree + <group> + + 42D8BFA51D1A4D7997DDA3DAEEC7BB3A + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + path + Chatto-umbrella.h + sourceTree + <group> + + 4306E5B302B20801B08011A90E0FF1F8 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + PhotosInputCellProvider.swift + sourceTree + <group> + + 4337838D91565AA2287EF6B034D13A7D + + fileRef + EE14101F8C4BA1B959F36608FBAA4982 + isa + PBXBuildFile + + 43B2D39ACB83720FAE1D14EC5F213849 + + children + + B6570F04FDD5CC8C2BC932E82306D690 + 0115F92456789DC5293B80ADE95E0C9F + 00C42DE4E7BA84C9B0F5D1A68BE58C87 + + isa + PBXGroup + name + Views + path + Views + sourceTree + <group> + + 44A649D8B3231A80F0177C4B86571655 + + fileRef + 667C1CA3478EA3D81ADADD11F7EFB62C + isa + PBXBuildFile + + 47794E72BFB7C2F6CC29ED9EFBD0DAA6 + + fileRef + B9DC97BE236B7B291614A7F105F62815 + isa + PBXBuildFile + + 480D85CCE10ACF23367AB556C48F3FB4 + + isa + PBXTargetDependency + name + Chatto + target + 7AF7E2DF8892E014AE5FCDF57A214D19 + targetProxy + 4EE8DDA26FBDE4C7E6738F7506377ECB + + 483FB1B75E6CF6007D39F9C9BE4FCD36 + + fileRef + 5EB60CC19EC06054D693A3635FC065C8 + isa + PBXBuildFile + + 4927E8B748B6DCD67DA10E42879EEC22 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + path + ChattoAdditions.h + sourceTree + <group> + + 4AC819B1D861D4DAB565E0F55A285701 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + ChatInputBarPresenter.swift + sourceTree + <group> + + 4BA2F03625F2F7189A89830233BA1528 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + ChatCollectionViewLayout.swift + sourceTree + <group> + + 4CB5A1C529335B0491D9932407898317 + + fileRef + 2A560B5BC0929E09496CB42FC6FF4B42 + isa + PBXBuildFile + + 4CCCFC26F93E395D9CA66219440F3D6F + + fileRef + CA2CDE90F026B1E3CE3241BAF0CBDF42 + isa + PBXBuildFile + settings + + ATTRIBUTES + + Public + + + + 4D49CD0E497DB8BF0FDA4EAB65BF1C8A + + fileRef + 5B62EFE5AEB88F47C417D132452C5724 + isa + PBXBuildFile + + 4DA84E57C97397BABF3DFEC7A20473A4 + + fileRef + BC886B6248C7ACE6B9152CC90B2CE25D + isa + PBXBuildFile + + 4EE8DDA26FBDE4C7E6738F7506377ECB + + containerPortal + D41D8CD98F00B204E9800998ECF8427E + isa + PBXContainerItemProxy + proxyType + 1 + remoteGlobalIDString + 7AF7E2DF8892E014AE5FCDF57A214D19 + remoteInfo + Chatto + + 506DC1B37003C9C4393D540E196DEF41 + + children + + 7F5203F70424BF8FE0A443C488977D78 + 0E7726F07BAD9AC95C0FB541855E2AE4 + 5C4A68DF3D211320E5061770B0C3B112 + + isa + PBXGroup + name + ChattoAdditions + path + ../.. + sourceTree + <group> + + 50EB32A161726B3296730BD11DCCF5A7 + + buildActionMask + 2147483647 + files + + EAC0E38ED8452A7F664DD63E918C95FE + CEEB179AC74112C35F06D166DC81D49E + + isa + PBXFrameworksBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + 53EF802D8961B00EC0CFED2F0704E2F5 + + fileRef + D24BCF073CE16056F253257894CF66DD + isa + PBXBuildFile + + 54DB1556763801347CC408FC15FE7D6F + + fileRef + A090C4E7541E04C60FEC74B26A1983D8 + isa + PBXBuildFile + + 558E0CB64A448006A7E88711769D761D + + fileRef + 31C61B7E2DB25FF1ADB483FEED157D81 + isa + PBXBuildFile + + 58294E0D6B459AFD04DEA87154A8368F + + explicitFileType + wrapper.framework + includeInIndex + 0 + isa + PBXFileReference + name + Chatto.framework + path + Chatto.framework + sourceTree + BUILT_PRODUCTS_DIR + + 5902D05B5BB1C50C7F4680DD211F6AA5 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + TextMessagePresenter.swift + sourceTree + <group> + + 5A4BF7E99DD1960EA3ACDCE6F29D58BB + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + path + ChattoAdditions-umbrella.h + sourceTree + <group> + + 5B62EFE5AEB88F47C417D132452C5724 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + KeyboardTracker.swift + sourceTree + <group> + + 5C4A68DF3D211320E5061770B0C3B112 + + children + + FC4E873D2874D2207B97F63437C9827E + DD7E5A5969A01E3A504D0135C6F25CFF + FB5030FB81D772482E145FF745310021 + A210C8B9CA993A2C831727CE2515A3DE + 5A4BF7E99DD1960EA3ACDCE6F29D58BB + AF5BD772CABAA008A4802F6B3A73307E + + isa + PBXGroup + name + Support Files + path + ChattoApp/Pods/Target Support Files/ChattoAdditions + sourceTree + <group> + + 5DFA99DCCBE023FF77ED832CA854A833 + + fileRef + 7B5087CD6F6BFB113692DA332EB62100 + isa + PBXBuildFile + + 5EB60CC19EC06054D693A3635FC065C8 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + ReusableXibView.swift + sourceTree + <group> + + 60BB18C70C8E4E2D1D6F54E83E219A8B + + fileRef + 681E03D75C85DD9F68B05EFA215C12DA + isa + PBXBuildFile + + 615290649C3A3BEA4EFA350B39B58488 + + fileRef + 4AC819B1D861D4DAB565E0F55A285701 + isa + PBXBuildFile + + 61C421AA18A0C32D0531414F0B55F202 + + fileRef + 4BA2F03625F2F7189A89830233BA1528 + isa + PBXBuildFile + + 637A06D57DDDE2353B5A90D3F0897A6C + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + PhotosInputCameraPicker.swift + sourceTree + <group> + + 64098046251F40CFE18AABFF28F8AF30 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + file.xib + path + ChatInputBar.xib + sourceTree + <group> + + 6559DEDD0FDE1E6B645A304DAA4E372A + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + BaseChatItemPresenter.swift + sourceTree + <group> + + 659E3A6A1BC77CD2033B4E15551A6EB0 + + buildActionMask + 2147483647 + files + + 68D0351426E0494FC782C18126BB7BDD + + isa + PBXSourcesBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + 664656BDB7A47AC9ECBA2D58EB550D51 + + includeInIndex + 1 + isa + PBXFileReference + path + Chatto.modulemap + sourceTree + <group> + + 667C1CA3478EA3D81ADADD11F7EFB62C + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + folder.assetcatalog + path + BaseMessageAssets.xcassets + sourceTree + <group> + + 67137A4E85897A4235934C1AD67CD2E5 + + fileRef + 7019E99B21789BA603247FD118DFB1AF + isa + PBXBuildFile + + 681E03D75C85DD9F68B05EFA215C12DA + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + ChatInputItemView.swift + sourceTree + <group> + + 68D0351426E0494FC782C18126BB7BDD + + fileRef + 894E5DA93A9F359521A89826BE6DA777 + isa + PBXBuildFile + + 698E976767454CEA971282CD4122B5D2 + + isa + PBXTargetDependency + name + Chatto + target + 7AF7E2DF8892E014AE5FCDF57A214D19 + targetProxy + 3A4012010BE69B97E46A5FB84F2302AC + + 6A94AF8F3D77223D1DE72DC3C971502B + + children + + 02E98763D4A6CFA615BD940D2419A125 + + isa + PBXGroup + name + Chatto + path + Chatto + sourceTree + <group> + + 6C5B434C2A4737145DBA9318EF0B164D + + children + + 64098046251F40CFE18AABFF28F8AF30 + C322C204C7D59AB4720A2CAD6C38078B + 8E746D60240566BFD95B5FDB0589F010 + + isa + PBXGroup + name + Input + path + Input + sourceTree + <group> + + 6C673786B8D417D72D1A4FD07403D332 + + fileRef + 73D0E435C33C19717B04811C0F73600E + isa + PBXBuildFile + + 6E5712D008F1D3582EB2F57000DC0F18 + + children + + BDCB2EC04F318F528132F68C371EE9CD + + isa + PBXGroup + name + ChattoAdditions + path + ChattoAdditions + sourceTree + <group> + + 7019E99B21789BA603247FD118DFB1AF + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + TextMessageViewModel.swift + sourceTree + <group> + + 70D77E6C8B815EBD66FF9CE04922FDF1 + + buildActionMask + 2147483647 + files + + B5DC5D3B818ED2A4F5D15261EB896837 + + isa + PBXHeadersBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + 70FE4F431B11E0A2ECFBA12B1B7D34F9 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + ChatViewController+Changes.swift + sourceTree + <group> + + 73D0E435C33C19717B04811C0F73600E + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + BaseMessageModel.swift + sourceTree + <group> + + 7403DF9C589D875EE74DC47F57E0E82E + + fileRef + 8DFADD757D9E0D8289EB018E3D00686F + isa + PBXBuildFile + + 7468334D2E29C3979DE993CD32ACC1CC + + children + + F16CAF022D5603843128A2381A0B6887 + 23398C34333A5A585408BF38AE0C2065 + 4AC819B1D861D4DAB565E0F55A285701 + EE14101F8C4BA1B959F36608FBAA4982 + 681E03D75C85DD9F68B05EFA215C12DA + D24BCF073CE16056F253257894CF66DD + F4549EAD309CDA9A0C8B82AC7F9381D1 + 5EB60CC19EC06054D693A3635FC065C8 + 99CF1DE7C434899AC0FF56172A90C7B7 + 1C8DD2806DDEC6C4DE1DE2F13C5295BA + + isa + PBXGroup + name + Input + path + Input + sourceTree + <group> + + 74A62FD17620A7F212C97BAF348CC48C + + fileRef + F9295E06CBFBBA5200243C4EE50AFA67 + isa + PBXBuildFile + + 75D98FF52E597A11900E131B6C4E1ADA + + children + + E8446514FBAD26C0E18F24A5715AEF67 + 79A9DEDC89FE8336BF5FEDAAF75BF7FC + D0405803033A2A777B8E4DFA0C1800ED + 87B213035BAC5F75386F62D3C75D2342 + 894E5DA93A9F359521A89826BE6DA777 + E7F21354943D9F42A70697D5A5EF72E9 + CBC0F7C552B739C909B650A0F42F7F38 + 2BCC458FDD5F692BBB2BFC64BB5701FC + 977577C045EDA9D9D1F46E2598D19FC7 + DA312349A49333542E6F4B36B329960E + + isa + PBXGroup + name + Pods + path + Target Support Files/Pods + sourceTree + <group> + + 75FE19E41E61A16534ECC3755AD1FB04 + + containerPortal + D41D8CD98F00B204E9800998ECF8427E + isa + PBXContainerItemProxy + proxyType + 1 + remoteGlobalIDString + 7DD08A69500CBF4A4EFFEEE3FF9E3C54 + remoteInfo + ChattoAdditions + + 774ED369A498A948F1CB47492C70C331 + + fileRef + 1450F7E23B95E33D58368BB36C594CCF + isa + PBXBuildFile + settings + + ATTRIBUTES + + Public + + + + 79A9DEDC89FE8336BF5FEDAAF75BF7FC + + includeInIndex + 1 + isa + PBXFileReference + path + Pods.modulemap + sourceTree + <group> + + 7AF7E2DF8892E014AE5FCDF57A214D19 + + buildConfigurationList + 998B194A41236B68BCB6666A8FBBAB4B + buildPhases + + A558D4E304973D767B60720832587522 + B502FC1C06782AB119E7B550426A5182 + 0D4563F2E2197EAA6A27C1DDAB837884 + + buildRules + + dependencies + + isa + PBXNativeTarget + name + Chatto + productName + Chatto + productReference + 58294E0D6B459AFD04DEA87154A8368F + productType + com.apple.product-type.framework + + 7B25C629ADCBF309A6CC76BE734D5A5B + + children + + 31E6E29A9A89094B4B607C4C341D18FF + 4927E8B748B6DCD67DA10E42879EEC22 + 97EC8D64F772F020E4A9E737D4A050C3 + A62E24EAB3E41E6298553D72F1AACB0B + 8544C25F17FD6BA40AE7191260F8B89D + F6E06C5F7EB5590920E4A39BD92857FD + 7468334D2E29C3979DE993CD32ACC1CC + AFB70FD5FE6FEDFA0F3361C99F63A627 + + isa + PBXGroup + name + Source + path + Source + sourceTree + <group> + + 7B5087CD6F6BFB113692DA332EB62100 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + AccessoryViewRevealer.swift + sourceTree + <group> + + 7BFD9A3C31260386847F9B7920E6FC80 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + folder.assetcatalog + path + PhotoMessageAssets.xcassets + sourceTree + <group> + + 7D52C857CF1B68DE68B2C4ACFF5F06BB + + fileRef + 8A3C388748081057087ABCD9B0DDC950 + isa + PBXBuildFile + + 7DB346D0F39D3F0E887471402A8071AB + + children + + BA6428E9F66FD5A23C0A2E06ED26CD2F + DF648B3CF24B9FDB22C46C8F894C25FE + 82B4130D6842ED151D75732401A98763 + C1BDB953EFC03352CF11E24248A50AA7 + B7B80995527643776607AFFA75B91E24 + + isa + PBXGroup + sourceTree + <group> + + 7DD08A69500CBF4A4EFFEEE3FF9E3C54 + + buildConfigurationList + E6ADA2C5706A6F1E0D5C504344DDFAB7 + buildPhases + + D0B57C30BF887C961A42D4EDC1A145B5 + 50EB32A161726B3296730BD11DCCF5A7 + 930B77B0B215490568CD3228FA91E67A + BD76A104CEBAD30C83B8058DFDE61468 + + buildRules + + dependencies + + 480D85CCE10ACF23367AB556C48F3FB4 + + isa + PBXNativeTarget + name + ChattoAdditions + productName + ChattoAdditions + productReference + CE7CD41DBBB972864685F06362CCC494 + productType + com.apple.product-type.framework + + 7DF19D1C33F02CDBE97223A0F2535E5C + + explicitFileType + wrapper.framework + includeInIndex + 0 + isa + PBXFileReference + name + Pods.framework + path + Pods.framework + sourceTree + BUILT_PRODUCTS_DIR + + 7F5203F70424BF8FE0A443C488977D78 + + children + + 7B25C629ADCBF309A6CC76BE734D5A5B + + isa + PBXGroup + name + ChattoAdditions + path + ChattoAdditions + sourceTree + <group> + + 817B87B6772FDADDCC41A0A8E4499B2E + + fileRef + B04C38B6EBC9EC62019D9CF55AA0238E + isa + PBXBuildFile + + 82B4130D6842ED151D75732401A98763 + + children + + D0A636ED63D4950987B5410B6B50F1B4 + E166EAE657932B27CB37E9CBB9280FAF + + isa + PBXGroup + name + Frameworks + sourceTree + <group> + + 8471D19BA239ED6CACAAB5B4FBA78029 + + fileRef + 9CE13526223A899F54C1E16E05F8946F + isa + PBXBuildFile + + 8544C25F17FD6BA40AE7191260F8B89D + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + Utils.swift + sourceTree + <group> + + 87B213035BAC5F75386F62D3C75D2342 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.plist.xml + path + Pods-acknowledgements.plist + sourceTree + <group> + + 88430EE95105DF1E3602E0B47D2551CC + + fileRef + A62E24EAB3E41E6298553D72F1AACB0B + isa + PBXBuildFile + + 88E90BC196F83EB029881AAFB31CE452 + + children + + 1450F7E23B95E33D58368BB36C594CCF + BC886B6248C7ACE6B9152CC90B2CE25D + CA2CDE90F026B1E3CE3241BAF0CBDF42 + A9160597BE3659155259293AABCB3555 + CBA0556F9682A8263E184A5F4851B9AD + 167D53F6123B5236B27506A95BA7851A + + isa + PBXGroup + name + CircleProgressIndicatorView + path + CircleProgressIndicatorView + sourceTree + <group> + + 894E5DA93A9F359521A89826BE6DA777 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + path + Pods-dummy.m + sourceTree + <group> + + 8A3C388748081057087ABCD9B0DDC950 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + ChatItemDecorationAttributes.swift + sourceTree + <group> + + 8C0965CFDAF20A1CD776B46B5748331E + + fileRef + FAFB8B0EEDF14A1BF0CD593AB0450BE7 + isa + PBXBuildFile + + 8DFADD757D9E0D8289EB018E3D00686F + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + ChatItemProtocolDefinitions.swift + sourceTree + <group> + + 8E746D60240566BFD95B5FDB0589F010 + + children + + 2A0D073A6C8292215CF9C18BDE409BE1 + + isa + PBXGroup + name + Text + path + Text + sourceTree + <group> + + 917F4BC3AF3D500040DD7417DDA921AA + + fileRef + 9B766F68048B2995D20C6DF8D77A6429 + isa + PBXBuildFile + + 930B77B0B215490568CD3228FA91E67A + + buildActionMask + 2147483647 + files + + 1281E83BEA9A48C95D01A3CFFB17E893 + A63CF3857F3FCC965E5D575410482B49 + 774ED369A498A948F1CB47492C70C331 + 4CCCFC26F93E395D9CA66219440F3D6F + 0938863B64F4AE791D7EAFDEFAD09085 + + isa + PBXHeadersBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + 9486F27E9C712C62F6856EC5E1DFD468 + + children + + 9950012E86344A91EE5E3EF4834DEBC1 + + isa + PBXGroup + name + BaseMessage + path + BaseMessage + sourceTree + <group> + + 94C8F0A64F20C587F2446EB58B23826A + + fileRef + E2E619ED0E2DD9480F11CCD3B0D06AFC + isa + PBXBuildFile + + 94FFDFAB71DB3D729AC5E3ECAB8844D7 + + fileRef + 6559DEDD0FDE1E6B645A304DAA4E372A + isa + PBXBuildFile + + 977577C045EDA9D9D1F46E2598D19FC7 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.xcconfig + path + Pods.debug.xcconfig + sourceTree + <group> + + 97EC8D64F772F020E4A9E737D4A050C3 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + KeyedOperationQueue.swift + sourceTree + <group> + + 9950012E86344A91EE5E3EF4834DEBC1 + + children + + 667C1CA3478EA3D81ADADD11F7EFB62C + + isa + PBXGroup + name + Views + path + Views + sourceTree + <group> + + 998B194A41236B68BCB6666A8FBBAB4B + + buildConfigurations + + 1C3FFA4958DD0EB59C26EFD65CB5186C + 0D98BB57B382420C6D082403D6F19496 + + defaultConfigurationIsVisible + 0 + defaultConfigurationName + Release + isa + XCConfigurationList + + 99CF1DE7C434899AC0FF56172A90C7B7 + + children + + 3333BED070BA5CD346B481AB6022E549 + 3D102E537B24FD32C4408CDC03234189 + 637A06D57DDDE2353B5A90D3F0897A6C + D5E415AF9FF70A25E565DD75E7A5B741 + 4306E5B302B20801B08011A90E0FF1F8 + 9BE76FB30802E2048AEF7A804E8FA056 + B04C38B6EBC9EC62019D9CF55AA0238E + 2FC91F230E6B87767585794C423F4732 + + isa + PBXGroup + name + Photos + path + Photos + sourceTree + <group> + + 9B766F68048B2995D20C6DF8D77A6429 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + PhotoMessageViewModel.swift + sourceTree + <group> + + 9BE76FB30802E2048AEF7A804E8FA056 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + PhotosInputDataProvider.swift + sourceTree + <group> + + 9CE13526223A899F54C1E16E05F8946F + + isa + PBXFileReference + lastKnownFileType + wrapper.framework + name + Foundation.framework + path + Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk/System/Library/Frameworks/Foundation.framework + sourceTree + DEVELOPER_DIR + + A090C4E7541E04C60FEC74B26A1983D8 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + PhotoBubbleView.swift + sourceTree + <group> + + A1F625687BCBD5B333CDCD9E609AE21C + + fileRef + 0115F92456789DC5293B80ADE95E0C9F + isa + PBXBuildFile + + A210C8B9CA993A2C831727CE2515A3DE + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + path + ChattoAdditions-prefix.pch + sourceTree + <group> + + A3643B3F3761685639739C82F2307E77 + + children + + 7BFD9A3C31260386847F9B7920E6FC80 + + isa + PBXGroup + name + Views + path + Views + sourceTree + <group> + + A3F89FD76835798018E5DE45573D5F3F + + children + + 7B5087CD6F6BFB113692DA332EB62100 + 4BA2F03625F2F7189A89830233BA1528 + FAFB8B0EEDF14A1BF0CD593AB0450BE7 + 31C61B7E2DB25FF1ADB483FEED157D81 + 70FE4F431B11E0A2ECFBA12B1B7D34F9 + 2E5BAE193ABA7143A3C14A2E27DB8085 + B9DC97BE236B7B291614A7F105F62815 + E2E619ED0E2DD9480F11CCD3B0D06AFC + 5B62EFE5AEB88F47C417D132452C5724 + + isa + PBXGroup + name + ChatController + path + ChatController + sourceTree + <group> + + A518D2A6B2CC93AD5FC6EF88205E08E8 + + children + + 9486F27E9C712C62F6856EC5E1DFD468 + 23CC058C87AD2CF0D378D217EE78620F + + isa + PBXGroup + name + Chat Items + path + Chat Items + sourceTree + <group> + + A558D4E304973D767B60720832587522 + + buildActionMask + 2147483647 + files + + 5DFA99DCCBE023FF77ED832CA854A833 + 94FFDFAB71DB3D729AC5E3ECAB8844D7 + 61C421AA18A0C32D0531414F0B55F202 + 8C0965CFDAF20A1CD776B46B5748331E + 7403DF9C589D875EE74DC47F57E0E82E + ED0283B0B9FE358BC4153E6BAB8BE20D + 2C5275E45E5AE03D924F591858AA0177 + 2C5BDA00C3CEDCF442A1A517E53194C5 + 47794E72BFB7C2F6CC29ED9EFBD0DAA6 + 558E0CB64A448006A7E88711769D761D + 94C8F0A64F20C587F2446EB58B23826A + ECA9A9F5D34C77359C6952AD6FC90A18 + 4D49CD0E497DB8BF0FDA4EAB65BF1C8A + DE48608D5088FE0236779F84761E2BB8 + + isa + PBXSourcesBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + A62E24EAB3E41E6298553D72F1AACB0B + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + Observable.swift + sourceTree + <group> + + A63CF3857F3FCC965E5D575410482B49 + + fileRef + 4927E8B748B6DCD67DA10E42879EEC22 + isa + PBXBuildFile + settings + + ATTRIBUTES + + Public + + + + A65DE185A12E70BE17EFA373F195C9E6 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.xcconfig + path + Chatto.xcconfig + sourceTree + <group> + + A70CDAD61F90AC503C7D04CC22DA2923 + + buildSettings + + ALWAYS_SEARCH_USER_PATHS + NO + CLANG_CXX_LANGUAGE_STANDARD + gnu++0x + CLANG_CXX_LIBRARY + libc++ + CLANG_ENABLE_MODULES + YES + CLANG_ENABLE_OBJC_ARC + YES + CLANG_WARN_BOOL_CONVERSION + YES + CLANG_WARN_CONSTANT_CONVERSION + YES + CLANG_WARN_DIRECT_OBJC_ISA_USAGE + YES + CLANG_WARN_EMPTY_BODY + YES + CLANG_WARN_ENUM_CONVERSION + YES + CLANG_WARN_INT_CONVERSION + YES + CLANG_WARN_OBJC_ROOT_CLASS + YES + CLANG_WARN_UNREACHABLE_CODE + YES + CLANG_WARN__DUPLICATE_METHOD_MATCH + YES + COPY_PHASE_STRIP + NO + GCC_C_LANGUAGE_STANDARD + gnu99 + GCC_DYNAMIC_NO_PIC + NO + GCC_OPTIMIZATION_LEVEL + 0 + GCC_PREPROCESSOR_DEFINITIONS + + DEBUG=1 + $(inherited) + + GCC_SYMBOLS_PRIVATE_EXTERN + NO + GCC_WARN_64_TO_32_BIT_CONVERSION + YES + GCC_WARN_ABOUT_RETURN_TYPE + YES + GCC_WARN_UNDECLARED_SELECTOR + YES + GCC_WARN_UNINITIALIZED_AUTOS + YES + GCC_WARN_UNUSED_FUNCTION + YES + GCC_WARN_UNUSED_VARIABLE + YES + IPHONEOS_DEPLOYMENT_TARGET + 8.0 + ONLY_ACTIVE_ARCH + YES + STRIP_INSTALLED_PRODUCT + NO + SYMROOT + ${SRCROOT}/../build + + isa + XCBuildConfiguration + name + Debug + + A8405C91165AB7A31FE6A88A333DD701 + + fileRef + 2FC91F230E6B87767585794C423F4732 + isa + PBXBuildFile + + A9160597BE3659155259293AABCB3555 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + path + CircleProgressIndicatorView.m + sourceTree + <group> + + AC410D8567E6C696227B566F9AFCC075 + + fileRef + 64098046251F40CFE18AABFF28F8AF30 + isa + PBXBuildFile + + AF3827E052F4369A86F32B555BFE2E80 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + path + Chatto-prefix.pch + sourceTree + <group> + + AF5BD772CABAA008A4802F6B3A73307E + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.plist.xml + path + Info.plist + sourceTree + <group> + + AF6C60699C45E376AB593B5FA984954E + + buildConfigurationList + 3F635F51C46E8B20880BB7EF933DD874 + buildPhases + + 659E3A6A1BC77CD2033B4E15551A6EB0 + E625D698677F51C1049B239AD65C4F60 + 70D77E6C8B815EBD66FF9CE04922FDF1 + + buildRules + + dependencies + + 698E976767454CEA971282CD4122B5D2 + E37197B156C72EB287049632D6C5DA8A + + isa + PBXNativeTarget + name + Pods + productName + Pods + productReference + 7DF19D1C33F02CDBE97223A0F2535E5C + productType + com.apple.product-type.framework + + AFB70FD5FE6FEDFA0F3361C99F63A627 + + children + + 88E90BC196F83EB029881AAFB31CE452 + + isa + PBXGroup + name + UI Components + path + UI Components + sourceTree + <group> + + B04C38B6EBC9EC62019D9CF55AA0238E + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + PhotosInputView.swift + sourceTree + <group> + + B502FC1C06782AB119E7B550426A5182 + + buildActionMask + 2147483647 + files + + 009190E3F05F45D8D6C88DEA3CA2C170 + + isa + PBXFrameworksBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + B5DC5D3B818ED2A4F5D15261EB896837 + + fileRef + 2BCC458FDD5F692BBB2BFC64BB5701FC + isa + PBXBuildFile + settings + + ATTRIBUTES + + Public + + + + B5E09F29F0C9B6EC251B7350DFECBEA7 + + fileRef + 5902D05B5BB1C50C7F4680DD211F6AA5 + isa + PBXBuildFile + + B6570F04FDD5CC8C2BC932E82306D690 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + TextBubbleView.swift + sourceTree + <group> + + B7B80995527643776607AFFA75B91E24 + + children + + 75D98FF52E597A11900E131B6C4E1ADA + + isa + PBXGroup + name + Targets Support Files + sourceTree + <group> + + B9DC97BE236B7B291614A7F105F62815 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + ChatViewController+Scrolling.swift + sourceTree + <group> + + BA6428E9F66FD5A23C0A2E06ED26CD2F + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text + name + Podfile + path + ../Podfile + sourceTree + SOURCE_ROOT + xcLanguageSpecificationIdentifier + xcode.lang.ruby + + BBC78D5C31DE842F5996D6DFE95CBE39 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + PhotoMessageCollectionViewCellDefaultStyle.swift + sourceTree + <group> + + BC886B6248C7ACE6B9152CC90B2CE25D + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + path + CircleIconView.m + sourceTree + <group> + + BD76A104CEBAD30C83B8058DFDE61468 + + buildActionMask + 2147483647 + files + + 44A649D8B3231A80F0177C4B86571655 + AC410D8567E6C696227B566F9AFCC075 + 37FAE4CA5C70625D5AE777B5D3CC5429 + EDF609BF0B29652FAA7CF6F1FD36CA11 + DB94084D0A44BA2D3F5ADC62B776414E + BD7AB12D0B465616431F59E5229BE0A5 + + isa + PBXResourcesBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + BD7AB12D0B465616431F59E5229BE0A5 + + fileRef + 2A0D073A6C8292215CF9C18BDE409BE1 + isa + PBXBuildFile + + BDA2BD34DA413B3F0CB3F7446318CBFF + + fileRef + 9BE76FB30802E2048AEF7A804E8FA056 + isa + PBXBuildFile + + BDCB2EC04F318F528132F68C371EE9CD + + children + + A518D2A6B2CC93AD5FC6EF88205E08E8 + 6C5B434C2A4737145DBA9318EF0B164D + 05D31F297955F0F0DD4FEC528EE49A5F + + isa + PBXGroup + name + Source + path + Source + sourceTree + <group> + + C0E9BFF70A14D72F547A0FD8E54D12D2 + + fileRef + 0CE0C32F2E53D253FBD890532AA9201C + isa + PBXBuildFile + + C0EBAA11EA89A45AAD5EEC0671CB697E + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + PhotoMessagePresenter.swift + sourceTree + <group> + + C117BD8C68DD05EFED4E96C19B341962 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.plist.xml + path + Info.plist + sourceTree + <group> + + C1BDB953EFC03352CF11E24248A50AA7 + + children + + 58294E0D6B459AFD04DEA87154A8368F + CE7CD41DBBB972864685F06362CCC494 + 7DF19D1C33F02CDBE97223A0F2535E5C + + isa + PBXGroup + name + Products + sourceTree + <group> + + C1E67DA90AD21E5BD1C2A650617D2A2A + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + path + Chatto.h + sourceTree + <group> + + C322C204C7D59AB4720A2CAD6C38078B + + children + + D2B2293D7D418420AB03F0584A71EB69 + + isa + PBXGroup + name + Photos + path + Photos + sourceTree + <group> + + C8DB6F6376D771949DBF44C56D2756D1 + + fileRef + 97EC8D64F772F020E4A9E737D4A050C3 + isa + PBXBuildFile + + CA1A1BD015BDA5A8B58B7D2E0E533520 + + fileRef + D38FF70C7961730494358A781BBD4266 + isa + PBXBuildFile + + CA2CDE90F026B1E3CE3241BAF0CBDF42 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + path + CircleProgressIndicatorView.h + sourceTree + <group> + + CBA0556F9682A8263E184A5F4851B9AD + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.h + path + CircleProgressView.h + sourceTree + <group> + + CBC0F7C552B739C909B650A0F42F7F38 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.script.sh + path + Pods-resources.sh + sourceTree + <group> + + CC27B0AA8783E403851467DA308D736D + + children + + D92F80EFA905D1D2B49E78A544CA770E + 5902D05B5BB1C50C7F4680DD211F6AA5 + CEA37B6B7D260CE35E463E68DE47C0F0 + 7019E99B21789BA603247FD118DFB1AF + 43B2D39ACB83720FAE1D14EC5F213849 + + isa + PBXGroup + name + TextMessages + path + TextMessages + sourceTree + <group> + + CC2C226C413CE617F8BF06BE47C11C73 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + PhotoMessagePresenterBuilder.swift + sourceTree + <group> + + CCECC6BEBDCA29F005882EBE7E4A6CFA + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + BaseMessageViewModel.swift + sourceTree + <group> + + CE7CD41DBBB972864685F06362CCC494 + + explicitFileType + wrapper.framework + includeInIndex + 0 + isa + PBXFileReference + name + ChattoAdditions.framework + path + ChattoAdditions.framework + sourceTree + BUILT_PRODUCTS_DIR + + CEA37B6B7D260CE35E463E68DE47C0F0 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + TextMessagePresenterBuilder.swift + sourceTree + <group> + + CEEB179AC74112C35F06D166DC81D49E + + fileRef + 9CE13526223A899F54C1E16E05F8946F + isa + PBXBuildFile + + D0405803033A2A777B8E4DFA0C1800ED + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text + path + Pods-acknowledgements.markdown + sourceTree + <group> + + D0A636ED63D4950987B5410B6B50F1B4 + + explicitFileType + wrapper.framework + includeInIndex + 0 + isa + PBXFileReference + path + Chatto.framework + sourceTree + BUILT_PRODUCTS_DIR + + D0B57C30BF887C961A42D4EDC1A145B5 + + buildActionMask + 2147483647 + files + + 21E7AEFC96DF3C318E59AFC99A5F2F87 + D7FCB154DF24B64737D8482138192E34 + 74A62FD17620A7F212C97BAF348CC48C + 6C673786B8D417D72D1A4FD07403D332 + 4CB5A1C529335B0491D9932407898317 + FD65B50F2C2C231254D616FBE64BCE93 + FFC8FDDB7D848CFBF68CF848AB9E5FD0 + 17C5314D4E48DD75B9B2D33978F8495A + 615290649C3A3BEA4EFA350B39B58488 + 4337838D91565AA2287EF6B034D13A7D + 60BB18C70C8E4E2D1D6F54E83E219A8B + 7D52C857CF1B68DE68B2C4ACFF5F06BB + 09BD679DB19419AE64123C48BDA1D4E8 + 4DA84E57C97397BABF3DFEC7A20473A4 + 2FC2C1302FD5B8205152057E1B255477 + EFB74EE0A89287687BE1936EADE1CD3A + 53EF802D8961B00EC0CFED2F0704E2F5 + 3D557CE5B2A13E659FB504ED9E4351CB + C8DB6F6376D771949DBF44C56D2756D1 + 1BEA3E8EE37844059E557750F6F3467D + 88430EE95105DF1E3602E0B47D2551CC + 54DB1556763801347CC408FC15FE7D6F + FA425B297903CF809BFA8C0238DA59B9 + DED2BABE15E93002DCD0963164AA37D8 + CA1A1BD015BDA5A8B58B7D2E0E533520 + DB179935E7B42289354103564BE69134 + F194E1AB922FFF837278FCEC54B06449 + 917F4BC3AF3D500040DD7417DDA921AA + FCBF2BA23C23C1F5C3281D0C5D34C968 + 135C12037302D7FC90A29E5A12128734 + FB7FD6E6D7B54832D06B08301BED1537 + 172A7832E1A396868678E4EB69EC12D5 + BDA2BD34DA413B3F0CB3F7446318CBFF + 817B87B6772FDADDCC41A0A8E4499B2E + A8405C91165AB7A31FE6A88A333DD701 + 483FB1B75E6CF6007D39F9C9BE4FCD36 + 36820B14073A38BC33D0028CCCEF48D1 + C0E9BFF70A14D72F547A0FD8E54D12D2 + A1F625687BCBD5B333CDCD9E609AE21C + DB71E72FC92441C0155C6C2C15CDE623 + 33468BC8EC486396F2339403DDB8C8A3 + B5E09F29F0C9B6EC251B7350DFECBEA7 + 3C99EADA4754BC7B0BFB33A977FD5192 + 67137A4E85897A4235934C1AD67CD2E5 + 33CFA9817381D5D452D65F3CE2F73E1B + 3D5944B7FBF068C523CA6742F67FEF47 + + isa + PBXSourcesBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + D1B9575301EAF330DF2C9F01CFC35126 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + BaseMessageCollectionViewCell.swift + sourceTree + <group> + + D1CBF7ED1C4CCB0A2600FEC5035FA59B + + baseConfigurationReference + DA312349A49333542E6F4B36B329960E + buildSettings + + CODE_SIGN_IDENTITY[sdk=iphoneos*] + iPhone Developer + CURRENT_PROJECT_VERSION + 1 + DEFINES_MODULE + YES + DYLIB_COMPATIBILITY_VERSION + 1 + DYLIB_CURRENT_VERSION + 1 + DYLIB_INSTALL_NAME_BASE + @rpath + ENABLE_STRICT_OBJC_MSGSEND + YES + INFOPLIST_FILE + Target Support Files/Pods/Info.plist + INSTALL_PATH + $(LOCAL_LIBRARY_DIR)/Frameworks + IPHONEOS_DEPLOYMENT_TARGET + 8.0 + LD_RUNPATH_SEARCH_PATHS + + $(inherited) + @executable_path/Frameworks + @loader_path/Frameworks + + MACH_O_TYPE + staticlib + MODULEMAP_FILE + Target Support Files/Pods/Pods.modulemap + MTL_ENABLE_DEBUG_INFO + NO + OTHER_LDFLAGS + + OTHER_LIBTOOLFLAGS + + PODS_ROOT + $(SRCROOT) + PRODUCT_NAME + Pods + SDKROOT + iphoneos + SKIP_INSTALL + YES + TARGETED_DEVICE_FAMILY + 1,2 + VERSIONING_SYSTEM + apple-generic + VERSION_INFO_PREFIX + + + isa + XCBuildConfiguration + name + Release + + D24BCF073CE16056F253257894CF66DD + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + ExpandableTextView.swift + sourceTree + <group> + + D2B2293D7D418420AB03F0584A71EB69 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + folder.assetcatalog + path + Photos.xcassets + sourceTree + <group> + + D2D9B5C18D7A84F7945B137EFF0C037A + + fileRef + 42D8BFA51D1A4D7997DDA3DAEEC7BB3A + isa + PBXBuildFile + settings + + ATTRIBUTES + + Public + + + + D38FF70C7961730494358A781BBD4266 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + PhotoMessageModel.swift + sourceTree + <group> + + D41D8CD98F00B204E9800998ECF8427E + + attributes + + LastSwiftUpdateCheck + 0700 + LastUpgradeCheck + 0700 + + buildConfigurationList + 2D8E8EC45A3A1A1D94AE762CB5028504 + compatibilityVersion + Xcode 3.2 + developmentRegion + English + hasScannedForEncodings + 0 + isa + PBXProject + knownRegions + + en + + mainGroup + 7DB346D0F39D3F0E887471402A8071AB + productRefGroup + C1BDB953EFC03352CF11E24248A50AA7 + projectDirPath + + projectReferences + + projectRoot + + targets + + 7AF7E2DF8892E014AE5FCDF57A214D19 + 7DD08A69500CBF4A4EFFEEE3FF9E3C54 + AF6C60699C45E376AB593B5FA984954E + + + D5E415AF9FF70A25E565DD75E7A5B741 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + PhotosInputCell.swift + sourceTree + <group> + + D7FCB154DF24B64737D8482138192E34 + + fileRef + D1B9575301EAF330DF2C9F01CFC35126 + isa + PBXBuildFile + + D92F80EFA905D1D2B49E78A544CA770E + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + TextMessageModel.swift + sourceTree + <group> + + DA312349A49333542E6F4B36B329960E + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.xcconfig + path + Pods.release.xcconfig + sourceTree + <group> + + DA69C4842198E41E23867E01B0161612 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + folder.assetcatalog + path + CircleProgressIndicator.xcassets + sourceTree + <group> + + DB179935E7B42289354103564BE69134 + + fileRef + C0EBAA11EA89A45AAD5EEC0671CB697E + isa + PBXBuildFile + + DB71E72FC92441C0155C6C2C15CDE623 + + fileRef + 00C42DE4E7BA84C9B0F5D1A68BE58C87 + isa + PBXBuildFile + + DB94084D0A44BA2D3F5ADC62B776414E + + fileRef + D2B2293D7D418420AB03F0584A71EB69 + isa + PBXBuildFile + + DCE277310A043383EC97FC45344064D9 + + baseConfigurationReference + 977577C045EDA9D9D1F46E2598D19FC7 + buildSettings + + CODE_SIGN_IDENTITY[sdk=iphoneos*] + iPhone Developer + CURRENT_PROJECT_VERSION + 1 + DEFINES_MODULE + YES + DYLIB_COMPATIBILITY_VERSION + 1 + DYLIB_CURRENT_VERSION + 1 + DYLIB_INSTALL_NAME_BASE + @rpath + ENABLE_STRICT_OBJC_MSGSEND + YES + INFOPLIST_FILE + Target Support Files/Pods/Info.plist + INSTALL_PATH + $(LOCAL_LIBRARY_DIR)/Frameworks + IPHONEOS_DEPLOYMENT_TARGET + 8.0 + LD_RUNPATH_SEARCH_PATHS + + $(inherited) + @executable_path/Frameworks + @loader_path/Frameworks + + MACH_O_TYPE + staticlib + MODULEMAP_FILE + Target Support Files/Pods/Pods.modulemap + MTL_ENABLE_DEBUG_INFO + YES + OTHER_LDFLAGS + + OTHER_LIBTOOLFLAGS + + PODS_ROOT + $(SRCROOT) + PRODUCT_NAME + Pods + SDKROOT + iphoneos + SKIP_INSTALL + YES + SWIFT_OPTIMIZATION_LEVEL + -Onone + TARGETED_DEVICE_FAMILY + 1,2 + VERSIONING_SYSTEM + apple-generic + VERSION_INFO_PREFIX + + + isa + XCBuildConfiguration + name + Debug + + DD7E5A5969A01E3A504D0135C6F25CFF + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.xcconfig + path + ChattoAdditions.xcconfig + sourceTree + <group> + + DE48608D5088FE0236779F84761E2BB8 + + fileRef + E5784D88764B0B37D2F1F0A0FA3190C3 + isa + PBXBuildFile + + DED2BABE15E93002DCD0963164AA37D8 + + fileRef + BBC78D5C31DE842F5996D6DFE95CBE39 + isa + PBXBuildFile + + DF648B3CF24B9FDB22C46C8F894C25FE + + children + + 3882A61CF128C4409DEE2E421E4EA59D + 506DC1B37003C9C4393D540E196DEF41 + + isa + PBXGroup + name + Development Pods + sourceTree + <group> + + E166EAE657932B27CB37E9CBB9280FAF + + children + + 9CE13526223A899F54C1E16E05F8946F + + isa + PBXGroup + name + iOS + sourceTree + <group> + + E2E619ED0E2DD9480F11CCD3B0D06AFC + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + CollectionChanges.swift + sourceTree + <group> + + E37197B156C72EB287049632D6C5DA8A + + isa + PBXTargetDependency + name + ChattoAdditions + target + 7DD08A69500CBF4A4EFFEEE3FF9E3C54 + targetProxy + 75FE19E41E61A16534ECC3755AD1FB04 + + E4C32DC33587BD2B3561B95808F01DD9 + + fileRef + C1E67DA90AD21E5BD1C2A650617D2A2A + isa + PBXBuildFile + settings + + ATTRIBUTES + + Public + + + + E50EDA3F59861363F8D1562C64520389 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + PhotoMessageCollectionViewCell.swift + sourceTree + <group> + + E5784D88764B0B37D2F1F0A0FA3190C3 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + SerialTaskQueue.swift + sourceTree + <group> + + E625D698677F51C1049B239AD65C4F60 + + buildActionMask + 2147483647 + files + + 8471D19BA239ED6CACAAB5B4FBA78029 + + isa + PBXFrameworksBuildPhase + runOnlyForDeploymentPostprocessing + 0 + + E6ADA2C5706A6F1E0D5C504344DDFAB7 + + buildConfigurations + + 31A4C2E8EED4E2085BB5E8A7F1D9FBBB + 36440BE9E9EA3F580694F74AC894187D + + defaultConfigurationIsVisible + 0 + defaultConfigurationName + Release + isa + XCConfigurationList + + E7F21354943D9F42A70697D5A5EF72E9 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.script.sh + path + Pods-frameworks.sh + sourceTree + <group> + + E8446514FBAD26C0E18F24A5715AEF67 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + text.plist.xml + path + Info.plist + sourceTree + <group> + + EAC0E38ED8452A7F664DD63E918C95FE + + fileRef + D0A636ED63D4950987B5410B6B50F1B4 + isa + PBXBuildFile + + EB0BAE425A4CCABBA1A695F76B8523BA + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + DummyChatItemPresenter.swift + sourceTree + <group> + + ECA9A9F5D34C77359C6952AD6FC90A18 + + fileRef + EB0BAE425A4CCABBA1A695F76B8523BA + isa + PBXBuildFile + + ED0283B0B9FE358BC4153E6BAB8BE20D + + fileRef + 41A9B2AAC21030F2945A94BC7CBD1423 + isa + PBXBuildFile + + EDF609BF0B29652FAA7CF6F1FD36CA11 + + fileRef + 7BFD9A3C31260386847F9B7920E6FC80 + isa + PBXBuildFile + + EE14101F8C4BA1B959F36608FBAA4982 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + ChatInputItem.swift + sourceTree + <group> + + EEAABA8E8443311507CD9BB41E35B286 + + children + + D38FF70C7961730494358A781BBD4266 + C0EBAA11EA89A45AAD5EEC0671CB697E + CC2C226C413CE617F8BF06BE47C11C73 + 9B766F68048B2995D20C6DF8D77A6429 + 35784B943EDF77E81962AF955E2122E1 + + isa + PBXGroup + name + PhotoMessages + path + PhotoMessages + sourceTree + <group> + + EFB74EE0A89287687BE1936EADE1CD3A + + fileRef + 167D53F6123B5236B27506A95BA7851A + isa + PBXBuildFile + + F16CAF022D5603843128A2381A0B6887 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + ChatInputBar.swift + sourceTree + <group> + + F194E1AB922FFF837278FCEC54B06449 + + fileRef + CC2C226C413CE617F8BF06BE47C11C73 + isa + PBXBuildFile + + F4549EAD309CDA9A0C8B82AC7F9381D1 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + HorizontalStackScrollView.swift + sourceTree + <group> + + F6269251CBD6458BEEDBEDA08B64C442 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + ViewDefinitions.swift + sourceTree + <group> + + F6E06C5F7EB5590920E4A39BD92857FD + + children + + 8A3C388748081057087ABCD9B0DDC950 + 4132B6A0B82C9AD10C98563576173FA9 + EEAABA8E8443311507CD9BB41E35B286 + CC27B0AA8783E403851467DA308D736D + + isa + PBXGroup + name + Chat Items + path + Chat Items + sourceTree + <group> + + F9295E06CBFBBA5200243C4EE50AFA67 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + BaseMessageCollectionViewCellDefaultSyle.swift + sourceTree + <group> + + FA425B297903CF809BFA8C0238DA59B9 + + fileRef + E50EDA3F59861363F8D1562C64520389 + isa + PBXBuildFile + + FAFB8B0EEDF14A1BF0CD593AB0450BE7 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.swift + path + ChatDataSourceProtocol.swift + sourceTree + <group> + + FB45FFD90572718D82AB9092B750F0CA + + buildSettings + + ALWAYS_SEARCH_USER_PATHS + NO + CLANG_CXX_LANGUAGE_STANDARD + gnu++0x + CLANG_CXX_LIBRARY + libc++ + CLANG_ENABLE_MODULES + YES + CLANG_ENABLE_OBJC_ARC + YES + CLANG_WARN_BOOL_CONVERSION + YES + CLANG_WARN_CONSTANT_CONVERSION + YES + CLANG_WARN_DIRECT_OBJC_ISA_USAGE + YES + CLANG_WARN_EMPTY_BODY + YES + CLANG_WARN_ENUM_CONVERSION + YES + CLANG_WARN_INT_CONVERSION + YES + CLANG_WARN_OBJC_ROOT_CLASS + YES + CLANG_WARN_UNREACHABLE_CODE + YES + CLANG_WARN__DUPLICATE_METHOD_MATCH + YES + COPY_PHASE_STRIP + YES + ENABLE_NS_ASSERTIONS + NO + GCC_C_LANGUAGE_STANDARD + gnu99 + GCC_PREPROCESSOR_DEFINITIONS + + RELEASE=1 + + GCC_WARN_64_TO_32_BIT_CONVERSION + YES + GCC_WARN_ABOUT_RETURN_TYPE + YES + GCC_WARN_UNDECLARED_SELECTOR + YES + GCC_WARN_UNINITIALIZED_AUTOS + YES + GCC_WARN_UNUSED_FUNCTION + YES + GCC_WARN_UNUSED_VARIABLE + YES + IPHONEOS_DEPLOYMENT_TARGET + 8.0 + STRIP_INSTALLED_PRODUCT + NO + SYMROOT + ${SRCROOT}/../build + VALIDATE_PRODUCT + YES + + isa + XCBuildConfiguration + name + Release + + FB5030FB81D772482E145FF745310021 + + includeInIndex + 1 + isa + PBXFileReference + lastKnownFileType + sourcecode.c.objc + path + ChattoAdditions-dummy.m + sourceTree + <group> + + FB596DB3E0A07D813D0A8B3190CC87DF + + children + + 6559DEDD0FDE1E6B645A304DAA4E372A + 8DFADD757D9E0D8289EB018E3D00686F + EB0BAE425A4CCABBA1A695F76B8523BA + + isa + PBXGroup + name + Chat Items + path + Chat Items + sourceTree + <group> + + FB7FD6E6D7B54832D06B08301BED1537 + + fileRef + D5E415AF9FF70A25E565DD75E7A5B741 + isa + PBXBuildFile + + FC4E873D2874D2207B97F63437C9827E + + includeInIndex + 1 + isa + PBXFileReference + path + ChattoAdditions.modulemap + sourceTree + <group> + + FCBF2BA23C23C1F5C3281D0C5D34C968 + + fileRef + 3D102E537B24FD32C4408CDC03234189 + isa + PBXBuildFile + + FD65B50F2C2C231254D616FBE64BCE93 + + fileRef + CCECC6BEBDCA29F005882EBE7E4A6CFA + isa + PBXBuildFile + + FFA8F01724F587E5E59A7FF51CB8DE82 + + children + + D1B9575301EAF330DF2C9F01CFC35126 + F9295E06CBFBBA5200243C4EE50AFA67 + F6269251CBD6458BEEDBEDA08B64C442 + + isa + PBXGroup + name + Views + path + Views + sourceTree + <group> + + FFC8FDDB7D848CFBF68CF848AB9E5FD0 + + fileRef + F16CAF022D5603843128A2381A0B6887 + isa + PBXBuildFile + + + rootObject + D41D8CD98F00B204E9800998ECF8427E + + diff --git a/ChattoApp/Pods/Pods.xcodeproj/xcshareddata/xcschemes/Chatto.xcscheme b/ChattoApp/Pods/Pods.xcodeproj/xcshareddata/xcschemes/Chatto.xcscheme index 3cd1d32..15d2fe6 100644 --- a/ChattoApp/Pods/Pods.xcodeproj/xcshareddata/xcschemes/Chatto.xcscheme +++ b/ChattoApp/Pods/Pods.xcodeproj/xcshareddata/xcschemes/Chatto.xcscheme @@ -14,7 +14,7 @@ buildForArchiving = "YES"> diff --git a/ChattoApp/Pods/Pods.xcodeproj/xcshareddata/xcschemes/ChattoAdditions.xcscheme b/ChattoApp/Pods/Pods.xcodeproj/xcshareddata/xcschemes/ChattoAdditions.xcscheme index 5f2e982..05939f2 100644 --- a/ChattoApp/Pods/Pods.xcodeproj/xcshareddata/xcschemes/ChattoAdditions.xcscheme +++ b/ChattoApp/Pods/Pods.xcodeproj/xcshareddata/xcschemes/ChattoAdditions.xcscheme @@ -14,7 +14,7 @@ buildForArchiving = "YES"> diff --git a/ChattoApp/Pods/Target Support Files/ChattoAdditions/ChattoAdditions-umbrella.h b/ChattoApp/Pods/Target Support Files/ChattoAdditions/ChattoAdditions-umbrella.h index a903480..eb35297 100644 --- a/ChattoApp/Pods/Target Support Files/ChattoAdditions/ChattoAdditions-umbrella.h +++ b/ChattoApp/Pods/Target Support Files/ChattoAdditions/ChattoAdditions-umbrella.h @@ -1,9 +1,9 @@ #import #import "ChattoAdditions.h" -#import "BMACircleIconView.h" -#import "BMACircleProgressIndicatorView.h" -#import "BMACircleProgressView.h" +#import "CircleIconView.h" +#import "CircleProgressIndicatorView.h" +#import "CircleProgressView.h" FOUNDATION_EXPORT double ChattoAdditionsVersionNumber; FOUNDATION_EXPORT const unsigned char ChattoAdditionsVersionString[];