Compare commits

...

8 Commits

Author SHA1 Message Date
Anton Schukin 43e1f675fb ChatInputItemProtocol.selected and ChatInputItemProtocol.disabled properties became public 2016-07-27 10:01:47 +01:00
Anton Schukin f0198d77ce Use calculated properties instead of functions in default protocol implementation 2016-07-26 18:25:09 +01:00
Anton Schukin 946232bf21 Ignore tap if input item is disabled 2016-07-26 18:06:26 +01:00
Anton Schukin 5d9a0b8f00 Pods updated 2016-07-26 18:02:52 +01:00
Anton Schukin 15d2e1f817 Fixed tests compilation issue 2016-07-26 17:59:05 +01:00
Anton Schukin c17a99014b Move ChatInputItem selected and enabled properties to protocol extension 2016-07-26 17:55:42 +01:00
Anton Schukin a8ba3531b7 tabView renamed to inputButton for consistency 2016-07-26 17:50:17 +01:00
Anton Schukin 3fa9853321 TabInputButton renamed to ChatInputButton for consistency 2016-07-26 17:34:57 +01:00
11 changed files with 235 additions and 389 deletions

View File

@ -77,7 +77,7 @@
C3C0CC8B1BFE49700052747C /* PhotosInputViewItemSizeCalculatorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CC7D1BFE49700052747C /* PhotosInputViewItemSizeCalculatorTests.swift */; };
C3C0CC8C1BFE49700052747C /* TextChatInputItemTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CC7E1BFE49700052747C /* TextChatInputItemTests.swift */; };
C3C0CC8D1BFE49700052747C /* ObservableTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CC7F1BFE49700052747C /* ObservableTests.swift */; };
C3C9BC8F1D11540D00F3A54E /* TabInputButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C9BC8E1D11540D00F3A54E /* TabInputButton.swift */; };
C3C9BC8F1D11540D00F3A54E /* ChatInputButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C9BC8E1D11540D00F3A54E /* ChatInputButton.swift */; };
C3EFA6B01C03607A0063CE22 /* BaseMessagePresenterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3EFA6AF1C03607A0063CE22 /* BaseMessagePresenterTests.swift */; };
CA073E791C47F5B9009D5EBF /* Chatto.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CA073E781C47F5B9009D5EBF /* Chatto.framework */; };
F6D04BA71CA46C0200E803FA /* PhotosInputPlaceholderDataProviderTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6D04BA61CA46C0200E803FA /* PhotosInputPlaceholderDataProviderTests.swift */; };
@ -168,7 +168,7 @@
C3C0CC7E1BFE49700052747C /* TextChatInputItemTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextChatInputItemTests.swift; sourceTree = "<group>"; };
C3C0CC7F1BFE49700052747C /* ObservableTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ObservableTests.swift; sourceTree = "<group>"; };
C3C0CC961BFE4A2A0052747C /* ChattoAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChattoAdditions.h; sourceTree = "<group>"; };
C3C9BC8E1D11540D00F3A54E /* TabInputButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TabInputButton.swift; sourceTree = "<group>"; };
C3C9BC8E1D11540D00F3A54E /* ChatInputButton.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatInputButton.swift; sourceTree = "<group>"; };
C3EFA6AF1C03607A0063CE22 /* BaseMessagePresenterTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BaseMessagePresenterTests.swift; sourceTree = "<group>"; };
CA073E781C47F5B9009D5EBF /* Chatto.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Chatto.framework; path = "../../../../Library/Developer/Xcode/DerivedData/Chatto-gyrilfusfbpmohajjvmmctphuabr/Build/Products/Debug-iphoneos/Chatto.framework"; sourceTree = "<group>"; };
F6D04BA61CA46C0200E803FA /* PhotosInputPlaceholderDataProviderTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PhotosInputPlaceholderDataProviderTests.swift; sourceTree = "<group>"; };
@ -332,13 +332,13 @@
C3C0CC051BFE496A0052747C /* ChatInputBar.xib */,
C3C0CC061BFE496A0052747C /* ChatInputBarAppearance.swift */,
C3C0CC071BFE496A0052747C /* ChatInputBarPresenter.swift */,
C3C9BC8E1D11540D00F3A54E /* ChatInputButton.swift */,
C3C0CC081BFE496A0052747C /* ChatInputItem.swift */,
C3C0CC091BFE496A0052747C /* ChatInputItemView.swift */,
C3C0CC0A1BFE496A0052747C /* ExpandableTextView.swift */,
C3C0CC0B1BFE496A0052747C /* HorizontalStackScrollView.swift */,
C3C0CC0C1BFE496A0052747C /* Photos */,
C3C0CC161BFE496A0052747C /* ReusableXibView.swift */,
C3C9BC8E1D11540D00F3A54E /* TabInputButton.swift */,
C3C0CC171BFE496A0052747C /* Text */,
);
path = Input;
@ -573,7 +573,7 @@
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
C3C9BC8F1D11540D00F3A54E /* TabInputButton.swift in Sources */,
C3C9BC8F1D11540D00F3A54E /* ChatInputButton.swift in Sources */,
C3C0CC311BFE496A0052747C /* ChatItemDecorationAttributes.swift in Sources */,
C3C0CC3B1BFE496A0052747C /* PhotoMessageCollectionViewCellDefaultStyle.swift in Sources */,
C38658B21BFE55620012F181 /* AnimationUtils.swift in Sources */,

View File

@ -24,7 +24,7 @@
import Foundation
public struct TabInputButtonAppearance {
public struct ChatInputButtonAppearance {
public var images: [UIControlState: UIImage]
public var size: CGSize?
@ -34,11 +34,11 @@ public struct TabInputButtonAppearance {
}
}
public class TabInputButton: UIButton {
public class ChatInputButton: UIButton {
static public func makeInputButton(withAppearance appearance: TabInputButtonAppearance) -> TabInputButton {
static public func makeInputButton(withAppearance appearance: ChatInputButtonAppearance) -> ChatInputButton {
let images = appearance.images
let button = TabInputButton(type: .Custom)
let button = ChatInputButton(type: .Custom)
button.exclusiveTouch = true
images.forEach { (state, image) in
button.setImage(image, forState: state)

View File

@ -31,11 +31,30 @@ public enum ChatInputItemPresentationMode: UInt {
}
public protocol ChatInputItemProtocol: AnyObject {
var tabView: UIView { get }
var inputButton: ChatInputButton { get }
var inputView: UIView? { get }
var presentationMode: ChatInputItemPresentationMode { get }
var showsSendButton: Bool { get }
var selected: Bool { get set }
func handleInput(input: AnyObject)
}
extension ChatInputItemProtocol {
public var selected: Bool {
get {
return self.inputButton.selected
}
set {
self.inputButton.selected = self.selected
}
}
public var enabled: Bool {
get {
return self.inputButton.enabled
}
set {
self.inputButton.enabled = self.enabled
}
}
}

View File

@ -47,18 +47,20 @@ class ChatInputItemView: UIView {
weak var delegate: ChatInputItemViewDelegate?
func handleTap() {
self.delegate?.inputItemViewTapped(self)
if self.inputItem.enabled {
self.delegate?.inputItemViewTapped(self)
}
}
var inputItem: ChatInputItemProtocol! {
willSet {
if self.inputItem != nil {
self.inputItem.tabView.removeFromSuperview()
self.inputItem.inputButton.removeFromSuperview()
}
}
didSet {
if self.inputItem != nil {
self.addSubview(self.inputItem.tabView)
self.addSubview(self.inputItem.inputButton)
self.setNeedsLayout()
}
}
@ -69,10 +71,10 @@ class ChatInputItemView: UIView {
extension ChatInputItemView {
override func layoutSubviews() {
super.layoutSubviews()
self.inputItem.tabView.frame = self.bounds
self.inputItem.inputButton.frame = self.bounds
}
override func intrinsicContentSize() -> CGSize {
return self.inputItem.tabView.intrinsicContentSize()
return self.inputItem.inputButton.intrinsicContentSize()
}
}

View File

@ -32,23 +32,23 @@ public class PhotosChatInputItem: ChatInputItemProtocol {
public var photosPermissionHandler: (() -> Void)?
public weak var presentingController: UIViewController?
let buttonAppearance: TabInputButtonAppearance
public init(presentingController: UIViewController?, tabInputButtonAppearance: TabInputButtonAppearance = Class.createDefaultButtonAppearance()) {
let buttonAppearance: ChatInputButtonAppearance
public init(presentingController: UIViewController?, buttonAppearance: ChatInputButtonAppearance = Class.createDefaultButtonAppearance()) {
self.presentingController = presentingController
self.buttonAppearance = tabInputButtonAppearance
self.buttonAppearance = buttonAppearance
}
public class func createDefaultButtonAppearance() -> TabInputButtonAppearance {
public class func createDefaultButtonAppearance() -> ChatInputButtonAppearance {
let images: [UIControlState: UIImage] = [
.Normal: UIImage(named: "camera-icon-unselected", inBundle: NSBundle(forClass: Class.self), compatibleWithTraitCollection: nil)!,
.Selected: UIImage(named: "camera-icon-selected", inBundle: NSBundle(forClass: Class.self), compatibleWithTraitCollection: nil)!,
.Highlighted: UIImage(named: "camera-icon-selected", inBundle: NSBundle(forClass: Class.self), compatibleWithTraitCollection: nil)!
]
return TabInputButtonAppearance(images: images, size: nil)
return ChatInputButtonAppearance(images: images, size: nil)
}
lazy private var internalTabView: UIButton = {
return TabInputButton.makeInputButton(withAppearance: self.buttonAppearance)
lazy private var internalInputButton: ChatInputButton = {
return ChatInputButton.makeInputButton(withAppearance: self.buttonAppearance)
}()
lazy var photosInputView: PhotosInputViewProtocol = {
@ -57,12 +57,6 @@ public class PhotosChatInputItem: ChatInputItemProtocol {
return photosInputView
}()
public var selected = false {
didSet {
self.internalTabView.selected = self.selected
}
}
// MARK: - ChatInputItemProtocol
public var presentationMode: ChatInputItemPresentationMode {
@ -77,8 +71,8 @@ public class PhotosChatInputItem: ChatInputItemProtocol {
return self.photosInputView as? UIView
}
public var tabView: UIView {
return self.internalTabView
public var inputButton: ChatInputButton {
return self.internalInputButton
}
public func handleInput(input: AnyObject) {

View File

@ -28,29 +28,23 @@ public class TextChatInputItem {
typealias Class = TextChatInputItem
public var textInputHandler: ((String) -> Void)?
let buttonAppearance: TabInputButtonAppearance
public init(tabInputButtonAppearance: TabInputButtonAppearance = Class.createDefaultButtonAppearance()) {
self.buttonAppearance = tabInputButtonAppearance
let buttonAppearance: ChatInputButtonAppearance
public init(buttonAppearance: ChatInputButtonAppearance = Class.createDefaultButtonAppearance()) {
self.buttonAppearance = buttonAppearance
}
public class func createDefaultButtonAppearance() -> TabInputButtonAppearance {
public class func createDefaultButtonAppearance() -> ChatInputButtonAppearance {
let images: [UIControlState: UIImage] = [
.Normal: UIImage(named: "text-icon-unselected", inBundle: NSBundle(forClass: TextChatInputItem.self), compatibleWithTraitCollection: nil)!,
.Selected: UIImage(named: "text-icon-selected", inBundle: NSBundle(forClass: TextChatInputItem.self), compatibleWithTraitCollection: nil)!,
.Highlighted: UIImage(named: "text-icon-selected", inBundle: NSBundle(forClass: TextChatInputItem.self), compatibleWithTraitCollection: nil)!
]
return TabInputButtonAppearance(images: images, size: nil)
return ChatInputButtonAppearance(images: images, size: nil)
}
lazy private var internalTabView: TabInputButton = {
return TabInputButton.makeInputButton(withAppearance: self.buttonAppearance)
lazy private var internalInputButton: ChatInputButton = {
return ChatInputButton.makeInputButton(withAppearance: self.buttonAppearance)
}()
public var selected = false {
didSet {
self.internalTabView.selected = self.selected
}
}
}
// MARK: - ChatInputItemProtocol
@ -67,8 +61,8 @@ extension TextChatInputItem : ChatInputItemProtocol {
return nil
}
public var tabView: UIView {
return self.internalTabView
public var inputButton: ChatInputButton {
return self.internalInputButton
}
public func handleInput(input: AnyObject) {

View File

@ -30,11 +30,10 @@ class ChatInputItemTests: XCTestCase {
@objc
class MockInputItem: NSObject, ChatInputItemProtocol {
var selected = false
var presentationMode: ChatInputItemPresentationMode = .Keyboard
var showsSendButton = false
var inputView: UIView? = nil
let tabView = UIView()
let inputButton = ChatInputButton()
private(set) var handledInput: AnyObject?
func handleInput(input: AnyObject) {

View File

@ -7,6 +7,7 @@
objects = {
/* Begin PBXBuildFile section */
17906FE686DFB867CF23BEAA /* Pods_ChattoApp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 90536C168629214740F9196F /* Pods_ChattoApp.framework */; };
C33FBFAE1BDE441C008E3545 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C33FBFAC1BDE441C008E3545 /* Main.storyboard */; };
C33FBFB01BDE441C008E3545 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C33FBFAF1BDE441C008E3545 /* Assets.xcassets */; };
C33FBFB31BDE441C008E3545 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C33FBFB11BDE441C008E3545 /* LaunchScreen.storyboard */; };
@ -33,7 +34,6 @@
C3F91DCC1C75EFE300D461D2 /* SendingStatusCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3F91DC91C75EFE300D461D2 /* SendingStatusCollectionViewCell.swift */; };
C3F91DCD1C75EFE300D461D2 /* SendingStatusCollectionViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = C3F91DCA1C75EFE300D461D2 /* SendingStatusCollectionViewCell.xib */; };
C3F91DCE1C75EFE300D461D2 /* SendingStatusPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3F91DCB1C75EFE300D461D2 /* SendingStatusPresenter.swift */; };
DD49AA1095C478DD42524839 /* Pods_ChattoApp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 13A796C853501DB82BA5DC27 /* Pods_ChattoApp.framework */; };
FE2D050B1C915ADB006F902B /* BaseMessageCollectionViewCellAvatarStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE2D050A1C915ADB006F902B /* BaseMessageCollectionViewCellAvatarStyle.swift */; };
/* End PBXBuildFile section */
@ -68,10 +68,10 @@
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
13A796C853501DB82BA5DC27 /* Pods_ChattoApp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ChattoApp.framework; sourceTree = BUILT_PRODUCTS_DIR; };
2CCB5DAFC70B636492325895 /* Pods-ChattoApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ChattoApp.debug.xcconfig"; path = "Pods/Target Support Files/Pods-ChattoApp/Pods-ChattoApp.debug.xcconfig"; sourceTree = "<group>"; };
623390018DA74FF277EE2626 /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; };
6DABD92E2BA40464C1727DA2 /* Pods-ChattoApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ChattoApp.release.xcconfig"; path = "Pods/Target Support Files/Pods-ChattoApp/Pods-ChattoApp.release.xcconfig"; sourceTree = "<group>"; };
7C27D1C9F2413F4FEB26A430 /* Pods-ChattoApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ChattoApp.debug.xcconfig"; path = "Pods/Target Support Files/Pods-ChattoApp/Pods-ChattoApp.debug.xcconfig"; sourceTree = "<group>"; };
90536C168629214740F9196F /* Pods_ChattoApp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ChattoApp.framework; sourceTree = BUILT_PRODUCTS_DIR; };
9A3E6B18C6F286E238930CA2 /* Pods-ChattoApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ChattoApp.release.xcconfig"; path = "Pods/Target Support Files/Pods-ChattoApp/Pods-ChattoApp.release.xcconfig"; sourceTree = "<group>"; };
C33FBFA51BDE441C008E3545 /* ChattoApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ChattoApp.app; sourceTree = BUILT_PRODUCTS_DIR; };
C33FBFAD1BDE441C008E3545 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
C33FBFAF1BDE441C008E3545 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
@ -112,7 +112,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
DD49AA1095C478DD42524839 /* Pods_ChattoApp.framework in Frameworks */,
17906FE686DFB867CF23BEAA /* Pods_ChattoApp.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -137,16 +137,16 @@
isa = PBXGroup;
children = (
623390018DA74FF277EE2626 /* Pods.framework */,
13A796C853501DB82BA5DC27 /* Pods_ChattoApp.framework */,
90536C168629214740F9196F /* Pods_ChattoApp.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
B616EDF620454A787C7E7D84 /* Pods */ = {
90E57584A1F9B2168F3B6872 /* Pods */ = {
isa = PBXGroup;
children = (
2CCB5DAFC70B636492325895 /* Pods-ChattoApp.debug.xcconfig */,
6DABD92E2BA40464C1727DA2 /* Pods-ChattoApp.release.xcconfig */,
7C27D1C9F2413F4FEB26A430 /* Pods-ChattoApp.debug.xcconfig */,
9A3E6B18C6F286E238930CA2 /* Pods-ChattoApp.release.xcconfig */,
);
name = Pods;
sourceTree = "<group>";
@ -159,7 +159,7 @@
C33FBFC71BDE441C008E3545 /* ChattoAppUITests */,
C33FBFA61BDE441C008E3545 /* Products */,
0852C8B139C7CFA0A1C22090 /* Frameworks */,
B616EDF620454A787C7E7D84 /* Pods */,
90E57584A1F9B2168F3B6872 /* Pods */,
);
sourceTree = "<group>";
};
@ -625,7 +625,7 @@
};
C33FBFCE1BDE441C008E3545 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 2CCB5DAFC70B636492325895 /* Pods-ChattoApp.debug.xcconfig */;
baseConfigurationReference = 7C27D1C9F2413F4FEB26A430 /* Pods-ChattoApp.debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
FRAMEWORK_SEARCH_PATHS = "$(inherited)";
@ -638,7 +638,7 @@
};
C33FBFCF1BDE441C008E3545 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 6DABD92E2BA40464C1727DA2 /* Pods-ChattoApp.release.xcconfig */;
baseConfigurationReference = 9A3E6B18C6F286E238930CA2 /* Pods-ChattoApp.release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
FRAMEWORK_SEARCH_PATHS = "$(inherited)";

View File

@ -7,91 +7,91 @@
objects = {
/* Begin PBXBuildFile section */
01E93E1EA50DB8570AC3586820F31BC6 /* ChatInputBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52C055C3540379E17AC38E1858CAE6A7 /* ChatInputBar.swift */; };
034B2EE392455146794D70998432AE56 /* BaseMessageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB0F5037D43B05A9DB436F3D3E86BB28 /* BaseMessageCollectionViewCell.swift */; };
053A27FC7E1C57B21A354946DA2E7C2C /* TextMessageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD59E21870EB3606ACE0E8EEA0FCC7F8 /* TextMessageCollectionViewCell.swift */; };
0557CAA25498BFC887FBF32216BC7A90 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 279FD63A8A28081D2937D64AEA1E8B07 /* Foundation.framework */; };
06400FD5FC74FCE01C3CF3C2090C5EB4 /* BaseMessageModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA90BE515B2095FA2AC5C54FEB9ED51D /* BaseMessageModel.swift */; };
07AAC46296648A34AEE0FD9DC1DC5C44 /* CircleProgressIndicatorView.h in Headers */ = {isa = PBXBuildFile; fileRef = E9121558403FFC354D652B3E4185008E /* CircleProgressIndicatorView.h */; settings = {ATTRIBUTES = (Public, ); }; };
0BB7999EEF829FE7A2B51587CB5D5E92 /* PhotosInputCameraPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 732A644492E88B1CD83519293AD7D974 /* PhotosInputCameraPicker.swift */; };
11BB41B18C825E153D68A471D9AD991C /* TextChatInputItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0413BC0391BDB6808FB3CE89AC990D50 /* TextChatInputItem.swift */; };
095F96B5E50783EC1FA1F66080E13FD8 /* PhotoBubbleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0227EB2FD3555F836B505582EC6B9C37 /* PhotoBubbleView.swift */; };
09C342D156E4A8AF4FDE1207FBC0127C /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 000FB7C864AF48F6648E4A153A295524 /* Utils.swift */; };
1293F88DD2651FCAFE9468D3172AE4CD /* Chatto-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 41A9B2AAC21030F2945A94BC7CBD1423 /* Chatto-dummy.m */; };
156EE272A2A1E0F74E42589929B49A68 /* PhotoBubbleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0227EB2FD3555F836B505582EC6B9C37 /* PhotoBubbleView.swift */; };
19580DBE73946CF16BB8D08E0D167625 /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 000FB7C864AF48F6648E4A153A295524 /* Utils.swift */; };
13F8520B4A74A0DF1814EC3E7631ED5E /* PhotoMessageCollectionViewCellDefaultStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2DC506829E1BD918CEAF95D49131A91 /* PhotoMessageCollectionViewCellDefaultStyle.swift */; };
1BD079C09506395573BF7DB600FD7565 /* Chatto.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0A636ED63D4950987B5410B6B50F1B4 /* Chatto.framework */; };
1D35CD1FB5F37129DBDA12F090B96E83 /* Chatto-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 42D8BFA51D1A4D7997DDA3DAEEC7BB3A /* Chatto-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
1F37559E206D6C470C05DE543316AB97 /* ChatCollectionViewLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 826512851733EFA0000BAA2070956375 /* ChatCollectionViewLayout.swift */; };
21DB05B897E7323EE654A1FD79B44B3A /* BaseChatViewController+Scrolling.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36C43008BB069478668679256AAB705E /* BaseChatViewController+Scrolling.swift */; };
262A6513D1657D4A1B7B972DFA53203F /* AnimationUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 743436078577A75BEC9B35AEE26C52C5 /* AnimationUtils.swift */; };
25079A03892F3F54E7CEF4BB845FD112 /* PhotosInputViewItemSizeCalculator.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD9B68BC69CA3962619E10C97859C6A9 /* PhotosInputViewItemSizeCalculator.swift */; };
2723E2CE82B1CA104A095E94DD9CF39C /* CircleIconView.h in Headers */ = {isa = PBXBuildFile; fileRef = D11FBAE60A944D397A073D8321601E3F /* CircleIconView.h */; settings = {ATTRIBUTES = (Public, ); }; };
316B2755553AC8D05635269C81F71788 /* BaseMessageModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA90BE515B2095FA2AC5C54FEB9ED51D /* BaseMessageModel.swift */; };
2B2F17A7FA7644C51D55F3C820FF0203 /* ReusableXibView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CB5C8F645CE3CFC12C02C1148D30074 /* ReusableXibView.swift */; };
2C3E0636694BF060ABEF75605A194E09 /* PhotosChatInputItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = D40C101FEB1829F37545CC0A5A0D8401 /* PhotosChatInputItem.swift */; };
2E617137FB59C06301AD051862FB2415 /* TextMessagePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 823DB3452D46068B1FF45BA3875BF284 /* TextMessagePresenter.swift */; };
319FD843B8EB0F7E2BF61895D789356C /* Photos.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D2B2293D7D418420AB03F0584A71EB69 /* Photos.xcassets */; };
358ADC7D2C63C2E11E3228AA4FA11B8C /* ChattoAdditions-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FB5030FB81D772482E145FF745310021 /* ChattoAdditions-dummy.m */; };
3AB11E8EAF8141F7F0A1E2D93FC4F37F /* ReadOnlyOrderedDictionary.swift in Sources */ = {isa = PBXBuildFile; fileRef = 84AE77E2DC8C81FA8C4ABB08CEF0A2C4 /* ReadOnlyOrderedDictionary.swift */; };
3B92397C70CB35A8B9D8824F1309C3C1 /* LiveCameraCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = EBE6D840A010DB7D81CE59C340CC978E /* LiveCameraCell.swift */; };
3C7BA7940E5818B28EB954384BBCAE68 /* LiveCameraCellPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 02D1546D844B52275BCB5F87AECC0D31 /* LiveCameraCellPresenter.swift */; };
3D86C4CD2FCFB6408F0C99DB27019632 /* BaseMessagePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41440E2789F7AA716ED3B33CBC123C19 /* BaseMessagePresenter.swift */; };
3E5F80B3946FE51C0A596ACBFB3616D0 /* AccessoryViewRevealer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5FDBD530402089BF4D7367FDF816900A /* AccessoryViewRevealer.swift */; };
3F0591D2B4FA329A9F0D4553C6AD9055 /* CircleProgressView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCFA9B30C03C779DCB556C05A9770D4A /* CircleProgressView.m */; };
3F25DFF0012B33C458B15DDCEAD1050D /* ChattoAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A81A00458F0E377DDA187019D579795 /* ChattoAdditions.h */; settings = {ATTRIBUTES = (Public, ); }; };
4103B8022059933F9550B15C7F0794EB /* TextMessagePresenterBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8791A5235C3410F3DFA91D9056947E14 /* TextMessagePresenterBuilder.swift */; };
410BB0FA455A528DF88C1AE845BEB355 /* PhotosInputViewItemSizeCalculator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2370201D6DC465D5C439B760902F92D7 /* PhotosInputViewItemSizeCalculator.swift */; };
428B1F5546B4428485FF3D82A8FB6014 /* ReusableXibView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87D78FD3461C7778557CD336D281C5DE /* ReusableXibView.swift */; };
45309B726CAF7399389221D37A7FA88F /* ChattoAdditions-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 5A4BF7E99DD1960EA3ACDCE6F29D58BB /* ChattoAdditions-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
45D18C3506CE8BD96646D3B39FBC6F76 /* LiveCameraCaptureSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D4BA8C9BE5991F7B68EF522FA974485 /* LiveCameraCaptureSession.swift */; };
4AF0428C1797C0FF897B033BB8E2E437 /* HorizontalStackScrollView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 23602E61546717BB32B1001CF4C0C31F /* HorizontalStackScrollView.swift */; };
4D77C0792762BB03C6CD691A5CE889A9 /* PhotoMessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 21C55D391FFA4F7C12FD3FBCE56730CC /* PhotoMessageViewModel.swift */; };
49F77123DFB3B7FD4D9DDD7C67186C73 /* PhotoMessageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = B7FB07C7AA705C13B7F2884D8C4E4D52 /* PhotoMessageCollectionViewCell.swift */; };
4ECF71FED09ECC1B133E4DD3D7F4A38C /* ChatInputBarAppearance.swift in Sources */ = {isa = PBXBuildFile; fileRef = D962ECC0437048F7D7A4C3C6AAE31035 /* ChatInputBarAppearance.swift */; };
50D5454AFDA66CD8D9036EB4E83D1E64 /* CircleProgressView.h in Headers */ = {isa = PBXBuildFile; fileRef = 18C3EBB1D3AC8D05F29C297ED6263825 /* CircleProgressView.h */; settings = {ATTRIBUTES = (Public, ); }; };
5809D53211E7E89C360BDC8ADD71F239 /* Chatto.h in Headers */ = {isa = PBXBuildFile; fileRef = 583960CE463732577E956CF9184EA67C /* Chatto.h */; settings = {ATTRIBUTES = (Public, ); }; };
5D2853EEEE32FFB64E14965319FBF5C5 /* TextBubbleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F1FB77529A74C0DD899C8A18CB75257 /* TextBubbleView.swift */; };
5FAC0ABD8D2918EB57A84E0F198D4030 /* PhotoMessageCollectionViewCellDefaultStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2DC506829E1BD918CEAF95D49131A91 /* PhotoMessageCollectionViewCellDefaultStyle.swift */; };
591EE85D488476F8D883449141EF68F7 /* PhotosInputView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F373F61B5991818B936661D9875C53B1 /* PhotosInputView.swift */; };
62D8C0CB89828AD119F644183CC62724 /* BaseChatViewController+AccessoryViewRevealer.swift in Sources */ = {isa = PBXBuildFile; fileRef = E038B19AB22B520CB80E7DFFCB3503E7 /* BaseChatViewController+AccessoryViewRevealer.swift */; };
6D7ECAADB9C321E8AEDA92BCE6DE95E8 /* PhotoMessagePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = E542411D0950654E343A2D7851C92970 /* PhotoMessagePresenter.swift */; };
70C61DFBC673CEBF4D004408F92281C5 /* TextMessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A24C0085020A686E60437C418E269906 /* TextMessageViewModel.swift */; };
72E9144E237152021D82B34DCC0FED13 /* BaseMessageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB0F5037D43B05A9DB436F3D3E86BB28 /* BaseMessageCollectionViewCell.swift */; };
73403F366D44EBBCBFED3406C608205F /* ChatDataSourceProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 916C85EA530CBCCB8F724A71FA02F680 /* ChatDataSourceProtocol.swift */; };
77BB56340B6D674CBEDEE4C6BA2A98A9 /* Observable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2550B3C85E35D204D94E367811EC52C0 /* Observable.swift */; };
7C746545763C5EA5713E99A636263849 /* TextMessageCollectionViewCellDefaultStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34E00521A87A02865E0488C620301682 /* TextMessageCollectionViewCellDefaultStyle.swift */; };
7C7FD8990311F807EB21E1933D5C884C /* CircleProgressView.m in Sources */ = {isa = PBXBuildFile; fileRef = BCFA9B30C03C779DCB556C05A9770D4A /* CircleProgressView.m */; };
7CB8DD915602DFDBE9D4CD0E1C8DD043 /* PhotosChatInputItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7007A799EF57F96DB1EFD516442F5AA /* PhotosChatInputItem.swift */; };
7D6572C5C68008483F32ECA6F44CA389 /* ChatInputBarPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED23E7B0A1292014B48906F6EE243AF6 /* ChatInputBarPresenter.swift */; };
7DA7833161812AF0D3A4E5F43457D328 /* TextMessageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD59E21870EB3606ACE0E8EEA0FCC7F8 /* TextMessageCollectionViewCell.swift */; };
804888FBFF23C28839A22CE0ABB097C0 /* PhotoMessageModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C5B78925BA94E725D1FC4C9EEFA6003 /* PhotoMessageModel.swift */; };
81586206BFFE251DC5310CA247169644 /* ViewDefinitions.swift in Sources */ = {isa = PBXBuildFile; fileRef = E0DA088CD007C7CFA2DF2DB596C91C28 /* ViewDefinitions.swift */; };
781580233B1722B6F0B97824862EBC8F /* TextMessageCollectionViewCellDefaultStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34E00521A87A02865E0488C620301682 /* TextMessageCollectionViewCellDefaultStyle.swift */; };
78A8A8A9FC303D61C5EFB38AB39404F7 /* PhotoMessagePresenterBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = F73B8111E34E605CC9E498D1855EA942 /* PhotoMessagePresenterBuilder.swift */; };
79CC62B742B4179C663102D11F3CC943 /* ExpandableTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 37A84E9E2870FCE59ACEDF9061797CDE /* ExpandableTextView.swift */; };
7C81E85BD61F3CAC45CBF589F37A971B /* PhotosInputCellProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = DEFB37E42F653B9A7D8B23B22EB3D711 /* PhotosInputCellProvider.swift */; };
806AEDC3D19AB302097EB7CE4B7D7051 /* LiveCameraCaptureSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E5A7C9D261B5F3BD42E7E1EDA8D5255 /* LiveCameraCaptureSession.swift */; };
8909D6E6B1B20AEC4C392CF75898FB6A /* PhotosInputCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = FDF87E1E065BD6F2CF0C57A8506B1E61 /* PhotosInputCell.swift */; };
8AF84B9A19DF824F0F7905B1F0296E7B /* DummyChatItemPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1134CCABB280903B07C7FD089896A6DE /* DummyChatItemPresenter.swift */; };
8C63F6FFFABD4F53472FBB0EC60D096C /* ChatItemDecorationAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1E1959B5319EF794F3ABB1FE415C245 /* ChatItemDecorationAttributes.swift */; };
8C63D02FB513A59640E5B5B5C18BED73 /* AnimationUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 743436078577A75BEC9B35AEE26C52C5 /* AnimationUtils.swift */; };
8E4A6B2EC074D0BF04014070935D168F /* TextMessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = A24C0085020A686E60437C418E269906 /* TextMessageViewModel.swift */; };
92CA2D819A6722CE8C4BFC6C5A0885FA /* Text.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 2A0D073A6C8292215CF9C18BDE409BE1 /* Text.xcassets */; };
934FFA57A2BE6C4767F2D458E6526E5F /* BaseChatViewController+Presenters.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63D0F3AFD08F58E45D7E3DB9D93A417A /* BaseChatViewController+Presenters.swift */; };
93CCC98F03CB135ACE345FD19897A7F7 /* ChatInputItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 489B76A63AC8AE96C7D9AB8BE604DB38 /* ChatInputItemView.swift */; };
984FFA77D8F9A1F3939D45A6C6EFCAB0 /* CircleProgressIndicatorView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7079550B11942B45E31DA46B1F5DFE8A /* CircleProgressIndicatorView.m */; };
9D8D73287891EC9DA20C41B5505081BD /* ChatInputBarAppearance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76CB54D5839F21DAD3987AE53089556B /* ChatInputBarAppearance.swift */; };
9B25B13FD68B9A76A49BC7E1B35E3BF6 /* ChatInputItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3FD8DAD0B87FD9ABA8E9D00558D2184 /* ChatInputItem.swift */; };
9FA0B5796B6A3B168936445ADBAC5DC0 /* PhotosInputDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61C1AE5BE0E53CD21F1EF8C2EB1575CC /* PhotosInputDataProvider.swift */; };
A28C3D520632A2C990A37F2BF6695DBF /* PhotoMessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 21C55D391FFA4F7C12FD3FBCE56730CC /* PhotoMessageViewModel.swift */; };
A430569895988B417CA4BDCBB0A01F82 /* BaseChatViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B6A6DCB4EB2ADDA0031AAD703858420 /* BaseChatViewController.swift */; };
A9E4305112713B1638E43CF17B0B7BDD /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 279FD63A8A28081D2937D64AEA1E8B07 /* Foundation.framework */; };
AF19827E7A367528744C7B0E7C0C4249 /* LiveCameraCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4DF1EAE42C2F0564472D174F86388796 /* LiveCameraCell.swift */; };
AF4843DB453997848C5AF58F0D0AF8D2 /* BaseMessageAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 667C1CA3478EA3D81ADADD11F7EFB62C /* BaseMessageAssets.xcassets */; };
AF937EAD0FD4F9788305ABD479F421A4 /* PhotosInputDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA74C6FA4698B48048CEF5C23B4D60FF /* PhotosInputDataProvider.swift */; };
B073E3DCBE4C1EAED2510C69D07A0D3B /* ExpandableTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96828BB92772CE300432BA86B596C687 /* ExpandableTextView.swift */; };
B1577264ED188FAC450DD92F624A2A6E /* PhotosInputCellProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3963A79061EE854E9B5C277DA6221143 /* PhotosInputCellProvider.swift */; };
B208607857E7FBFEF736F7BC87A1A0D1 /* PhotosInputCameraPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 674913DB2D74CF4F973E316A60AD9628 /* PhotosInputCameraPicker.swift */; };
B48B02953333C95136DDA71CA56C9271 /* BaseChatItemPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C09AD9E0C73B2D8A414CFEFF5030462C /* BaseChatItemPresenter.swift */; };
B5D37F384A3F3505794A50C1BCC0A8DD /* TextMessageModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB02ED1F2E01B87195E665A464B6E23E /* TextMessageModel.swift */; };
B67E6BE5A24342E18526582E9288BE85 /* ChattoAdditions-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = FB5030FB81D772482E145FF745310021 /* ChattoAdditions-dummy.m */; };
B7E8E79188BA84E1E762C4DE0D543EFC /* SerialTaskQueue.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADD5EF621D4C97159780FBA704E1E7EE /* SerialTaskQueue.swift */; };
BB474BC0BBC8D55868A7734879874EAF /* BaseMessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96402187D4C05CEFBCD217A5B52D41CE /* BaseMessageViewModel.swift */; };
BBE9C62DA0BE09CF6B2914315A4A8230 /* BaseMessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96402187D4C05CEFBCD217A5B52D41CE /* BaseMessageViewModel.swift */; };
BCCB53C639721ECBEB93D346A0CCA414 /* LiveCameraCellPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 380BA8767A7EAFD5B7417E5B55E420C7 /* LiveCameraCellPresenter.swift */; };
BD8AF22AC632997160133692314E581D /* HorizontalStackScrollView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F506DB6D243F54FD7563985D6BE7334 /* HorizontalStackScrollView.swift */; };
BE8850DE81A809E5E17F8BF4931EBE51 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 279FD63A8A28081D2937D64AEA1E8B07 /* Foundation.framework */; };
BFBDB7A37BDCED468A4A0A21BF6B99A7 /* TextMessagePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 823DB3452D46068B1FF45BA3875BF284 /* TextMessagePresenter.swift */; };
C04C26B6FAB4A003CCCA458F8B3D7ECD /* PhotoMessagePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = E542411D0950654E343A2D7851C92970 /* PhotoMessagePresenter.swift */; };
C306DD02094AA463DB12C469F1C0A651 /* TextChatInputItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF4320FE808278DC03022DB5D1B768F5 /* TextChatInputItem.swift */; };
C627711B2A07994E048D6BD4AD8752FF /* PhotoMessageModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7C5B78925BA94E725D1FC4C9EEFA6003 /* PhotoMessageModel.swift */; };
C6EA71D3DF5D4BE3E76B1409F3CE040A /* CircleProgressIndicator.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = DA69C4842198E41E23867E01B0161612 /* CircleProgressIndicator.xcassets */; };
CB45B378A02452BF55E421E6F1E5A767 /* BaseChatViewControllerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8ABD110D929C9E20294B44F845BFB922 /* BaseChatViewControllerView.swift */; };
CBE207DADBB4588C482B55BCDFB00105 /* CircleIconView.m in Sources */ = {isa = PBXBuildFile; fileRef = D867A670787A7352B3B81ED19FE5A7EF /* CircleIconView.m */; };
CEABA65D428D2569FF9327C1BF40447C /* ChatInputBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = D15E9514B57BB6916F3A257FBF50C801 /* ChatInputBar.swift */; };
CF1BAA3F386F8B9BCDB56A0A2C7DAF71 /* Pods-ChattoApp-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 52D72C6BD70BD003D7302046B549A377 /* Pods-ChattoApp-dummy.m */; };
D0889BB28833D28397EDC14649F72AF5 /* PhotosInputCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75B57C191BD0C6028BA2AA303584083F /* PhotosInputCell.swift */; };
D4124FD097F30F0209CE7B9DC152F11F /* ChatItemPresenterFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6EEA3F083FED1C2E5AB7983A3C052C90 /* ChatItemPresenterFactory.swift */; };
D766AC4D45B72A0D4935EBF9A1FC69DA /* ChatInputButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06C83475FACC9DA6F85D46EAC4F9401A /* ChatInputButton.swift */; };
D7772C94698115F97FB01A06009D3A33 /* BaseChatViewController+Changes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34CEDFF3E3BB11D57B4EC1A0090729F1 /* BaseChatViewController+Changes.swift */; };
DA8E4468CECA8C431AD65CB6CE23F436 /* CircleIconView.m in Sources */ = {isa = PBXBuildFile; fileRef = D867A670787A7352B3B81ED19FE5A7EF /* CircleIconView.m */; };
E0A9BB9609F1CC1DEDCC929354F153CF /* TextBubbleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F1FB77529A74C0DD899C8A18CB75257 /* TextBubbleView.swift */; };
E201884FCED458F243EB082BA594E851 /* ChatInputBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = 64098046251F40CFE18AABFF28F8AF30 /* ChatInputBar.xib */; };
E28FE2A4E00399F9A54B5FA41EAF1F16 /* ChatInputItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE933845F288AD8CAAEE30168C29BD06 /* ChatInputItem.swift */; };
E2121765FE533880298C6A1ACD6BA6F5 /* Observable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2550B3C85E35D204D94E367811EC52C0 /* Observable.swift */; };
E5F6436B67D48BBA9CA19BFBC1EAA147 /* Pods-ChattoApp-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 7980454BC9FD75106EBBF49DA18E603B /* Pods-ChattoApp-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; };
E8CDDB181429B169F6A6C1B2BF68137D /* BaseMessageCollectionViewCellDefaultStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8AA62132C3948993C67F88372C6B584C /* BaseMessageCollectionViewCellDefaultStyle.swift */; };
EA8E841F0868086A8D337AF08DB161B1 /* PhotoMessageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = B7FB07C7AA705C13B7F2884D8C4E4D52 /* PhotoMessageCollectionViewCell.swift */; };
EFD3E370D37D72F0DB74B2FFF5CF04A9 /* TabInputButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28DF8CAFAAEC128ADFC0FC72519C98F9 /* TabInputButton.swift */; };
E670F4264DDD70B8ADEDF4EEFCAD8D38 /* ViewDefinitions.swift in Sources */ = {isa = PBXBuildFile; fileRef = E0DA088CD007C7CFA2DF2DB596C91C28 /* ViewDefinitions.swift */; };
EB39B3CED3CCF952ABDF7DC59599AB48 /* CircleProgressIndicatorView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7079550B11942B45E31DA46B1F5DFE8A /* CircleProgressIndicatorView.m */; };
EDB04B1DE0D30584ED1FF2B421944058 /* ChatItemDecorationAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = A1E1959B5319EF794F3ABB1FE415C245 /* ChatItemDecorationAttributes.swift */; };
EFF30D10A961BF864CDA109C126EA611 /* KeyboardTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73D6E31E7B64CE20AB148334F9924167 /* KeyboardTracker.swift */; };
F0CEF1F9D16163C5AA01E13A4408EA79 /* PhotoMessagePresenterBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = F73B8111E34E605CC9E498D1855EA942 /* PhotoMessagePresenterBuilder.swift */; };
F095B6871132BD9D916AB5994D9029DF /* ChatInputBarPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46E8ECF0392B1FDB1622991DCCC7FF68 /* ChatInputBarPresenter.swift */; };
F438D6015DC57DA1095E60F73CCA5593 /* CollectionChanges.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95A5C1509EF905BC37064FCA49C1F370 /* CollectionChanges.swift */; };
F63138B7C4E6B0FB6DC000F5C6EFFFBE /* TextMessageModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB02ED1F2E01B87195E665A464B6E23E /* TextMessageModel.swift */; };
F5B8D894359621FF541A9048278EDDB1 /* ChatInputItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 43524B018AA81527CC7316392B19DE7F /* ChatInputItemView.swift */; };
F8611136F0A990BA2E4B787B7403E476 /* BaseMessageCollectionViewCellDefaultStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8AA62132C3948993C67F88372C6B584C /* BaseMessageCollectionViewCellDefaultStyle.swift */; };
F8C3BF1D349A5D4246192C691ADBE353 /* PhotoMessageAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 7BFD9A3C31260386847F9B7920E6FC80 /* PhotoMessageAssets.xcassets */; };
FAB8FCD19477EC09866AA38D7614FCE3 /* TextMessagePresenterBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8791A5235C3410F3DFA91D9056947E14 /* TextMessagePresenterBuilder.swift */; };
FAC11312B558B6BEE0283108DFCA3F9C /* ChatItemCompanion.swift in Sources */ = {isa = PBXBuildFile; fileRef = A49DCE4C65CC6D9879C5A6613B44B209 /* ChatItemCompanion.swift */; };
FCCE6163286F15F884BD37E7B0445901 /* PhotosInputView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D016FA4F1D50FC449EAEC236D1E6F954 /* PhotosInputView.swift */; };
FC0A1836688C7A01E48D65F9C2F50686 /* BaseMessagePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 41440E2789F7AA716ED3B33CBC123C19 /* BaseMessagePresenter.swift */; };
FF617A66DF56CFD5A7F3CD5304CD4AB9 /* ChatItemProtocolDefinitions.swift in Sources */ = {isa = PBXBuildFile; fileRef = A99420248122F768351E4721BD2AA923 /* ChatItemProtocolDefinitions.swift */; };
/* End PBXBuildFile section */
@ -122,47 +122,48 @@
/* Begin PBXFileReference section */
000FB7C864AF48F6648E4A153A295524 /* Utils.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Utils.swift; sourceTree = "<group>"; };
0227EB2FD3555F836B505582EC6B9C37 /* PhotoBubbleView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoBubbleView.swift; sourceTree = "<group>"; };
02D1546D844B52275BCB5F87AECC0D31 /* LiveCameraCellPresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LiveCameraCellPresenter.swift; sourceTree = "<group>"; };
0413BC0391BDB6808FB3CE89AC990D50 /* TextChatInputItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextChatInputItem.swift; sourceTree = "<group>"; };
06C83475FACC9DA6F85D46EAC4F9401A /* ChatInputButton.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatInputButton.swift; sourceTree = "<group>"; };
0E8CD230BF38884D8498CDDAC2BD0AE7 /* Chatto.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Chatto.framework; sourceTree = BUILT_PRODUCTS_DIR; };
1134CCABB280903B07C7FD089896A6DE /* DummyChatItemPresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DummyChatItemPresenter.swift; sourceTree = "<group>"; };
18C3EBB1D3AC8D05F29C297ED6263825 /* CircleProgressView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = CircleProgressView.h; sourceTree = "<group>"; };
1D4BA8C9BE5991F7B68EF522FA974485 /* LiveCameraCaptureSession.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LiveCameraCaptureSession.swift; sourceTree = "<group>"; };
1E5A7C9D261B5F3BD42E7E1EDA8D5255 /* LiveCameraCaptureSession.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LiveCameraCaptureSession.swift; sourceTree = "<group>"; };
21C55D391FFA4F7C12FD3FBCE56730CC /* PhotoMessageViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoMessageViewModel.swift; sourceTree = "<group>"; };
230194971784138EFDD356DD09D531CB /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
23602E61546717BB32B1001CF4C0C31F /* HorizontalStackScrollView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = HorizontalStackScrollView.swift; sourceTree = "<group>"; };
2370201D6DC465D5C439B760902F92D7 /* PhotosInputViewItemSizeCalculator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputViewItemSizeCalculator.swift; sourceTree = "<group>"; };
2550B3C85E35D204D94E367811EC52C0 /* Observable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Observable.swift; sourceTree = "<group>"; };
279FD63A8A28081D2937D64AEA1E8B07 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.3.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; };
28DF8CAFAAEC128ADFC0FC72519C98F9 /* TabInputButton.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TabInputButton.swift; sourceTree = "<group>"; };
2A0D073A6C8292215CF9C18BDE409BE1 /* Text.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; path = Text.xcassets; sourceTree = "<group>"; };
2CB5C8F645CE3CFC12C02C1148D30074 /* ReusableXibView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ReusableXibView.swift; sourceTree = "<group>"; };
2F506DB6D243F54FD7563985D6BE7334 /* HorizontalStackScrollView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = HorizontalStackScrollView.swift; sourceTree = "<group>"; };
34CEDFF3E3BB11D57B4EC1A0090729F1 /* BaseChatViewController+Changes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "BaseChatViewController+Changes.swift"; sourceTree = "<group>"; };
34E00521A87A02865E0488C620301682 /* TextMessageCollectionViewCellDefaultStyle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextMessageCollectionViewCellDefaultStyle.swift; sourceTree = "<group>"; };
36C43008BB069478668679256AAB705E /* BaseChatViewController+Scrolling.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "BaseChatViewController+Scrolling.swift"; sourceTree = "<group>"; };
3963A79061EE854E9B5C277DA6221143 /* PhotosInputCellProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputCellProvider.swift; sourceTree = "<group>"; };
37A84E9E2870FCE59ACEDF9061797CDE /* ExpandableTextView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ExpandableTextView.swift; sourceTree = "<group>"; };
380BA8767A7EAFD5B7417E5B55E420C7 /* LiveCameraCellPresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LiveCameraCellPresenter.swift; sourceTree = "<group>"; };
3B6A6DCB4EB2ADDA0031AAD703858420 /* BaseChatViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseChatViewController.swift; sourceTree = "<group>"; };
41440E2789F7AA716ED3B33CBC123C19 /* BaseMessagePresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseMessagePresenter.swift; sourceTree = "<group>"; };
41A9B2AAC21030F2945A94BC7CBD1423 /* Chatto-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Chatto-dummy.m"; sourceTree = "<group>"; };
42D8BFA51D1A4D7997DDA3DAEEC7BB3A /* Chatto-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Chatto-umbrella.h"; sourceTree = "<group>"; };
43524B018AA81527CC7316392B19DE7F /* ChatInputItemView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatInputItemView.swift; sourceTree = "<group>"; };
46482F96934733214320322EC2918D88 /* Pods-ChattoApp.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = "Pods-ChattoApp.modulemap"; sourceTree = "<group>"; };
489B76A63AC8AE96C7D9AB8BE604DB38 /* ChatInputItemView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatInputItemView.swift; sourceTree = "<group>"; };
46E8ECF0392B1FDB1622991DCCC7FF68 /* ChatInputBarPresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatInputBarPresenter.swift; sourceTree = "<group>"; };
4DF1EAE42C2F0564472D174F86388796 /* LiveCameraCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LiveCameraCell.swift; sourceTree = "<group>"; };
52C055C3540379E17AC38E1858CAE6A7 /* ChatInputBar.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatInputBar.swift; sourceTree = "<group>"; };
52D72C6BD70BD003D7302046B549A377 /* Pods-ChattoApp-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ChattoApp-dummy.m"; sourceTree = "<group>"; };
583960CE463732577E956CF9184EA67C /* Chatto.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = Chatto.h; sourceTree = "<group>"; };
5A4BF7E99DD1960EA3ACDCE6F29D58BB /* ChattoAdditions-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ChattoAdditions-umbrella.h"; sourceTree = "<group>"; };
5FDBD530402089BF4D7367FDF816900A /* AccessoryViewRevealer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AccessoryViewRevealer.swift; sourceTree = "<group>"; };
61C1AE5BE0E53CD21F1EF8C2EB1575CC /* PhotosInputDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputDataProvider.swift; sourceTree = "<group>"; };
63D0F3AFD08F58E45D7E3DB9D93A417A /* BaseChatViewController+Presenters.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "BaseChatViewController+Presenters.swift"; sourceTree = "<group>"; };
64098046251F40CFE18AABFF28F8AF30 /* ChatInputBar.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; path = ChatInputBar.xib; sourceTree = "<group>"; };
664656BDB7A47AC9ECBA2D58EB550D51 /* Chatto.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = Chatto.modulemap; sourceTree = "<group>"; };
667C1CA3478EA3D81ADADD11F7EFB62C /* BaseMessageAssets.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; path = BaseMessageAssets.xcassets; sourceTree = "<group>"; };
674913DB2D74CF4F973E316A60AD9628 /* PhotosInputCameraPicker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputCameraPicker.swift; sourceTree = "<group>"; };
6DAEAB5DAC1307E56BDF15E9DDC72623 /* Pods_ChattoApp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ChattoApp.framework; sourceTree = BUILT_PRODUCTS_DIR; };
6EEA3F083FED1C2E5AB7983A3C052C90 /* ChatItemPresenterFactory.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatItemPresenterFactory.swift; sourceTree = "<group>"; };
7079550B11942B45E31DA46B1F5DFE8A /* CircleProgressIndicatorView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = CircleProgressIndicatorView.m; sourceTree = "<group>"; };
732A644492E88B1CD83519293AD7D974 /* PhotosInputCameraPicker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputCameraPicker.swift; sourceTree = "<group>"; };
73D6E31E7B64CE20AB148334F9924167 /* KeyboardTracker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = KeyboardTracker.swift; sourceTree = "<group>"; };
743436078577A75BEC9B35AEE26C52C5 /* AnimationUtils.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AnimationUtils.swift; sourceTree = "<group>"; };
75A4D0F8C860BD4281E8AED08E680907 /* ChattoAdditions.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ChattoAdditions.framework; sourceTree = BUILT_PRODUCTS_DIR; };
75B57C191BD0C6028BA2AA303584083F /* PhotosInputCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputCell.swift; sourceTree = "<group>"; };
76CB54D5839F21DAD3987AE53089556B /* ChatInputBarAppearance.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatInputBarAppearance.swift; sourceTree = "<group>"; };
7980454BC9FD75106EBBF49DA18E603B /* Pods-ChattoApp-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ChattoApp-umbrella.h"; sourceTree = "<group>"; };
7BFD9A3C31260386847F9B7920E6FC80 /* PhotoMessageAssets.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; path = PhotoMessageAssets.xcassets; sourceTree = "<group>"; };
7C5B78925BA94E725D1FC4C9EEFA6003 /* PhotoMessageModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoMessageModel.swift; sourceTree = "<group>"; };
@ -170,7 +171,6 @@
826512851733EFA0000BAA2070956375 /* ChatCollectionViewLayout.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatCollectionViewLayout.swift; sourceTree = "<group>"; };
84AE77E2DC8C81FA8C4ABB08CEF0A2C4 /* ReadOnlyOrderedDictionary.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ReadOnlyOrderedDictionary.swift; sourceTree = "<group>"; };
8791A5235C3410F3DFA91D9056947E14 /* TextMessagePresenterBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextMessagePresenterBuilder.swift; sourceTree = "<group>"; };
87D78FD3461C7778557CD336D281C5DE /* ReusableXibView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ReusableXibView.swift; sourceTree = "<group>"; };
8AA62132C3948993C67F88372C6B584C /* BaseMessageCollectionViewCellDefaultStyle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseMessageCollectionViewCellDefaultStyle.swift; sourceTree = "<group>"; };
8ABD110D929C9E20294B44F845BFB922 /* BaseChatViewControllerView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseChatViewControllerView.swift; sourceTree = "<group>"; };
8F1FB77529A74C0DD899C8A18CB75257 /* TextBubbleView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextBubbleView.swift; sourceTree = "<group>"; };
@ -179,7 +179,6 @@
95A5C1509EF905BC37064FCA49C1F370 /* CollectionChanges.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CollectionChanges.swift; sourceTree = "<group>"; };
96402187D4C05CEFBCD217A5B52D41CE /* BaseMessageViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseMessageViewModel.swift; sourceTree = "<group>"; };
9661D8308C0146658FC05299FF59AA85 /* Pods-ChattoApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ChattoApp.debug.xcconfig"; sourceTree = "<group>"; };
96828BB92772CE300432BA86B596C687 /* ExpandableTextView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ExpandableTextView.swift; sourceTree = "<group>"; };
9A81A00458F0E377DDA187019D579795 /* ChattoAdditions.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = ChattoAdditions.h; sourceTree = "<group>"; };
A1E1959B5319EF794F3ABB1FE415C245 /* ChatItemDecorationAttributes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatItemDecorationAttributes.swift; sourceTree = "<group>"; };
A210C8B9CA993A2C831727CE2515A3DE /* ChattoAdditions-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ChattoAdditions-prefix.pch"; sourceTree = "<group>"; };
@ -196,34 +195,35 @@
B20598F484478DFEE1B31B07C6FA131F /* Pods-ChattoApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ChattoApp.release.xcconfig"; sourceTree = "<group>"; };
B2DC506829E1BD918CEAF95D49131A91 /* PhotoMessageCollectionViewCellDefaultStyle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoMessageCollectionViewCellDefaultStyle.swift; sourceTree = "<group>"; };
B7FB07C7AA705C13B7F2884D8C4E4D52 /* PhotoMessageCollectionViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoMessageCollectionViewCell.swift; sourceTree = "<group>"; };
BA74C6FA4698B48048CEF5C23B4D60FF /* PhotosInputDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputDataProvider.swift; sourceTree = "<group>"; };
BB0F5037D43B05A9DB436F3D3E86BB28 /* BaseMessageCollectionViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseMessageCollectionViewCell.swift; sourceTree = "<group>"; };
BCFA9B30C03C779DCB556C05A9770D4A /* CircleProgressView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = CircleProgressView.m; sourceTree = "<group>"; };
BD59E21870EB3606ACE0E8EEA0FCC7F8 /* TextMessageCollectionViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextMessageCollectionViewCell.swift; sourceTree = "<group>"; };
C09AD9E0C73B2D8A414CFEFF5030462C /* BaseChatItemPresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseChatItemPresenter.swift; sourceTree = "<group>"; };
C117BD8C68DD05EFED4E96C19B341962 /* Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
C5CB3BCEEF59DC9F22F70C7D1B1E98F5 /* Pods-ChattoApp-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ChattoApp-acknowledgements.plist"; sourceTree = "<group>"; };
CE933845F288AD8CAAEE30168C29BD06 /* ChatInputItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatInputItem.swift; sourceTree = "<group>"; };
D016FA4F1D50FC449EAEC236D1E6F954 /* PhotosInputView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputView.swift; sourceTree = "<group>"; };
D0A636ED63D4950987B5410B6B50F1B4 /* Chatto.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Chatto.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D11FBAE60A944D397A073D8321601E3F /* CircleIconView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = CircleIconView.h; sourceTree = "<group>"; };
D15E9514B57BB6916F3A257FBF50C801 /* ChatInputBar.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatInputBar.swift; sourceTree = "<group>"; };
D2B2293D7D418420AB03F0584A71EB69 /* Photos.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; path = Photos.xcassets; sourceTree = "<group>"; };
D40C101FEB1829F37545CC0A5A0D8401 /* PhotosChatInputItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosChatInputItem.swift; sourceTree = "<group>"; };
D867A670787A7352B3B81ED19FE5A7EF /* CircleIconView.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = CircleIconView.m; sourceTree = "<group>"; };
D962ECC0437048F7D7A4C3C6AAE31035 /* ChatInputBarAppearance.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatInputBarAppearance.swift; sourceTree = "<group>"; };
DA69C4842198E41E23867E01B0161612 /* CircleProgressIndicator.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; path = CircleProgressIndicator.xcassets; sourceTree = "<group>"; };
DD7E5A5969A01E3A504D0135C6F25CFF /* ChattoAdditions.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ChattoAdditions.xcconfig; sourceTree = "<group>"; };
DEFB37E42F653B9A7D8B23B22EB3D711 /* PhotosInputCellProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputCellProvider.swift; sourceTree = "<group>"; };
E038B19AB22B520CB80E7DFFCB3503E7 /* BaseChatViewController+AccessoryViewRevealer.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "BaseChatViewController+AccessoryViewRevealer.swift"; sourceTree = "<group>"; };
E0DA088CD007C7CFA2DF2DB596C91C28 /* ViewDefinitions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ViewDefinitions.swift; sourceTree = "<group>"; };
E3FD8DAD0B87FD9ABA8E9D00558D2184 /* ChatInputItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatInputItem.swift; sourceTree = "<group>"; };
E542411D0950654E343A2D7851C92970 /* PhotoMessagePresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoMessagePresenter.swift; sourceTree = "<group>"; };
E9121558403FFC354D652B3E4185008E /* CircleProgressIndicatorView.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = CircleProgressIndicatorView.h; sourceTree = "<group>"; };
E94E7905DA30FCDE6EE3BAEB5579CC80 /* Pods-ChattoApp-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ChattoApp-acknowledgements.markdown"; sourceTree = "<group>"; };
EBE6D840A010DB7D81CE59C340CC978E /* LiveCameraCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LiveCameraCell.swift; sourceTree = "<group>"; };
ED23E7B0A1292014B48906F6EE243AF6 /* ChatInputBarPresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatInputBarPresenter.swift; sourceTree = "<group>"; };
F7007A799EF57F96DB1EFD516442F5AA /* PhotosChatInputItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosChatInputItem.swift; sourceTree = "<group>"; };
F373F61B5991818B936661D9875C53B1 /* PhotosInputView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputView.swift; sourceTree = "<group>"; };
F73B8111E34E605CC9E498D1855EA942 /* PhotoMessagePresenterBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoMessagePresenterBuilder.swift; sourceTree = "<group>"; };
FA90BE515B2095FA2AC5C54FEB9ED51D /* BaseMessageModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseMessageModel.swift; sourceTree = "<group>"; };
FB5030FB81D772482E145FF745310021 /* ChattoAdditions-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "ChattoAdditions-dummy.m"; sourceTree = "<group>"; };
FC4E873D2874D2207B97F63437C9827E /* ChattoAdditions.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = "sourcecode.module-map"; path = ChattoAdditions.modulemap; sourceTree = "<group>"; };
FD9B68BC69CA3962619E10C97859C6A9 /* PhotosInputViewItemSizeCalculator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputViewItemSizeCalculator.swift; sourceTree = "<group>"; };
FDF87E1E065BD6F2CF0C57A8506B1E61 /* PhotosInputCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputCell.swift; sourceTree = "<group>"; };
FF4320FE808278DC03022DB5D1B768F5 /* TextChatInputItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextChatInputItem.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@ -407,14 +407,6 @@
path = CircleProgressIndicatorView;
sourceTree = "<group>";
};
60EFD5ECF54E5B06D8B5C9AD5060D261 /* Text */ = {
isa = PBXGroup;
children = (
0413BC0391BDB6808FB3CE89AC990D50 /* TextChatInputItem.swift */,
);
path = Text;
sourceTree = "<group>";
};
6C5B434C2A4737145DBA9318EF0B164D /* Input */ = {
isa = PBXGroup;
children = (
@ -433,24 +425,6 @@
path = ChattoAdditions;
sourceTree = "<group>";
};
70B906F1445A07F8E6E504B7BCCDB71E /* Input */ = {
isa = PBXGroup;
children = (
D15E9514B57BB6916F3A257FBF50C801 /* ChatInputBar.swift */,
76CB54D5839F21DAD3987AE53089556B /* ChatInputBarAppearance.swift */,
ED23E7B0A1292014B48906F6EE243AF6 /* ChatInputBarPresenter.swift */,
CE933845F288AD8CAAEE30168C29BD06 /* ChatInputItem.swift */,
489B76A63AC8AE96C7D9AB8BE604DB38 /* ChatInputItemView.swift */,
96828BB92772CE300432BA86B596C687 /* ExpandableTextView.swift */,
23602E61546717BB32B1001CF4C0C31F /* HorizontalStackScrollView.swift */,
87D78FD3461C7778557CD336D281C5DE /* ReusableXibView.swift */,
28DF8CAFAAEC128ADFC0FC72519C98F9 /* TabInputButton.swift */,
B478721946E5C4E7633BD993A7EEEED9 /* Photos */,
60EFD5ECF54E5B06D8B5C9AD5060D261 /* Text */,
);
path = Input;
sourceTree = "<group>";
};
742D6CA01A399A17E78C035260FBAB44 /* Source */ = {
isa = PBXGroup;
children = (
@ -463,6 +437,24 @@
path = Source;
sourceTree = "<group>";
};
786B0B231F5BE9DAC24C172DAC6B48DA /* Input */ = {
isa = PBXGroup;
children = (
52C055C3540379E17AC38E1858CAE6A7 /* ChatInputBar.swift */,
D962ECC0437048F7D7A4C3C6AAE31035 /* ChatInputBarAppearance.swift */,
46E8ECF0392B1FDB1622991DCCC7FF68 /* ChatInputBarPresenter.swift */,
06C83475FACC9DA6F85D46EAC4F9401A /* ChatInputButton.swift */,
E3FD8DAD0B87FD9ABA8E9D00558D2184 /* ChatInputItem.swift */,
43524B018AA81527CC7316392B19DE7F /* ChatInputItemView.swift */,
37A84E9E2870FCE59ACEDF9061797CDE /* ExpandableTextView.swift */,
2F506DB6D243F54FD7563985D6BE7334 /* HorizontalStackScrollView.swift */,
2CB5C8F645CE3CFC12C02C1148D30074 /* ReusableXibView.swift */,
C5203CBC3DF9A6243C27DF040C03CCFF /* Photos */,
85215F1EB8D576FADB7C08BA9AAF800A /* Text */,
);
path = Input;
sourceTree = "<group>";
};
79B1CDC1E941014843576BEAC11675E4 /* UI Components */ = {
isa = PBXGroup;
children = (
@ -502,6 +494,14 @@
name = Frameworks;
sourceTree = "<group>";
};
85215F1EB8D576FADB7C08BA9AAF800A /* Text */ = {
isa = PBXGroup;
children = (
FF4320FE808278DC03022DB5D1B768F5 /* TextChatInputItem.swift */,
);
path = Text;
sourceTree = "<group>";
};
8E746D60240566BFD95B5FDB0589F010 /* Text */ = {
isa = PBXGroup;
children = (
@ -576,23 +576,6 @@
path = ChatController;
sourceTree = "<group>";
};
B478721946E5C4E7633BD993A7EEEED9 /* Photos */ = {
isa = PBXGroup;
children = (
1D4BA8C9BE5991F7B68EF522FA974485 /* LiveCameraCaptureSession.swift */,
EBE6D840A010DB7D81CE59C340CC978E /* LiveCameraCell.swift */,
02D1546D844B52275BCB5F87AECC0D31 /* LiveCameraCellPresenter.swift */,
F7007A799EF57F96DB1EFD516442F5AA /* PhotosChatInputItem.swift */,
732A644492E88B1CD83519293AD7D974 /* PhotosInputCameraPicker.swift */,
75B57C191BD0C6028BA2AA303584083F /* PhotosInputCell.swift */,
3963A79061EE854E9B5C277DA6221143 /* PhotosInputCellProvider.swift */,
BA74C6FA4698B48048CEF5C23B4D60FF /* PhotosInputDataProvider.swift */,
D016FA4F1D50FC449EAEC236D1E6F954 /* PhotosInputView.swift */,
2370201D6DC465D5C439B760902F92D7 /* PhotosInputViewItemSizeCalculator.swift */,
);
path = Photos;
sourceTree = "<group>";
};
B8B137A83EFF56FCCA70F4A9A9AEEAA6 /* Source */ = {
isa = PBXGroup;
children = (
@ -601,7 +584,7 @@
2550B3C85E35D204D94E367811EC52C0 /* Observable.swift */,
000FB7C864AF48F6648E4A153A295524 /* Utils.swift */,
51C56198A672CB261F474716B1E070EF /* Chat Items */,
70B906F1445A07F8E6E504B7BCCDB71E /* Input */,
786B0B231F5BE9DAC24C172DAC6B48DA /* Input */,
79B1CDC1E941014843576BEAC11675E4 /* UI Components */,
);
path = Source;
@ -635,6 +618,23 @@
path = Photos;
sourceTree = "<group>";
};
C5203CBC3DF9A6243C27DF040C03CCFF /* Photos */ = {
isa = PBXGroup;
children = (
1E5A7C9D261B5F3BD42E7E1EDA8D5255 /* LiveCameraCaptureSession.swift */,
4DF1EAE42C2F0564472D174F86388796 /* LiveCameraCell.swift */,
380BA8767A7EAFD5B7417E5B55E420C7 /* LiveCameraCellPresenter.swift */,
D40C101FEB1829F37545CC0A5A0D8401 /* PhotosChatInputItem.swift */,
674913DB2D74CF4F973E316A60AD9628 /* PhotosInputCameraPicker.swift */,
FDF87E1E065BD6F2CF0C57A8506B1E61 /* PhotosInputCell.swift */,
DEFB37E42F653B9A7D8B23B22EB3D711 /* PhotosInputCellProvider.swift */,
61C1AE5BE0E53CD21F1EF8C2EB1575CC /* PhotosInputDataProvider.swift */,
F373F61B5991818B936661D9875C53B1 /* PhotosInputView.swift */,
FD9B68BC69CA3962619E10C97859C6A9 /* PhotosInputViewItemSizeCalculator.swift */,
);
path = Photos;
sourceTree = "<group>";
};
C8AA06B37E436A08ED9351B826B58DCC /* ChattoAdditions */ = {
isa = PBXGroup;
children = (
@ -745,7 +745,7 @@
isa = PBXNativeTarget;
buildConfigurationList = CCA1D230BB5775F9163D7A6D19D74937 /* Build configuration list for PBXNativeTarget "ChattoAdditions" */;
buildPhases = (
B02E0AC1760D82A068AAAD0F876B74D0 /* Sources */,
0A5EC6B1AC81B76B3934B517720449A7 /* Sources */,
29EFA2DFFF8E9300D51840B4029D6E1C /* Frameworks */,
4795CEEE6F7705EFFCA461607F72B457 /* Headers */,
FD236D8BA68DF9ECCE47F71F99E69D0C /* Resources */,
@ -841,6 +841,61 @@
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
0A5EC6B1AC81B76B3934B517720449A7 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
8C63D02FB513A59640E5B5B5C18BED73 /* AnimationUtils.swift in Sources */,
034B2EE392455146794D70998432AE56 /* BaseMessageCollectionViewCell.swift in Sources */,
F8611136F0A990BA2E4B787B7403E476 /* BaseMessageCollectionViewCellDefaultStyle.swift in Sources */,
06400FD5FC74FCE01C3CF3C2090C5EB4 /* BaseMessageModel.swift in Sources */,
FC0A1836688C7A01E48D65F9C2F50686 /* BaseMessagePresenter.swift in Sources */,
BBE9C62DA0BE09CF6B2914315A4A8230 /* BaseMessageViewModel.swift in Sources */,
01E93E1EA50DB8570AC3586820F31BC6 /* ChatInputBar.swift in Sources */,
4ECF71FED09ECC1B133E4DD3D7F4A38C /* ChatInputBarAppearance.swift in Sources */,
F095B6871132BD9D916AB5994D9029DF /* ChatInputBarPresenter.swift in Sources */,
D766AC4D45B72A0D4935EBF9A1FC69DA /* ChatInputButton.swift in Sources */,
9B25B13FD68B9A76A49BC7E1B35E3BF6 /* ChatInputItem.swift in Sources */,
F5B8D894359621FF541A9048278EDDB1 /* ChatInputItemView.swift in Sources */,
EDB04B1DE0D30584ED1FF2B421944058 /* ChatItemDecorationAttributes.swift in Sources */,
B67E6BE5A24342E18526582E9288BE85 /* ChattoAdditions-dummy.m in Sources */,
DA8E4468CECA8C431AD65CB6CE23F436 /* CircleIconView.m in Sources */,
EB39B3CED3CCF952ABDF7DC59599AB48 /* CircleProgressIndicatorView.m in Sources */,
3F0591D2B4FA329A9F0D4553C6AD9055 /* CircleProgressView.m in Sources */,
79CC62B742B4179C663102D11F3CC943 /* ExpandableTextView.swift in Sources */,
BD8AF22AC632997160133692314E581D /* HorizontalStackScrollView.swift in Sources */,
806AEDC3D19AB302097EB7CE4B7D7051 /* LiveCameraCaptureSession.swift in Sources */,
AF19827E7A367528744C7B0E7C0C4249 /* LiveCameraCell.swift in Sources */,
BCCB53C639721ECBEB93D346A0CCA414 /* LiveCameraCellPresenter.swift in Sources */,
E2121765FE533880298C6A1ACD6BA6F5 /* Observable.swift in Sources */,
095F96B5E50783EC1FA1F66080E13FD8 /* PhotoBubbleView.swift in Sources */,
49F77123DFB3B7FD4D9DDD7C67186C73 /* PhotoMessageCollectionViewCell.swift in Sources */,
13F8520B4A74A0DF1814EC3E7631ED5E /* PhotoMessageCollectionViewCellDefaultStyle.swift in Sources */,
C627711B2A07994E048D6BD4AD8752FF /* PhotoMessageModel.swift in Sources */,
C04C26B6FAB4A003CCCA458F8B3D7ECD /* PhotoMessagePresenter.swift in Sources */,
78A8A8A9FC303D61C5EFB38AB39404F7 /* PhotoMessagePresenterBuilder.swift in Sources */,
A28C3D520632A2C990A37F2BF6695DBF /* PhotoMessageViewModel.swift in Sources */,
2C3E0636694BF060ABEF75605A194E09 /* PhotosChatInputItem.swift in Sources */,
B208607857E7FBFEF736F7BC87A1A0D1 /* PhotosInputCameraPicker.swift in Sources */,
8909D6E6B1B20AEC4C392CF75898FB6A /* PhotosInputCell.swift in Sources */,
7C81E85BD61F3CAC45CBF589F37A971B /* PhotosInputCellProvider.swift in Sources */,
9FA0B5796B6A3B168936445ADBAC5DC0 /* PhotosInputDataProvider.swift in Sources */,
591EE85D488476F8D883449141EF68F7 /* PhotosInputView.swift in Sources */,
25079A03892F3F54E7CEF4BB845FD112 /* PhotosInputViewItemSizeCalculator.swift in Sources */,
2B2F17A7FA7644C51D55F3C820FF0203 /* ReusableXibView.swift in Sources */,
E0A9BB9609F1CC1DEDCC929354F153CF /* TextBubbleView.swift in Sources */,
C306DD02094AA463DB12C469F1C0A651 /* TextChatInputItem.swift in Sources */,
053A27FC7E1C57B21A354946DA2E7C2C /* TextMessageCollectionViewCell.swift in Sources */,
781580233B1722B6F0B97824862EBC8F /* TextMessageCollectionViewCellDefaultStyle.swift in Sources */,
B5D37F384A3F3505794A50C1BCC0A8DD /* TextMessageModel.swift in Sources */,
2E617137FB59C06301AD051862FB2415 /* TextMessagePresenter.swift in Sources */,
FAB8FCD19477EC09866AA38D7614FCE3 /* TextMessagePresenterBuilder.swift in Sources */,
8E4A6B2EC074D0BF04014070935D168F /* TextMessageViewModel.swift in Sources */,
09C342D156E4A8AF4FDE1207FBC0127C /* Utils.swift in Sources */,
E670F4264DDD70B8ADEDF4EEFCAD8D38 /* ViewDefinitions.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
38B5DE4B201763FB38E57E5AF2D9D7A4 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
@ -849,61 +904,6 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
B02E0AC1760D82A068AAAD0F876B74D0 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
262A6513D1657D4A1B7B972DFA53203F /* AnimationUtils.swift in Sources */,
72E9144E237152021D82B34DCC0FED13 /* BaseMessageCollectionViewCell.swift in Sources */,
E8CDDB181429B169F6A6C1B2BF68137D /* BaseMessageCollectionViewCellDefaultStyle.swift in Sources */,
316B2755553AC8D05635269C81F71788 /* BaseMessageModel.swift in Sources */,
3D86C4CD2FCFB6408F0C99DB27019632 /* BaseMessagePresenter.swift in Sources */,
BB474BC0BBC8D55868A7734879874EAF /* BaseMessageViewModel.swift in Sources */,
CEABA65D428D2569FF9327C1BF40447C /* ChatInputBar.swift in Sources */,
9D8D73287891EC9DA20C41B5505081BD /* ChatInputBarAppearance.swift in Sources */,
7D6572C5C68008483F32ECA6F44CA389 /* ChatInputBarPresenter.swift in Sources */,
E28FE2A4E00399F9A54B5FA41EAF1F16 /* ChatInputItem.swift in Sources */,
93CCC98F03CB135ACE345FD19897A7F7 /* ChatInputItemView.swift in Sources */,
8C63F6FFFABD4F53472FBB0EC60D096C /* ChatItemDecorationAttributes.swift in Sources */,
358ADC7D2C63C2E11E3228AA4FA11B8C /* ChattoAdditions-dummy.m in Sources */,
CBE207DADBB4588C482B55BCDFB00105 /* CircleIconView.m in Sources */,
984FFA77D8F9A1F3939D45A6C6EFCAB0 /* CircleProgressIndicatorView.m in Sources */,
7C7FD8990311F807EB21E1933D5C884C /* CircleProgressView.m in Sources */,
B073E3DCBE4C1EAED2510C69D07A0D3B /* ExpandableTextView.swift in Sources */,
4AF0428C1797C0FF897B033BB8E2E437 /* HorizontalStackScrollView.swift in Sources */,
45D18C3506CE8BD96646D3B39FBC6F76 /* LiveCameraCaptureSession.swift in Sources */,
3B92397C70CB35A8B9D8824F1309C3C1 /* LiveCameraCell.swift in Sources */,
3C7BA7940E5818B28EB954384BBCAE68 /* LiveCameraCellPresenter.swift in Sources */,
77BB56340B6D674CBEDEE4C6BA2A98A9 /* Observable.swift in Sources */,
156EE272A2A1E0F74E42589929B49A68 /* PhotoBubbleView.swift in Sources */,
EA8E841F0868086A8D337AF08DB161B1 /* PhotoMessageCollectionViewCell.swift in Sources */,
5FAC0ABD8D2918EB57A84E0F198D4030 /* PhotoMessageCollectionViewCellDefaultStyle.swift in Sources */,
804888FBFF23C28839A22CE0ABB097C0 /* PhotoMessageModel.swift in Sources */,
6D7ECAADB9C321E8AEDA92BCE6DE95E8 /* PhotoMessagePresenter.swift in Sources */,
F0CEF1F9D16163C5AA01E13A4408EA79 /* PhotoMessagePresenterBuilder.swift in Sources */,
4D77C0792762BB03C6CD691A5CE889A9 /* PhotoMessageViewModel.swift in Sources */,
7CB8DD915602DFDBE9D4CD0E1C8DD043 /* PhotosChatInputItem.swift in Sources */,
0BB7999EEF829FE7A2B51587CB5D5E92 /* PhotosInputCameraPicker.swift in Sources */,
D0889BB28833D28397EDC14649F72AF5 /* PhotosInputCell.swift in Sources */,
B1577264ED188FAC450DD92F624A2A6E /* PhotosInputCellProvider.swift in Sources */,
AF937EAD0FD4F9788305ABD479F421A4 /* PhotosInputDataProvider.swift in Sources */,
FCCE6163286F15F884BD37E7B0445901 /* PhotosInputView.swift in Sources */,
410BB0FA455A528DF88C1AE845BEB355 /* PhotosInputViewItemSizeCalculator.swift in Sources */,
428B1F5546B4428485FF3D82A8FB6014 /* ReusableXibView.swift in Sources */,
EFD3E370D37D72F0DB74B2FFF5CF04A9 /* TabInputButton.swift in Sources */,
5D2853EEEE32FFB64E14965319FBF5C5 /* TextBubbleView.swift in Sources */,
11BB41B18C825E153D68A471D9AD991C /* TextChatInputItem.swift in Sources */,
7DA7833161812AF0D3A4E5F43457D328 /* TextMessageCollectionViewCell.swift in Sources */,
7C746545763C5EA5713E99A636263849 /* TextMessageCollectionViewCellDefaultStyle.swift in Sources */,
F63138B7C4E6B0FB6DC000F5C6EFFFBE /* TextMessageModel.swift in Sources */,
BFBDB7A37BDCED468A4A0A21BF6B99A7 /* TextMessagePresenter.swift in Sources */,
4103B8022059933F9550B15C7F0794EB /* TextMessagePresenterBuilder.swift in Sources */,
70C61DFBC673CEBF4D004408F92281C5 /* TextMessageViewModel.swift in Sources */,
19580DBE73946CF16BB8D08E0D167625 /* Utils.swift in Sources */,
81586206BFFE251DC5310CA247169644 /* ViewDefinitions.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
C6E29A0F9636168E4180EAF3DE38601F /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
@ -1081,7 +1081,6 @@
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
ONLY_ACTIVE_ARCH = YES;
STRIP_INSTALLED_PRODUCT = NO;
SWIFT_VERSION = 2.3;
SYMROOT = "${SRCROOT}/../build";
};
name = Debug;
@ -1152,7 +1151,6 @@
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
STRIP_INSTALLED_PRODUCT = NO;
SWIFT_VERSION = 2.3;
SYMROOT = "${SRCROOT}/../build";
VALIDATE_PRODUCT = YES;
};

View File

@ -1,80 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0730"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "5F5B5F6ED63BBEB605BA2AC86BAB8A3B"
BuildableName = "Chatto.framework"
BlueprintName = "Chatto"
ReferencedContainer = "container:Pods.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "5F5B5F6ED63BBEB605BA2AC86BAB8A3B"
BuildableName = "Chatto.framework"
BlueprintName = "Chatto"
ReferencedContainer = "container:Pods.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "5F5B5F6ED63BBEB605BA2AC86BAB8A3B"
BuildableName = "Chatto.framework"
BlueprintName = "Chatto"
ReferencedContainer = "container:Pods.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@ -1,80 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0730"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "01D871F062AE8A06B985459D0DEEB752"
BuildableName = "ChattoAdditions.framework"
BlueprintName = "ChattoAdditions"
ReferencedContainer = "container:Pods.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "01D871F062AE8A06B985459D0DEEB752"
BuildableName = "ChattoAdditions.framework"
BlueprintName = "ChattoAdditions"
ReferencedContainer = "container:Pods.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "01D871F062AE8A06B985459D0DEEB752"
BuildableName = "ChattoAdditions.framework"
BlueprintName = "ChattoAdditions"
ReferencedContainer = "container:Pods.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>