From a3da4bc8b5b85732ef7ec3dfa4b69528ec91e9f7 Mon Sep 17 00:00:00 2001 From: Victor Shamanov Date: Wed, 27 Jan 2021 11:47:14 +0000 Subject: [PATCH 1/2] Revert "Merge pull request #686 from khramtsoff/feature/resources_to_bundle" This reverts commit 79f9e4091c23788a70421d434d966e223f205dea, reversing changes made to 20853092a5f77a91903845e0d30c61967adad49f. --- ChattoAdditions.podspec | 2 +- .../ChattoAdditions.xcodeproj/project.pbxproj | 158 +- .../ChattoAdditionsResources/Info.plist | 26 - ...essageCollectionViewCellDefaultStyle.swift | 14 +- .../Views/CompoundBubbleViewStyle.swift | 2 +- ...essageCollectionViewCellDefaultStyle.swift | 10 +- ...essageCollectionViewCellDefaultStyle.swift | 8 +- .../Bundle+ChattoAdditionsResources.swift | 35 - .../Source/Input/ChatInputBar.swift | 2 +- ChattoAdditions/Source/Input/ChatInputBar.xib | 24 +- .../Input/Photos/Camera/LiveCameraCell.swift | 4 +- .../Input/Photos/PhotosChatInputItem.swift | 6 +- .../PhotosInputPlaceholderCell.swift | 2 +- .../Source/Input/ReusableXibView.swift | 4 +- .../Source/Input/Text/TextChatInputItem.swift | 7 +- .../CircleIconView.swift | 2 +- ChattoApp/Podfile.lock | 4 +- .../ChattoAdditions.podspec.json | 12 +- ChattoApp/Pods/Manifest.lock | 4 +- ChattoApp/Pods/Pods.xcodeproj/project.pbxproj | 1382 ++++++++--------- ...itionsResources-ChattoAdditions-Info.plist | 24 - 21 files changed, 701 insertions(+), 1031 deletions(-) delete mode 100644 ChattoAdditions/ChattoAdditionsResources/Info.plist delete mode 100644 ChattoAdditions/Source/Common/Bundle+ChattoAdditionsResources.swift delete mode 100644 ChattoApp/Pods/Target Support Files/ChattoAdditions/ResourceBundle-ChattoAdditionsResources-ChattoAdditions-Info.plist diff --git a/ChattoAdditions.podspec b/ChattoAdditions.podspec index f50011449..f34cb49e0 100644 --- a/ChattoAdditions.podspec +++ b/ChattoAdditions.podspec @@ -15,6 +15,6 @@ Pod::Spec.new do |s| s.public_header_files = "ChattoAdditions/Source/**/*.h" s.requires_arc = true s.swift_version = '5.3' - s.resource_bundle = { 'ChattoAdditionsResources' => ["ChattoAdditions/Source/**/*.xib", "ChattoAdditions/Source/**/*.storyboard", "ChattoAdditions/Source/**/*.xcassets"] } + s.resources = ["ChattoAdditions/Source/**/*.xib", "ChattoAdditions/Source/**/*.storyboard", "ChattoAdditions/Source/**/*.xcassets"] s.dependency 'Chatto', s.version.to_s end diff --git a/ChattoAdditions/ChattoAdditions.xcodeproj/project.pbxproj b/ChattoAdditions/ChattoAdditions.xcodeproj/project.pbxproj index 3442b1f00..6a7f43439 100644 --- a/ChattoAdditions/ChattoAdditions.xcodeproj/project.pbxproj +++ b/ChattoAdditions/ChattoAdditions.xcodeproj/project.pbxproj @@ -8,14 +8,6 @@ /* Begin PBXBuildFile section */ 0B44651620347C11001ED5F1 /* DeviceImagePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B44651420347C11001ED5F1 /* DeviceImagePicker.swift */; }; - 2058508F253D6FAF002B1153 /* BaseMessageAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C3C0CBDC1BFE496A0052747C /* BaseMessageAssets.xcassets */; }; - 20585090253D6FAF002B1153 /* PhotoMessageAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C3C0CBEA1BFE496A0052747C /* PhotoMessageAssets.xcassets */; }; - 20585091253D6FAF002B1153 /* Photos.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C3C0CC0E1BFE496A0052747C /* Photos.xcassets */; }; - 20585092253D6FAF002B1153 /* Text.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C3C0CC181BFE496A0052747C /* Text.xcassets */; }; - 20585093253D6FAF002B1153 /* CircleProgressIndicator.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C3C0CC251BFE496A0052747C /* CircleProgressIndicator.xcassets */; }; - 20585095253D6FEF002B1153 /* ChatInputBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = C3C0CC051BFE496A0052747C /* ChatInputBar.xib */; }; - 20585098253D726C002B1153 /* ChattoAdditionsResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 20585088253D6F58002B1153 /* ChattoAdditionsResources.bundle */; }; - 2058509A253D7294002B1153 /* Bundle+ChattoAdditionsResources.swift in Sources */ = {isa = PBXBuildFile; fileRef = 20585099253D7294002B1153 /* Bundle+ChattoAdditionsResources.swift */; }; 261D26922505B99000973CD6 /* CALayer+ImageMask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 261D26912505B99000973CD6 /* CALayer+ImageMask.swift */; }; 26438961240D72C800427D14 /* Chatto.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2643895C240D72B400427D14 /* Chatto.framework */; }; 2645F90D2209C11C004CB829 /* HashableRepresentible.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2645F90C2209C11C004CB829 /* HashableRepresentible.swift */; }; @@ -62,6 +54,7 @@ C3C0CC2A1BFE496A0052747C /* BaseMessageModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CBD81BFE496A0052747C /* BaseMessageModel.swift */; }; C3C0CC2B1BFE496A0052747C /* BaseMessagePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CBD91BFE496A0052747C /* BaseMessagePresenter.swift */; }; C3C0CC2C1BFE496A0052747C /* BaseMessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CBDA1BFE496A0052747C /* BaseMessageViewModel.swift */; }; + C3C0CC2D1BFE496A0052747C /* BaseMessageAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C3C0CBDC1BFE496A0052747C /* BaseMessageAssets.xcassets */; }; C3C0CC2E1BFE496A0052747C /* BaseMessageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CBDD1BFE496A0052747C /* BaseMessageCollectionViewCell.swift */; }; C3C0CC301BFE496A0052747C /* ViewDefinitions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CBDF1BFE496A0052747C /* ViewDefinitions.swift */; }; C3C0CC341BFE496A0052747C /* PhotoMessageModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CBE41BFE496A0052747C /* PhotoMessageModel.swift */; }; @@ -69,6 +62,7 @@ C3C0CC361BFE496A0052747C /* PhotoMessagePresenterBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CBE61BFE496A0052747C /* PhotoMessagePresenterBuilder.swift */; }; C3C0CC371BFE496A0052747C /* PhotoMessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CBE71BFE496A0052747C /* PhotoMessageViewModel.swift */; }; C3C0CC381BFE496A0052747C /* PhotoBubbleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CBE91BFE496A0052747C /* PhotoBubbleView.swift */; }; + C3C0CC391BFE496A0052747C /* PhotoMessageAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C3C0CBEA1BFE496A0052747C /* PhotoMessageAssets.xcassets */; }; C3C0CC3A1BFE496A0052747C /* PhotoMessageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CBEB1BFE496A0052747C /* PhotoMessageCollectionViewCell.swift */; }; C3C0CC3B1BFE496A0052747C /* PhotoMessageCollectionViewCellDefaultStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CBEC1BFE496A0052747C /* PhotoMessageCollectionViewCellDefaultStyle.swift */; }; C3C0CC3C1BFE496A0052747C /* TextMessageModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CBEE1BFE496A0052747C /* TextMessageModel.swift */; }; @@ -79,6 +73,7 @@ C3C0CC421BFE496A0052747C /* TextMessageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CBF51BFE496A0052747C /* TextMessageCollectionViewCell.swift */; }; C3C0CC431BFE496A0052747C /* TextMessageCollectionViewCellDefaultStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CBF61BFE496A0052747C /* TextMessageCollectionViewCellDefaultStyle.swift */; }; C3C0CC4F1BFE496A0052747C /* ChatInputBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CC041BFE496A0052747C /* ChatInputBar.swift */; }; + C3C0CC501BFE496A0052747C /* ChatInputBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = C3C0CC051BFE496A0052747C /* ChatInputBar.xib */; }; C3C0CC511BFE496A0052747C /* ChatInputBarAppearance.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CC061BFE496A0052747C /* ChatInputBarAppearance.swift */; }; C3C0CC521BFE496A0052747C /* ChatInputBarPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CC071BFE496A0052747C /* ChatInputBarPresenter.swift */; }; C3C0CC531BFE496A0052747C /* ChatInputItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CC081BFE496A0052747C /* ChatInputItem.swift */; }; @@ -86,6 +81,7 @@ C3C0CC551BFE496A0052747C /* ExpandableTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CC0A1BFE496A0052747C /* ExpandableTextView.swift */; }; C3C0CC561BFE496A0052747C /* HorizontalStackScrollView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CC0B1BFE496A0052747C /* HorizontalStackScrollView.swift */; }; C3C0CC571BFE496A0052747C /* LiveCameraCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CC0D1BFE496A0052747C /* LiveCameraCell.swift */; }; + C3C0CC581BFE496A0052747C /* Photos.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C3C0CC0E1BFE496A0052747C /* Photos.xcassets */; }; C3C0CC591BFE496A0052747C /* PhotosChatInputItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CC0F1BFE496A0052747C /* PhotosChatInputItem.swift */; }; C3C0CC5A1BFE496A0052747C /* PhotosInputCameraPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CC101BFE496A0052747C /* PhotosInputCameraPicker.swift */; }; C3C0CC5B1BFE496A0052747C /* PhotosInputCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CC111BFE496A0052747C /* PhotosInputCell.swift */; }; @@ -94,8 +90,10 @@ C3C0CC5E1BFE496A0052747C /* PhotosInputView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CC141BFE496A0052747C /* PhotosInputView.swift */; }; C3C0CC5F1BFE496A0052747C /* PhotosInputViewItemSizeCalculator.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CC151BFE496A0052747C /* PhotosInputViewItemSizeCalculator.swift */; }; C3C0CC601BFE496A0052747C /* ReusableXibView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CC161BFE496A0052747C /* ReusableXibView.swift */; }; + C3C0CC611BFE496A0052747C /* Text.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C3C0CC181BFE496A0052747C /* Text.xcassets */; }; C3C0CC621BFE496A0052747C /* TextChatInputItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CC191BFE496A0052747C /* TextChatInputItem.swift */; }; C3C0CC641BFE496A0052747C /* Observable.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CC1B1BFE496A0052747C /* Observable.swift */; }; + 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 */; }; C3C0CC871BFE49700052747C /* ChatInputItemViewTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C3C0CC791BFE49700052747C /* ChatInputItemViewTests.swift */; }; @@ -138,13 +136,6 @@ /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 20585096253D723F002B1153 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = C3C0CBAF1BFE49320052747C /* Project object */; - proxyType = 1; - remoteGlobalIDString = 20585087253D6F58002B1153; - remoteInfo = ChattoAdditionsResources; - }; 2643895B240D72B400427D14 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 26438956240D72B400427D14 /* Chatto.xcodeproj */; @@ -177,9 +168,6 @@ /* Begin PBXFileReference section */ 0B44651420347C11001ED5F1 /* DeviceImagePicker.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DeviceImagePicker.swift; sourceTree = ""; }; - 20585088253D6F58002B1153 /* ChattoAdditionsResources.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ChattoAdditionsResources.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; - 2058508A253D6F58002B1153 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 20585099253D7294002B1153 /* Bundle+ChattoAdditionsResources.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Bundle+ChattoAdditionsResources.swift"; sourceTree = ""; }; 261D26912505B99000973CD6 /* CALayer+ImageMask.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CALayer+ImageMask.swift"; sourceTree = ""; }; 26438956240D72B400427D14 /* Chatto.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Chatto.xcodeproj; path = ../Chatto/Chatto.xcodeproj; sourceTree = ""; }; 2645F90C2209C11C004CB829 /* HashableRepresentible.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HashableRepresentible.swift; sourceTree = ""; }; @@ -311,13 +299,6 @@ /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 20585085253D6F58002B1153 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; C3C0CBB41BFE49320052747C /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -337,14 +318,6 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 20585089253D6F58002B1153 /* ChattoAdditionsResources */ = { - isa = PBXGroup; - children = ( - 2058508A253D6F58002B1153 /* Info.plist */, - ); - path = ChattoAdditionsResources; - sourceTree = ""; - }; 26438955240D72AB00427D14 /* Dependencies */ = { isa = PBXGroup; children = ( @@ -410,7 +383,6 @@ children = ( 55ABA5531FC739C300923302 /* Alignment.swift */, C38658B11BFE55620012F181 /* AnimationUtils.swift */, - 20585099253D7294002B1153 /* Bundle+ChattoAdditionsResources.swift */, 26D07FA3220791AE007C1534 /* Cache.swift */, 55ABA55C1FC742A600923302 /* CGFloat+Additions.swift */, 55ABA5621FC7444700923302 /* CGPoint+Additions.swift */, @@ -466,7 +438,6 @@ isa = PBXGroup; children = ( 26438955240D72AB00427D14 /* Dependencies */, - 20585089253D6F58002B1153 /* ChattoAdditionsResources */, C3C0CBB91BFE49320052747C /* Products */, C3C0CBD21BFE496A0052747C /* Source */, C3C0CC6E1BFE49700052747C /* Tests */, @@ -479,7 +450,6 @@ children = ( C3C0CBB81BFE49320052747C /* ChattoAdditions.framework */, C3C0CBC21BFE49320052747C /* ChattoAdditionsTests.xctest */, - 20585088253D6F58002B1153 /* ChattoAdditionsResources.bundle */, ); name = Products; sourceTree = ""; @@ -753,23 +723,6 @@ /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ - 20585087253D6F58002B1153 /* ChattoAdditionsResources */ = { - isa = PBXNativeTarget; - buildConfigurationList = 2058508E253D6F58002B1153 /* Build configuration list for PBXNativeTarget "ChattoAdditionsResources" */; - buildPhases = ( - 20585084253D6F58002B1153 /* Sources */, - 20585085253D6F58002B1153 /* Frameworks */, - 20585086253D6F58002B1153 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = ChattoAdditionsResources; - productName = ChattoAdditionsResources; - productReference = 20585088253D6F58002B1153 /* ChattoAdditionsResources.bundle */; - productType = "com.apple.product-type.bundle"; - }; C3C0CBB71BFE49320052747C /* ChattoAdditions */ = { isa = PBXNativeTarget; buildConfigurationList = C3C0CBCC1BFE49320052747C /* Build configuration list for PBXNativeTarget "ChattoAdditions" */; @@ -784,7 +737,6 @@ ); dependencies = ( 26438960240D72C000427D14 /* PBXTargetDependency */, - 20585097253D723F002B1153 /* PBXTargetDependency */, ); name = ChattoAdditions; productName = ChattoAdditions; @@ -819,10 +771,6 @@ LastUpgradeCheck = 1000; ORGANIZATIONNAME = Badoo; TargetAttributes = { - 20585087253D6F58002B1153 = { - CreatedOnToolsVersion = 11.7; - ProvisioningStyle = Automatic; - }; C3C0CBB71BFE49320052747C = { CreatedOnToolsVersion = 7.2; LastSwiftMigration = 1000; @@ -853,7 +801,6 @@ projectRoot = ""; targets = ( C3C0CBB71BFE49320052747C /* ChattoAdditions */, - 20585087253D6F58002B1153 /* ChattoAdditionsResources */, C3C0CBC11BFE49320052747C /* ChattoAdditionsTests */, ); }; @@ -877,24 +824,16 @@ /* End PBXReferenceProxy section */ /* Begin PBXResourcesBuildPhase section */ - 20585086253D6F58002B1153 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 2058508F253D6FAF002B1153 /* BaseMessageAssets.xcassets in Resources */, - 20585090253D6FAF002B1153 /* PhotoMessageAssets.xcassets in Resources */, - 20585095253D6FEF002B1153 /* ChatInputBar.xib in Resources */, - 20585093253D6FAF002B1153 /* CircleProgressIndicator.xcassets in Resources */, - 20585092253D6FAF002B1153 /* Text.xcassets in Resources */, - 20585091253D6FAF002B1153 /* Photos.xcassets in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; C3C0CBB61BFE49320052747C /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 20585098253D726C002B1153 /* ChattoAdditionsResources.bundle in Resources */, + C3C0CC6C1BFE496A0052747C /* CircleProgressIndicator.xcassets in Resources */, + C3C0CC581BFE496A0052747C /* Photos.xcassets in Resources */, + C3C0CC2D1BFE496A0052747C /* BaseMessageAssets.xcassets in Resources */, + C3C0CC611BFE496A0052747C /* Text.xcassets in Resources */, + C3C0CC501BFE496A0052747C /* ChatInputBar.xib in Resources */, + C3C0CC391BFE496A0052747C /* PhotoMessageAssets.xcassets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -924,13 +863,6 @@ /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 20585084253D6F58002B1153 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; C3C0CBB31BFE49320052747C /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -941,7 +873,6 @@ C3C0CC3B1BFE496A0052747C /* PhotoMessageCollectionViewCellDefaultStyle.swift in Sources */, C38658B21BFE55620012F181 /* AnimationUtils.swift in Sources */, C3C0CC381BFE496A0052747C /* PhotoBubbleView.swift in Sources */, - 2058509A253D7294002B1153 /* Bundle+ChattoAdditionsResources.swift in Sources */, C3C0CC3D1BFE496A0052747C /* TextMessagePresenter.swift in Sources */, C3C0CC3F1BFE496A0052747C /* TextMessageViewModel.swift in Sources */, C3C0CC571BFE496A0052747C /* LiveCameraCell.swift in Sources */, @@ -1067,11 +998,6 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 20585097253D723F002B1153 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 20585087253D6F58002B1153 /* ChattoAdditionsResources */; - targetProxy = 20585096253D723F002B1153 /* PBXContainerItemProxy */; - }; 26438960240D72C000427D14 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = Chatto; @@ -1085,57 +1011,6 @@ /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 2058508B253D6F58002B1153 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - ENABLE_BITCODE = NO; - GCC_C_LANGUAGE_STANDARD = gnu11; - INFOPLIST_FILE = ChattoAdditionsResources/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles"; - MACOSX_DEPLOYMENT_TARGET = 10.15; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = com.badoo.ChattoAdditions.ChattoAdditionsResources; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - WRAPPER_EXTENSION = bundle; - }; - name = Debug; - }; - 2058508C253D6F58002B1153 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CODE_SIGN_STYLE = Automatic; - COMBINE_HIDPI_IMAGES = YES; - ENABLE_BITCODE = NO; - GCC_C_LANGUAGE_STANDARD = gnu11; - INFOPLIST_FILE = ChattoAdditionsResources/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles"; - MACOSX_DEPLOYMENT_TARGET = 10.15; - MTL_FAST_MATH = YES; - PRODUCT_BUNDLE_IDENTIFIER = com.badoo.ChattoAdditions.ChattoAdditionsResources; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - WRAPPER_EXTENSION = bundle; - }; - name = Release; - }; C3C0CBCA1BFE49320052747C /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -1311,15 +1186,6 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 2058508E253D6F58002B1153 /* Build configuration list for PBXNativeTarget "ChattoAdditionsResources" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 2058508B253D6F58002B1153 /* Debug */, - 2058508C253D6F58002B1153 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; C3C0CBB21BFE49320052747C /* Build configuration list for PBXProject "ChattoAdditions" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/ChattoAdditions/ChattoAdditionsResources/Info.plist b/ChattoAdditions/ChattoAdditionsResources/Info.plist deleted file mode 100644 index 387c761d7..000000000 --- a/ChattoAdditions/ChattoAdditionsResources/Info.plist +++ /dev/null @@ -1,26 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - $(PRODUCT_BUNDLE_PACKAGE_TYPE) - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - NSHumanReadableCopyright - Copyright © 2020 Badoo. All rights reserved. - NSPrincipalClass - - - diff --git a/ChattoAdditions/Source/Chat Items/BaseMessage/Views/BaseMessageCollectionViewCellDefaultStyle.swift b/ChattoAdditions/Source/Chat Items/BaseMessage/Views/BaseMessageCollectionViewCellDefaultStyle.swift index c82227ef2..07fafbc01 100644 --- a/ChattoAdditions/Source/Chat Items/BaseMessage/Views/BaseMessageCollectionViewCellDefaultStyle.swift +++ b/ChattoAdditions/Source/Chat Items/BaseMessage/Views/BaseMessageCollectionViewCellDefaultStyle.swift @@ -203,16 +203,16 @@ public extension BaseMessageCollectionViewCellDefaultStyle { // Default values static func createDefaultBubbleBorderImages() -> BubbleBorderImages { return BubbleBorderImages( - borderIncomingTail: UIImage(named: "bubble-incoming-border-tail", in: Bundle.resources, compatibleWith: nil)!, - borderIncomingNoTail: UIImage(named: "bubble-incoming-border", in: Bundle.resources, compatibleWith: nil)!, - borderOutgoingTail: UIImage(named: "bubble-outgoing-border-tail", in: Bundle.resources, compatibleWith: nil)!, - borderOutgoingNoTail: UIImage(named: "bubble-outgoing-border", in: Bundle.resources, compatibleWith: nil)! + borderIncomingTail: UIImage(named: "bubble-incoming-border-tail", in: Bundle(for: Class.self), compatibleWith: nil)!, + borderIncomingNoTail: UIImage(named: "bubble-incoming-border", in: Bundle(for: Class.self), compatibleWith: nil)!, + borderOutgoingTail: UIImage(named: "bubble-outgoing-border-tail", in: Bundle(for: Class.self), compatibleWith: nil)!, + borderOutgoingNoTail: UIImage(named: "bubble-outgoing-border", in: Bundle(for: Class.self), compatibleWith: nil)! ) } static func createDefaultFailedIconImages() -> FailedIconImages { let normal = { - return UIImage(named: "base-message-failed-icon", in: Bundle.resources, compatibleWith: nil)! + return UIImage(named: "base-message-failed-icon", in: Bundle(for: Class.self), compatibleWith: nil)! } return FailedIconImages( normal: normal(), @@ -231,8 +231,8 @@ public extension BaseMessageCollectionViewCellDefaultStyle { // Default values maxContainerWidthPercentageForBubbleView: 0.68) } - private static let selectionIndicatorIconSelected = UIImage(named: "base-message-checked-icon", in: Bundle.resources, compatibleWith: nil)!.bma_tintWithColor(BaseMessageCollectionViewCellDefaultStyle.defaultOutgoingColor) - private static let selectionIndicatorIconDeselected = UIImage(named: "base-message-unchecked-icon", in: Bundle.resources, compatibleWith: nil)!.bma_tintWithColor(UIColor.bma_color(rgb: 0xC6C6C6)) + private static let selectionIndicatorIconSelected = UIImage(named: "base-message-checked-icon", in: Bundle(for: Class.self), compatibleWith: nil)!.bma_tintWithColor(BaseMessageCollectionViewCellDefaultStyle.defaultOutgoingColor) + private static let selectionIndicatorIconDeselected = UIImage(named: "base-message-unchecked-icon", in: Bundle(for: Class.self), compatibleWith: nil)!.bma_tintWithColor(UIColor.bma_color(rgb: 0xC6C6C6)) static func createDefaultSelectionIndicatorStyle() -> SelectionIndicatorStyle { return SelectionIndicatorStyle( diff --git a/ChattoAdditions/Source/Chat Items/CompoundMessage/Views/CompoundBubbleViewStyle.swift b/ChattoAdditions/Source/Chat Items/CompoundMessage/Views/CompoundBubbleViewStyle.swift index 66adb5b58..4da9a61de 100644 --- a/ChattoAdditions/Source/Chat Items/CompoundMessage/Views/CompoundBubbleViewStyle.swift +++ b/ChattoAdditions/Source/Chat Items/CompoundMessage/Views/CompoundBubbleViewStyle.swift @@ -117,7 +117,7 @@ extension DefaultCompoundBubbleViewStyle.BubbleMasks { } public static var `default`: DefaultCompoundBubbleViewStyle.BubbleMasks { - let bundle = Bundle.resources + let bundle = Bundle(for: DefaultCompoundBubbleViewStyle.self) return DefaultCompoundBubbleViewStyle.BubbleMasks( incomingTail: UIImage(named: "bubble-incoming-tail", in: bundle, compatibleWith: nil)!, incomingNoTail: UIImage(named: "bubble-incoming", in: bundle, compatibleWith: nil)!, diff --git a/ChattoAdditions/Source/Chat Items/PhotoMessages/Views/PhotoMessageCollectionViewCellDefaultStyle.swift b/ChattoAdditions/Source/Chat Items/PhotoMessages/Views/PhotoMessageCollectionViewCellDefaultStyle.swift index ca3987f9e..e22976b0e 100644 --- a/ChattoAdditions/Source/Chat Items/PhotoMessages/Views/PhotoMessageCollectionViewCellDefaultStyle.swift +++ b/ChattoAdditions/Source/Chat Items/PhotoMessages/Views/PhotoMessageCollectionViewCellDefaultStyle.swift @@ -113,7 +113,7 @@ open class PhotoMessageCollectionViewCellDefaultStyle: PhotoMessageCollectionVie }() lazy private var placeholderIcon: UIImage = { - return UIImage(named: "photo-bubble-placeholder-icon", in: Bundle.resources, compatibleWith: nil)! + return UIImage(named: "photo-bubble-placeholder-icon", in: Bundle(for: Class.self), compatibleWith: nil)! }() open func maskingImage(viewModel: PhotoMessageViewModelProtocol) -> UIImage { @@ -176,10 +176,10 @@ public extension PhotoMessageCollectionViewCellDefaultStyle { // Default values static func createDefaultBubbleMasks() -> BubbleMasks { return BubbleMasks( - incomingTail: UIImage(named: "bubble-incoming-tail", in: Bundle.resources, compatibleWith: nil)!, - incomingNoTail: UIImage(named: "bubble-incoming", in: Bundle.resources, compatibleWith: nil)!, - outgoingTail: UIImage(named: "bubble-outgoing-tail", in: Bundle.resources, compatibleWith: nil)!, - outgoingNoTail: UIImage(named: "bubble-outgoing", in: Bundle.resources, compatibleWith: nil)!, + incomingTail: UIImage(named: "bubble-incoming-tail", in: Bundle(for: Class.self), compatibleWith: nil)!, + incomingNoTail: UIImage(named: "bubble-incoming", in: Bundle(for: Class.self), compatibleWith: nil)!, + outgoingTail: UIImage(named: "bubble-outgoing-tail", in: Bundle(for: Class.self), compatibleWith: nil)!, + outgoingNoTail: UIImage(named: "bubble-outgoing", in: Bundle(for: Class.self), compatibleWith: nil)!, tailWidth: 6 ) } diff --git a/ChattoAdditions/Source/Chat Items/TextMessages/Views/TextMessageCollectionViewCellDefaultStyle.swift b/ChattoAdditions/Source/Chat Items/TextMessages/Views/TextMessageCollectionViewCellDefaultStyle.swift index aafd868ab..77779bf50 100644 --- a/ChattoAdditions/Source/Chat Items/TextMessages/Views/TextMessageCollectionViewCellDefaultStyle.swift +++ b/ChattoAdditions/Source/Chat Items/TextMessages/Views/TextMessageCollectionViewCellDefaultStyle.swift @@ -151,10 +151,10 @@ public extension TextMessageCollectionViewCellDefaultStyle { // Default values static func createDefaultBubbleImages() -> BubbleImages { return BubbleImages( - incomingTail: UIImage(named: "bubble-incoming-tail", in: Bundle.resources, compatibleWith: nil)!, - incomingNoTail: UIImage(named: "bubble-incoming", in: Bundle.resources, compatibleWith: nil)!, - outgoingTail: UIImage(named: "bubble-outgoing-tail", in: Bundle.resources, compatibleWith: nil)!, - outgoingNoTail: UIImage(named: "bubble-outgoing", in: Bundle.resources, compatibleWith: nil)! + incomingTail: UIImage(named: "bubble-incoming-tail", in: Bundle(for: Class.self), compatibleWith: nil)!, + incomingNoTail: UIImage(named: "bubble-incoming", in: Bundle(for: Class.self), compatibleWith: nil)!, + outgoingTail: UIImage(named: "bubble-outgoing-tail", in: Bundle(for: Class.self), compatibleWith: nil)!, + outgoingNoTail: UIImage(named: "bubble-outgoing", in: Bundle(for: Class.self), compatibleWith: nil)! ) } diff --git a/ChattoAdditions/Source/Common/Bundle+ChattoAdditionsResources.swift b/ChattoAdditions/Source/Common/Bundle+ChattoAdditionsResources.swift deleted file mode 100644 index 97349600b..000000000 --- a/ChattoAdditions/Source/Common/Bundle+ChattoAdditionsResources.swift +++ /dev/null @@ -1,35 +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 Foundation - -extension Bundle { - static let resources: Bundle = { - let bundle = Bundle(for: BundleToken.self) - let path = bundle.path(forResource: "ChattoAdditionsResources", ofType: "bundle") - return Bundle(path: path!)! - }() -} - -private class BundleToken {} diff --git a/ChattoAdditions/Source/Input/ChatInputBar.swift b/ChattoAdditions/Source/Input/ChatInputBar.swift index e95c6f862..8405a5396 100644 --- a/ChattoAdditions/Source/Input/ChatInputBar.swift +++ b/ChattoAdditions/Source/Input/ChatInputBar.swift @@ -69,7 +69,7 @@ open class ChatInputBar: ReusableXibView { @IBOutlet var tabBarContainerHeightConstraint: NSLayoutConstraint! class open func loadNib() -> ChatInputBar { - let view = Bundle.resources.loadNibNamed(self.nibName(), owner: nil, options: nil)!.first as! ChatInputBar + let view = Bundle(for: self).loadNibNamed(self.nibName(), owner: nil, options: nil)!.first as! ChatInputBar view.translatesAutoresizingMaskIntoConstraints = false view.frame = CGRect.zero return view diff --git a/ChattoAdditions/Source/Input/ChatInputBar.xib b/ChattoAdditions/Source/Input/ChatInputBar.xib index 7ae0f7381..2262e6c17 100644 --- a/ChattoAdditions/Source/Input/ChatInputBar.xib +++ b/ChattoAdditions/Source/Input/ChatInputBar.xib @@ -1,30 +1,28 @@ - - - + + - - + - + - + - + - + - + - + @@ -55,13 +53,13 @@ - + - + diff --git a/ChattoAdditions/Source/Input/Photos/Camera/LiveCameraCell.swift b/ChattoAdditions/Source/Input/Photos/Camera/LiveCameraCell.swift index 84a209725..42b58746b 100644 --- a/ChattoAdditions/Source/Input/Photos/Camera/LiveCameraCell.swift +++ b/ChattoAdditions/Source/Input/Photos/Camera/LiveCameraCell.swift @@ -43,8 +43,8 @@ public struct LiveCameraCellAppearance { public static func createDefaultAppearance() -> LiveCameraCellAppearance { return LiveCameraCellAppearance( backgroundColor: UIColor(red: 24.0/255.0, green: 101.0/255.0, blue: 245.0/255.0, alpha: 1), - cameraImage: UIImage(named: "camera", in: Bundle.resources, compatibleWith: nil), - cameraLockImage: UIImage(named: "camera_lock", in: Bundle.resources, compatibleWith: nil) + cameraImage: UIImage(named: "camera", in: Bundle(for: LiveCameraCell.self), compatibleWith: nil), + cameraLockImage: UIImage(named: "camera_lock", in: Bundle(for: LiveCameraCell.self), compatibleWith: nil) ) } } diff --git a/ChattoAdditions/Source/Input/Photos/PhotosChatInputItem.swift b/ChattoAdditions/Source/Input/Photos/PhotosChatInputItem.swift index d396b8389..c00d12092 100644 --- a/ChattoAdditions/Source/Input/Photos/PhotosChatInputItem.swift +++ b/ChattoAdditions/Source/Input/Photos/PhotosChatInputItem.swift @@ -47,9 +47,9 @@ open class PhotosChatInputItem: ChatInputItemProtocol { public static func createDefaultButtonAppearance() -> TabInputButtonAppearance { let images: [UIControlStateWrapper: UIImage] = [ - UIControlStateWrapper(state: .normal): UIImage(named: "camera-icon-unselected", in: Bundle.resources, compatibleWith: nil)!, - UIControlStateWrapper(state: .selected): UIImage(named: "camera-icon-selected", in: Bundle.resources, compatibleWith: nil)!, - UIControlStateWrapper(state: .highlighted): UIImage(named: "camera-icon-selected", in: Bundle.resources, compatibleWith: nil)! + UIControlStateWrapper(state: .normal): UIImage(named: "camera-icon-unselected", in: Bundle(for: Class.self), compatibleWith: nil)!, + UIControlStateWrapper(state: .selected): UIImage(named: "camera-icon-selected", in: Bundle(for: Class.self), compatibleWith: nil)!, + UIControlStateWrapper(state: .highlighted): UIImage(named: "camera-icon-selected", in: Bundle(for: Class.self), compatibleWith: nil)! ] return TabInputButtonAppearance(images: images, size: nil) } diff --git a/ChattoAdditions/Source/Input/Photos/Placeholder/PhotosInputPlaceholderCell.swift b/ChattoAdditions/Source/Input/Photos/Placeholder/PhotosInputPlaceholderCell.swift index 07f03c1f7..7ed58abe3 100644 --- a/ChattoAdditions/Source/Input/Photos/Placeholder/PhotosInputPlaceholderCell.swift +++ b/ChattoAdditions/Source/Input/Photos/Placeholder/PhotosInputPlaceholderCell.swift @@ -46,7 +46,7 @@ final class PhotosInputPlaceholderCell: UICollectionViewCell { private func commonInit() { self.imageView = UIImageView() self.imageView.contentMode = .center - self.imageView.image = UIImage(named: Constants.imageName, in: Bundle.resources, compatibleWith: nil) + self.imageView.image = UIImage(named: Constants.imageName, in: Bundle(for: PhotosInputPlaceholderCell.self), compatibleWith: nil) self.contentView.addSubview(self.imageView) self.contentView.backgroundColor = Constants.backgroundColor self.accessibilityIdentifier = Constants.accessibilityIdentifier diff --git a/ChattoAdditions/Source/Input/ReusableXibView.swift b/ChattoAdditions/Source/Input/ReusableXibView.swift index 2b0d1b4d6..6249057e6 100644 --- a/ChattoAdditions/Source/Input/ReusableXibView.swift +++ b/ChattoAdditions/Source/Input/ReusableXibView.swift @@ -27,7 +27,7 @@ import UIKit @objc open class ReusableXibView: UIView { func loadViewFromNib() -> UIView { - let bundle = Bundle.resources + let bundle = Bundle(for: type(of: self)) let nib = UINib(nibName: type(of: self).nibName(), bundle: bundle) let view = nib.instantiate(withOwner: nil, options: nil).first as! UIView return view @@ -38,7 +38,7 @@ import UIKit return self } - let bundle = Bundle.resources + let bundle = Bundle(for: type(of: self)) if let loadedView = bundle.loadNibNamed(type(of: self).nibName(), owner: nil, options: nil)?.first as? UIView { loadedView.frame = frame loadedView.autoresizingMask = autoresizingMask diff --git a/ChattoAdditions/Source/Input/Text/TextChatInputItem.swift b/ChattoAdditions/Source/Input/Text/TextChatInputItem.swift index 49677364c..2d3fe5a01 100644 --- a/ChattoAdditions/Source/Input/Text/TextChatInputItem.swift +++ b/ChattoAdditions/Source/Input/Text/TextChatInputItem.swift @@ -34,11 +34,10 @@ open class TextChatInputItem { } public static func createDefaultButtonAppearance() -> TabInputButtonAppearance { - let bundle = Bundle.resources let images: [UIControlStateWrapper: UIImage] = [ - UIControlStateWrapper(state: .normal): UIImage(named: "text-icon-unselected", in: bundle, compatibleWith: nil)!, - UIControlStateWrapper(state: .selected): UIImage(named: "text-icon-selected", in: bundle, compatibleWith: nil)!, - UIControlStateWrapper(state: .highlighted): UIImage(named: "text-icon-selected", in: bundle, compatibleWith: nil)! + UIControlStateWrapper(state: .normal): UIImage(named: "text-icon-unselected", in: Bundle(for: TextChatInputItem.self), compatibleWith: nil)!, + UIControlStateWrapper(state: .selected): UIImage(named: "text-icon-selected", in: Bundle(for: TextChatInputItem.self), compatibleWith: nil)!, + UIControlStateWrapper(state: .highlighted): UIImage(named: "text-icon-selected", in: Bundle(for: TextChatInputItem.self), compatibleWith: nil)! ] return TabInputButtonAppearance(images: images, size: nil) } diff --git a/ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/CircleIconView.swift b/ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/CircleIconView.swift index 8059157a7..559cb4b8c 100644 --- a/ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/CircleIconView.swift +++ b/ChattoAdditions/Source/UI Components/CircleProgressIndicatorView/CircleIconView.swift @@ -200,7 +200,7 @@ final class CircleIconView: UIView { return nil } }() else { return } - self.iconView.image = UIImage(named: imageName, in: Bundle.resources, compatibleWith: nil) + self.iconView.image = UIImage(named: imageName, in: Bundle(for: CircleIconView.self), compatibleWith: nil) } private func setupIconPoints(with type: CircleIconType) { diff --git a/ChattoApp/Podfile.lock b/ChattoApp/Podfile.lock index efd6d5649..559e3bda8 100644 --- a/ChattoApp/Podfile.lock +++ b/ChattoApp/Podfile.lock @@ -15,8 +15,8 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: Chatto: 970c3546b01acdca60a7ba6de13cc73f62341fa7 - ChattoAdditions: 914d976ef563161fcf632c69fd3b5cc1e8269fca + ChattoAdditions: a8489889474f2a5bd2055089caeebf663cba34e3 PODFILE CHECKSUM: 7e673449d94d383ef7c7669fdd0f282d4d0e7059 -COCOAPODS: 1.9.3 +COCOAPODS: 1.9.0 diff --git a/ChattoApp/Pods/Local Podspecs/ChattoAdditions.podspec.json b/ChattoApp/Pods/Local Podspecs/ChattoAdditions.podspec.json index c21d1face..8b5ad9058 100644 --- a/ChattoApp/Pods/Local Podspecs/ChattoAdditions.podspec.json +++ b/ChattoApp/Pods/Local Podspecs/ChattoAdditions.podspec.json @@ -22,13 +22,11 @@ "public_header_files": "ChattoAdditions/Source/**/*.h", "requires_arc": true, "swift_versions": "5.3", - "resource_bundles": { - "ChattoAdditionsResources": [ - "ChattoAdditions/Source/**/*.xib", - "ChattoAdditions/Source/**/*.storyboard", - "ChattoAdditions/Source/**/*.xcassets" - ] - }, + "resources": [ + "ChattoAdditions/Source/**/*.xib", + "ChattoAdditions/Source/**/*.storyboard", + "ChattoAdditions/Source/**/*.xcassets" + ], "dependencies": { "Chatto": [ "4.0.0" diff --git a/ChattoApp/Pods/Manifest.lock b/ChattoApp/Pods/Manifest.lock index efd6d5649..559e3bda8 100644 --- a/ChattoApp/Pods/Manifest.lock +++ b/ChattoApp/Pods/Manifest.lock @@ -15,8 +15,8 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: Chatto: 970c3546b01acdca60a7ba6de13cc73f62341fa7 - ChattoAdditions: 914d976ef563161fcf632c69fd3b5cc1e8269fca + ChattoAdditions: a8489889474f2a5bd2055089caeebf663cba34e3 PODFILE CHECKSUM: 7e673449d94d383ef7c7669fdd0f282d4d0e7059 -COCOAPODS: 1.9.3 +COCOAPODS: 1.9.0 diff --git a/ChattoApp/Pods/Pods.xcodeproj/project.pbxproj b/ChattoApp/Pods/Pods.xcodeproj/project.pbxproj index 8318c543f..a8b1698bd 100644 --- a/ChattoApp/Pods/Pods.xcodeproj/project.pbxproj +++ b/ChattoApp/Pods/Pods.xcodeproj/project.pbxproj @@ -7,156 +7,147 @@ objects = { /* Begin PBXBuildFile section */ - 021EA48210455E46C337AA60B487CC63 /* PhotoMessageAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C87AF25EBCB4B5CBFA77124ADCDCEBAC /* PhotoMessageAssets.xcassets */; }; + 02493FF7B5F2AF2A53AD7E1AAF4B0A75 /* CGPoint+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 236C20E885169120F2B1302E3C152FA0 /* CGPoint+Additions.swift */; }; + 02564B0D3906C4E015AA009069D56DA6 /* UIScreen+Scale.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0FA1A535C01FD338F65BD9984B536756 /* UIScreen+Scale.swift */; }; + 0397BFDB09456D51300A51761811CF49 /* PhotosInputCameraPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8BC6AC9FC58CB35BFCC08837BE6865E /* PhotosInputCameraPicker.swift */; }; + 0433F8FFA369B57F8C49F7192A2EDE9F /* CGFloat+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06A7041007DC3A31B6D306FF23A0C3E9 /* CGFloat+Additions.swift */; }; + 0611A7E7F4ED1F3C695A89F1593D66AA /* PhotosInputPlaceholderDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F4810AC5C9D8A11DD7DF2C1AA9BB2FD /* PhotosInputPlaceholderDataProvider.swift */; }; + 067030EDD77F796FDEEFD159DF2D75CD /* CGRect+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04AC49AFCD860E5DCDBFDBC0140AE885 /* CGRect+Additions.swift */; }; 07D412B6561244E6B2ADD811601F5F47 /* ChatCollectionViewLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC6463741D8D222EA495C7F13C82BDDA /* ChatCollectionViewLayout.swift */; }; - 09758DB3CD77F22AB1BF3D7705A7B122 /* Text.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6F3055E73F027BA313A4F4ECD1F5E567 /* Text.xcassets */; }; - 0B1707144122E0AD0DCA47B21A35DF0F /* ChattoAdditions-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 45E55C006EACBF6AF62D4A445336582B /* ChattoAdditions-dummy.m */; }; - 0DDCAED19AB93CB8291C6D4EBC50D6D4 /* Observable.swift in Sources */ = {isa = PBXBuildFile; fileRef = F206D5378B7F719E3F74D47B54AA5ED0 /* Observable.swift */; }; - 0EAEF3C8472189AD24AFC544A1AED2F3 /* ChatInputBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 55376BE79C6F33D7E3507742EF39694B /* ChatInputBar.swift */; }; + 08F6B608B3B69F004C457DFA41E921EB /* BaseMessageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89AD4E3AE9A6A4616B3E47334A660B61 /* BaseMessageCollectionViewCell.swift */; }; + 0B1C67F0F038CAFE9B864FC142352D66 /* DeviceImagePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = B815F4D20E1659CAA5481A9CF527F4E0 /* DeviceImagePicker.swift */; }; 11378F138370216F4C96735CBB2706F8 /* ReplyFeedbackGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5313B20C8EA26B49A3A260677748246 /* ReplyFeedbackGenerator.swift */; }; - 146D6841104D3618A6CCA31D2EEA1B7F /* CompoundMessagePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC52B5971C81CD45AB8785E2A65BF177 /* CompoundMessagePresenter.swift */; }; - 14DC4479258D5D9CE0DC87E94BE5CDE7 /* CGRect+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD6EAAE88DAF0BCBA1B0879F37761C30 /* CGRect+Additions.swift */; }; - 1507B8824F8210C2AE463161C95AA9B2 /* BaseMessageModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 847A1DD10572FF2F7092B36350295943 /* BaseMessageModel.swift */; }; 154081FF63650F1A601DAE1BFCFBC057 /* ChatItemProtocolDefinitions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F91943BF4071679AC2B022841A1E13F /* ChatItemProtocolDefinitions.swift */; }; - 15A459CC10FC9FCB72C7E59270DFF739 /* BaseMessageCollectionViewCellDefaultStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = D80835998219FE098D1EEEB2BA81A4FC /* BaseMessageCollectionViewCellDefaultStyle.swift */; }; - 167DE19FB6DEBDA6E5B82AE1874018A8 /* PhotosInputCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 261433B41729B76062ED9AED2BBB1E6F /* PhotosInputCell.swift */; }; - 1CA19B38B79BBC7547E99F9C871E8902 /* Cache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8BEAA09C9A3E0136E7EA4737AD47B079 /* Cache.swift */; }; - 1D1F8E6ADB1F54C7FD61352667C3BF87 /* BaseMessageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80471D61BA1A7E17F552874783026586 /* BaseMessageCollectionViewCell.swift */; }; - 1EE52F3C9A7CB2500E3281ACE17CE967 /* UIImage+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF774CED5292821D4E5B74257DD33D84 /* UIImage+Additions.swift */; }; - 1EF2A806DE365C9E0F3FD60026163DC6 /* Pods-ChattoApp-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F284074807EBD02656E1B9678B3FA42 /* Pods-ChattoApp-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 1F903E880829F330703D6516032E7E29 /* TextBubbleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0F31CF9E64C65C51AC501CCDACA30E8 /* TextBubbleView.swift */; }; + 17D31666018C37E9208BBA75C0C4A9F3 /* AnimationUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = B87C51B550537D0D0E4B1AB8515D6C73 /* AnimationUtils.swift */; }; 204DD3CB656EBF52AC7F2F44D25F1214 /* InputPositionControlling.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56880FCEF4E8A4001BC6DEEE39516923 /* InputPositionControlling.swift */; }; - 20E9514190915449CF7D2D1F77EB2763 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CD673AD6FDA8BE759BCD31DEF040F680 /* Foundation.framework */; }; - 20EFDAE9B96C6D8BA25F88A6809F0726 /* PhotoMessageModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = E46951B0809E92969C5EB23AF9196311 /* PhotoMessageModel.swift */; }; - 2112A62296903190F2CA5161A5122DCC /* LiveCameraCaptureSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F2A5409EB23EF142D03392E00A40255 /* LiveCameraCaptureSession.swift */; }; + 20C4421B72C0B476C2A55B1F5BCD5F91 /* PhotoBubbleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 25428E5ACCD837FEC4C3BB46554283A3 /* PhotoBubbleView.swift */; }; + 2253E0FF9E1C2043AAD1EA10B3F17073 /* Pods-ChattoApp-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C9D8F53B3D35A3001CB4D8DF8DEE7781 /* Pods-ChattoApp-dummy.m */; }; 22E81E317151B9C8A2573D81382EE882 /* BaseChatViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 91F8BC669B2F2636DFE299052A0207B4 /* BaseChatViewController.swift */; }; - 249E9B1D9C2E32F79B92F3376757C0C9 /* CALayer+ImageMask.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7115724DFAD6AA489E53A1C74F3A4759 /* CALayer+ImageMask.swift */; }; + 23B1A4194133CFB05019A12A50618385 /* ViewDefinitions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F80EC38EF3F3B62C75375F1BE3FA74A /* ViewDefinitions.swift */; }; + 280ABB4EDE8985054F7EC9D383D99CDB /* TextMessagePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 21B0D2035FD656FBD1BE0FD4D0765885 /* TextMessagePresenter.swift */; }; 28192ACCDD9EE2B928F10F698B11DE7E /* ChatDataSourceProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A05D1B506E39896D053A99661B1B3BB /* ChatDataSourceProtocol.swift */; }; - 2EB866056446E1DB9211B87431459822 /* PhotosInputWithPlaceholdersDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 60CBAC6A8C23F227D969F7D4933A06A1 /* PhotosInputWithPlaceholdersDataProvider.swift */; }; - 302B0FB75C75503593CC8AB23BFAB764 /* CircleProgressIndicator.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = BCD0E3A5F5246F30CF1CB82200BFD18C /* CircleProgressIndicator.xcassets */; }; - 30B0954779EA1C0ADA0CD0593C53822C /* TextMessageMenuItemPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = A2BB873FF498FA9F440998AE0C4A758B /* TextMessageMenuItemPresenter.swift */; }; - 32D8B3FE8B4EDE3BC8ABAA0962AAF9C8 /* InputContainerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EFCA16E0077E1DFD08EBB859741C3E2F /* InputContainerView.swift */; }; - 331DDCB9745EF4CE929D92E7349FABF2 /* Chatto.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CCCE6A8E9F86772CD3FC9DDFC357633B /* Chatto.framework */; }; - 3493F5187544F37F1D3FD7EFA3CF109D /* DeviceImagePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 869ADCE2A5B150FFDF95D19E0C8D9EF4 /* DeviceImagePicker.swift */; }; - 37FDB2B31059DE0A7D15AE2E1F4F1139 /* TabInputButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E742995A801D854DC749FBCB452C13A /* TabInputButton.swift */; }; - 38B87EBBF0D2E5C3E8FAA2A9B042BC27 /* MessageManualLayoutProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = CE5EB68E8215F84D13594DAE7F725F09 /* MessageManualLayoutProvider.swift */; }; - 422745359DE3262F25934495028707DA /* CGPoint+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6244BD97BB335C9A0D335DCC8FF6B3E /* CGPoint+Additions.swift */; }; - 44901D5D6ABC062B03648BB918751570 /* ChattoAdditions-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 974FB2A8FFE5E7F718ABA490796F9552 /* ChattoAdditions-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 45E388F09233E750E64EC5552CCC9F5D /* CircleIconView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63368CBF18167F84FF5D4E6B622719FD /* CircleIconView.swift */; }; + 2A438C1479D68E8A2FC79D18EEB3148C /* MessageDecorationViewLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13322131F1DBFDB63B36E6DB589FE8A4 /* MessageDecorationViewLayout.swift */; }; + 2F4ABDFB92023DCB42664E25AB7381C3 /* LiveCameraCaptureSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9BCA972B80D11A89C07AD256516A566 /* LiveCameraCaptureSession.swift */; }; + 317955D8260AEB1043C595A04EBAA2E0 /* PhotosInputPermissionsRequester.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB75128305707A226A53276390BB8FAA /* PhotosInputPermissionsRequester.swift */; }; + 31C8E08CA690C6B27C1AE8EAC60AF285 /* Cache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65F825FEE553CA33058218D87DBA9B1F /* Cache.swift */; }; + 32BD9F6F18C4F22E2ECE1C2AD686B283 /* PhotosChatInputItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7A2277E1CD524B02A1863528336B6DA /* PhotosChatInputItem.swift */; }; + 362C049F110084D4207DBD348F62C7AF /* PhotosInputViewItemSizeCalculator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8407F3DCCFB69F669A808405C9D329CA /* PhotosInputViewItemSizeCalculator.swift */; }; + 36355BDC61421DCA667D46F77B3F7BC3 /* TextMessageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = AABD4F579A866A84B779427F513C116E /* TextMessageCollectionViewCell.swift */; }; + 38F3C615D2126DEC72E15557BD6E7281 /* TextMessageModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADE49B40025576C54A5800919EC51582 /* TextMessageModel.swift */; }; + 3F56AA8CE0D024E11D6BF9087A063D53 /* PhotoMessageModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6CE1B3DC70E182285B03BA408034F98 /* PhotoMessageModel.swift */; }; + 3FB1A2D2A9EDD942542B4F64263E238A /* MessageDecorationViewFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1BBC96A3D4AE6C387957B4C45BD0F840 /* MessageDecorationViewFactory.swift */; }; + 3FC14D49AAE9FB057C428A17D9DA1D0C /* ChatInputBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0895A8F714292AB31032419C0A502719 /* ChatInputBar.swift */; }; + 42B8C1B19DFE1A2FD82C27F2B49E1FF1 /* PhotoMessageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDBBC539E90109AB64C29FFC777AE9BD /* PhotoMessageCollectionViewCell.swift */; }; + 43B081203C4933C49E3534585D02E7C4 /* PhotosInputView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5DFFA374361CADA7687D2F6AAF3E6128 /* PhotosInputView.swift */; }; + 456159D42C7822CEF8D12CDD7ACF67A5 /* PhotoMessagePresenterBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BAA1DE44C80040FB0CD646BEEB58CB5 /* PhotoMessagePresenterBuilder.swift */; }; + 4819F4FDE3A422D93D5094012D5D852F /* TextMessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33DD84EB99D2B1FED3A2E98CD7D2D08B /* TextMessageViewModel.swift */; }; + 48238B8277D985D13D3289AE38944C13 /* PhotosInputCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0823EA5BF2EACA8B39AD206AB18E4A51 /* PhotosInputCell.swift */; }; 4995418A1D724B1D12B75135496FDDF0 /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2737FB1796FDA0835FBBCDCEB20EAA27 /* Utils.swift */; }; - 49972A38565CEA5602FD483925CB55FB /* ChatInputItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74CB1D65414B7717361C39D66D283CE0 /* ChatInputItem.swift */; }; - 49CA74ADE8390EBEC882CAA2A94A1FFA /* CompoundMessageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6FAA0F751739BC0A9126896AD888BBCF /* CompoundMessageCollectionViewCell.swift */; }; - 4A74DEDDF1D813D4CA695B771F041905 /* DefaultMessageContentPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 714FC1AB54DAE8C310F0CEFA89D26AF3 /* DefaultMessageContentPresenter.swift */; }; + 4B1F66EFACCB0FC027F40411B4F53047 /* CompoundBubbleLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = DEADFB0F0D46FBA486EAE9A0D5AFA8E7 /* CompoundBubbleLayout.swift */; }; 4B62C6890F154F02EB02B4F07A6DBFFB /* BaseChatItemPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED87067CA4F4C6D1B43A4F79756F0F82 /* BaseChatItemPresenter.swift */; }; - 4B720F28555AFDCD3538AF56A70E636A /* PhotosInputPermissionsRequester.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2AAAE2E4132F0FEE09FDF423B30D5D4F /* PhotosInputPermissionsRequester.swift */; }; - 4D8025FFA6D06D942FC8A0827F66230B /* PhotoMessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C974B49717EA2358DB1CF7BB0B50F352 /* PhotoMessageViewModel.swift */; }; + 4EAE1AC2F09AA88E7924DD65808DEEB1 /* InterfaceOrientation.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8ABDCC71A86D9447EEB9E234C04DB87 /* InterfaceOrientation.swift */; }; + 4EC1AE01D6193E8D55BBB3469A186AA1 /* TextMessageMenuItemPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0BE53BF5253D56DE7B1F8CC27E99DC1 /* TextMessageMenuItemPresenter.swift */; }; 4ED18EB2BB14C47F85DDE10458852E31 /* CellPanGestureHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A0BCBF7465CEF9DDEFBB5F48F947042 /* CellPanGestureHandler.swift */; }; + 50BAE324076B48E5DF78E84EE6005C2C /* ImagePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB9600C142ED198331B7F945D91076A8 /* ImagePicker.swift */; }; + 50E286BE8D000378621DAF8E115745E8 /* ChatInputBarAppearance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F1605BE8B49C062759B56E21F3BE2C8 /* ChatInputBarAppearance.swift */; }; + 5116A2B235624BA9D235843BA1FF3225 /* ReusableXibView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 482BED2103C47E53D2B9810F7E587269 /* ReusableXibView.swift */; }; + 525AD1A2E079BF3CBD1993D6D255D2B9 /* BaseMessageAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97A1922A09ADA4895D43F912C9BD2EB4 /* BaseMessageAssets.xcassets */; }; + 53D1A79F1E3389C02A597A6DDE690D74 /* PhotoMessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CF516B9903CE4F1EA7ECE35DEBFD4EB /* PhotoMessageViewModel.swift */; }; 54969C747E3336CD89121C38DB1CDA86 /* ChatLayoutConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0BBBD1FFF5A696C90066B277D6D4A10 /* ChatLayoutConfiguration.swift */; }; - 54ECA4709395436E07562991165EF3E7 /* Pods-ChattoApp-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C9D8F53B3D35A3001CB4D8DF8DEE7781 /* Pods-ChattoApp-dummy.m */; }; - 5C7E701FB287EED97ED036B9104E8C2A /* PhotoMessageCollectionViewCellDefaultStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77978A2658696C3ACCAB0F045CC98206 /* PhotoMessageCollectionViewCellDefaultStyle.swift */; }; - 5E8FF36033B11F8E374E21D54FF0E7EB /* PhotoMessagePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67A071BA5F2369A65FE500318AE54581 /* PhotoMessagePresenter.swift */; }; - 5F0EDE530320E14468100F02BF26D52A /* ExpandableTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF757C1130B953B838FCFB329D0229E7 /* ExpandableTextView.swift */; }; - 63EB39F84C5F4018CB8DF8DFB9DA6AFE /* AnimationUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 10E70AA53AC57665790A5C2CD9B2C04A /* AnimationUtils.swift */; }; + 561C14091FFDBFCFF2C5852FE3F65025 /* ChatInputBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8E22DE258A822554858D3207243AC833 /* ChatInputBar.xib */; }; + 564CE3166A883AA915C3998CFA36DFD3 /* PhotosInputPlaceholderCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAEA366E7B2333E217B086495D552C75 /* PhotosInputPlaceholderCell.swift */; }; + 57762F9C8370DBE71A2CB51A4D22ED3A /* CompoundMessagePresenterBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD6FDED50AC98EBD9963A9821F10B115 /* CompoundMessagePresenterBuilder.swift */; }; + 5C1AA4D62DAF88A178283E3EC9E2BC3E /* Observable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6396A7565AD4C9AC2BC5E30B4F4A3F43 /* Observable.swift */; }; + 60725522CB11FFE41C026538AEF2545C /* BaseMessageModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D40710D191836A81D87A5505DDBF2C36 /* BaseMessageModel.swift */; }; + 6469930F2C21DF84B813F7EC21D35472 /* HashableRepresentible.swift in Sources */ = {isa = PBXBuildFile; fileRef = B62BD16D68353978A24663F0D6FDCCA7 /* HashableRepresentible.swift */; }; + 6B8B63E08996585ACF77524C721EDFA4 /* UIColor+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D83DA4EFC41B0135B202C8221A824D2 /* UIColor+Additions.swift */; }; 6CBA68E92AF8F6B671194A423A568C21 /* ChatItemCompanion.swift in Sources */ = {isa = PBXBuildFile; fileRef = C15E52FE2E7D7781E212D50D1B4A765A /* ChatItemCompanion.swift */; }; - 6CDC49A463D0162F83A841782B544AFF /* TextChatInputItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 636DC6D61B6EF19EC96BE35B14CCEAA6 /* TextChatInputItem.swift */; }; - 6D522C1C61EAC3B450D65F6CD5EA0E20 /* LiveCameraCellPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63FC00E23F93D1CA476BEE56D0F4FB98 /* LiveCameraCellPresenter.swift */; }; - 6D62782E9BB6863D55632E1B2791D972 /* Photos.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D994C0A59B198A9A957A02BD59468AB2 /* Photos.xcassets */; }; - 6E08C9014BE6209B8019A7F81714C775 /* BaseMessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B110869322D170E13475D01B466EC854 /* BaseMessageViewModel.swift */; }; - 6E740C030EAF096FED8E21F08CE551E5 /* UIEdgeInsets+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 15F54571BD805290D58E0F8FB996446A /* UIEdgeInsets+Additions.swift */; }; - 7022B69B55E310C4D0C4C8544BB24B0E /* TextMessageCollectionViewCellDefaultStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D0D0EDC06E782D2AF302512ABC19EFD /* TextMessageCollectionViewCellDefaultStyle.swift */; }; - 711037B6AA754CB07880A091C8C6CABB /* UIColor+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09BDFF17346F6209318A3B24565AB5A7 /* UIColor+Additions.swift */; }; + 700798922FAE338261149631E1D89BCB /* TabInputButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7223F8C033BFFEE0FDB15697CF2BB6C8 /* TabInputButton.swift */; }; + 73D2C69E75FC2D2D70338A446A3E96E5 /* MessageContentPresenterProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F7D733A0DEADA2A8CAB6406CB57330B /* MessageContentPresenterProtocol.swift */; }; + 74849EA9D857A30C8EE3CBC59C016040 /* CompoundMessageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 283269D75A0B98D05047908FBEF1F33A /* CompoundMessageCollectionViewCell.swift */; }; 77981B58F9615CBBE8528306D8FBEAA6 /* BaseChatViewControllerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 011816ED5E011074BFBB08DB9E7E52A5 /* BaseChatViewControllerView.swift */; }; - 79438D1B4B52A6EBFF6F424B4423E666 /* Alignment.swift in Sources */ = {isa = PBXBuildFile; fileRef = EFC1EDB05F0B37E7229BEE70B54E8A83 /* Alignment.swift */; }; - 7ADCD64435352DD4050D4B470CAA6EFE /* HorizontalStackScrollView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DB36EB667AAE46E3B837172656A18397 /* HorizontalStackScrollView.swift */; }; - 7B144693D7B118743BA4729426813B50 /* InterfaceOrientation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 770CC22EC4375496AB621A5D5AB7D177 /* InterfaceOrientation.swift */; }; + 7ADE09D211D2C7C4197F33F8F9C6F5E8 /* ChatInputItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 501226DD9C2D0501786393AD13D2CAEA /* ChatInputItem.swift */; }; + 7B9B632475BFBFFB9BCEBF41AE6781FA /* CompoundBubbleViewStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 913F2880190E5ECDEEEE4BF992BAA21B /* CompoundBubbleViewStyle.swift */; }; 7C4EEEF686E5E839E4DEE2CEF25AC4F6 /* Chatto-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = F19EA325FF08EEEF8E04FBF1D4D84A74 /* Chatto-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7D780F57DC3DE7BDEA8DE70EF5C082A0 /* TextMessageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BE964C23E98ED60A8F2C6957B2B70B2 /* TextMessageCollectionViewCell.swift */; }; + 7CAE9E39794A69BD0B2AD24FC7D501D8 /* BaseMessagePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD8808CCD6243E9AEDAFA2EFF5B2AD23 /* BaseMessagePresenter.swift */; }; + 802BE2FEA3A6EF4E65DCA4B4C39D8431 /* LiveCameraCellPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14EBEEF92B23AC6E991F0BDB120E95B8 /* LiveCameraCellPresenter.swift */; }; 80A66B56E95666C6C909A90531631EC7 /* CollectionChanges.swift in Sources */ = {isa = PBXBuildFile; fileRef = D43345688FD3BBE9E2163B953A575197 /* CollectionChanges.swift */; }; - 81EBA4367D2F8447DCB86B1E902C291E /* TextMessageModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = FAE3AFC12EBC515AF0A2F939286184CA /* TextMessageModel.swift */; }; + 814A5766635BA4DFB6D7BBC621347791 /* CircleProgressView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9869199FF0C45C00B9E6E429A329B1E /* CircleProgressView.swift */; }; 8338260847FA1B00181152BC61AF1B6F /* DummyChatItemPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 779BC9D8CCD2E20F50D9C3A896385B69 /* DummyChatItemPresenter.swift */; }; - 885084AC2B7CE0B31B700DCC1EEA559F /* PhotosInputCameraPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 480DB7B9A686244C5B988E2AF35300FD /* PhotosInputCameraPicker.swift */; }; - 8884E8C78F2395383B11D8BDA6FE0F9E /* UIView+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9015BDB26ED00E68CB46AB3D80AB98F4 /* UIView+Additions.swift */; }; - 8CD890863E5B6E968C70D7854CB00522 /* BaseMessagePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CD45707126144E247AE74EAC62113CB /* BaseMessagePresenter.swift */; }; + 8365012497A80A360E09A210FBD9DEAC /* ExpandableChatInputBarPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4964FAE6F4A3D52051B3DFD52033900D /* ExpandableChatInputBarPresenter.swift */; }; + 8429362DDAF67750531C00D72C4081FE /* ChatInputItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC2BB1EBBCA2D1B36DA567DAD034C731 /* ChatInputItemView.swift */; }; + 8997D8C4D9F21E33F1204F109464A685 /* PhotoMessagePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD1B0FF275C25A3C07B6EB4ED433BBE1 /* PhotoMessagePresenter.swift */; }; + 8AA0B3344D365AE850A9E34683AB8410 /* TextBubbleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 21A1CA29ABA8D533AE6942E22508F8A6 /* TextBubbleView.swift */; }; + 8DA2D5DF6B4820D4C234A5E541516843 /* TextChatInputItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A752E0DE33643E6879E911B1998F7AB /* TextChatInputItem.swift */; }; + 8EF55C9EBED2553F0524695E2CAB3459 /* PhotoMessageAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = E994A42C4BBCE943DEDA4ADCABFBF488 /* PhotoMessageAssets.xcassets */; }; 8F9936C920063CC06FA1EE957F5F3FBB /* ChatItemCompanionCollection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BB248F27627AD32F456EB1B49BB2148 /* ChatItemCompanionCollection.swift */; }; - 91FE749B1387BF2371616553373F86AA /* CGFloat+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADD3822A725EA8197574441064BBABB4 /* CGFloat+Additions.swift */; }; - 927CFD2AC4830EBD277E03781724E6A5 /* ChatInputBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = 57E5F7087306304A9D9AB1A1B6B1F366 /* ChatInputBar.xib */; }; - 932A9389C4C9B0332648F416D8018E15 /* PhotosInputView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2193239EDCEF53543DD12E7BC019C3A4 /* PhotosInputView.swift */; }; - 952728F8216792F4F325D2082C84F24B /* MessageContentFactoryProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 36E65AB577296415731278B0A6D88C64 /* MessageContentFactoryProtocol.swift */; }; - 9584E01B2D1EFF8C285A08809FE680B9 /* ChattoAdditionsResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = B69CE53DFDF835669B41DFD94AB864CB /* ChattoAdditionsResources.bundle */; }; - 9686864E6C8B1D269A1576D4BE619DA6 /* PhotosInputCellProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCB4FAC12181BAB3056FEE71D97661F1 /* PhotosInputCellProvider.swift */; }; - 96D4E25488F2A48BDABB1BF581EA697C /* ChatItemDecorationAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4B49DBDDC34B908302AE7B7750625C77 /* ChatItemDecorationAttributes.swift */; }; - 990FC332085D166ED098971C8D91E7E7 /* Comparable+Clamp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A80AD661A7F87413D570DE85778F703 /* Comparable+Clamp.swift */; }; - 9B9C539B290BAFC9E04D39293B25845E /* PhotoMessageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB3254F8A7EA58CDBFE7E3191B6A662C /* PhotoMessageCollectionViewCell.swift */; }; - 9C2518D5EA762690526B504D8A94EC8F /* CircleProgressIndicatorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D77D0781BA61AAA9502F79F8616C46FB /* CircleProgressIndicatorView.swift */; }; - 9C630D118EF930E789B78D5AA0F63403 /* ReusableXibView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 77D3709A20D07AA4216F082F591EE2EF /* ReusableXibView.swift */; }; - 9E0A64EBE25D011D8FA6834630A7356E /* PhotoBubbleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8374D5C6A110F3170CC6F658C2094E08 /* PhotoBubbleView.swift */; }; - A202B811E49699847B8B2716FA5DECA2 /* MessageDecorationViewLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3E0E17A9FDC2B681D6DC617292577638 /* MessageDecorationViewLayout.swift */; }; + 928CFA1F7B365771297E1666B362EC06 /* BaseMessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806AC8F1CD6A8C7EADE94C791EE39F9D /* BaseMessageViewModel.swift */; }; + 93E17A37C62913A444BC0982FD3CAB9C /* DefaultMessageContentPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = FCB5C95E8B0BEAB6A9A66F67E6556B18 /* DefaultMessageContentPresenter.swift */; }; + 9954443AE639B5C9936F68199DA058F3 /* ChattoAdditions-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F93718D9C807F23012F25F889C6D05D8 /* ChattoAdditions-dummy.m */; }; + 9C38FB65F59C7DA4B8BAE2C6B2AB4332 /* MessageManualLayoutProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AF22E9F96884321F0BCEA0D10A0A852 /* MessageManualLayoutProvider.swift */; }; + 9CE23EFF4341229AE12A4D3AE4FBE6BF /* PasteActionInterceptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2BE442AA2438AE0CA41A759149014C4 /* PasteActionInterceptor.swift */; }; + 9F1961CA7D23F6C289AC1ACC15C71443 /* PhotosInputDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0F68CE9E175448BDAA8DAE759A7FF2A /* PhotosInputDataProvider.swift */; }; + A24F42B3A3143278B472DD139E8CD708 /* Text.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 2D447A3863D908E9E0E4D273A7688060 /* Text.xcassets */; }; + A28368F2BC2DF1D80149743445864EF3 /* CompoundMessagePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64F9F8727BF298D7036A993DE64098B1 /* CompoundMessagePresenter.swift */; }; A2DDCF7BB7CE4A8955B6D15DC71ED2F0 /* Chatto-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 85832A5C6F4E62651AFDDAD8D95D8083 /* Chatto-dummy.m */; }; - A49BCC816E7AC0E5EB759361BC1CC555 /* CircleProgressView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F875C137CD2DEE0C3C2DC17A84073C69 /* CircleProgressView.swift */; }; - A826581233536491266D2C1EEF8A5755 /* BaseMessageAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = CEFEE1BDBA52425C0BF257BE30B713F6 /* BaseMessageAssets.xcassets */; }; - AB8623BB7EDDA34B75DA439DD256337C /* HashableRepresentible.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4176A12187CF99A8A3A7FB0C962C04FF /* HashableRepresentible.swift */; }; - B84AA8F848F58E324A7779D50094964F /* ChatInputBarPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = ABA30D4CE5D2FDB139D5839294D56DD4 /* ChatInputBarPresenter.swift */; }; - BF8960F4E116ACE0F8E57C2107F16F4D /* MessageDecorationViewFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = B265691827F2A4F9A37199C62D5EC8E0 /* MessageDecorationViewFactory.swift */; }; - C0595C7FAEEBFCCF308602CDB03B919F /* CompoundBubbleLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6AF1BB882EFC089137A92617CC539D74 /* CompoundBubbleLayout.swift */; }; - C101A77D499A41A7451DE13F7F7648AD /* CompoundMessagePresenterBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1C9460B1B4084CC51E0267A52832216D /* CompoundMessagePresenterBuilder.swift */; }; - C370237F4184BF4CA37BFD28FA45F651 /* ChatInputItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9CD8FF9E82885B3E24F8D1F735BBEA9 /* ChatInputItemView.swift */; }; - C65AE1C8F3CF4282A0A73E717417075D /* ChatInputBarAppearance.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6CDF1CDE6388CE1CDC7EBE802EAF784 /* ChatInputBarAppearance.swift */; }; - C762444CD92D49969D64EDB305EFD2C9 /* PhotosInputDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0B83A73A3E79C2882D0D0384A6C15F3B /* PhotosInputDataProvider.swift */; }; - C856EC31042423975C437C379F4F0311 /* PhotosInputPlaceholderCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3942A57C84CF8AB42BF14F1C1A120A38 /* PhotosInputPlaceholderCell.swift */; }; + A3799C749593280587A2AD008CA75134 /* Chatto.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CCCE6A8E9F86772CD3FC9DDFC357633B /* Chatto.framework */; }; + ABE646530214F360E221ED1A778BA240 /* Photos.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 92050F47BAD040163DE1BCF8E6A1735D /* Photos.xcassets */; }; + AC761B031C2698AF2B003D0AED41356C /* HorizontalStackScrollView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F384B681FD98D4877A38278071015A92 /* HorizontalStackScrollView.swift */; }; + ACE7E2DE63617480A41B1141FC9CCF65 /* MessageContentFactoryProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF92289C8A545481701B6B4765CD8AE0 /* MessageContentFactoryProtocol.swift */; }; + AF48F289ED7D11941B832BED35211287 /* TextMessagePresenterBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A806C01FA1BFCD488169AE664858363 /* TextMessagePresenterBuilder.swift */; }; + BD37C8ACD6AD9D47E6AF89DC09207161 /* PhotosInputWithPlaceholdersDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34D4F524AE0600A38CCA07CEB5F4C656 /* PhotosInputWithPlaceholdersDataProvider.swift */; }; + BFB5349670A9E23BBA842076F2E6478A /* CircleProgressIndicator.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 89CBBC63C653C97472D7E2ABEC510BC1 /* CircleProgressIndicator.xcassets */; }; + C23BA3A1EC55A281FFBC007A250376FD /* CircleIconView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5EEB0FCC5619208B0C1ABCA0B9B5B242 /* CircleIconView.swift */; }; + C3B2474D40ECE988131966F3DB0D8DC5 /* PhotosInputPlaceholderCellProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE4F103BE3BC2C7B182F8B7D029E7825 /* PhotosInputPlaceholderCellProvider.swift */; }; + C7C6BB47CD88FDA7CE8DD6016DFA032E /* UIView+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 25693FC416E58F954C564A75B06B8014 /* UIView+Additions.swift */; }; + C9C90B9677CB5BB26818973AD9359494 /* ChatInputBarPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 389A30D825C9593862B24D4DEF5608F3 /* ChatInputBarPresenter.swift */; }; C9F4F7B619A77BB4195D2C1BA060F18A /* SerialTaskQueue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 601AEAA1DD874E1CC895F1F0706B3AED /* SerialTaskQueue.swift */; }; - CB330D642F368C6A574D08E1E6C8E386 /* PhotosInputPlaceholderDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8FCDC8C36D576859E71CA4E1A7FC36AF /* PhotosInputPlaceholderDataProvider.swift */; }; + CA75B2493231B2BF77129702B697E890 /* LiveCameraCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 450E6D7CC218DA1B218A9FF3A086290C /* LiveCameraCell.swift */; }; CB6543AA87EAC02C244C568866840493 /* BaseChatViewController+Changes.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6A9D5406982D7B2766871EBB80D7DAD /* BaseChatViewController+Changes.swift */; }; - CBD235BC1BA95565E550DA5676601034 /* CompoundBubbleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 291B71348E9CF119DA3BF9EDC123E9E0 /* CompoundBubbleView.swift */; }; - CFEDFE32E8D12FEFBB22030B5F362B49 /* MessageContentPresenterProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22B5632CE1B1F819A99A3AE184F733C3 /* MessageContentPresenterProtocol.swift */; }; - D4A86540EB18DFC166494A91F97C3C54 /* ScreenMetric.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67660A947F33AF88CF6C3D5CD686D0DF /* ScreenMetric.swift */; }; - D6DDB66A9C91CBA8536BECD413822C4A /* TextMessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 03DE734FAAC256A82FCC50D28822A602 /* TextMessageViewModel.swift */; }; - DA7E25EF9C730AACB23587357C20D222 /* ImagePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = AB49EBE82C8B754ED98B9F63E8FB3D5A /* ImagePicker.swift */; }; - DAF83477EACAB95D444AB0DBA7B2BF99 /* PasteActionInterceptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32D8D24087034296B8A8750AFB6438F2 /* PasteActionInterceptor.swift */; }; + CD4C01F9474A1F558BEA49DE66FF59AE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CD673AD6FDA8BE759BCD31DEF040F680 /* Foundation.framework */; }; + CDFF04FB788482594521B38A28A62427 /* Alignment.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5814301B7B948CED7F98CA913AD2B1A /* Alignment.swift */; }; + CE8B40C4F5F9A08E1982AF84864038DF /* ChattoAdditions-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 80018A9EC57E23575E7580D9034A3D60 /* ChattoAdditions-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CF8A69A01FAA07A056A26EAF63D6A0B6 /* ScreenMetric.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48B643807206FF779D3F1AE54CD142D8 /* ScreenMetric.swift */; }; + D2829242A3C38B87934D76EC277E9E2B /* CompoundBubbleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B4CA06B50C467916444EC76DF0FA9F7 /* CompoundBubbleView.swift */; }; + D838565318379A2DD2AA4B5067912DE8 /* Comparable+Clamp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1490A3281CD5280EAFCC87D05FFDE515 /* Comparable+Clamp.swift */; }; + D8E5FA17809E054725668683AB5350DD /* UIEdgeInsets+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09FA84E8B9F753554B31D2A6FA91AFA4 /* UIEdgeInsets+Additions.swift */; }; DBB808D4FE2CF878FF64852DA295A647 /* BaseChatViewController+Scrolling.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA3FFAA6DE2BCFF6993980C497BFD5F0 /* BaseChatViewController+Scrolling.swift */; }; - DC4E8C37529FFC29509E8BABA2645A3E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CD673AD6FDA8BE759BCD31DEF040F680 /* Foundation.framework */; }; - DFFCB02B35D1D0011694366B9A1FBE84 /* UIScreen+Scale.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2E19419D8E1D1D4A5EA941CB83CADB49 /* UIScreen+Scale.swift */; }; + DCBC7D07930EF9DD3260194325E03327 /* Pods-ChattoApp-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F284074807EBD02656E1B9678B3FA42 /* Pods-ChattoApp-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + E0A5F0905EA23DE909C3BAFCA723C437 /* BaseMessageCollectionViewCellDefaultStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8175123A596B4CA61393473DF633E21E /* BaseMessageCollectionViewCellDefaultStyle.swift */; }; + E63F2C4214A512B0252A6D2A81F02971 /* CGSize+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A508A14BD50AC9102368C24A9A91A98 /* CGSize+Additions.swift */; }; + E6437278B4870361CFDF2754058910FF /* InputContainerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C63A0F3D49B9F11D31D3676112C0506B /* InputContainerView.swift */; }; + E64D77B364E6E2BA85F9BA8BFF167833 /* ChatItemDecorationAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29EE7B9618D27C2FD171BBD3943D4F53 /* ChatItemDecorationAttributes.swift */; }; + E69ACE01FADF56AC43F90EADAAD3152F /* TextMessageCollectionViewCellDefaultStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39273FFB8CC4F6EBDC44D2F4BB223D8F /* TextMessageCollectionViewCellDefaultStyle.swift */; }; + E7537A03977266059A763A4D7FD967E7 /* PhotoMessageCollectionViewCellDefaultStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = FBC54F61151A6036D2658DEFB3A54FFA /* PhotoMessageCollectionViewCellDefaultStyle.swift */; }; E7A5B94651AB3CD403989F9E1BE94C0E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CD673AD6FDA8BE759BCD31DEF040F680 /* Foundation.framework */; }; - E7EBAC8AC1A09ECEE95E44F550F45ED0 /* PhotosInputPlaceholderCellProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 05DD5C3B11B9FFC972AA3756AE0FD1B8 /* PhotosInputPlaceholderCellProvider.swift */; }; + E9493F0B1984CC70BD08B41880DD5F87 /* PhotosInputCellProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 939F0BDF7574622A00AA9B75F8A90B12 /* PhotosInputCellProvider.swift */; }; E9A7B0904A90334AD52850E88BF0F55A /* BaseChatViewController+Presenters.swift in Sources */ = {isa = PBXBuildFile; fileRef = 716328BD4E265D0F857D887BF90E60CE /* BaseChatViewController+Presenters.swift */; }; EA5CEB4072F203BAE783EE7D9B5D88AE /* KeyboardTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32DA18178317D81FFA8D56C8D130C622 /* KeyboardTracker.swift */; }; - EEDF376CC9841A6A14E9CFE01B345025 /* PhotosChatInputItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D1893302005C5E2ECC8F5D380A50E78 /* PhotosChatInputItem.swift */; }; - EFE5D024E63EE1DC581736FF812CA10A /* PhotoMessagePresenterBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F4B76CF31CDEAAD1EE9641E8885154E /* PhotoMessagePresenterBuilder.swift */; }; - F1A4950F5267A9F11B4DED40EC8854C5 /* TextMessagePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 367CDCAA7AFAABA7DF942AB633CCE979 /* TextMessagePresenter.swift */; }; - F22895BCA7D8CF6CC95C15E5A2789E16 /* Bundle+ChattoAdditionsResources.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95677EE8DD667B0FD512B09D61737B23 /* Bundle+ChattoAdditionsResources.swift */; }; - F2E210AA38D3DD6848365B6DD1BFFE0E /* CGSize+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 058AA76F9095B097F8FEB15AB408B999 /* CGSize+Additions.swift */; }; + EFBD4D384FDCE88F20ADAAA27932D661 /* CALayer+ImageMask.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2BA04D067F5FB905DB5C307895A045A /* CALayer+ImageMask.swift */; }; F3D964E03C8EFFC3A75B5F643E5685BA /* ChatItemPresenterFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EB3F71B2A515DA6B014B0075ECEC519 /* ChatItemPresenterFactory.swift */; }; F5C157F56B1262C6E65F0C0D369EC54F /* BaseChatViewController+CellPanGestureHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B86DB3161E5DE1454E1F3B63DEDE792 /* BaseChatViewController+CellPanGestureHandler.swift */; }; - F5DA469A5A55137EA54FCE24C117F88C /* PhotosInputViewItemSizeCalculator.swift in Sources */ = {isa = PBXBuildFile; fileRef = EFC9E80378681C269567548EC54A8738 /* PhotosInputViewItemSizeCalculator.swift */; }; - F600261561FDD2CDD327772D5C6B25BE /* ViewDefinitions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 994DE3FEECB5E6029EA8236C468BA74C /* ViewDefinitions.swift */; }; - F7CEB047190CFE73D2A5250AE68CD1FC /* CompoundBubbleViewStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE0D005FE7E89F5B139DC33D58E29E80 /* CompoundBubbleViewStyle.swift */; }; - FBB38675B8406FF33586A48E14AD99D5 /* TextMessagePresenterBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6556B08AD1A8DF7B7D37060647C8D440 /* TextMessagePresenterBuilder.swift */; }; - FC7265FAB64D8F254A3E6109E324CD12 /* LiveCameraCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71CA627892FE1CA264F28156AEA704D4 /* LiveCameraCell.swift */; }; - FD26489E95FDAFB8A2C55C46AA7D4974 /* ExpandableChatInputBarPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45D12BB9EA20605B1756F8B59407AD7B /* ExpandableChatInputBarPresenter.swift */; }; + F602367714356409237ED5B5AF77E1AD /* CircleProgressIndicatorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D18132AAEF3270596CB3D78CA550D455 /* CircleProgressIndicatorView.swift */; }; + F9252BF614C41E2AB648C472FF07862F /* UIImage+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = F598D1DC6E45266010339B726A3B8E3E /* UIImage+Additions.swift */; }; + FDAA0CED1770D7D065490A5898861BE9 /* ExpandableTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D2C41F8AE2F0B21E0B359324AFFB418 /* ExpandableTextView.swift */; }; + FF7482E9D1685533FF5A555A5E8FD64A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CD673AD6FDA8BE759BCD31DEF040F680 /* Foundation.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - 2F143160FDC9929DAAE9630E6851DD09 /* PBXContainerItemProxy */ = { + A2C41191AFC70DDC9F32D138B27DA480 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 6F936489F9DED646FF7F46860CC24EDB; - remoteInfo = "ChattoAdditions-ChattoAdditionsResources"; + remoteGlobalIDString = 2508BC3B908322C9E85E61AE743C9842; + remoteInfo = Chatto; }; - 6E4752DAA1E2BFA2EF2E0C5F4B035F74 /* PBXContainerItemProxy */ = { + A4E661724D45C6401D542CFCA36A0F93 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; remoteGlobalIDString = 9A88D54DB316ADF1E80363324718D63E; remoteInfo = ChattoAdditions; }; - 89407BAD950459C2A957BBEE6D4D65B0 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 2508BC3B908322C9E85E61AE743C9842; - remoteInfo = Chatto; - }; - C61A94A119AA55D8C594208F291AC9CE /* PBXContainerItemProxy */ = { + A68E87179033DDCA6995A61F10EE58E1 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; @@ -167,176 +158,166 @@ /* Begin PBXFileReference section */ 011816ED5E011074BFBB08DB9E7E52A5 /* BaseChatViewControllerView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseChatViewControllerView.swift; sourceTree = ""; }; - 03DE734FAAC256A82FCC50D28822A602 /* TextMessageViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextMessageViewModel.swift; sourceTree = ""; }; - 058AA76F9095B097F8FEB15AB408B999 /* CGSize+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "CGSize+Additions.swift"; sourceTree = ""; }; - 05DD5C3B11B9FFC972AA3756AE0FD1B8 /* PhotosInputPlaceholderCellProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputPlaceholderCellProvider.swift; sourceTree = ""; }; - 09BDFF17346F6209318A3B24565AB5A7 /* UIColor+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIColor+Additions.swift"; sourceTree = ""; }; - 0B83A73A3E79C2882D0D0384A6C15F3B /* PhotosInputDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputDataProvider.swift; sourceTree = ""; }; - 0D0D0EDC06E782D2AF302512ABC19EFD /* TextMessageCollectionViewCellDefaultStyle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextMessageCollectionViewCellDefaultStyle.swift; sourceTree = ""; }; - 10E70AA53AC57665790A5C2CD9B2C04A /* AnimationUtils.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AnimationUtils.swift; sourceTree = ""; }; - 15F54571BD805290D58E0F8FB996446A /* UIEdgeInsets+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIEdgeInsets+Additions.swift"; sourceTree = ""; }; + 04AC49AFCD860E5DCDBFDBC0140AE885 /* CGRect+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "CGRect+Additions.swift"; sourceTree = ""; }; + 06A7041007DC3A31B6D306FF23A0C3E9 /* CGFloat+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "CGFloat+Additions.swift"; sourceTree = ""; }; + 0823EA5BF2EACA8B39AD206AB18E4A51 /* PhotosInputCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputCell.swift; sourceTree = ""; }; + 0895A8F714292AB31032419C0A502719 /* ChatInputBar.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatInputBar.swift; sourceTree = ""; }; + 09FA84E8B9F753554B31D2A6FA91AFA4 /* UIEdgeInsets+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIEdgeInsets+Additions.swift"; sourceTree = ""; }; + 0CF516B9903CE4F1EA7ECE35DEBFD4EB /* PhotoMessageViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoMessageViewModel.swift; sourceTree = ""; }; + 0D2C41F8AE2F0B21E0B359324AFFB418 /* ExpandableTextView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ExpandableTextView.swift; sourceTree = ""; }; + 0F1605BE8B49C062759B56E21F3BE2C8 /* ChatInputBarAppearance.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatInputBarAppearance.swift; sourceTree = ""; }; + 0FA1A535C01FD338F65BD9984B536756 /* UIScreen+Scale.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIScreen+Scale.swift"; sourceTree = ""; }; + 13322131F1DBFDB63B36E6DB589FE8A4 /* MessageDecorationViewLayout.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MessageDecorationViewLayout.swift; sourceTree = ""; }; + 1490A3281CD5280EAFCC87D05FFDE515 /* Comparable+Clamp.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Comparable+Clamp.swift"; sourceTree = ""; }; + 14EBEEF92B23AC6E991F0BDB120E95B8 /* LiveCameraCellPresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LiveCameraCellPresenter.swift; sourceTree = ""; }; 17DABB4FAF93F3412343EA3829D21C6E /* Pods-ChattoApp-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ChattoApp-acknowledgements.plist"; sourceTree = ""; }; 1B86DB3161E5DE1454E1F3B63DEDE792 /* BaseChatViewController+CellPanGestureHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "BaseChatViewController+CellPanGestureHandler.swift"; sourceTree = ""; }; - 1C9460B1B4084CC51E0267A52832216D /* CompoundMessagePresenterBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CompoundMessagePresenterBuilder.swift; sourceTree = ""; }; + 1BBC96A3D4AE6C387957B4C45BD0F840 /* MessageDecorationViewFactory.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MessageDecorationViewFactory.swift; sourceTree = ""; }; 1EB3F71B2A515DA6B014B0075ECEC519 /* ChatItemPresenterFactory.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatItemPresenterFactory.swift; sourceTree = ""; }; - 2193239EDCEF53543DD12E7BC019C3A4 /* PhotosInputView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputView.swift; sourceTree = ""; }; - 22B5632CE1B1F819A99A3AE184F733C3 /* MessageContentPresenterProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MessageContentPresenterProtocol.swift; sourceTree = ""; }; - 261433B41729B76062ED9AED2BBB1E6F /* PhotosInputCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputCell.swift; sourceTree = ""; }; + 1F80EC38EF3F3B62C75375F1BE3FA74A /* ViewDefinitions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ViewDefinitions.swift; sourceTree = ""; }; + 21A1CA29ABA8D533AE6942E22508F8A6 /* TextBubbleView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextBubbleView.swift; sourceTree = ""; }; + 21B0D2035FD656FBD1BE0FD4D0765885 /* TextMessagePresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextMessagePresenter.swift; sourceTree = ""; }; + 236C20E885169120F2B1302E3C152FA0 /* CGPoint+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "CGPoint+Additions.swift"; sourceTree = ""; }; + 25428E5ACCD837FEC4C3BB46554283A3 /* PhotoBubbleView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoBubbleView.swift; sourceTree = ""; }; + 25693FC416E58F954C564A75B06B8014 /* UIView+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIView+Additions.swift"; sourceTree = ""; }; 2737FB1796FDA0835FBBCDCEB20EAA27 /* Utils.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Utils.swift; path = Chatto/Source/Utils.swift; sourceTree = ""; }; - 291B71348E9CF119DA3BF9EDC123E9E0 /* CompoundBubbleView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CompoundBubbleView.swift; sourceTree = ""; }; - 2AAAE2E4132F0FEE09FDF423B30D5D4F /* PhotosInputPermissionsRequester.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputPermissionsRequester.swift; sourceTree = ""; }; - 2CD45707126144E247AE74EAC62113CB /* BaseMessagePresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseMessagePresenter.swift; sourceTree = ""; }; - 2E19419D8E1D1D4A5EA941CB83CADB49 /* UIScreen+Scale.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIScreen+Scale.swift"; sourceTree = ""; }; + 283269D75A0B98D05047908FBEF1F33A /* CompoundMessageCollectionViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CompoundMessageCollectionViewCell.swift; sourceTree = ""; }; + 29EE7B9618D27C2FD171BBD3943D4F53 /* ChatItemDecorationAttributes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatItemDecorationAttributes.swift; sourceTree = ""; }; + 2D447A3863D908E9E0E4D273A7688060 /* Text.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; path = Text.xcassets; sourceTree = ""; }; + 2D83DA4EFC41B0135B202C8221A824D2 /* UIColor+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIColor+Additions.swift"; sourceTree = ""; }; 2F91943BF4071679AC2B022841A1E13F /* ChatItemProtocolDefinitions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatItemProtocolDefinitions.swift; sourceTree = ""; }; - 32D8D24087034296B8A8750AFB6438F2 /* PasteActionInterceptor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PasteActionInterceptor.swift; sourceTree = ""; }; 32DA18178317D81FFA8D56C8D130C622 /* KeyboardTracker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = KeyboardTracker.swift; sourceTree = ""; }; - 367CDCAA7AFAABA7DF942AB633CCE979 /* TextMessagePresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextMessagePresenter.swift; sourceTree = ""; }; - 36E65AB577296415731278B0A6D88C64 /* MessageContentFactoryProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MessageContentFactoryProtocol.swift; sourceTree = ""; }; + 33DD84EB99D2B1FED3A2E98CD7D2D08B /* TextMessageViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextMessageViewModel.swift; sourceTree = ""; }; + 34D4F524AE0600A38CCA07CEB5F4C656 /* PhotosInputWithPlaceholdersDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputWithPlaceholdersDataProvider.swift; sourceTree = ""; }; 379B75F2572444095DDDDB5210539790 /* Chatto.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Chatto.release.xcconfig; sourceTree = ""; }; - 3942A57C84CF8AB42BF14F1C1A120A38 /* PhotosInputPlaceholderCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputPlaceholderCell.swift; sourceTree = ""; }; - 3A80AD661A7F87413D570DE85778F703 /* Comparable+Clamp.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Comparable+Clamp.swift"; sourceTree = ""; }; - 3BE964C23E98ED60A8F2C6957B2B70B2 /* TextMessageCollectionViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextMessageCollectionViewCell.swift; sourceTree = ""; }; + 389A30D825C9593862B24D4DEF5608F3 /* ChatInputBarPresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatInputBarPresenter.swift; sourceTree = ""; }; + 39273FFB8CC4F6EBDC44D2F4BB223D8F /* TextMessageCollectionViewCellDefaultStyle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextMessageCollectionViewCellDefaultStyle.swift; sourceTree = ""; }; + 3A806C01FA1BFCD488169AE664858363 /* TextMessagePresenterBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextMessagePresenterBuilder.swift; sourceTree = ""; }; + 3B4CA06B50C467916444EC76DF0FA9F7 /* CompoundBubbleView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CompoundBubbleView.swift; sourceTree = ""; }; 3C4011DB2C80F78B8321E9E704E40DD2 /* Pods-ChattoApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ChattoApp.release.xcconfig"; sourceTree = ""; }; - 3E0E17A9FDC2B681D6DC617292577638 /* MessageDecorationViewLayout.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MessageDecorationViewLayout.swift; sourceTree = ""; }; 3F6AA5831849C3C2E9145F702B037D51 /* Chatto-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Chatto-Info.plist"; sourceTree = ""; }; - 4176A12187CF99A8A3A7FB0C962C04FF /* HashableRepresentible.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = HashableRepresentible.swift; sourceTree = ""; }; 441161BF7E2BA980954402DC3B085F17 /* Chatto-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Chatto-prefix.pch"; sourceTree = ""; }; - 45D12BB9EA20605B1756F8B59407AD7B /* ExpandableChatInputBarPresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ExpandableChatInputBarPresenter.swift; sourceTree = ""; }; - 45E55C006EACBF6AF62D4A445336582B /* ChattoAdditions-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "ChattoAdditions-dummy.m"; sourceTree = ""; }; - 480DB7B9A686244C5B988E2AF35300FD /* PhotosInputCameraPicker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputCameraPicker.swift; sourceTree = ""; }; + 450E6D7CC218DA1B218A9FF3A086290C /* LiveCameraCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LiveCameraCell.swift; sourceTree = ""; }; + 482BED2103C47E53D2B9810F7E587269 /* ReusableXibView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ReusableXibView.swift; sourceTree = ""; }; + 48B643807206FF779D3F1AE54CD142D8 /* ScreenMetric.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ScreenMetric.swift; sourceTree = ""; }; + 4964FAE6F4A3D52051B3DFD52033900D /* ExpandableChatInputBarPresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ExpandableChatInputBarPresenter.swift; sourceTree = ""; }; 4A0BCBF7465CEF9DDEFBB5F48F947042 /* CellPanGestureHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CellPanGestureHandler.swift; sourceTree = ""; }; - 4B49DBDDC34B908302AE7B7750625C77 /* ChatItemDecorationAttributes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatItemDecorationAttributes.swift; sourceTree = ""; }; + 4BAA1DE44C80040FB0CD646BEEB58CB5 /* PhotoMessagePresenterBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoMessagePresenterBuilder.swift; sourceTree = ""; }; + 4F7D733A0DEADA2A8CAB6406CB57330B /* MessageContentPresenterProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MessageContentPresenterProtocol.swift; sourceTree = ""; }; + 501226DD9C2D0501786393AD13D2CAEA /* ChatInputItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatInputItem.swift; sourceTree = ""; }; 50C77FEBEB19D818C26806FF54F89504 /* Pods-ChattoApp-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ChattoApp-acknowledgements.markdown"; sourceTree = ""; }; - 55376BE79C6F33D7E3507742EF39694B /* ChatInputBar.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatInputBar.swift; sourceTree = ""; }; 56880FCEF4E8A4001BC6DEEE39516923 /* InputPositionControlling.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = InputPositionControlling.swift; sourceTree = ""; }; - 57E5F7087306304A9D9AB1A1B6B1F366 /* ChatInputBar.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; path = ChatInputBar.xib; sourceTree = ""; }; 5BB248F27627AD32F456EB1B49BB2148 /* ChatItemCompanionCollection.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChatItemCompanionCollection.swift; path = Chatto/Source/ChatItemCompanionCollection.swift; sourceTree = ""; }; + 5DFFA374361CADA7687D2F6AAF3E6128 /* PhotosInputView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputView.swift; sourceTree = ""; }; + 5EEB0FCC5619208B0C1ABCA0B9B5B242 /* CircleIconView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CircleIconView.swift; sourceTree = ""; }; 601AEAA1DD874E1CC895F1F0706B3AED /* SerialTaskQueue.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SerialTaskQueue.swift; path = Chatto/Source/SerialTaskQueue.swift; sourceTree = ""; }; - 60CBAC6A8C23F227D969F7D4933A06A1 /* PhotosInputWithPlaceholdersDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputWithPlaceholdersDataProvider.swift; sourceTree = ""; }; 61329A1C6AC7B2B3D80ECAA47B1B07F1 /* Chatto.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = Chatto.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 63368CBF18167F84FF5D4E6B622719FD /* CircleIconView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CircleIconView.swift; sourceTree = ""; }; - 636DC6D61B6EF19EC96BE35B14CCEAA6 /* TextChatInputItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextChatInputItem.swift; sourceTree = ""; }; - 63FC00E23F93D1CA476BEE56D0F4FB98 /* LiveCameraCellPresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LiveCameraCellPresenter.swift; sourceTree = ""; }; - 6556B08AD1A8DF7B7D37060647C8D440 /* TextMessagePresenterBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextMessagePresenterBuilder.swift; sourceTree = ""; }; - 67660A947F33AF88CF6C3D5CD686D0DF /* ScreenMetric.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ScreenMetric.swift; sourceTree = ""; }; - 67A071BA5F2369A65FE500318AE54581 /* PhotoMessagePresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoMessagePresenter.swift; sourceTree = ""; }; - 6AF1BB882EFC089137A92617CC539D74 /* CompoundBubbleLayout.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CompoundBubbleLayout.swift; sourceTree = ""; }; - 6E742995A801D854DC749FBCB452C13A /* TabInputButton.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TabInputButton.swift; sourceTree = ""; }; + 6396A7565AD4C9AC2BC5E30B4F4A3F43 /* Observable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Observable.swift; sourceTree = ""; }; + 64F9F8727BF298D7036A993DE64098B1 /* CompoundMessagePresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CompoundMessagePresenter.swift; sourceTree = ""; }; + 65F825FEE553CA33058218D87DBA9B1F /* Cache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Cache.swift; sourceTree = ""; }; + 66BCAA1ED19612A2FDF2EFD0C1FE7ACC /* ChattoAdditions.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = ChattoAdditions.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 6F284074807EBD02656E1B9678B3FA42 /* Pods-ChattoApp-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ChattoApp-umbrella.h"; sourceTree = ""; }; - 6F3055E73F027BA313A4F4ECD1F5E567 /* Text.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; path = Text.xcassets; sourceTree = ""; }; - 6FAA0F751739BC0A9126896AD888BBCF /* CompoundMessageCollectionViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CompoundMessageCollectionViewCell.swift; sourceTree = ""; }; - 7115724DFAD6AA489E53A1C74F3A4759 /* CALayer+ImageMask.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "CALayer+ImageMask.swift"; sourceTree = ""; }; - 714FC1AB54DAE8C310F0CEFA89D26AF3 /* DefaultMessageContentPresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DefaultMessageContentPresenter.swift; sourceTree = ""; }; 716328BD4E265D0F857D887BF90E60CE /* BaseChatViewController+Presenters.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "BaseChatViewController+Presenters.swift"; sourceTree = ""; }; - 71CA627892FE1CA264F28156AEA704D4 /* LiveCameraCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LiveCameraCell.swift; sourceTree = ""; }; - 72BC1D4E5330F8CAEF30E126F5829E00 /* ResourceBundle-ChattoAdditionsResources-ChattoAdditions-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ResourceBundle-ChattoAdditionsResources-ChattoAdditions-Info.plist"; sourceTree = ""; }; - 74CB1D65414B7717361C39D66D283CE0 /* ChatInputItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatInputItem.swift; sourceTree = ""; }; - 770CC22EC4375496AB621A5D5AB7D177 /* InterfaceOrientation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = InterfaceOrientation.swift; sourceTree = ""; }; - 77978A2658696C3ACCAB0F045CC98206 /* PhotoMessageCollectionViewCellDefaultStyle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoMessageCollectionViewCellDefaultStyle.swift; sourceTree = ""; }; + 7223F8C033BFFEE0FDB15697CF2BB6C8 /* TabInputButton.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TabInputButton.swift; sourceTree = ""; }; 779BC9D8CCD2E20F50D9C3A896385B69 /* DummyChatItemPresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DummyChatItemPresenter.swift; sourceTree = ""; }; - 77D3709A20D07AA4216F082F591EE2EF /* ReusableXibView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ReusableXibView.swift; sourceTree = ""; }; - 80471D61BA1A7E17F552874783026586 /* BaseMessageCollectionViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseMessageCollectionViewCell.swift; sourceTree = ""; }; - 8165413431D3A6312D65AF54F5B746FD /* ChattoAdditions-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ChattoAdditions-prefix.pch"; sourceTree = ""; }; - 8374D5C6A110F3170CC6F658C2094E08 /* PhotoBubbleView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoBubbleView.swift; sourceTree = ""; }; - 847A1DD10572FF2F7092B36350295943 /* BaseMessageModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseMessageModel.swift; sourceTree = ""; }; + 7D0110B6E288B7DDC5F5D908A64A4BC0 /* ChattoAdditions.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = ChattoAdditions.modulemap; sourceTree = ""; }; + 80018A9EC57E23575E7580D9034A3D60 /* ChattoAdditions-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ChattoAdditions-umbrella.h"; sourceTree = ""; }; + 806AC8F1CD6A8C7EADE94C791EE39F9D /* BaseMessageViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseMessageViewModel.swift; sourceTree = ""; }; + 8175123A596B4CA61393473DF633E21E /* BaseMessageCollectionViewCellDefaultStyle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseMessageCollectionViewCellDefaultStyle.swift; sourceTree = ""; }; + 8407F3DCCFB69F669A808405C9D329CA /* PhotosInputViewItemSizeCalculator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputViewItemSizeCalculator.swift; sourceTree = ""; }; 85832A5C6F4E62651AFDDAD8D95D8083 /* Chatto-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Chatto-dummy.m"; sourceTree = ""; }; - 869ADCE2A5B150FFDF95D19E0C8D9EF4 /* DeviceImagePicker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DeviceImagePicker.swift; sourceTree = ""; }; + 89AD4E3AE9A6A4616B3E47334A660B61 /* BaseMessageCollectionViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseMessageCollectionViewCell.swift; sourceTree = ""; }; + 89CBBC63C653C97472D7E2ABEC510BC1 /* CircleProgressIndicator.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; path = CircleProgressIndicator.xcassets; sourceTree = ""; }; 8A05D1B506E39896D053A99661B1B3BB /* ChatDataSourceProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatDataSourceProtocol.swift; sourceTree = ""; }; - 8BEAA09C9A3E0136E7EA4737AD47B079 /* Cache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Cache.swift; sourceTree = ""; }; - 8F2A5409EB23EF142D03392E00A40255 /* LiveCameraCaptureSession.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LiveCameraCaptureSession.swift; sourceTree = ""; }; - 8FCDC8C36D576859E71CA4E1A7FC36AF /* PhotosInputPlaceholderDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputPlaceholderDataProvider.swift; sourceTree = ""; }; - 9015BDB26ED00E68CB46AB3D80AB98F4 /* UIView+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIView+Additions.swift"; sourceTree = ""; }; + 8A508A14BD50AC9102368C24A9A91A98 /* CGSize+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "CGSize+Additions.swift"; sourceTree = ""; }; + 8A752E0DE33643E6879E911B1998F7AB /* TextChatInputItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextChatInputItem.swift; sourceTree = ""; }; + 8E22DE258A822554858D3207243AC833 /* ChatInputBar.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; path = ChatInputBar.xib; sourceTree = ""; }; + 8F4810AC5C9D8A11DD7DF2C1AA9BB2FD /* PhotosInputPlaceholderDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputPlaceholderDataProvider.swift; sourceTree = ""; }; + 913F2880190E5ECDEEEE4BF992BAA21B /* CompoundBubbleViewStyle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CompoundBubbleViewStyle.swift; sourceTree = ""; }; 91F8BC669B2F2636DFE299052A0207B4 /* BaseChatViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseChatViewController.swift; sourceTree = ""; }; - 92923CDA586CAE6EB880C1EBAD4C37CC /* ChattoAdditions.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ChattoAdditions.release.xcconfig; sourceTree = ""; }; - 95677EE8DD667B0FD512B09D61737B23 /* Bundle+ChattoAdditionsResources.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Bundle+ChattoAdditionsResources.swift"; sourceTree = ""; }; - 974FB2A8FFE5E7F718ABA490796F9552 /* ChattoAdditions-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ChattoAdditions-umbrella.h"; sourceTree = ""; }; - 994DE3FEECB5E6029EA8236C468BA74C /* ViewDefinitions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ViewDefinitions.swift; sourceTree = ""; }; - 9D1893302005C5E2ECC8F5D380A50E78 /* PhotosChatInputItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosChatInputItem.swift; sourceTree = ""; }; + 92050F47BAD040163DE1BCF8E6A1735D /* Photos.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; path = Photos.xcassets; sourceTree = ""; }; + 939F0BDF7574622A00AA9B75F8A90B12 /* PhotosInputCellProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputCellProvider.swift; sourceTree = ""; }; + 97A1922A09ADA4895D43F912C9BD2EB4 /* BaseMessageAssets.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; path = BaseMessageAssets.xcassets; sourceTree = ""; }; + 9AF22E9F96884321F0BCEA0D10A0A852 /* MessageManualLayoutProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MessageManualLayoutProvider.swift; sourceTree = ""; }; 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 9F4B76CF31CDEAAD1EE9641E8885154E /* PhotoMessagePresenterBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoMessagePresenterBuilder.swift; sourceTree = ""; }; - A2BB873FF498FA9F440998AE0C4A758B /* TextMessageMenuItemPresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextMessageMenuItemPresenter.swift; sourceTree = ""; }; A3268B957AD18F7B3950012DFE6FFC88 /* Pods_ChattoApp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_ChattoApp.framework; path = "Pods-ChattoApp.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - A9766D3359A2A6113859A4B197714522 /* ChattoAdditions.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = ChattoAdditions.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - A9CD8FF9E82885B3E24F8D1F735BBEA9 /* ChatInputItemView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatInputItemView.swift; sourceTree = ""; }; - AB3254F8A7EA58CDBFE7E3191B6A662C /* PhotoMessageCollectionViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoMessageCollectionViewCell.swift; sourceTree = ""; }; - AB49EBE82C8B754ED98B9F63E8FB3D5A /* ImagePicker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ImagePicker.swift; sourceTree = ""; }; - ABA30D4CE5D2FDB139D5839294D56DD4 /* ChatInputBarPresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatInputBarPresenter.swift; sourceTree = ""; }; - ADD3822A725EA8197574441064BBABB4 /* CGFloat+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "CGFloat+Additions.swift"; sourceTree = ""; }; - B110869322D170E13475D01B466EC854 /* BaseMessageViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseMessageViewModel.swift; sourceTree = ""; }; + AABD4F579A866A84B779427F513C116E /* TextMessageCollectionViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextMessageCollectionViewCell.swift; sourceTree = ""; }; + AD1B0FF275C25A3C07B6EB4ED433BBE1 /* PhotoMessagePresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoMessagePresenter.swift; sourceTree = ""; }; + ADACB467BFFDEA729BFB8ADF01D0CB01 /* ChattoAdditions.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ChattoAdditions.debug.xcconfig; sourceTree = ""; }; + ADE49B40025576C54A5800919EC51582 /* TextMessageModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextMessageModel.swift; sourceTree = ""; }; + AF92289C8A545481701B6B4765CD8AE0 /* MessageContentFactoryProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MessageContentFactoryProtocol.swift; sourceTree = ""; }; B24B9472C67862C09B6F86427666B494 /* Pods-ChattoApp-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ChattoApp-frameworks.sh"; sourceTree = ""; }; - B265691827F2A4F9A37199C62D5EC8E0 /* MessageDecorationViewFactory.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MessageDecorationViewFactory.swift; sourceTree = ""; }; - B69CE53DFDF835669B41DFD94AB864CB /* ChattoAdditionsResources.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; name = ChattoAdditionsResources.bundle; path = "ChattoAdditions-ChattoAdditionsResources.bundle"; sourceTree = BUILT_PRODUCTS_DIR; }; - BC52B5971C81CD45AB8785E2A65BF177 /* CompoundMessagePresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CompoundMessagePresenter.swift; sourceTree = ""; }; - BCD0E3A5F5246F30CF1CB82200BFD18C /* CircleProgressIndicator.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; path = CircleProgressIndicator.xcassets; sourceTree = ""; }; + B2BE442AA2438AE0CA41A759149014C4 /* PasteActionInterceptor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PasteActionInterceptor.swift; sourceTree = ""; }; + B62BD16D68353978A24663F0D6FDCCA7 /* HashableRepresentible.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = HashableRepresentible.swift; sourceTree = ""; }; + B815F4D20E1659CAA5481A9CF527F4E0 /* DeviceImagePicker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DeviceImagePicker.swift; sourceTree = ""; }; + B87C51B550537D0D0E4B1AB8515D6C73 /* AnimationUtils.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AnimationUtils.swift; sourceTree = ""; }; + BB75128305707A226A53276390BB8FAA /* PhotosInputPermissionsRequester.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputPermissionsRequester.swift; sourceTree = ""; }; + BC2BB1EBBCA2D1B36DA567DAD034C731 /* ChatInputItemView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatInputItemView.swift; sourceTree = ""; }; + BD6FDED50AC98EBD9963A9821F10B115 /* CompoundMessagePresenterBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CompoundMessagePresenterBuilder.swift; sourceTree = ""; }; BE3893C08724F3D82CF1D199CF98F274 /* Chatto.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Chatto.framework; path = Chatto.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - C0F31CF9E64C65C51AC501CCDACA30E8 /* TextBubbleView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextBubbleView.swift; sourceTree = ""; }; + C0F68CE9E175448BDAA8DAE759A7FF2A /* PhotosInputDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputDataProvider.swift; sourceTree = ""; }; C15E52FE2E7D7781E212D50D1B4A765A /* ChatItemCompanion.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatItemCompanion.swift; sourceTree = ""; }; + C22FF1BD81A4EF3AAC7A88FC4013F7B7 /* ChattoAdditions-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ChattoAdditions-Info.plist"; sourceTree = ""; }; C31EDB90BA1E733F2706E722923E129A /* Pods-ChattoApp.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-ChattoApp.modulemap"; sourceTree = ""; }; C3B22A268DB72CE1BC85F17F9ECA20C2 /* ChattoAdditions.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = ChattoAdditions.framework; path = ChattoAdditions.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - C87AF25EBCB4B5CBFA77124ADCDCEBAC /* PhotoMessageAssets.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; path = PhotoMessageAssets.xcassets; sourceTree = ""; }; - C8FC90B9C10D2132A2CEE349D6B0A49D /* ChattoAdditions-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ChattoAdditions-Info.plist"; sourceTree = ""; }; - C974B49717EA2358DB1CF7BB0B50F352 /* PhotoMessageViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoMessageViewModel.swift; sourceTree = ""; }; + C5814301B7B948CED7F98CA913AD2B1A /* Alignment.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Alignment.swift; sourceTree = ""; }; + C63A0F3D49B9F11D31D3676112C0506B /* InputContainerView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = InputContainerView.swift; sourceTree = ""; }; + C9869199FF0C45C00B9E6E429A329B1E /* CircleProgressView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CircleProgressView.swift; sourceTree = ""; }; C9D8F53B3D35A3001CB4D8DF8DEE7781 /* Pods-ChattoApp-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ChattoApp-dummy.m"; sourceTree = ""; }; CCCE6A8E9F86772CD3FC9DDFC357633B /* Chatto.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Chatto.framework; sourceTree = BUILT_PRODUCTS_DIR; }; CD673AD6FDA8BE759BCD31DEF040F680 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - CE5EB68E8215F84D13594DAE7F725F09 /* MessageManualLayoutProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MessageManualLayoutProvider.swift; sourceTree = ""; }; - CEFEE1BDBA52425C0BF257BE30B713F6 /* BaseMessageAssets.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; path = BaseMessageAssets.xcassets; sourceTree = ""; }; - CF774CED5292821D4E5B74257DD33D84 /* UIImage+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIImage+Additions.swift"; sourceTree = ""; }; + D18132AAEF3270596CB3D78CA550D455 /* CircleProgressIndicatorView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CircleProgressIndicatorView.swift; sourceTree = ""; }; + D2BA04D067F5FB905DB5C307895A045A /* CALayer+ImageMask.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "CALayer+ImageMask.swift"; sourceTree = ""; }; + D2C4D06686F5E064C1AE42E90F8732F6 /* ChattoAdditions.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ChattoAdditions.release.xcconfig; sourceTree = ""; }; + D40710D191836A81D87A5505DDBF2C36 /* BaseMessageModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseMessageModel.swift; sourceTree = ""; }; D43345688FD3BBE9E2163B953A575197 /* CollectionChanges.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CollectionChanges.swift; sourceTree = ""; }; - D77D0781BA61AAA9502F79F8616C46FB /* CircleProgressIndicatorView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CircleProgressIndicatorView.swift; sourceTree = ""; }; - D80835998219FE098D1EEEB2BA81A4FC /* BaseMessageCollectionViewCellDefaultStyle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseMessageCollectionViewCellDefaultStyle.swift; sourceTree = ""; }; - D994C0A59B198A9A957A02BD59468AB2 /* Photos.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; path = Photos.xcassets; sourceTree = ""; }; - DB36EB667AAE46E3B837172656A18397 /* HorizontalStackScrollView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = HorizontalStackScrollView.swift; sourceTree = ""; }; + D4F668A526C96DE7B3DA684A74533E8D /* ChattoAdditions-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ChattoAdditions-prefix.pch"; sourceTree = ""; }; + D9BCA972B80D11A89C07AD256516A566 /* LiveCameraCaptureSession.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LiveCameraCaptureSession.swift; sourceTree = ""; }; DC6463741D8D222EA495C7F13C82BDDA /* ChatCollectionViewLayout.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatCollectionViewLayout.swift; sourceTree = ""; }; - DCB4FAC12181BAB3056FEE71D97661F1 /* PhotosInputCellProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputCellProvider.swift; sourceTree = ""; }; DD355C8CA51C0706F629F4E885E44F0F /* Chatto.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Chatto.modulemap; sourceTree = ""; }; - DD6EAAE88DAF0BCBA1B0879F37761C30 /* CGRect+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "CGRect+Additions.swift"; sourceTree = ""; }; - DE0D005FE7E89F5B139DC33D58E29E80 /* CompoundBubbleViewStyle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CompoundBubbleViewStyle.swift; sourceTree = ""; }; + DD8808CCD6243E9AEDAFA2EFF5B2AD23 /* BaseMessagePresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseMessagePresenter.swift; sourceTree = ""; }; + DDBBC539E90109AB64C29FFC777AE9BD /* PhotoMessageCollectionViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoMessageCollectionViewCell.swift; sourceTree = ""; }; + DE4F103BE3BC2C7B182F8B7D029E7825 /* PhotosInputPlaceholderCellProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputPlaceholderCellProvider.swift; sourceTree = ""; }; + DEADFB0F0D46FBA486EAE9A0D5AFA8E7 /* CompoundBubbleLayout.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CompoundBubbleLayout.swift; sourceTree = ""; }; E231744704984B2CE53B4D6B20451D07 /* Pods-ChattoApp-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ChattoApp-Info.plist"; sourceTree = ""; }; - E46951B0809E92969C5EB23AF9196311 /* PhotoMessageModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoMessageModel.swift; sourceTree = ""; }; E5313B20C8EA26B49A3A260677748246 /* ReplyFeedbackGenerator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ReplyFeedbackGenerator.swift; sourceTree = ""; }; - E6244BD97BB335C9A0D335DCC8FF6B3E /* CGPoint+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "CGPoint+Additions.swift"; sourceTree = ""; }; - E6CDF1CDE6388CE1CDC7EBE802EAF784 /* ChatInputBarAppearance.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatInputBarAppearance.swift; sourceTree = ""; }; - EC4F60FBE1C3BF6314783DC4DF90D414 /* ChattoAdditions.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ChattoAdditions.debug.xcconfig; sourceTree = ""; }; + E6CE1B3DC70E182285B03BA408034F98 /* PhotoMessageModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoMessageModel.swift; sourceTree = ""; }; + E8ABDCC71A86D9447EEB9E234C04DB87 /* InterfaceOrientation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = InterfaceOrientation.swift; sourceTree = ""; }; + E8BC6AC9FC58CB35BFCC08837BE6865E /* PhotosInputCameraPicker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputCameraPicker.swift; sourceTree = ""; }; + E994A42C4BBCE943DEDA4ADCABFBF488 /* PhotoMessageAssets.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; path = PhotoMessageAssets.xcassets; sourceTree = ""; }; + EAEA366E7B2333E217B086495D552C75 /* PhotosInputPlaceholderCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputPlaceholderCell.swift; sourceTree = ""; }; + EB9600C142ED198331B7F945D91076A8 /* ImagePicker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ImagePicker.swift; sourceTree = ""; }; ED87067CA4F4C6D1B43A4F79756F0F82 /* BaseChatItemPresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseChatItemPresenter.swift; sourceTree = ""; }; - EFC1EDB05F0B37E7229BEE70B54E8A83 /* Alignment.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Alignment.swift; sourceTree = ""; }; - EFC9E80378681C269567548EC54A8738 /* PhotosInputViewItemSizeCalculator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputViewItemSizeCalculator.swift; sourceTree = ""; }; - EFCA16E0077E1DFD08EBB859741C3E2F /* InputContainerView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = InputContainerView.swift; sourceTree = ""; }; F0BBBD1FFF5A696C90066B277D6D4A10 /* ChatLayoutConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatLayoutConfiguration.swift; sourceTree = ""; }; + F0BE53BF5253D56DE7B1F8CC27E99DC1 /* TextMessageMenuItemPresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextMessageMenuItemPresenter.swift; sourceTree = ""; }; F19EA325FF08EEEF8E04FBF1D4D84A74 /* Chatto-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Chatto-umbrella.h"; sourceTree = ""; }; - F206D5378B7F719E3F74D47B54AA5ED0 /* Observable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Observable.swift; sourceTree = ""; }; F26241E90E38090426B8539A653278AC /* Pods-ChattoApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ChattoApp.debug.xcconfig"; sourceTree = ""; }; + F384B681FD98D4877A38278071015A92 /* HorizontalStackScrollView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = HorizontalStackScrollView.swift; sourceTree = ""; }; + F598D1DC6E45266010339B726A3B8E3E /* UIImage+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIImage+Additions.swift"; sourceTree = ""; }; F6A9D5406982D7B2766871EBB80D7DAD /* BaseChatViewController+Changes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "BaseChatViewController+Changes.swift"; sourceTree = ""; }; - F6ADD51D25063B89B8CFFA8E21E5A52D /* ChattoAdditions.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = ChattoAdditions.modulemap; sourceTree = ""; }; F73C3CF1E6276222AB57EF3E5B471115 /* Chatto.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Chatto.debug.xcconfig; sourceTree = ""; }; - F875C137CD2DEE0C3C2DC17A84073C69 /* CircleProgressView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CircleProgressView.swift; sourceTree = ""; }; + F7A2277E1CD524B02A1863528336B6DA /* PhotosChatInputItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosChatInputItem.swift; sourceTree = ""; }; + F93718D9C807F23012F25F889C6D05D8 /* ChattoAdditions-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "ChattoAdditions-dummy.m"; sourceTree = ""; }; FA3FFAA6DE2BCFF6993980C497BFD5F0 /* BaseChatViewController+Scrolling.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "BaseChatViewController+Scrolling.swift"; sourceTree = ""; }; - FAE3AFC12EBC515AF0A2F939286184CA /* TextMessageModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextMessageModel.swift; sourceTree = ""; }; - FF757C1130B953B838FCFB329D0229E7 /* ExpandableTextView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ExpandableTextView.swift; sourceTree = ""; }; + FBC54F61151A6036D2658DEFB3A54FFA /* PhotoMessageCollectionViewCellDefaultStyle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoMessageCollectionViewCellDefaultStyle.swift; sourceTree = ""; }; + FCB5C95E8B0BEAB6A9A66F67E6556B18 /* DefaultMessageContentPresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DefaultMessageContentPresenter.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 7FEF612AF7C907225F88BB2D4D0CDD59 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 82E87E6A8EAD4C3857A13AE21CADAB9E /* Frameworks */ = { + 0B41A345DCFDC9A1D0DD5831E727C4A6 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - DC4E8C37529FFC29509E8BABA2645A3E /* Foundation.framework in Frameworks */, + A3799C749593280587A2AD008CA75134 /* Chatto.framework in Frameworks */, + CD4C01F9474A1F558BEA49DE66FF59AE /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - CDCEBCE78910CE6E2806D0170ECF0AAD /* Frameworks */ = { + 5D853FD91AE85A7FF84EFD23FF01F13D /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 331DDCB9745EF4CE929D92E7349FABF2 /* Chatto.framework in Frameworks */, - 20E9514190915449CF7D2D1F77EB2763 /* Foundation.framework in Frameworks */, + FF7482E9D1685533FF5A555A5E8FD64A /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -351,23 +332,10 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 0CE1075715796F83E2D3DE0809C98F64 /* Views */ = { - isa = PBXGroup; - children = ( - CEFEE1BDBA52425C0BF257BE30B713F6 /* BaseMessageAssets.xcassets */, - ); - name = Views; - path = Views; - sourceTree = ""; - }; - 0DCA693C2D5CDA0C279B73DC4B5D7867 /* PhotoMessages */ = { + 083B5BF8E37707051385B5C4878E4D3A /* PhotoMessages */ = { isa = PBXGroup; children = ( - E46951B0809E92969C5EB23AF9196311 /* PhotoMessageModel.swift */, - 67A071BA5F2369A65FE500318AE54581 /* PhotoMessagePresenter.swift */, - 9F4B76CF31CDEAAD1EE9641E8885154E /* PhotoMessagePresenterBuilder.swift */, - C974B49717EA2358DB1CF7BB0B50F352 /* PhotoMessageViewModel.swift */, - 22EB6D6A35854F1E63D5C19199879072 /* Views */, + C1CF1A73DCC4A42C1C1014FB02B1F0CB /* Views */, ); name = PhotoMessages; path = PhotoMessages; @@ -377,7 +345,7 @@ isa = PBXGroup; children = ( DE5B5258E3F6ADBB312E6F8A26EB2B82 /* Chatto */, - A921FF3005BE83FB1D14728A805535EE /* ChattoAdditions */, + 943253A3889D2CF797A54A39E9B918C7 /* ChattoAdditions */, ); name = "Development Pods"; sourceTree = ""; @@ -390,25 +358,40 @@ name = iOS; sourceTree = ""; }; - 17E2623B6E8D8AE50D3E5A03EC6B1B9E /* Text */ = { + 17DC8830FBC5CE7F0430103DAB9D8D9A /* Views */ = { isa = PBXGroup; children = ( - 636DC6D61B6EF19EC96BE35B14CCEAA6 /* TextChatInputItem.swift */, + DEADFB0F0D46FBA486EAE9A0D5AFA8E7 /* CompoundBubbleLayout.swift */, + 3B4CA06B50C467916444EC76DF0FA9F7 /* CompoundBubbleView.swift */, + 913F2880190E5ECDEEEE4BF992BAA21B /* CompoundBubbleViewStyle.swift */, + 283269D75A0B98D05047908FBEF1F33A /* CompoundMessageCollectionViewCell.swift */, ); - name = Text; - path = Text; + name = Views; + path = Views; sourceTree = ""; }; - 1AF6F4468B475914C6BA7CD577EDB764 /* BaseMessage */ = { + 17E61878344DEA558AA22B196BDCEAB4 /* Decoration */ = { isa = PBXGroup; children = ( - 847A1DD10572FF2F7092B36350295943 /* BaseMessageModel.swift */, - 2CD45707126144E247AE74EAC62113CB /* BaseMessagePresenter.swift */, - B110869322D170E13475D01B466EC854 /* BaseMessageViewModel.swift */, - 4BA1F1850490D474BC5ACA83D42D9765 /* Views */, + 1BBC96A3D4AE6C387957B4C45BD0F840 /* MessageDecorationViewFactory.swift */, + 13322131F1DBFDB63B36E6DB589FE8A4 /* MessageDecorationViewLayout.swift */, ); - name = BaseMessage; - path = BaseMessage; + name = Decoration; + path = Decoration; + sourceTree = ""; + }; + 1B66A175DDFFD3417036418D619112DB /* TextMessages */ = { + isa = PBXGroup; + children = ( + F0BE53BF5253D56DE7B1F8CC27E99DC1 /* TextMessageMenuItemPresenter.swift */, + ADE49B40025576C54A5800919EC51582 /* TextMessageModel.swift */, + 21B0D2035FD656FBD1BE0FD4D0765885 /* TextMessagePresenter.swift */, + 3A806C01FA1BFCD488169AE664858363 /* TextMessagePresenterBuilder.swift */, + 33DD84EB99D2B1FED3A2E98CD7D2D08B /* TextMessageViewModel.swift */, + CF2BFD418CD1B2A1400FAE07EBA2EE52 /* Views */, + ); + name = TextMessages; + path = TextMessages; sourceTree = ""; }; 1C80FD19AEB21133388E13112314D213 /* Frameworks */ = { @@ -420,25 +403,28 @@ name = Frameworks; sourceTree = ""; }; - 22EB6D6A35854F1E63D5C19199879072 /* Views */ = { + 1FA213D54AC1188B601B1208B8774D50 /* Chat Items */ = { isa = PBXGroup; children = ( - 8374D5C6A110F3170CC6F658C2094E08 /* PhotoBubbleView.swift */, - AB3254F8A7EA58CDBFE7E3191B6A662C /* PhotoMessageCollectionViewCell.swift */, - 77978A2658696C3ACCAB0F045CC98206 /* PhotoMessageCollectionViewCellDefaultStyle.swift */, + 29EE7B9618D27C2FD171BBD3943D4F53 /* ChatItemDecorationAttributes.swift */, + 8533301BBD6FE2BB3740D35685FAFD29 /* BaseMessage */, + 9B64CC97C08D54A6C8D9E52B78931AC0 /* CompoundMessage */, + 6986A3508FDC446DCA79E3114401E558 /* PhotoMessages */, + 1B66A175DDFFD3417036418D619112DB /* TextMessages */, ); - name = Views; - path = Views; + name = "Chat Items"; + path = "ChattoAdditions/Source/Chat Items"; sourceTree = ""; }; - 27CAD6D5B2DE1E6F7638DCE9DC285A47 /* Decoration */ = { + 249075C14877B73BE59F7D3AFC7A0BB0 /* Views */ = { isa = PBXGroup; children = ( - B265691827F2A4F9A37199C62D5EC8E0 /* MessageDecorationViewFactory.swift */, - 3E0E17A9FDC2B681D6DC617292577638 /* MessageDecorationViewLayout.swift */, + 25428E5ACCD837FEC4C3BB46554283A3 /* PhotoBubbleView.swift */, + DDBBC539E90109AB64C29FFC777AE9BD /* PhotoMessageCollectionViewCell.swift */, + FBC54F61151A6036D2658DEFB3A54FFA /* PhotoMessageCollectionViewCellDefaultStyle.swift */, ); - name = Decoration; - path = Decoration; + name = Views; + path = Views; sourceTree = ""; }; 2802D48826C3E11A69070BE7F5574839 /* Chat Items */ = { @@ -468,66 +454,13 @@ path = "ChattoApp/Pods/Target Support Files/Chatto"; sourceTree = ""; }; - 2FA64DFBEE8C71CD8FA91AD8CF1B538F /* Views */ = { - isa = PBXGroup; - children = ( - C87AF25EBCB4B5CBFA77124ADCDCEBAC /* PhotoMessageAssets.xcassets */, - ); - name = Views; - path = Views; - sourceTree = ""; - }; - 331CA34D4F501E001769BB99D5874381 /* CircleProgressIndicatorView */ = { - isa = PBXGroup; - children = ( - 63368CBF18167F84FF5D4E6B622719FD /* CircleIconView.swift */, - D77D0781BA61AAA9502F79F8616C46FB /* CircleProgressIndicatorView.swift */, - F875C137CD2DEE0C3C2DC17A84073C69 /* CircleProgressView.swift */, - ); - name = CircleProgressIndicatorView; - path = CircleProgressIndicatorView; - sourceTree = ""; - }; - 36C925002ABAAF13F6C2BA6D8D517C3B /* Input */ = { - isa = PBXGroup; - children = ( - 55376BE79C6F33D7E3507742EF39694B /* ChatInputBar.swift */, - E6CDF1CDE6388CE1CDC7EBE802EAF784 /* ChatInputBarAppearance.swift */, - ABA30D4CE5D2FDB139D5839294D56DD4 /* ChatInputBarPresenter.swift */, - 74CB1D65414B7717361C39D66D283CE0 /* ChatInputItem.swift */, - A9CD8FF9E82885B3E24F8D1F735BBEA9 /* ChatInputItemView.swift */, - 45D12BB9EA20605B1756F8B59407AD7B /* ExpandableChatInputBarPresenter.swift */, - FF757C1130B953B838FCFB329D0229E7 /* ExpandableTextView.swift */, - DB36EB667AAE46E3B837172656A18397 /* HorizontalStackScrollView.swift */, - EFCA16E0077E1DFD08EBB859741C3E2F /* InputContainerView.swift */, - 770CC22EC4375496AB621A5D5AB7D177 /* InterfaceOrientation.swift */, - 32D8D24087034296B8A8750AFB6438F2 /* PasteActionInterceptor.swift */, - 77D3709A20D07AA4216F082F591EE2EF /* ReusableXibView.swift */, - 6E742995A801D854DC749FBCB452C13A /* TabInputButton.swift */, - 7E39E2D1F0F608798D8F46C67B93EE18 /* Photos */, - 17E2623B6E8D8AE50D3E5A03EC6B1B9E /* Text */, - ); - name = Input; - path = ChattoAdditions/Source/Input; - sourceTree = ""; - }; - 3819C4A8730EBA4AAA5B3F37D1747DAC /* Views */ = { - isa = PBXGroup; - children = ( - C0F31CF9E64C65C51AC501CCDACA30E8 /* TextBubbleView.swift */, - 3BE964C23E98ED60A8F2C6957B2B70B2 /* TextMessageCollectionViewCell.swift */, - 0D0D0EDC06E782D2AF302512ABC19EFD /* TextMessageCollectionViewCellDefaultStyle.swift */, - ); - name = Views; - path = Views; - sourceTree = ""; - }; - 3B88174BD0CD486ACE52CE3ABF796418 /* Pod */ = { + 2E6E7B4FE6EA712F649A376D5FBB361C /* Text */ = { isa = PBXGroup; children = ( - A9766D3359A2A6113859A4B197714522 /* ChattoAdditions.podspec */, + 8A752E0DE33643E6879E911B1998F7AB /* TextChatInputItem.swift */, ); - name = Pod; + name = Text; + path = Text; sourceTree = ""; }; 4023EC6D6E039B680C08AF92AC07FA48 /* Collaborators */ = { @@ -546,15 +479,15 @@ path = Collaborators; sourceTree = ""; }; - 45DAF3A2CB5F07C0DA462D8ED8D9C993 /* Input */ = { + 422EEC579539DDCDC443D00B8E5A218A /* Photo */ = { isa = PBXGroup; children = ( - 57E5F7087306304A9D9AB1A1B6B1F366 /* ChatInputBar.xib */, - D562C21C4129E0E845726B6A29FC30C7 /* Photos */, - D79AAB6F34A2B24DB8C52B2E91155AF3 /* Text */, + 0823EA5BF2EACA8B39AD206AB18E4A51 /* PhotosInputCell.swift */, + 939F0BDF7574622A00AA9B75F8A90B12 /* PhotosInputCellProvider.swift */, + C0F68CE9E175448BDAA8DAE759A7FF2A /* PhotosInputDataProvider.swift */, ); - name = Input; - path = ChattoAdditions/Source/Input; + name = Photo; + path = Photo; sourceTree = ""; }; 45DC6E7E812AC969C9BE9C5F57D090F2 /* Pods-ChattoApp */ = { @@ -574,244 +507,292 @@ path = "Target Support Files/Pods-ChattoApp"; sourceTree = ""; }; - 4BA1F1850490D474BC5ACA83D42D9765 /* Views */ = { + 50D7A1015B9BB6ED4509685BE0069605 /* Input */ = { isa = PBXGroup; children = ( - 80471D61BA1A7E17F552874783026586 /* BaseMessageCollectionViewCell.swift */, - D80835998219FE098D1EEEB2BA81A4FC /* BaseMessageCollectionViewCellDefaultStyle.swift */, - 994DE3FEECB5E6029EA8236C468BA74C /* ViewDefinitions.swift */, + 8E22DE258A822554858D3207243AC833 /* ChatInputBar.xib */, + C6DCC419433A9E590E833D378D3634C1 /* Photos */, + 643603EE163B0C2B67C066AC420C744B /* Text */, + ); + name = Input; + path = ChattoAdditions/Source/Input; + sourceTree = ""; + }; + 52F57B8C1BD0C36C2BE2EA2A80D9528A /* Views */ = { + isa = PBXGroup; + children = ( + 97A1922A09ADA4895D43F912C9BD2EB4 /* BaseMessageAssets.xcassets */, ); name = Views; path = Views; sourceTree = ""; }; - 4D2C172F5880A5CE6CA80000A14C461C /* CompoundMessage */ = { + 643603EE163B0C2B67C066AC420C744B /* Text */ = { isa = PBXGroup; children = ( - BC52B5971C81CD45AB8785E2A65BF177 /* CompoundMessagePresenter.swift */, - 1C9460B1B4084CC51E0267A52832216D /* CompoundMessagePresenterBuilder.swift */, - 55B72E2330AA87770ADCC835B81F0482 /* Content */, - 27CAD6D5B2DE1E6F7638DCE9DC285A47 /* Decoration */, - E278CA9777A21C0668B3B2B1B7E2A950 /* Views */, + 2D447A3863D908E9E0E4D273A7688060 /* Text.xcassets */, ); - name = CompoundMessage; - path = CompoundMessage; + name = Text; + path = Text; sourceTree = ""; }; - 5271A2CCA5F2315589CF988BCCA8254E /* Common */ = { + 6986A3508FDC446DCA79E3114401E558 /* PhotoMessages */ = { isa = PBXGroup; children = ( - EFC1EDB05F0B37E7229BEE70B54E8A83 /* Alignment.swift */, - 10E70AA53AC57665790A5C2CD9B2C04A /* AnimationUtils.swift */, - 95677EE8DD667B0FD512B09D61737B23 /* Bundle+ChattoAdditionsResources.swift */, - 8BEAA09C9A3E0136E7EA4737AD47B079 /* Cache.swift */, - 7115724DFAD6AA489E53A1C74F3A4759 /* CALayer+ImageMask.swift */, - ADD3822A725EA8197574441064BBABB4 /* CGFloat+Additions.swift */, - E6244BD97BB335C9A0D335DCC8FF6B3E /* CGPoint+Additions.swift */, - DD6EAAE88DAF0BCBA1B0879F37761C30 /* CGRect+Additions.swift */, - 058AA76F9095B097F8FEB15AB408B999 /* CGSize+Additions.swift */, - 3A80AD661A7F87413D570DE85778F703 /* Comparable+Clamp.swift */, - 4176A12187CF99A8A3A7FB0C962C04FF /* HashableRepresentible.swift */, - F206D5378B7F719E3F74D47B54AA5ED0 /* Observable.swift */, - 67660A947F33AF88CF6C3D5CD686D0DF /* ScreenMetric.swift */, - 09BDFF17346F6209318A3B24565AB5A7 /* UIColor+Additions.swift */, - 15F54571BD805290D58E0F8FB996446A /* UIEdgeInsets+Additions.swift */, - CF774CED5292821D4E5B74257DD33D84 /* UIImage+Additions.swift */, - 2E19419D8E1D1D4A5EA941CB83CADB49 /* UIScreen+Scale.swift */, - 9015BDB26ED00E68CB46AB3D80AB98F4 /* UIView+Additions.swift */, + E6CE1B3DC70E182285B03BA408034F98 /* PhotoMessageModel.swift */, + AD1B0FF275C25A3C07B6EB4ED433BBE1 /* PhotoMessagePresenter.swift */, + 4BAA1DE44C80040FB0CD646BEEB58CB5 /* PhotoMessagePresenterBuilder.swift */, + 0CF516B9903CE4F1EA7ECE35DEBFD4EB /* PhotoMessageViewModel.swift */, + 249075C14877B73BE59F7D3AFC7A0BB0 /* Views */, ); - name = Common; - path = ChattoAdditions/Source/Common; + name = PhotoMessages; + path = PhotoMessages; sourceTree = ""; }; - 55B72E2330AA87770ADCC835B81F0482 /* Content */ = { + 73CB4EC23BB030DC1DCA117D32186DE5 /* Pod */ = { isa = PBXGroup; children = ( - 714FC1AB54DAE8C310F0CEFA89D26AF3 /* DefaultMessageContentPresenter.swift */, - 36E65AB577296415731278B0A6D88C64 /* MessageContentFactoryProtocol.swift */, - 22B5632CE1B1F819A99A3AE184F733C3 /* MessageContentPresenterProtocol.swift */, - CE5EB68E8215F84D13594DAE7F725F09 /* MessageManualLayoutProvider.swift */, + 61329A1C6AC7B2B3D80ECAA47B1B07F1 /* Chatto.podspec */, ); - name = Content; - path = Content; + name = Pod; sourceTree = ""; }; - 71C79976FA7230FAB1B31D576D210206 /* BaseMessage */ = { + 7C22F7DCC1EB69C9BE4F1ABEBB1CE8CC /* Pod */ = { isa = PBXGroup; children = ( - 0CE1075715796F83E2D3DE0809C98F64 /* Views */, + 66BCAA1ED19612A2FDF2EFD0C1FE7ACC /* ChattoAdditions.podspec */, ); - name = BaseMessage; - path = BaseMessage; + name = Pod; sourceTree = ""; }; - 73CB4EC23BB030DC1DCA117D32186DE5 /* Pod */ = { + 8533301BBD6FE2BB3740D35685FAFD29 /* BaseMessage */ = { isa = PBXGroup; children = ( - 61329A1C6AC7B2B3D80ECAA47B1B07F1 /* Chatto.podspec */, + D40710D191836A81D87A5505DDBF2C36 /* BaseMessageModel.swift */, + DD8808CCD6243E9AEDAFA2EFF5B2AD23 /* BaseMessagePresenter.swift */, + 806AC8F1CD6A8C7EADE94C791EE39F9D /* BaseMessageViewModel.swift */, + A2A48E6F42E2044476E1E2430012D920 /* Views */, ); - name = Pod; + name = BaseMessage; + path = BaseMessage; sourceTree = ""; }; - 76403E7B9320FBE23EBFB15FDFDB5668 /* UI Components */ = { + 8BD468B3A74D8FAC10207E81708376AB /* Content */ = { isa = PBXGroup; children = ( - F0C13BB88EC0B1C33DCAF14D97BF0DC2 /* CircleProgressIndicatorView */, + FCB5C95E8B0BEAB6A9A66F67E6556B18 /* DefaultMessageContentPresenter.swift */, + AF92289C8A545481701B6B4765CD8AE0 /* MessageContentFactoryProtocol.swift */, + 4F7D733A0DEADA2A8CAB6406CB57330B /* MessageContentPresenterProtocol.swift */, + 9AF22E9F96884321F0BCEA0D10A0A852 /* MessageManualLayoutProvider.swift */, ); - name = "UI Components"; - path = "ChattoAdditions/Source/UI Components"; + name = Content; + path = Content; sourceTree = ""; }; - 7E39E2D1F0F608798D8F46C67B93EE18 /* Photos */ = { + 8DBD352F2FA424AE987514C7EBC4BB1F /* Photos */ = { isa = PBXGroup; children = ( - 9D1893302005C5E2ECC8F5D380A50E78 /* PhotosChatInputItem.swift */, - 2AAAE2E4132F0FEE09FDF423B30D5D4F /* PhotosInputPermissionsRequester.swift */, - 2193239EDCEF53543DD12E7BC019C3A4 /* PhotosInputView.swift */, - EFC9E80378681C269567548EC54A8738 /* PhotosInputViewItemSizeCalculator.swift */, - 60CBAC6A8C23F227D969F7D4933A06A1 /* PhotosInputWithPlaceholdersDataProvider.swift */, - BB89761A4DAE01E008138DA0821209B5 /* Camera */, - AD082F4CA090C14465C06DB6B8E80BF2 /* Photo */, - CCD310C62BE66DB3860E38A6414427F6 /* Placeholder */, + F7A2277E1CD524B02A1863528336B6DA /* PhotosChatInputItem.swift */, + BB75128305707A226A53276390BB8FAA /* PhotosInputPermissionsRequester.swift */, + 5DFFA374361CADA7687D2F6AAF3E6128 /* PhotosInputView.swift */, + 8407F3DCCFB69F669A808405C9D329CA /* PhotosInputViewItemSizeCalculator.swift */, + 34D4F524AE0600A38CCA07CEB5F4C656 /* PhotosInputWithPlaceholdersDataProvider.swift */, + 9C0C4CE48CD6E54DE52BFD1BE5637504 /* Camera */, + 422EEC579539DDCDC443D00B8E5A218A /* Photo */, + 8E31D2DC07A53F4008BEE7603DB98342 /* Placeholder */, ); name = Photos; path = Photos; sourceTree = ""; }; - 87721100A73D9B9A10FD81D4EC99410C /* Chat Items */ = { + 8E31D2DC07A53F4008BEE7603DB98342 /* Placeholder */ = { isa = PBXGroup; children = ( - 71C79976FA7230FAB1B31D576D210206 /* BaseMessage */, - E0CEF4E53EC982DF6A5AFAE84F54EEFB /* PhotoMessages */, + EAEA366E7B2333E217B086495D552C75 /* PhotosInputPlaceholderCell.swift */, + DE4F103BE3BC2C7B182F8B7D029E7825 /* PhotosInputPlaceholderCellProvider.swift */, + 8F4810AC5C9D8A11DD7DF2C1AA9BB2FD /* PhotosInputPlaceholderDataProvider.swift */, ); - name = "Chat Items"; - path = "ChattoAdditions/Source/Chat Items"; + name = Placeholder; + path = Placeholder; sourceTree = ""; }; - 9542CC05148C2ABE20A09B044690B38B /* Products */ = { + 943253A3889D2CF797A54A39E9B918C7 /* ChattoAdditions */ = { isa = PBXGroup; children = ( - BE3893C08724F3D82CF1D199CF98F274 /* Chatto.framework */, - C3B22A268DB72CE1BC85F17F9ECA20C2 /* ChattoAdditions.framework */, - B69CE53DFDF835669B41DFD94AB864CB /* ChattoAdditionsResources.bundle */, - A3268B957AD18F7B3950012DFE6FFC88 /* Pods_ChattoApp.framework */, + 1FA213D54AC1188B601B1208B8774D50 /* Chat Items */, + F4589B1593F41AC6CF7B73EEADA4D062 /* Common */, + DB8139D710B943D0A69B31FF18F025BF /* Input */, + 7C22F7DCC1EB69C9BE4F1ABEBB1CE8CC /* Pod */, + B420F70B17697E99C43A6AC9A5DDF5B4 /* Resources */, + A2083F9E3C11006EF0D6EDADB68A0B96 /* Support Files */, + FAF8757B3AA866D33150D07ED406DFBB /* UI Components */, ); - name = Products; + name = ChattoAdditions; + path = ../..; + sourceTree = ""; + }; + 9B64CC97C08D54A6C8D9E52B78931AC0 /* CompoundMessage */ = { + isa = PBXGroup; + children = ( + 64F9F8727BF298D7036A993DE64098B1 /* CompoundMessagePresenter.swift */, + BD6FDED50AC98EBD9963A9821F10B115 /* CompoundMessagePresenterBuilder.swift */, + 8BD468B3A74D8FAC10207E81708376AB /* Content */, + 17E61878344DEA558AA22B196BDCEAB4 /* Decoration */, + 17DC8830FBC5CE7F0430103DAB9D8D9A /* Views */, + ); + name = CompoundMessage; + path = CompoundMessage; + sourceTree = ""; + }; + 9C0C4CE48CD6E54DE52BFD1BE5637504 /* Camera */ = { + isa = PBXGroup; + children = ( + B815F4D20E1659CAA5481A9CF527F4E0 /* DeviceImagePicker.swift */, + EB9600C142ED198331B7F945D91076A8 /* ImagePicker.swift */, + D9BCA972B80D11A89C07AD256516A566 /* LiveCameraCaptureSession.swift */, + 450E6D7CC218DA1B218A9FF3A086290C /* LiveCameraCell.swift */, + 14EBEEF92B23AC6E991F0BDB120E95B8 /* LiveCameraCellPresenter.swift */, + E8BC6AC9FC58CB35BFCC08837BE6865E /* PhotosInputCameraPicker.swift */, + ); + name = Camera; + path = Camera; sourceTree = ""; }; - A67FCE2C49636E81D565DC660AC3839B /* Support Files */ = { + A2083F9E3C11006EF0D6EDADB68A0B96 /* Support Files */ = { isa = PBXGroup; children = ( - F6ADD51D25063B89B8CFFA8E21E5A52D /* ChattoAdditions.modulemap */, - 45E55C006EACBF6AF62D4A445336582B /* ChattoAdditions-dummy.m */, - C8FC90B9C10D2132A2CEE349D6B0A49D /* ChattoAdditions-Info.plist */, - 8165413431D3A6312D65AF54F5B746FD /* ChattoAdditions-prefix.pch */, - 974FB2A8FFE5E7F718ABA490796F9552 /* ChattoAdditions-umbrella.h */, - EC4F60FBE1C3BF6314783DC4DF90D414 /* ChattoAdditions.debug.xcconfig */, - 92923CDA586CAE6EB880C1EBAD4C37CC /* ChattoAdditions.release.xcconfig */, - 72BC1D4E5330F8CAEF30E126F5829E00 /* ResourceBundle-ChattoAdditionsResources-ChattoAdditions-Info.plist */, + 7D0110B6E288B7DDC5F5D908A64A4BC0 /* ChattoAdditions.modulemap */, + F93718D9C807F23012F25F889C6D05D8 /* ChattoAdditions-dummy.m */, + C22FF1BD81A4EF3AAC7A88FC4013F7B7 /* ChattoAdditions-Info.plist */, + D4F668A526C96DE7B3DA684A74533E8D /* ChattoAdditions-prefix.pch */, + 80018A9EC57E23575E7580D9034A3D60 /* ChattoAdditions-umbrella.h */, + ADACB467BFFDEA729BFB8ADF01D0CB01 /* ChattoAdditions.debug.xcconfig */, + D2C4D06686F5E064C1AE42E90F8732F6 /* ChattoAdditions.release.xcconfig */, ); name = "Support Files"; path = "ChattoApp/Pods/Target Support Files/ChattoAdditions"; sourceTree = ""; }; - A921FF3005BE83FB1D14728A805535EE /* ChattoAdditions */ = { + A2A48E6F42E2044476E1E2430012D920 /* Views */ = { isa = PBXGroup; children = ( - F15A4243EF037F265C117E436B7EC45C /* Chat Items */, - 5271A2CCA5F2315589CF988BCCA8254E /* Common */, - 36C925002ABAAF13F6C2BA6D8D517C3B /* Input */, - 3B88174BD0CD486ACE52CE3ABF796418 /* Pod */, - D0AEA220933D89858F155CF916DA950B /* Resources */, - A67FCE2C49636E81D565DC660AC3839B /* Support Files */, - D68758509DEFBA70E6B6321A2A7C658D /* UI Components */, + 89AD4E3AE9A6A4616B3E47334A660B61 /* BaseMessageCollectionViewCell.swift */, + 8175123A596B4CA61393473DF633E21E /* BaseMessageCollectionViewCellDefaultStyle.swift */, + 1F80EC38EF3F3B62C75375F1BE3FA74A /* ViewDefinitions.swift */, ); - name = ChattoAdditions; - path = ../..; + name = Views; + path = Views; sourceTree = ""; }; - AD082F4CA090C14465C06DB6B8E80BF2 /* Photo */ = { + AF38547C441BF6C84B3E5854591113BC /* CircleProgressIndicatorView */ = { isa = PBXGroup; children = ( - 261433B41729B76062ED9AED2BBB1E6F /* PhotosInputCell.swift */, - DCB4FAC12181BAB3056FEE71D97661F1 /* PhotosInputCellProvider.swift */, - 0B83A73A3E79C2882D0D0384A6C15F3B /* PhotosInputDataProvider.swift */, + 5EEB0FCC5619208B0C1ABCA0B9B5B242 /* CircleIconView.swift */, + D18132AAEF3270596CB3D78CA550D455 /* CircleProgressIndicatorView.swift */, + C9869199FF0C45C00B9E6E429A329B1E /* CircleProgressView.swift */, ); - name = Photo; - path = Photo; + name = CircleProgressIndicatorView; + path = CircleProgressIndicatorView; sourceTree = ""; }; - BB89761A4DAE01E008138DA0821209B5 /* Camera */ = { + B420F70B17697E99C43A6AC9A5DDF5B4 /* Resources */ = { isa = PBXGroup; children = ( - 869ADCE2A5B150FFDF95D19E0C8D9EF4 /* DeviceImagePicker.swift */, - AB49EBE82C8B754ED98B9F63E8FB3D5A /* ImagePicker.swift */, - 8F2A5409EB23EF142D03392E00A40255 /* LiveCameraCaptureSession.swift */, - 71CA627892FE1CA264F28156AEA704D4 /* LiveCameraCell.swift */, - 63FC00E23F93D1CA476BEE56D0F4FB98 /* LiveCameraCellPresenter.swift */, - 480DB7B9A686244C5B988E2AF35300FD /* PhotosInputCameraPicker.swift */, + FD4972B04D41371EB96ED01BDFB2B353 /* Chat Items */, + 50D7A1015B9BB6ED4509685BE0069605 /* Input */, + CB2370575D1C25ADB5406A0694511B94 /* UI Components */, ); - name = Camera; - path = Camera; + name = Resources; sourceTree = ""; }; - CCD310C62BE66DB3860E38A6414427F6 /* Placeholder */ = { + B58EFD7F332A156056960BBC01A51F70 /* CircleProgressIndicatorView */ = { isa = PBXGroup; children = ( - 3942A57C84CF8AB42BF14F1C1A120A38 /* PhotosInputPlaceholderCell.swift */, - 05DD5C3B11B9FFC972AA3756AE0FD1B8 /* PhotosInputPlaceholderCellProvider.swift */, - 8FCDC8C36D576859E71CA4E1A7FC36AF /* PhotosInputPlaceholderDataProvider.swift */, + 89CBBC63C653C97472D7E2ABEC510BC1 /* CircleProgressIndicator.xcassets */, ); - name = Placeholder; - path = Placeholder; + name = CircleProgressIndicatorView; + path = CircleProgressIndicatorView; sourceTree = ""; }; - CF1408CF629C7361332E53B88F7BD30C = { + BDF68ADA53F187C935750B7A7A61E6F6 /* BaseMessage */ = { isa = PBXGroup; children = ( - 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, - 1181FBBDE7F4980FE006C277823A81E0 /* Development Pods */, - 1C80FD19AEB21133388E13112314D213 /* Frameworks */, - 9542CC05148C2ABE20A09B044690B38B /* Products */, - FD17E734AA9201EACDD77D7DC48B1F43 /* Targets Support Files */, + 52F57B8C1BD0C36C2BE2EA2A80D9528A /* Views */, ); + name = BaseMessage; + path = BaseMessage; sourceTree = ""; }; - D0AEA220933D89858F155CF916DA950B /* Resources */ = { + C1CF1A73DCC4A42C1C1014FB02B1F0CB /* Views */ = { isa = PBXGroup; children = ( - 87721100A73D9B9A10FD81D4EC99410C /* Chat Items */, - 45DAF3A2CB5F07C0DA462D8ED8D9C993 /* Input */, - 76403E7B9320FBE23EBFB15FDFDB5668 /* UI Components */, + E994A42C4BBCE943DEDA4ADCABFBF488 /* PhotoMessageAssets.xcassets */, ); - name = Resources; + name = Views; + path = Views; sourceTree = ""; }; - D562C21C4129E0E845726B6A29FC30C7 /* Photos */ = { + C6DCC419433A9E590E833D378D3634C1 /* Photos */ = { isa = PBXGroup; children = ( - D994C0A59B198A9A957A02BD59468AB2 /* Photos.xcassets */, + 92050F47BAD040163DE1BCF8E6A1735D /* Photos.xcassets */, ); name = Photos; path = Photos; sourceTree = ""; }; - D68758509DEFBA70E6B6321A2A7C658D /* UI Components */ = { + CB2370575D1C25ADB5406A0694511B94 /* UI Components */ = { isa = PBXGroup; children = ( - 331CA34D4F501E001769BB99D5874381 /* CircleProgressIndicatorView */, + B58EFD7F332A156056960BBC01A51F70 /* CircleProgressIndicatorView */, ); name = "UI Components"; path = "ChattoAdditions/Source/UI Components"; sourceTree = ""; }; - D79AAB6F34A2B24DB8C52B2E91155AF3 /* Text */ = { + CF1408CF629C7361332E53B88F7BD30C = { isa = PBXGroup; children = ( - 6F3055E73F027BA313A4F4ECD1F5E567 /* Text.xcassets */, + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, + 1181FBBDE7F4980FE006C277823A81E0 /* Development Pods */, + 1C80FD19AEB21133388E13112314D213 /* Frameworks */, + FC106E74D3276542F24B5DC027CB1A53 /* Products */, + FD17E734AA9201EACDD77D7DC48B1F43 /* Targets Support Files */, ); - name = Text; - path = Text; + sourceTree = ""; + }; + CF2BFD418CD1B2A1400FAE07EBA2EE52 /* Views */ = { + isa = PBXGroup; + children = ( + 21A1CA29ABA8D533AE6942E22508F8A6 /* TextBubbleView.swift */, + AABD4F579A866A84B779427F513C116E /* TextMessageCollectionViewCell.swift */, + 39273FFB8CC4F6EBDC44D2F4BB223D8F /* TextMessageCollectionViewCellDefaultStyle.swift */, + ); + name = Views; + path = Views; + sourceTree = ""; + }; + DB8139D710B943D0A69B31FF18F025BF /* Input */ = { + isa = PBXGroup; + children = ( + 0895A8F714292AB31032419C0A502719 /* ChatInputBar.swift */, + 0F1605BE8B49C062759B56E21F3BE2C8 /* ChatInputBarAppearance.swift */, + 389A30D825C9593862B24D4DEF5608F3 /* ChatInputBarPresenter.swift */, + 501226DD9C2D0501786393AD13D2CAEA /* ChatInputItem.swift */, + BC2BB1EBBCA2D1B36DA567DAD034C731 /* ChatInputItemView.swift */, + 4964FAE6F4A3D52051B3DFD52033900D /* ExpandableChatInputBarPresenter.swift */, + 0D2C41F8AE2F0B21E0B359324AFFB418 /* ExpandableTextView.swift */, + F384B681FD98D4877A38278071015A92 /* HorizontalStackScrollView.swift */, + C63A0F3D49B9F11D31D3676112C0506B /* InputContainerView.swift */, + E8ABDCC71A86D9447EEB9E234C04DB87 /* InterfaceOrientation.swift */, + B2BE442AA2438AE0CA41A759149014C4 /* PasteActionInterceptor.swift */, + 482BED2103C47E53D2B9810F7E587269 /* ReusableXibView.swift */, + 7223F8C033BFFEE0FDB15697CF2BB6C8 /* TabInputButton.swift */, + 8DBD352F2FA424AE987514C7EBC4BB1F /* Photos */, + 2E6E7B4FE6EA712F649A376D5FBB361C /* Text */, + ); + name = Input; + path = ChattoAdditions/Source/Input; sourceTree = ""; }; DE5B5258E3F6ADBB312E6F8A26EB2B82 /* Chatto */ = { @@ -829,15 +810,6 @@ path = ../..; sourceTree = ""; }; - E0CEF4E53EC982DF6A5AFAE84F54EEFB /* PhotoMessages */ = { - isa = PBXGroup; - children = ( - 2FA64DFBEE8C71CD8FA91AD8CF1B538F /* Views */, - ); - name = PhotoMessages; - path = PhotoMessages; - sourceTree = ""; - }; E148286C138B42B823DC00A5D380AFBD /* ChatController */ = { isa = PBXGroup; children = ( @@ -854,38 +826,48 @@ path = Chatto/Source/ChatController; sourceTree = ""; }; - E278CA9777A21C0668B3B2B1B7E2A950 /* Views */ = { + F4589B1593F41AC6CF7B73EEADA4D062 /* Common */ = { isa = PBXGroup; children = ( - 6AF1BB882EFC089137A92617CC539D74 /* CompoundBubbleLayout.swift */, - 291B71348E9CF119DA3BF9EDC123E9E0 /* CompoundBubbleView.swift */, - DE0D005FE7E89F5B139DC33D58E29E80 /* CompoundBubbleViewStyle.swift */, - 6FAA0F751739BC0A9126896AD888BBCF /* CompoundMessageCollectionViewCell.swift */, + C5814301B7B948CED7F98CA913AD2B1A /* Alignment.swift */, + B87C51B550537D0D0E4B1AB8515D6C73 /* AnimationUtils.swift */, + 65F825FEE553CA33058218D87DBA9B1F /* Cache.swift */, + D2BA04D067F5FB905DB5C307895A045A /* CALayer+ImageMask.swift */, + 06A7041007DC3A31B6D306FF23A0C3E9 /* CGFloat+Additions.swift */, + 236C20E885169120F2B1302E3C152FA0 /* CGPoint+Additions.swift */, + 04AC49AFCD860E5DCDBFDBC0140AE885 /* CGRect+Additions.swift */, + 8A508A14BD50AC9102368C24A9A91A98 /* CGSize+Additions.swift */, + 1490A3281CD5280EAFCC87D05FFDE515 /* Comparable+Clamp.swift */, + B62BD16D68353978A24663F0D6FDCCA7 /* HashableRepresentible.swift */, + 6396A7565AD4C9AC2BC5E30B4F4A3F43 /* Observable.swift */, + 48B643807206FF779D3F1AE54CD142D8 /* ScreenMetric.swift */, + 2D83DA4EFC41B0135B202C8221A824D2 /* UIColor+Additions.swift */, + 09FA84E8B9F753554B31D2A6FA91AFA4 /* UIEdgeInsets+Additions.swift */, + F598D1DC6E45266010339B726A3B8E3E /* UIImage+Additions.swift */, + 0FA1A535C01FD338F65BD9984B536756 /* UIScreen+Scale.swift */, + 25693FC416E58F954C564A75B06B8014 /* UIView+Additions.swift */, ); - name = Views; - path = Views; + name = Common; + path = ChattoAdditions/Source/Common; sourceTree = ""; }; - F0C13BB88EC0B1C33DCAF14D97BF0DC2 /* CircleProgressIndicatorView */ = { + FAF8757B3AA866D33150D07ED406DFBB /* UI Components */ = { isa = PBXGroup; children = ( - BCD0E3A5F5246F30CF1CB82200BFD18C /* CircleProgressIndicator.xcassets */, + AF38547C441BF6C84B3E5854591113BC /* CircleProgressIndicatorView */, ); - name = CircleProgressIndicatorView; - path = CircleProgressIndicatorView; + name = "UI Components"; + path = "ChattoAdditions/Source/UI Components"; sourceTree = ""; }; - F15A4243EF037F265C117E436B7EC45C /* Chat Items */ = { + FC106E74D3276542F24B5DC027CB1A53 /* Products */ = { isa = PBXGroup; children = ( - 4B49DBDDC34B908302AE7B7750625C77 /* ChatItemDecorationAttributes.swift */, - 1AF6F4468B475914C6BA7CD577EDB764 /* BaseMessage */, - 4D2C172F5880A5CE6CA80000A14C461C /* CompoundMessage */, - 0DCA693C2D5CDA0C279B73DC4B5D7867 /* PhotoMessages */, - FF0298BEEAFD573493B37749709D4D01 /* TextMessages */, + BE3893C08724F3D82CF1D199CF98F274 /* Chatto.framework */, + C3B22A268DB72CE1BC85F17F9ECA20C2 /* ChattoAdditions.framework */, + A3268B957AD18F7B3950012DFE6FFC88 /* Pods_ChattoApp.framework */, ); - name = "Chat Items"; - path = "ChattoAdditions/Source/Chat Items"; + name = Products; sourceTree = ""; }; FD17E734AA9201EACDD77D7DC48B1F43 /* Targets Support Files */ = { @@ -896,28 +878,24 @@ name = "Targets Support Files"; sourceTree = ""; }; - FF0298BEEAFD573493B37749709D4D01 /* TextMessages */ = { + FD4972B04D41371EB96ED01BDFB2B353 /* Chat Items */ = { isa = PBXGroup; children = ( - A2BB873FF498FA9F440998AE0C4A758B /* TextMessageMenuItemPresenter.swift */, - FAE3AFC12EBC515AF0A2F939286184CA /* TextMessageModel.swift */, - 367CDCAA7AFAABA7DF942AB633CCE979 /* TextMessagePresenter.swift */, - 6556B08AD1A8DF7B7D37060647C8D440 /* TextMessagePresenterBuilder.swift */, - 03DE734FAAC256A82FCC50D28822A602 /* TextMessageViewModel.swift */, - 3819C4A8730EBA4AAA5B3F37D1747DAC /* Views */, + BDF68ADA53F187C935750B7A7A61E6F6 /* BaseMessage */, + 083B5BF8E37707051385B5C4878E4D3A /* PhotoMessages */, ); - name = TextMessages; - path = TextMessages; + name = "Chat Items"; + path = "ChattoAdditions/Source/Chat Items"; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ - 8831AF29C55A2603759546F4141AE2EC /* Headers */ = { + 93AB6D17C44F34DBD73BBEE25FEB56B0 /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 44901D5D6ABC062B03648BB918751570 /* ChattoAdditions-umbrella.h in Headers */, + DCBC7D07930EF9DD3260194325E03327 /* Pods-ChattoApp-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -929,11 +907,11 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - C537BEF684C8BC08993091C8D8767291 /* Headers */ = { + EE4F4AD17640E70FAD6B90307284AF2F /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - 1EF2A806DE365C9E0F3FD60026163DC6 /* Pods-ChattoApp-umbrella.h in Headers */, + CE8B40C4F5F9A08E1982AF84864038DF /* ChattoAdditions-umbrella.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -958,37 +936,19 @@ productReference = BE3893C08724F3D82CF1D199CF98F274 /* Chatto.framework */; productType = "com.apple.product-type.framework"; }; - 6F936489F9DED646FF7F46860CC24EDB /* ChattoAdditions-ChattoAdditionsResources */ = { - isa = PBXNativeTarget; - buildConfigurationList = ADDE97F1A9867781E2FF6C3D716AFDD3 /* Build configuration list for PBXNativeTarget "ChattoAdditions-ChattoAdditionsResources" */; - buildPhases = ( - A30654E5B35A412D8D4172F0C879069D /* Sources */, - 7FEF612AF7C907225F88BB2D4D0CDD59 /* Frameworks */, - 2EA8D5CC2FDC404987217FFA7780872F /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "ChattoAdditions-ChattoAdditionsResources"; - productName = "ChattoAdditions-ChattoAdditionsResources"; - productReference = B69CE53DFDF835669B41DFD94AB864CB /* ChattoAdditionsResources.bundle */; - productType = "com.apple.product-type.bundle"; - }; 9A88D54DB316ADF1E80363324718D63E /* ChattoAdditions */ = { isa = PBXNativeTarget; - buildConfigurationList = 9420414CD5C2D1AA1BA9EA5CCC9841F2 /* Build configuration list for PBXNativeTarget "ChattoAdditions" */; + buildConfigurationList = 7B28015123D1F7963B9F66550784E1A2 /* Build configuration list for PBXNativeTarget "ChattoAdditions" */; buildPhases = ( - 8831AF29C55A2603759546F4141AE2EC /* Headers */, - 3E2CDD7285C1BD051E2718150CC80B0D /* Sources */, - CDCEBCE78910CE6E2806D0170ECF0AAD /* Frameworks */, - 43E611C0123578266056F2952392AE29 /* Resources */, + EE4F4AD17640E70FAD6B90307284AF2F /* Headers */, + 11B1676FC8B0CEEB077BC6F97EA1DFD1 /* Sources */, + 0B41A345DCFDC9A1D0DD5831E727C4A6 /* Frameworks */, + 7B5A826995276A535FC158383D1BE748 /* Resources */, ); buildRules = ( ); dependencies = ( - 2407384590F77464BCBFB31DC038F13B /* PBXTargetDependency */, - 54E7F6A5456C6E7EC54E4BEB45A09487 /* PBXTargetDependency */, + A3C6479559E6F81051115E30B23D4F42 /* PBXTargetDependency */, ); name = ChattoAdditions; productName = ChattoAdditions; @@ -997,18 +957,18 @@ }; B3A80E083011B2BEB0DBECEE9019EEBA /* Pods-ChattoApp */ = { isa = PBXNativeTarget; - buildConfigurationList = F03B4B829A1FCAD9D1657D8FE1024984 /* Build configuration list for PBXNativeTarget "Pods-ChattoApp" */; + buildConfigurationList = 3DD15C259BD47801E93B91EC63A468CD /* Build configuration list for PBXNativeTarget "Pods-ChattoApp" */; buildPhases = ( - C537BEF684C8BC08993091C8D8767291 /* Headers */, - FEB5D8DC7E59967F51E4166A9E6AADC0 /* Sources */, - 82E87E6A8EAD4C3857A13AE21CADAB9E /* Frameworks */, - 3377D7D3E701C1162F64DDC99259A742 /* Resources */, + 93AB6D17C44F34DBD73BBEE25FEB56B0 /* Headers */, + 0D0BF789A18BA68BC2FA6C5F92426344 /* Sources */, + 5D853FD91AE85A7FF84EFD23FF01F13D /* Frameworks */, + C5AB56C2CFE9B303C97A13DCDAA5E670 /* Resources */, ); buildRules = ( ); dependencies = ( - 59F0850F19D4656E05B26C75EF9294CE /* PBXTargetDependency */, - E13DA73A6E41BECB8C116DC4CCD870D2 /* PBXTargetDependency */, + 568D625C937B47B7F5CA7B7D9B2BAA80 /* PBXTargetDependency */, + 58DD845CD0AEA424ACCF2A74191A5B36 /* PBXTargetDependency */, ); name = "Pods-ChattoApp"; productName = "Pods-ChattoApp"; @@ -1033,148 +993,146 @@ Base, ); mainGroup = CF1408CF629C7361332E53B88F7BD30C; - productRefGroup = 9542CC05148C2ABE20A09B044690B38B /* Products */; + productRefGroup = FC106E74D3276542F24B5DC027CB1A53 /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( 2508BC3B908322C9E85E61AE743C9842 /* Chatto */, 9A88D54DB316ADF1E80363324718D63E /* ChattoAdditions */, - 6F936489F9DED646FF7F46860CC24EDB /* ChattoAdditions-ChattoAdditionsResources */, B3A80E083011B2BEB0DBECEE9019EEBA /* Pods-ChattoApp */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 2EA8D5CC2FDC404987217FFA7780872F /* Resources */ = { + 7B5A826995276A535FC158383D1BE748 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - A826581233536491266D2C1EEF8A5755 /* BaseMessageAssets.xcassets in Resources */, - 927CFD2AC4830EBD277E03781724E6A5 /* ChatInputBar.xib in Resources */, - 302B0FB75C75503593CC8AB23BFAB764 /* CircleProgressIndicator.xcassets in Resources */, - 021EA48210455E46C337AA60B487CC63 /* PhotoMessageAssets.xcassets in Resources */, - 6D62782E9BB6863D55632E1B2791D972 /* Photos.xcassets in Resources */, - 09758DB3CD77F22AB1BF3D7705A7B122 /* Text.xcassets in Resources */, + 525AD1A2E079BF3CBD1993D6D255D2B9 /* BaseMessageAssets.xcassets in Resources */, + 561C14091FFDBFCFF2C5852FE3F65025 /* ChatInputBar.xib in Resources */, + BFB5349670A9E23BBA842076F2E6478A /* CircleProgressIndicator.xcassets in Resources */, + 8EF55C9EBED2553F0524695E2CAB3459 /* PhotoMessageAssets.xcassets in Resources */, + ABE646530214F360E221ED1A778BA240 /* Photos.xcassets in Resources */, + A24F42B3A3143278B472DD139E8CD708 /* Text.xcassets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 3377D7D3E701C1162F64DDC99259A742 /* Resources */ = { + C5AB56C2CFE9B303C97A13DCDAA5E670 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; - 43E611C0123578266056F2952392AE29 /* Resources */ = { + E164B8D3C2484D9800CA8B506C98B4E3 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 9584E01B2D1EFF8C285A08809FE680B9 /* ChattoAdditionsResources.bundle in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - E164B8D3C2484D9800CA8B506C98B4E3 /* Resources */ = { - isa = PBXResourcesBuildPhase; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 0D0BF789A18BA68BC2FA6C5F92426344 /* Sources */ = { + isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 2253E0FF9E1C2043AAD1EA10B3F17073 /* Pods-ChattoApp-dummy.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 3E2CDD7285C1BD051E2718150CC80B0D /* Sources */ = { + 11B1676FC8B0CEEB077BC6F97EA1DFD1 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 79438D1B4B52A6EBFF6F424B4423E666 /* Alignment.swift in Sources */, - 63EB39F84C5F4018CB8DF8DFB9DA6AFE /* AnimationUtils.swift in Sources */, - 1D1F8E6ADB1F54C7FD61352667C3BF87 /* BaseMessageCollectionViewCell.swift in Sources */, - 15A459CC10FC9FCB72C7E59270DFF739 /* BaseMessageCollectionViewCellDefaultStyle.swift in Sources */, - 1507B8824F8210C2AE463161C95AA9B2 /* BaseMessageModel.swift in Sources */, - 8CD890863E5B6E968C70D7854CB00522 /* BaseMessagePresenter.swift in Sources */, - 6E08C9014BE6209B8019A7F81714C775 /* BaseMessageViewModel.swift in Sources */, - F22895BCA7D8CF6CC95C15E5A2789E16 /* Bundle+ChattoAdditionsResources.swift in Sources */, - 1CA19B38B79BBC7547E99F9C871E8902 /* Cache.swift in Sources */, - 249E9B1D9C2E32F79B92F3376757C0C9 /* CALayer+ImageMask.swift in Sources */, - 91FE749B1387BF2371616553373F86AA /* CGFloat+Additions.swift in Sources */, - 422745359DE3262F25934495028707DA /* CGPoint+Additions.swift in Sources */, - 14DC4479258D5D9CE0DC87E94BE5CDE7 /* CGRect+Additions.swift in Sources */, - F2E210AA38D3DD6848365B6DD1BFFE0E /* CGSize+Additions.swift in Sources */, - 0EAEF3C8472189AD24AFC544A1AED2F3 /* ChatInputBar.swift in Sources */, - C65AE1C8F3CF4282A0A73E717417075D /* ChatInputBarAppearance.swift in Sources */, - B84AA8F848F58E324A7779D50094964F /* ChatInputBarPresenter.swift in Sources */, - 49972A38565CEA5602FD483925CB55FB /* ChatInputItem.swift in Sources */, - C370237F4184BF4CA37BFD28FA45F651 /* ChatInputItemView.swift in Sources */, - 96D4E25488F2A48BDABB1BF581EA697C /* ChatItemDecorationAttributes.swift in Sources */, - 0B1707144122E0AD0DCA47B21A35DF0F /* ChattoAdditions-dummy.m in Sources */, - 45E388F09233E750E64EC5552CCC9F5D /* CircleIconView.swift in Sources */, - 9C2518D5EA762690526B504D8A94EC8F /* CircleProgressIndicatorView.swift in Sources */, - A49BCC816E7AC0E5EB759361BC1CC555 /* CircleProgressView.swift in Sources */, - 990FC332085D166ED098971C8D91E7E7 /* Comparable+Clamp.swift in Sources */, - C0595C7FAEEBFCCF308602CDB03B919F /* CompoundBubbleLayout.swift in Sources */, - CBD235BC1BA95565E550DA5676601034 /* CompoundBubbleView.swift in Sources */, - F7CEB047190CFE73D2A5250AE68CD1FC /* CompoundBubbleViewStyle.swift in Sources */, - 49CA74ADE8390EBEC882CAA2A94A1FFA /* CompoundMessageCollectionViewCell.swift in Sources */, - 146D6841104D3618A6CCA31D2EEA1B7F /* CompoundMessagePresenter.swift in Sources */, - C101A77D499A41A7451DE13F7F7648AD /* CompoundMessagePresenterBuilder.swift in Sources */, - 4A74DEDDF1D813D4CA695B771F041905 /* DefaultMessageContentPresenter.swift in Sources */, - 3493F5187544F37F1D3FD7EFA3CF109D /* DeviceImagePicker.swift in Sources */, - FD26489E95FDAFB8A2C55C46AA7D4974 /* ExpandableChatInputBarPresenter.swift in Sources */, - 5F0EDE530320E14468100F02BF26D52A /* ExpandableTextView.swift in Sources */, - AB8623BB7EDDA34B75DA439DD256337C /* HashableRepresentible.swift in Sources */, - 7ADCD64435352DD4050D4B470CAA6EFE /* HorizontalStackScrollView.swift in Sources */, - DA7E25EF9C730AACB23587357C20D222 /* ImagePicker.swift in Sources */, - 32D8B3FE8B4EDE3BC8ABAA0962AAF9C8 /* InputContainerView.swift in Sources */, - 7B144693D7B118743BA4729426813B50 /* InterfaceOrientation.swift in Sources */, - 2112A62296903190F2CA5161A5122DCC /* LiveCameraCaptureSession.swift in Sources */, - FC7265FAB64D8F254A3E6109E324CD12 /* LiveCameraCell.swift in Sources */, - 6D522C1C61EAC3B450D65F6CD5EA0E20 /* LiveCameraCellPresenter.swift in Sources */, - 952728F8216792F4F325D2082C84F24B /* MessageContentFactoryProtocol.swift in Sources */, - CFEDFE32E8D12FEFBB22030B5F362B49 /* MessageContentPresenterProtocol.swift in Sources */, - BF8960F4E116ACE0F8E57C2107F16F4D /* MessageDecorationViewFactory.swift in Sources */, - A202B811E49699847B8B2716FA5DECA2 /* MessageDecorationViewLayout.swift in Sources */, - 38B87EBBF0D2E5C3E8FAA2A9B042BC27 /* MessageManualLayoutProvider.swift in Sources */, - 0DDCAED19AB93CB8291C6D4EBC50D6D4 /* Observable.swift in Sources */, - DAF83477EACAB95D444AB0DBA7B2BF99 /* PasteActionInterceptor.swift in Sources */, - 9E0A64EBE25D011D8FA6834630A7356E /* PhotoBubbleView.swift in Sources */, - 9B9C539B290BAFC9E04D39293B25845E /* PhotoMessageCollectionViewCell.swift in Sources */, - 5C7E701FB287EED97ED036B9104E8C2A /* PhotoMessageCollectionViewCellDefaultStyle.swift in Sources */, - 20EFDAE9B96C6D8BA25F88A6809F0726 /* PhotoMessageModel.swift in Sources */, - 5E8FF36033B11F8E374E21D54FF0E7EB /* PhotoMessagePresenter.swift in Sources */, - EFE5D024E63EE1DC581736FF812CA10A /* PhotoMessagePresenterBuilder.swift in Sources */, - 4D8025FFA6D06D942FC8A0827F66230B /* PhotoMessageViewModel.swift in Sources */, - EEDF376CC9841A6A14E9CFE01B345025 /* PhotosChatInputItem.swift in Sources */, - 885084AC2B7CE0B31B700DCC1EEA559F /* PhotosInputCameraPicker.swift in Sources */, - 167DE19FB6DEBDA6E5B82AE1874018A8 /* PhotosInputCell.swift in Sources */, - 9686864E6C8B1D269A1576D4BE619DA6 /* PhotosInputCellProvider.swift in Sources */, - C762444CD92D49969D64EDB305EFD2C9 /* PhotosInputDataProvider.swift in Sources */, - 4B720F28555AFDCD3538AF56A70E636A /* PhotosInputPermissionsRequester.swift in Sources */, - C856EC31042423975C437C379F4F0311 /* PhotosInputPlaceholderCell.swift in Sources */, - E7EBAC8AC1A09ECEE95E44F550F45ED0 /* PhotosInputPlaceholderCellProvider.swift in Sources */, - CB330D642F368C6A574D08E1E6C8E386 /* PhotosInputPlaceholderDataProvider.swift in Sources */, - 932A9389C4C9B0332648F416D8018E15 /* PhotosInputView.swift in Sources */, - F5DA469A5A55137EA54FCE24C117F88C /* PhotosInputViewItemSizeCalculator.swift in Sources */, - 2EB866056446E1DB9211B87431459822 /* PhotosInputWithPlaceholdersDataProvider.swift in Sources */, - 9C630D118EF930E789B78D5AA0F63403 /* ReusableXibView.swift in Sources */, - D4A86540EB18DFC166494A91F97C3C54 /* ScreenMetric.swift in Sources */, - 37FDB2B31059DE0A7D15AE2E1F4F1139 /* TabInputButton.swift in Sources */, - 1F903E880829F330703D6516032E7E29 /* TextBubbleView.swift in Sources */, - 6CDC49A463D0162F83A841782B544AFF /* TextChatInputItem.swift in Sources */, - 7D780F57DC3DE7BDEA8DE70EF5C082A0 /* TextMessageCollectionViewCell.swift in Sources */, - 7022B69B55E310C4D0C4C8544BB24B0E /* TextMessageCollectionViewCellDefaultStyle.swift in Sources */, - 30B0954779EA1C0ADA0CD0593C53822C /* TextMessageMenuItemPresenter.swift in Sources */, - 81EBA4367D2F8447DCB86B1E902C291E /* TextMessageModel.swift in Sources */, - F1A4950F5267A9F11B4DED40EC8854C5 /* TextMessagePresenter.swift in Sources */, - FBB38675B8406FF33586A48E14AD99D5 /* TextMessagePresenterBuilder.swift in Sources */, - D6DDB66A9C91CBA8536BECD413822C4A /* TextMessageViewModel.swift in Sources */, - 711037B6AA754CB07880A091C8C6CABB /* UIColor+Additions.swift in Sources */, - 6E740C030EAF096FED8E21F08CE551E5 /* UIEdgeInsets+Additions.swift in Sources */, - 1EE52F3C9A7CB2500E3281ACE17CE967 /* UIImage+Additions.swift in Sources */, - DFFCB02B35D1D0011694366B9A1FBE84 /* UIScreen+Scale.swift in Sources */, - 8884E8C78F2395383B11D8BDA6FE0F9E /* UIView+Additions.swift in Sources */, - F600261561FDD2CDD327772D5C6B25BE /* ViewDefinitions.swift in Sources */, + CDFF04FB788482594521B38A28A62427 /* Alignment.swift in Sources */, + 17D31666018C37E9208BBA75C0C4A9F3 /* AnimationUtils.swift in Sources */, + 08F6B608B3B69F004C457DFA41E921EB /* BaseMessageCollectionViewCell.swift in Sources */, + E0A5F0905EA23DE909C3BAFCA723C437 /* BaseMessageCollectionViewCellDefaultStyle.swift in Sources */, + 60725522CB11FFE41C026538AEF2545C /* BaseMessageModel.swift in Sources */, + 7CAE9E39794A69BD0B2AD24FC7D501D8 /* BaseMessagePresenter.swift in Sources */, + 928CFA1F7B365771297E1666B362EC06 /* BaseMessageViewModel.swift in Sources */, + 31C8E08CA690C6B27C1AE8EAC60AF285 /* Cache.swift in Sources */, + EFBD4D384FDCE88F20ADAAA27932D661 /* CALayer+ImageMask.swift in Sources */, + 0433F8FFA369B57F8C49F7192A2EDE9F /* CGFloat+Additions.swift in Sources */, + 02493FF7B5F2AF2A53AD7E1AAF4B0A75 /* CGPoint+Additions.swift in Sources */, + 067030EDD77F796FDEEFD159DF2D75CD /* CGRect+Additions.swift in Sources */, + E63F2C4214A512B0252A6D2A81F02971 /* CGSize+Additions.swift in Sources */, + 3FC14D49AAE9FB057C428A17D9DA1D0C /* ChatInputBar.swift in Sources */, + 50E286BE8D000378621DAF8E115745E8 /* ChatInputBarAppearance.swift in Sources */, + C9C90B9677CB5BB26818973AD9359494 /* ChatInputBarPresenter.swift in Sources */, + 7ADE09D211D2C7C4197F33F8F9C6F5E8 /* ChatInputItem.swift in Sources */, + 8429362DDAF67750531C00D72C4081FE /* ChatInputItemView.swift in Sources */, + E64D77B364E6E2BA85F9BA8BFF167833 /* ChatItemDecorationAttributes.swift in Sources */, + 9954443AE639B5C9936F68199DA058F3 /* ChattoAdditions-dummy.m in Sources */, + C23BA3A1EC55A281FFBC007A250376FD /* CircleIconView.swift in Sources */, + F602367714356409237ED5B5AF77E1AD /* CircleProgressIndicatorView.swift in Sources */, + 814A5766635BA4DFB6D7BBC621347791 /* CircleProgressView.swift in Sources */, + D838565318379A2DD2AA4B5067912DE8 /* Comparable+Clamp.swift in Sources */, + 4B1F66EFACCB0FC027F40411B4F53047 /* CompoundBubbleLayout.swift in Sources */, + D2829242A3C38B87934D76EC277E9E2B /* CompoundBubbleView.swift in Sources */, + 7B9B632475BFBFFB9BCEBF41AE6781FA /* CompoundBubbleViewStyle.swift in Sources */, + 74849EA9D857A30C8EE3CBC59C016040 /* CompoundMessageCollectionViewCell.swift in Sources */, + A28368F2BC2DF1D80149743445864EF3 /* CompoundMessagePresenter.swift in Sources */, + 57762F9C8370DBE71A2CB51A4D22ED3A /* CompoundMessagePresenterBuilder.swift in Sources */, + 93E17A37C62913A444BC0982FD3CAB9C /* DefaultMessageContentPresenter.swift in Sources */, + 0B1C67F0F038CAFE9B864FC142352D66 /* DeviceImagePicker.swift in Sources */, + 8365012497A80A360E09A210FBD9DEAC /* ExpandableChatInputBarPresenter.swift in Sources */, + FDAA0CED1770D7D065490A5898861BE9 /* ExpandableTextView.swift in Sources */, + 6469930F2C21DF84B813F7EC21D35472 /* HashableRepresentible.swift in Sources */, + AC761B031C2698AF2B003D0AED41356C /* HorizontalStackScrollView.swift in Sources */, + 50BAE324076B48E5DF78E84EE6005C2C /* ImagePicker.swift in Sources */, + E6437278B4870361CFDF2754058910FF /* InputContainerView.swift in Sources */, + 4EAE1AC2F09AA88E7924DD65808DEEB1 /* InterfaceOrientation.swift in Sources */, + 2F4ABDFB92023DCB42664E25AB7381C3 /* LiveCameraCaptureSession.swift in Sources */, + CA75B2493231B2BF77129702B697E890 /* LiveCameraCell.swift in Sources */, + 802BE2FEA3A6EF4E65DCA4B4C39D8431 /* LiveCameraCellPresenter.swift in Sources */, + ACE7E2DE63617480A41B1141FC9CCF65 /* MessageContentFactoryProtocol.swift in Sources */, + 73D2C69E75FC2D2D70338A446A3E96E5 /* MessageContentPresenterProtocol.swift in Sources */, + 3FB1A2D2A9EDD942542B4F64263E238A /* MessageDecorationViewFactory.swift in Sources */, + 2A438C1479D68E8A2FC79D18EEB3148C /* MessageDecorationViewLayout.swift in Sources */, + 9C38FB65F59C7DA4B8BAE2C6B2AB4332 /* MessageManualLayoutProvider.swift in Sources */, + 5C1AA4D62DAF88A178283E3EC9E2BC3E /* Observable.swift in Sources */, + 9CE23EFF4341229AE12A4D3AE4FBE6BF /* PasteActionInterceptor.swift in Sources */, + 20C4421B72C0B476C2A55B1F5BCD5F91 /* PhotoBubbleView.swift in Sources */, + 42B8C1B19DFE1A2FD82C27F2B49E1FF1 /* PhotoMessageCollectionViewCell.swift in Sources */, + E7537A03977266059A763A4D7FD967E7 /* PhotoMessageCollectionViewCellDefaultStyle.swift in Sources */, + 3F56AA8CE0D024E11D6BF9087A063D53 /* PhotoMessageModel.swift in Sources */, + 8997D8C4D9F21E33F1204F109464A685 /* PhotoMessagePresenter.swift in Sources */, + 456159D42C7822CEF8D12CDD7ACF67A5 /* PhotoMessagePresenterBuilder.swift in Sources */, + 53D1A79F1E3389C02A597A6DDE690D74 /* PhotoMessageViewModel.swift in Sources */, + 32BD9F6F18C4F22E2ECE1C2AD686B283 /* PhotosChatInputItem.swift in Sources */, + 0397BFDB09456D51300A51761811CF49 /* PhotosInputCameraPicker.swift in Sources */, + 48238B8277D985D13D3289AE38944C13 /* PhotosInputCell.swift in Sources */, + E9493F0B1984CC70BD08B41880DD5F87 /* PhotosInputCellProvider.swift in Sources */, + 9F1961CA7D23F6C289AC1ACC15C71443 /* PhotosInputDataProvider.swift in Sources */, + 317955D8260AEB1043C595A04EBAA2E0 /* PhotosInputPermissionsRequester.swift in Sources */, + 564CE3166A883AA915C3998CFA36DFD3 /* PhotosInputPlaceholderCell.swift in Sources */, + C3B2474D40ECE988131966F3DB0D8DC5 /* PhotosInputPlaceholderCellProvider.swift in Sources */, + 0611A7E7F4ED1F3C695A89F1593D66AA /* PhotosInputPlaceholderDataProvider.swift in Sources */, + 43B081203C4933C49E3534585D02E7C4 /* PhotosInputView.swift in Sources */, + 362C049F110084D4207DBD348F62C7AF /* PhotosInputViewItemSizeCalculator.swift in Sources */, + BD37C8ACD6AD9D47E6AF89DC09207161 /* PhotosInputWithPlaceholdersDataProvider.swift in Sources */, + 5116A2B235624BA9D235843BA1FF3225 /* ReusableXibView.swift in Sources */, + CF8A69A01FAA07A056A26EAF63D6A0B6 /* ScreenMetric.swift in Sources */, + 700798922FAE338261149631E1D89BCB /* TabInputButton.swift in Sources */, + 8AA0B3344D365AE850A9E34683AB8410 /* TextBubbleView.swift in Sources */, + 8DA2D5DF6B4820D4C234A5E541516843 /* TextChatInputItem.swift in Sources */, + 36355BDC61421DCA667D46F77B3F7BC3 /* TextMessageCollectionViewCell.swift in Sources */, + E69ACE01FADF56AC43F90EADAAD3152F /* TextMessageCollectionViewCellDefaultStyle.swift in Sources */, + 4EC1AE01D6193E8D55BBB3469A186AA1 /* TextMessageMenuItemPresenter.swift in Sources */, + 38F3C615D2126DEC72E15557BD6E7281 /* TextMessageModel.swift in Sources */, + 280ABB4EDE8985054F7EC9D383D99CDB /* TextMessagePresenter.swift in Sources */, + AF48F289ED7D11941B832BED35211287 /* TextMessagePresenterBuilder.swift in Sources */, + 4819F4FDE3A422D93D5094012D5D852F /* TextMessageViewModel.swift in Sources */, + 6B8B63E08996585ACF77524C721EDFA4 /* UIColor+Additions.swift in Sources */, + D8E5FA17809E054725668683AB5350DD /* UIEdgeInsets+Additions.swift in Sources */, + F9252BF614C41E2AB648C472FF07862F /* UIImage+Additions.swift in Sources */, + 02564B0D3906C4E015AA009069D56DA6 /* UIScreen+Scale.swift in Sources */, + C7C6BB47CD88FDA7CE8DD6016DFA032E /* UIView+Additions.swift in Sources */, + 23B1A4194133CFB05019A12A50618385 /* ViewDefinitions.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1208,56 +1166,34 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - A30654E5B35A412D8D4172F0C879069D /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - FEB5D8DC7E59967F51E4166A9E6AADC0 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 54ECA4709395436E07562991165EF3E7 /* Pods-ChattoApp-dummy.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 2407384590F77464BCBFB31DC038F13B /* PBXTargetDependency */ = { + 568D625C937B47B7F5CA7B7D9B2BAA80 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = Chatto; target = 2508BC3B908322C9E85E61AE743C9842 /* Chatto */; - targetProxy = 89407BAD950459C2A957BBEE6D4D65B0 /* PBXContainerItemProxy */; + targetProxy = A68E87179033DDCA6995A61F10EE58E1 /* PBXContainerItemProxy */; }; - 54E7F6A5456C6E7EC54E4BEB45A09487 /* PBXTargetDependency */ = { + 58DD845CD0AEA424ACCF2A74191A5B36 /* PBXTargetDependency */ = { isa = PBXTargetDependency; - name = "ChattoAdditions-ChattoAdditionsResources"; - target = 6F936489F9DED646FF7F46860CC24EDB /* ChattoAdditions-ChattoAdditionsResources */; - targetProxy = 2F143160FDC9929DAAE9630E6851DD09 /* PBXContainerItemProxy */; + name = ChattoAdditions; + target = 9A88D54DB316ADF1E80363324718D63E /* ChattoAdditions */; + targetProxy = A4E661724D45C6401D542CFCA36A0F93 /* PBXContainerItemProxy */; }; - 59F0850F19D4656E05B26C75EF9294CE /* PBXTargetDependency */ = { + A3C6479559E6F81051115E30B23D4F42 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = Chatto; target = 2508BC3B908322C9E85E61AE743C9842 /* Chatto */; - targetProxy = C61A94A119AA55D8C594208F291AC9CE /* PBXContainerItemProxy */; - }; - E13DA73A6E41BECB8C116DC4CCD870D2 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = ChattoAdditions; - target = 9A88D54DB316ADF1E80363324718D63E /* ChattoAdditions */; - targetProxy = 6E4752DAA1E2BFA2EF2E0C5F4B035F74 /* PBXContainerItemProxy */; + targetProxy = A2C41191AFC70DDC9F32D138B27DA480 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 0A3C67A653E83664C6E218FDAAECD40C /* Release */ = { + 50C007BE2456A92F8A8572C1642A565F /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 3C4011DB2C80F78B8321E9E704E40DD2 /* Pods-ChattoApp.release.xcconfig */; + baseConfigurationReference = D2C4D06686F5E064C1AE42E90F8732F6 /* ChattoAdditions.release.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -1267,19 +1203,18 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-ChattoApp/Pods-ChattoApp-Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/ChattoAdditions/ChattoAdditions-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/ChattoAdditions/ChattoAdditions-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-ChattoApp/Pods-ChattoApp.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + MODULEMAP_FILE = "Target Support Files/ChattoAdditions/ChattoAdditions.modulemap"; + PRODUCT_MODULE_NAME = ChattoAdditions; + PRODUCT_NAME = ChattoAdditions; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.3; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; @@ -1287,10 +1222,11 @@ }; name = Release; }; - 2AACD7C76460E95C83C2C97328EB531B /* Debug */ = { + 5FFC4CAFE94E1EEA044A05840BBF5B25 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = EC4F60FBE1C3BF6314783DC4DF90D414 /* ChattoAdditions.debug.xcconfig */; + baseConfigurationReference = 3C4011DB2C80F78B8321E9E704E40DD2 /* Pods-ChattoApp.release.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; @@ -1300,27 +1236,29 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/ChattoAdditions/ChattoAdditions-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/ChattoAdditions/ChattoAdditions-Info.plist"; + INFOPLIST_FILE = "Target Support Files/Pods-ChattoApp/Pods-ChattoApp-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/ChattoAdditions/ChattoAdditions.modulemap"; - PRODUCT_MODULE_NAME = ChattoAdditions; - PRODUCT_NAME = ChattoAdditions; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-ChattoApp/Pods-ChattoApp.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 5.3; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; }; - 5D1B48C5257019FB3B7D35F86D5469C5 /* Release */ = { + 773649593F7FCE0AB01B1CE0A3C8CF28 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 92923CDA586CAE6EB880C1EBAD4C37CC /* ChattoAdditions.release.xcconfig */; + baseConfigurationReference = ADACB467BFFDEA729BFB8ADF01D0CB01 /* ChattoAdditions.debug.xcconfig */; buildSettings = { CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; @@ -1344,11 +1282,10 @@ SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; SWIFT_VERSION = 5.3; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Release; + name = Debug; }; 8F17DC3A99F99FBAD606CE6963886315 /* Release */ = { isa = XCBuildConfiguration; @@ -1474,7 +1411,7 @@ }; name = Debug; }; - 9EC1EBE3CB26F5D117781DC5E1D2AEA0 /* Debug */ = { + AC94E92DFCFF9069B1891A8C3E33C7FA /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = F26241E90E38090426B8539A653278AC /* Pods-ChattoApp.debug.xcconfig */; buildSettings = { @@ -1507,40 +1444,6 @@ }; name = Debug; }; - A9F9315B91F86F3FF0A89A93E5754B21 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = EC4F60FBE1C3BF6314783DC4DF90D414 /* ChattoAdditions.debug.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = "iPhone Developer"; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/ChattoAdditions"; - IBSC_MODULE = ChattoAdditions; - INFOPLIST_FILE = "Target Support Files/ChattoAdditions/ResourceBundle-ChattoAdditionsResources-ChattoAdditions-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - PRODUCT_NAME = ChattoAdditionsResources; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Debug; - }; - D3DFBC788417DD7ACD72BBFE6E03367D /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 92923CDA586CAE6EB880C1EBAD4C37CC /* ChattoAdditions.release.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = "iPhone Developer"; - CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)/ChattoAdditions"; - IBSC_MODULE = ChattoAdditions; - INFOPLIST_FILE = "Target Support Files/ChattoAdditions/ResourceBundle-ChattoAdditionsResources-ChattoAdditions-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - PRODUCT_NAME = ChattoAdditionsResources; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - WRAPPER_EXTENSION = bundle; - }; - name = Release; - }; D703CDBFA111B654B85685CF98A90C71 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = F73C3CF1E6276222AB57EF3E5B471115 /* Chatto.debug.xcconfig */; @@ -1607,47 +1510,38 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { + 3DD15C259BD47801E93B91EC63A468CD /* Build configuration list for PBXNativeTarget "Pods-ChattoApp" */ = { isa = XCConfigurationList; buildConfigurations = ( - 916E0404255105F480DC4950B7625F7A /* Debug */, - 8F17DC3A99F99FBAD606CE6963886315 /* Release */, + AC94E92DFCFF9069B1891A8C3E33C7FA /* Debug */, + 5FFC4CAFE94E1EEA044A05840BBF5B25 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 6D30F6C2F1B6331D051DB525C9F02D28 /* Build configuration list for PBXNativeTarget "Chatto" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - D703CDBFA111B654B85685CF98A90C71 /* Debug */, - E62D84813C76AE0DFA267081067C2F1E /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 9420414CD5C2D1AA1BA9EA5CCC9841F2 /* Build configuration list for PBXNativeTarget "ChattoAdditions" */ = { + 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - 2AACD7C76460E95C83C2C97328EB531B /* Debug */, - 5D1B48C5257019FB3B7D35F86D5469C5 /* Release */, + 916E0404255105F480DC4950B7625F7A /* Debug */, + 8F17DC3A99F99FBAD606CE6963886315 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - ADDE97F1A9867781E2FF6C3D716AFDD3 /* Build configuration list for PBXNativeTarget "ChattoAdditions-ChattoAdditionsResources" */ = { + 6D30F6C2F1B6331D051DB525C9F02D28 /* Build configuration list for PBXNativeTarget "Chatto" */ = { isa = XCConfigurationList; buildConfigurations = ( - A9F9315B91F86F3FF0A89A93E5754B21 /* Debug */, - D3DFBC788417DD7ACD72BBFE6E03367D /* Release */, + D703CDBFA111B654B85685CF98A90C71 /* Debug */, + E62D84813C76AE0DFA267081067C2F1E /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - F03B4B829A1FCAD9D1657D8FE1024984 /* Build configuration list for PBXNativeTarget "Pods-ChattoApp" */ = { + 7B28015123D1F7963B9F66550784E1A2 /* Build configuration list for PBXNativeTarget "ChattoAdditions" */ = { isa = XCConfigurationList; buildConfigurations = ( - 9EC1EBE3CB26F5D117781DC5E1D2AEA0 /* Debug */, - 0A3C67A653E83664C6E218FDAAECD40C /* Release */, + 773649593F7FCE0AB01B1CE0A3C8CF28 /* Debug */, + 50C007BE2456A92F8A8572C1642A565F /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/ChattoApp/Pods/Target Support Files/ChattoAdditions/ResourceBundle-ChattoAdditionsResources-ChattoAdditions-Info.plist b/ChattoApp/Pods/Target Support Files/ChattoAdditions/ResourceBundle-ChattoAdditionsResources-ChattoAdditions-Info.plist deleted file mode 100644 index a9b6888cd..000000000 --- a/ChattoApp/Pods/Target Support Files/ChattoAdditions/ResourceBundle-ChattoAdditionsResources-ChattoAdditions-Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - BNDL - CFBundleShortVersionString - 4.0.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - NSPrincipalClass - - - From f5644077e0260ef6db56ebbbcb11847b85692ed5 Mon Sep 17 00:00:00 2001 From: Victor Shamanov Date: Wed, 27 Jan 2021 12:04:02 +0000 Subject: [PATCH 2/2] Run pod install for ChattoApp --- ChattoApp/Podfile.lock | 2 +- ChattoApp/Pods/Manifest.lock | 2 +- ChattoApp/Pods/Pods.xcodeproj/project.pbxproj | 1440 ++++++++--------- .../Chatto/Chatto.debug.xcconfig | 2 + .../Chatto/Chatto.release.xcconfig | 2 + .../ChattoAdditions.debug.xcconfig | 2 + .../ChattoAdditions.release.xcconfig | 2 + .../Pods-ChattoApp-frameworks.sh | 94 +- .../Pods-ChattoApp.debug.xcconfig | 2 + .../Pods-ChattoApp.release.xcconfig | 2 + 10 files changed, 720 insertions(+), 830 deletions(-) diff --git a/ChattoApp/Podfile.lock b/ChattoApp/Podfile.lock index 559e3bda8..3a7f27790 100644 --- a/ChattoApp/Podfile.lock +++ b/ChattoApp/Podfile.lock @@ -19,4 +19,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: 7e673449d94d383ef7c7669fdd0f282d4d0e7059 -COCOAPODS: 1.9.0 +COCOAPODS: 1.10.1 diff --git a/ChattoApp/Pods/Manifest.lock b/ChattoApp/Pods/Manifest.lock index 559e3bda8..3a7f27790 100644 --- a/ChattoApp/Pods/Manifest.lock +++ b/ChattoApp/Pods/Manifest.lock @@ -19,4 +19,4 @@ SPEC CHECKSUMS: PODFILE CHECKSUM: 7e673449d94d383ef7c7669fdd0f282d4d0e7059 -COCOAPODS: 1.9.0 +COCOAPODS: 1.10.1 diff --git a/ChattoApp/Pods/Pods.xcodeproj/project.pbxproj b/ChattoApp/Pods/Pods.xcodeproj/project.pbxproj index a8b1698bd..7f3cf42b4 100644 --- a/ChattoApp/Pods/Pods.xcodeproj/project.pbxproj +++ b/ChattoApp/Pods/Pods.xcodeproj/project.pbxproj @@ -7,147 +7,147 @@ objects = { /* Begin PBXBuildFile section */ - 02493FF7B5F2AF2A53AD7E1AAF4B0A75 /* CGPoint+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 236C20E885169120F2B1302E3C152FA0 /* CGPoint+Additions.swift */; }; - 02564B0D3906C4E015AA009069D56DA6 /* UIScreen+Scale.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0FA1A535C01FD338F65BD9984B536756 /* UIScreen+Scale.swift */; }; - 0397BFDB09456D51300A51761811CF49 /* PhotosInputCameraPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8BC6AC9FC58CB35BFCC08837BE6865E /* PhotosInputCameraPicker.swift */; }; - 0433F8FFA369B57F8C49F7192A2EDE9F /* CGFloat+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 06A7041007DC3A31B6D306FF23A0C3E9 /* CGFloat+Additions.swift */; }; - 0611A7E7F4ED1F3C695A89F1593D66AA /* PhotosInputPlaceholderDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8F4810AC5C9D8A11DD7DF2C1AA9BB2FD /* PhotosInputPlaceholderDataProvider.swift */; }; - 067030EDD77F796FDEEFD159DF2D75CD /* CGRect+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 04AC49AFCD860E5DCDBFDBC0140AE885 /* CGRect+Additions.swift */; }; - 07D412B6561244E6B2ADD811601F5F47 /* ChatCollectionViewLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC6463741D8D222EA495C7F13C82BDDA /* ChatCollectionViewLayout.swift */; }; - 08F6B608B3B69F004C457DFA41E921EB /* BaseMessageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 89AD4E3AE9A6A4616B3E47334A660B61 /* BaseMessageCollectionViewCell.swift */; }; - 0B1C67F0F038CAFE9B864FC142352D66 /* DeviceImagePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = B815F4D20E1659CAA5481A9CF527F4E0 /* DeviceImagePicker.swift */; }; - 11378F138370216F4C96735CBB2706F8 /* ReplyFeedbackGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5313B20C8EA26B49A3A260677748246 /* ReplyFeedbackGenerator.swift */; }; - 154081FF63650F1A601DAE1BFCFBC057 /* ChatItemProtocolDefinitions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2F91943BF4071679AC2B022841A1E13F /* ChatItemProtocolDefinitions.swift */; }; - 17D31666018C37E9208BBA75C0C4A9F3 /* AnimationUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = B87C51B550537D0D0E4B1AB8515D6C73 /* AnimationUtils.swift */; }; - 204DD3CB656EBF52AC7F2F44D25F1214 /* InputPositionControlling.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56880FCEF4E8A4001BC6DEEE39516923 /* InputPositionControlling.swift */; }; - 20C4421B72C0B476C2A55B1F5BCD5F91 /* PhotoBubbleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 25428E5ACCD837FEC4C3BB46554283A3 /* PhotoBubbleView.swift */; }; + 02493FF7B5F2AF2A53AD7E1AAF4B0A75 /* CGPoint+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3741CE61342F444E0BC6CC2BF241F096 /* CGPoint+Additions.swift */; }; + 02564B0D3906C4E015AA009069D56DA6 /* UIScreen+Scale.swift in Sources */ = {isa = PBXBuildFile; fileRef = 827F3D4623155BB7E6C7D54752A913DE /* UIScreen+Scale.swift */; }; + 0397BFDB09456D51300A51761811CF49 /* PhotosInputCameraPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = E36873CF331DB525EA5846AB853DD898 /* PhotosInputCameraPicker.swift */; }; + 0433F8FFA369B57F8C49F7192A2EDE9F /* CGFloat+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45A0D02467EE2D5E9F2165F073DEFD8D /* CGFloat+Additions.swift */; }; + 0611A7E7F4ED1F3C695A89F1593D66AA /* PhotosInputPlaceholderDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = B7D76A763D77FD4657CC4AF470245D7D /* PhotosInputPlaceholderDataProvider.swift */; }; + 067030EDD77F796FDEEFD159DF2D75CD /* CGRect+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B58E0D6F7F31DD3391BF9330CDD0B9C /* CGRect+Additions.swift */; }; + 07D412B6561244E6B2ADD811601F5F47 /* ChatCollectionViewLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1CB456113C0F19E2AF2E2F43E4D19EF /* ChatCollectionViewLayout.swift */; }; + 08F6B608B3B69F004C457DFA41E921EB /* BaseMessageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5214BF7820CCE0E095861434EF65E17F /* BaseMessageCollectionViewCell.swift */; }; + 0B1C67F0F038CAFE9B864FC142352D66 /* DeviceImagePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0530A293180571318EA0F10D531990B /* DeviceImagePicker.swift */; }; + 11378F138370216F4C96735CBB2706F8 /* ReplyFeedbackGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3038806CEE1B2AE12529239CE696164A /* ReplyFeedbackGenerator.swift */; }; + 154081FF63650F1A601DAE1BFCFBC057 /* ChatItemProtocolDefinitions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 000DB00CCE3B5B1FE458DF6283312E2D /* ChatItemProtocolDefinitions.swift */; }; + 17D31666018C37E9208BBA75C0C4A9F3 /* AnimationUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88A1444628CDBADCF1A76C09E783CDC4 /* AnimationUtils.swift */; }; + 204DD3CB656EBF52AC7F2F44D25F1214 /* InputPositionControlling.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0FF9EB6943E32107474E987374F0C0E0 /* InputPositionControlling.swift */; }; + 20C4421B72C0B476C2A55B1F5BCD5F91 /* PhotoBubbleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0DBB10C0F9AA6A12AB701B3314425220 /* PhotoBubbleView.swift */; }; 2253E0FF9E1C2043AAD1EA10B3F17073 /* Pods-ChattoApp-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = C9D8F53B3D35A3001CB4D8DF8DEE7781 /* Pods-ChattoApp-dummy.m */; }; - 22E81E317151B9C8A2573D81382EE882 /* BaseChatViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 91F8BC669B2F2636DFE299052A0207B4 /* BaseChatViewController.swift */; }; - 23B1A4194133CFB05019A12A50618385 /* ViewDefinitions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F80EC38EF3F3B62C75375F1BE3FA74A /* ViewDefinitions.swift */; }; - 280ABB4EDE8985054F7EC9D383D99CDB /* TextMessagePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 21B0D2035FD656FBD1BE0FD4D0765885 /* TextMessagePresenter.swift */; }; - 28192ACCDD9EE2B928F10F698B11DE7E /* ChatDataSourceProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A05D1B506E39896D053A99661B1B3BB /* ChatDataSourceProtocol.swift */; }; - 2A438C1479D68E8A2FC79D18EEB3148C /* MessageDecorationViewLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 13322131F1DBFDB63B36E6DB589FE8A4 /* MessageDecorationViewLayout.swift */; }; - 2F4ABDFB92023DCB42664E25AB7381C3 /* LiveCameraCaptureSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9BCA972B80D11A89C07AD256516A566 /* LiveCameraCaptureSession.swift */; }; - 317955D8260AEB1043C595A04EBAA2E0 /* PhotosInputPermissionsRequester.swift in Sources */ = {isa = PBXBuildFile; fileRef = BB75128305707A226A53276390BB8FAA /* PhotosInputPermissionsRequester.swift */; }; - 31C8E08CA690C6B27C1AE8EAC60AF285 /* Cache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65F825FEE553CA33058218D87DBA9B1F /* Cache.swift */; }; - 32BD9F6F18C4F22E2ECE1C2AD686B283 /* PhotosChatInputItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = F7A2277E1CD524B02A1863528336B6DA /* PhotosChatInputItem.swift */; }; - 362C049F110084D4207DBD348F62C7AF /* PhotosInputViewItemSizeCalculator.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8407F3DCCFB69F669A808405C9D329CA /* PhotosInputViewItemSizeCalculator.swift */; }; - 36355BDC61421DCA667D46F77B3F7BC3 /* TextMessageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = AABD4F579A866A84B779427F513C116E /* TextMessageCollectionViewCell.swift */; }; - 38F3C615D2126DEC72E15557BD6E7281 /* TextMessageModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADE49B40025576C54A5800919EC51582 /* TextMessageModel.swift */; }; - 3F56AA8CE0D024E11D6BF9087A063D53 /* PhotoMessageModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = E6CE1B3DC70E182285B03BA408034F98 /* PhotoMessageModel.swift */; }; - 3FB1A2D2A9EDD942542B4F64263E238A /* MessageDecorationViewFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1BBC96A3D4AE6C387957B4C45BD0F840 /* MessageDecorationViewFactory.swift */; }; - 3FC14D49AAE9FB057C428A17D9DA1D0C /* ChatInputBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0895A8F714292AB31032419C0A502719 /* ChatInputBar.swift */; }; - 42B8C1B19DFE1A2FD82C27F2B49E1FF1 /* PhotoMessageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DDBBC539E90109AB64C29FFC777AE9BD /* PhotoMessageCollectionViewCell.swift */; }; - 43B081203C4933C49E3534585D02E7C4 /* PhotosInputView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5DFFA374361CADA7687D2F6AAF3E6128 /* PhotosInputView.swift */; }; - 456159D42C7822CEF8D12CDD7ACF67A5 /* PhotoMessagePresenterBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4BAA1DE44C80040FB0CD646BEEB58CB5 /* PhotoMessagePresenterBuilder.swift */; }; - 4819F4FDE3A422D93D5094012D5D852F /* TextMessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33DD84EB99D2B1FED3A2E98CD7D2D08B /* TextMessageViewModel.swift */; }; - 48238B8277D985D13D3289AE38944C13 /* PhotosInputCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0823EA5BF2EACA8B39AD206AB18E4A51 /* PhotosInputCell.swift */; }; - 4995418A1D724B1D12B75135496FDDF0 /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2737FB1796FDA0835FBBCDCEB20EAA27 /* Utils.swift */; }; - 4B1F66EFACCB0FC027F40411B4F53047 /* CompoundBubbleLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = DEADFB0F0D46FBA486EAE9A0D5AFA8E7 /* CompoundBubbleLayout.swift */; }; - 4B62C6890F154F02EB02B4F07A6DBFFB /* BaseChatItemPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED87067CA4F4C6D1B43A4F79756F0F82 /* BaseChatItemPresenter.swift */; }; - 4EAE1AC2F09AA88E7924DD65808DEEB1 /* InterfaceOrientation.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8ABDCC71A86D9447EEB9E234C04DB87 /* InterfaceOrientation.swift */; }; - 4EC1AE01D6193E8D55BBB3469A186AA1 /* TextMessageMenuItemPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0BE53BF5253D56DE7B1F8CC27E99DC1 /* TextMessageMenuItemPresenter.swift */; }; - 4ED18EB2BB14C47F85DDE10458852E31 /* CellPanGestureHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4A0BCBF7465CEF9DDEFBB5F48F947042 /* CellPanGestureHandler.swift */; }; - 50BAE324076B48E5DF78E84EE6005C2C /* ImagePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = EB9600C142ED198331B7F945D91076A8 /* ImagePicker.swift */; }; - 50E286BE8D000378621DAF8E115745E8 /* ChatInputBarAppearance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F1605BE8B49C062759B56E21F3BE2C8 /* ChatInputBarAppearance.swift */; }; - 5116A2B235624BA9D235843BA1FF3225 /* ReusableXibView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 482BED2103C47E53D2B9810F7E587269 /* ReusableXibView.swift */; }; - 525AD1A2E079BF3CBD1993D6D255D2B9 /* BaseMessageAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97A1922A09ADA4895D43F912C9BD2EB4 /* BaseMessageAssets.xcassets */; }; - 53D1A79F1E3389C02A597A6DDE690D74 /* PhotoMessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CF516B9903CE4F1EA7ECE35DEBFD4EB /* PhotoMessageViewModel.swift */; }; - 54969C747E3336CD89121C38DB1CDA86 /* ChatLayoutConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0BBBD1FFF5A696C90066B277D6D4A10 /* ChatLayoutConfiguration.swift */; }; - 561C14091FFDBFCFF2C5852FE3F65025 /* ChatInputBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8E22DE258A822554858D3207243AC833 /* ChatInputBar.xib */; }; - 564CE3166A883AA915C3998CFA36DFD3 /* PhotosInputPlaceholderCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAEA366E7B2333E217B086495D552C75 /* PhotosInputPlaceholderCell.swift */; }; - 57762F9C8370DBE71A2CB51A4D22ED3A /* CompoundMessagePresenterBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = BD6FDED50AC98EBD9963A9821F10B115 /* CompoundMessagePresenterBuilder.swift */; }; - 5C1AA4D62DAF88A178283E3EC9E2BC3E /* Observable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6396A7565AD4C9AC2BC5E30B4F4A3F43 /* Observable.swift */; }; - 60725522CB11FFE41C026538AEF2545C /* BaseMessageModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D40710D191836A81D87A5505DDBF2C36 /* BaseMessageModel.swift */; }; - 6469930F2C21DF84B813F7EC21D35472 /* HashableRepresentible.swift in Sources */ = {isa = PBXBuildFile; fileRef = B62BD16D68353978A24663F0D6FDCCA7 /* HashableRepresentible.swift */; }; - 6B8B63E08996585ACF77524C721EDFA4 /* UIColor+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D83DA4EFC41B0135B202C8221A824D2 /* UIColor+Additions.swift */; }; - 6CBA68E92AF8F6B671194A423A568C21 /* ChatItemCompanion.swift in Sources */ = {isa = PBXBuildFile; fileRef = C15E52FE2E7D7781E212D50D1B4A765A /* ChatItemCompanion.swift */; }; - 700798922FAE338261149631E1D89BCB /* TabInputButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7223F8C033BFFEE0FDB15697CF2BB6C8 /* TabInputButton.swift */; }; - 73D2C69E75FC2D2D70338A446A3E96E5 /* MessageContentPresenterProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F7D733A0DEADA2A8CAB6406CB57330B /* MessageContentPresenterProtocol.swift */; }; - 74849EA9D857A30C8EE3CBC59C016040 /* CompoundMessageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 283269D75A0B98D05047908FBEF1F33A /* CompoundMessageCollectionViewCell.swift */; }; - 77981B58F9615CBBE8528306D8FBEAA6 /* BaseChatViewControllerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 011816ED5E011074BFBB08DB9E7E52A5 /* BaseChatViewControllerView.swift */; }; - 7ADE09D211D2C7C4197F33F8F9C6F5E8 /* ChatInputItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 501226DD9C2D0501786393AD13D2CAEA /* ChatInputItem.swift */; }; - 7B9B632475BFBFFB9BCEBF41AE6781FA /* CompoundBubbleViewStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 913F2880190E5ECDEEEE4BF992BAA21B /* CompoundBubbleViewStyle.swift */; }; - 7C4EEEF686E5E839E4DEE2CEF25AC4F6 /* Chatto-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = F19EA325FF08EEEF8E04FBF1D4D84A74 /* Chatto-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7CAE9E39794A69BD0B2AD24FC7D501D8 /* BaseMessagePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD8808CCD6243E9AEDAFA2EFF5B2AD23 /* BaseMessagePresenter.swift */; }; - 802BE2FEA3A6EF4E65DCA4B4C39D8431 /* LiveCameraCellPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 14EBEEF92B23AC6E991F0BDB120E95B8 /* LiveCameraCellPresenter.swift */; }; - 80A66B56E95666C6C909A90531631EC7 /* CollectionChanges.swift in Sources */ = {isa = PBXBuildFile; fileRef = D43345688FD3BBE9E2163B953A575197 /* CollectionChanges.swift */; }; - 814A5766635BA4DFB6D7BBC621347791 /* CircleProgressView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9869199FF0C45C00B9E6E429A329B1E /* CircleProgressView.swift */; }; - 8338260847FA1B00181152BC61AF1B6F /* DummyChatItemPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 779BC9D8CCD2E20F50D9C3A896385B69 /* DummyChatItemPresenter.swift */; }; - 8365012497A80A360E09A210FBD9DEAC /* ExpandableChatInputBarPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4964FAE6F4A3D52051B3DFD52033900D /* ExpandableChatInputBarPresenter.swift */; }; - 8429362DDAF67750531C00D72C4081FE /* ChatInputItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC2BB1EBBCA2D1B36DA567DAD034C731 /* ChatInputItemView.swift */; }; - 8997D8C4D9F21E33F1204F109464A685 /* PhotoMessagePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = AD1B0FF275C25A3C07B6EB4ED433BBE1 /* PhotoMessagePresenter.swift */; }; - 8AA0B3344D365AE850A9E34683AB8410 /* TextBubbleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 21A1CA29ABA8D533AE6942E22508F8A6 /* TextBubbleView.swift */; }; - 8DA2D5DF6B4820D4C234A5E541516843 /* TextChatInputItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A752E0DE33643E6879E911B1998F7AB /* TextChatInputItem.swift */; }; - 8EF55C9EBED2553F0524695E2CAB3459 /* PhotoMessageAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = E994A42C4BBCE943DEDA4ADCABFBF488 /* PhotoMessageAssets.xcassets */; }; - 8F9936C920063CC06FA1EE957F5F3FBB /* ChatItemCompanionCollection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5BB248F27627AD32F456EB1B49BB2148 /* ChatItemCompanionCollection.swift */; }; - 928CFA1F7B365771297E1666B362EC06 /* BaseMessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 806AC8F1CD6A8C7EADE94C791EE39F9D /* BaseMessageViewModel.swift */; }; - 93E17A37C62913A444BC0982FD3CAB9C /* DefaultMessageContentPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = FCB5C95E8B0BEAB6A9A66F67E6556B18 /* DefaultMessageContentPresenter.swift */; }; - 9954443AE639B5C9936F68199DA058F3 /* ChattoAdditions-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = F93718D9C807F23012F25F889C6D05D8 /* ChattoAdditions-dummy.m */; }; - 9C38FB65F59C7DA4B8BAE2C6B2AB4332 /* MessageManualLayoutProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AF22E9F96884321F0BCEA0D10A0A852 /* MessageManualLayoutProvider.swift */; }; - 9CE23EFF4341229AE12A4D3AE4FBE6BF /* PasteActionInterceptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2BE442AA2438AE0CA41A759149014C4 /* PasteActionInterceptor.swift */; }; - 9F1961CA7D23F6C289AC1ACC15C71443 /* PhotosInputDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0F68CE9E175448BDAA8DAE759A7FF2A /* PhotosInputDataProvider.swift */; }; - A24F42B3A3143278B472DD139E8CD708 /* Text.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 2D447A3863D908E9E0E4D273A7688060 /* Text.xcassets */; }; - A28368F2BC2DF1D80149743445864EF3 /* CompoundMessagePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 64F9F8727BF298D7036A993DE64098B1 /* CompoundMessagePresenter.swift */; }; - A2DDCF7BB7CE4A8955B6D15DC71ED2F0 /* Chatto-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 85832A5C6F4E62651AFDDAD8D95D8083 /* Chatto-dummy.m */; }; + 22E81E317151B9C8A2573D81382EE882 /* BaseChatViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2211DE914E44D2FE548F64B0E245EFD /* BaseChatViewController.swift */; }; + 23B1A4194133CFB05019A12A50618385 /* ViewDefinitions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6957CA570510230D638D3DDD94B313D1 /* ViewDefinitions.swift */; }; + 280ABB4EDE8985054F7EC9D383D99CDB /* TextMessagePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79382D6CADCEE7EA20655E3CA6646C17 /* TextMessagePresenter.swift */; }; + 28192ACCDD9EE2B928F10F698B11DE7E /* ChatDataSourceProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = A4761E06891B57B3585B97E47A9E1973 /* ChatDataSourceProtocol.swift */; }; + 2A438C1479D68E8A2FC79D18EEB3148C /* MessageDecorationViewLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 88023C11D8D7CA22492708054243E3AF /* MessageDecorationViewLayout.swift */; }; + 2F4ABDFB92023DCB42664E25AB7381C3 /* LiveCameraCaptureSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A40280D33B3C05BCB076B0DE332D543 /* LiveCameraCaptureSession.swift */; }; + 317955D8260AEB1043C595A04EBAA2E0 /* PhotosInputPermissionsRequester.swift in Sources */ = {isa = PBXBuildFile; fileRef = F5AD58C89E8D7A5E58BC534FAEA4E958 /* PhotosInputPermissionsRequester.swift */; }; + 31C8E08CA690C6B27C1AE8EAC60AF285 /* Cache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 135E9C384CF86CD81E6C9FD05C672EB5 /* Cache.swift */; }; + 32BD9F6F18C4F22E2ECE1C2AD686B283 /* PhotosChatInputItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = BEDE26F86F99C71004C526D48396279C /* PhotosChatInputItem.swift */; }; + 362C049F110084D4207DBD348F62C7AF /* PhotosInputViewItemSizeCalculator.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA700684063EB8598D50267E0E2AC9C4 /* PhotosInputViewItemSizeCalculator.swift */; }; + 36355BDC61421DCA667D46F77B3F7BC3 /* TextMessageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 01944C9CE194E95E2B19EEF7CCCD9D70 /* TextMessageCollectionViewCell.swift */; }; + 38F3C615D2126DEC72E15557BD6E7281 /* TextMessageModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 456555122CA49C70D566527B6A9DCC03 /* TextMessageModel.swift */; }; + 3F56AA8CE0D024E11D6BF9087A063D53 /* PhotoMessageModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE59BB17E6124822F2951FC320B5F19B /* PhotoMessageModel.swift */; }; + 3FB1A2D2A9EDD942542B4F64263E238A /* MessageDecorationViewFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2B76B96EDF5F90809550A50E6AC77889 /* MessageDecorationViewFactory.swift */; }; + 3FC14D49AAE9FB057C428A17D9DA1D0C /* ChatInputBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 76D4380AC2D3C66D0D5AFD3FE64642CE /* ChatInputBar.swift */; }; + 42B8C1B19DFE1A2FD82C27F2B49E1FF1 /* PhotoMessageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7B3F79F4144CA65B6F2E9B300D8D0F2F /* PhotoMessageCollectionViewCell.swift */; }; + 43B081203C4933C49E3534585D02E7C4 /* PhotosInputView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CB04B2956068977B51C704D56859B30A /* PhotosInputView.swift */; }; + 456159D42C7822CEF8D12CDD7ACF67A5 /* PhotoMessagePresenterBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CBA9F161CD788A0618F416C10F9689F /* PhotoMessagePresenterBuilder.swift */; }; + 4819F4FDE3A422D93D5094012D5D852F /* TextMessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9833E80BF0DC80AF0C57E85B83CDB1EA /* TextMessageViewModel.swift */; }; + 48238B8277D985D13D3289AE38944C13 /* PhotosInputCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF3BACDA58B6A5DDCFCEB99B4D881BE8 /* PhotosInputCell.swift */; }; + 4995418A1D724B1D12B75135496FDDF0 /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 24DA757636FEED80CA67B193AA399F46 /* Utils.swift */; }; + 4B1F66EFACCB0FC027F40411B4F53047 /* CompoundBubbleLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9FAE7ED5DCE606F482905FD3A27D81B4 /* CompoundBubbleLayout.swift */; }; + 4B62C6890F154F02EB02B4F07A6DBFFB /* BaseChatItemPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80A6ACDBD57FB1C8BC58E1A129C1E2FA /* BaseChatItemPresenter.swift */; }; + 4EAE1AC2F09AA88E7924DD65808DEEB1 /* InterfaceOrientation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2BADB931FACDD59329A885FF8FF9FFF /* InterfaceOrientation.swift */; }; + 4EC1AE01D6193E8D55BBB3469A186AA1 /* TextMessageMenuItemPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5D85B92394DAF2554C0398F24B677DA2 /* TextMessageMenuItemPresenter.swift */; }; + 4ED18EB2BB14C47F85DDE10458852E31 /* CellPanGestureHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79F313B4E57DEA9FD7DF5E0B720AA164 /* CellPanGestureHandler.swift */; }; + 50BAE324076B48E5DF78E84EE6005C2C /* ImagePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 313BBF9C37931BBDB81CD287454B3C9D /* ImagePicker.swift */; }; + 50E286BE8D000378621DAF8E115745E8 /* ChatInputBarAppearance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 631EDFB3F72FA2F868D665889CF1CBF0 /* ChatInputBarAppearance.swift */; }; + 5116A2B235624BA9D235843BA1FF3225 /* ReusableXibView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 93AAD6808143DBB19A2E71530EDF19B3 /* ReusableXibView.swift */; }; + 525AD1A2E079BF3CBD1993D6D255D2B9 /* BaseMessageAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 5811E455445D1B2EA8D32936D237068F /* BaseMessageAssets.xcassets */; }; + 53D1A79F1E3389C02A597A6DDE690D74 /* PhotoMessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3F5EAA61D235FD6852D95A24909FDBD0 /* PhotoMessageViewModel.swift */; }; + 54969C747E3336CD89121C38DB1CDA86 /* ChatLayoutConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2958F254851CFB57E5E37E1BC0425D49 /* ChatLayoutConfiguration.swift */; }; + 561C14091FFDBFCFF2C5852FE3F65025 /* ChatInputBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = 03E94CC6E656A5A9BC9773E82204084B /* ChatInputBar.xib */; }; + 564CE3166A883AA915C3998CFA36DFD3 /* PhotosInputPlaceholderCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C506D8C44EF1D426885E23D9FE079A8 /* PhotosInputPlaceholderCell.swift */; }; + 57762F9C8370DBE71A2CB51A4D22ED3A /* CompoundMessagePresenterBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6A487F8D3B94E28CE2FD97BE739BF5E5 /* CompoundMessagePresenterBuilder.swift */; }; + 5C1AA4D62DAF88A178283E3EC9E2BC3E /* Observable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 276B8023BDC9B8CBC7A98ABF05635722 /* Observable.swift */; }; + 5D38B022D72A1FC3E1A3951AE22EA9FD /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A174E57201961225505A5D48D72BCCE /* Foundation.framework */; }; + 60725522CB11FFE41C026538AEF2545C /* BaseMessageModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 266847F0127E05CFB804E0A8AFB5F82A /* BaseMessageModel.swift */; }; + 6469930F2C21DF84B813F7EC21D35472 /* HashableRepresentible.swift in Sources */ = {isa = PBXBuildFile; fileRef = C60DF9CC492F87ED5D501168684E7626 /* HashableRepresentible.swift */; }; + 6B8B63E08996585ACF77524C721EDFA4 /* UIColor+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D693CE3CEEAE8536B1F46A6FC63FB1C /* UIColor+Additions.swift */; }; + 6CBA68E92AF8F6B671194A423A568C21 /* ChatItemCompanion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 990382A8CFB48462A0CEC61DF2ED3A4B /* ChatItemCompanion.swift */; }; + 700798922FAE338261149631E1D89BCB /* TabInputButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED1749E9DEEA6F20E7158F868E4E9D06 /* TabInputButton.swift */; }; + 73D2C69E75FC2D2D70338A446A3E96E5 /* MessageContentPresenterProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = FBC1B449E66FEF49632A311E974D986F /* MessageContentPresenterProtocol.swift */; }; + 74849EA9D857A30C8EE3CBC59C016040 /* CompoundMessageCollectionViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8520A50D7628A48D0B256304A9AD5FF4 /* CompoundMessageCollectionViewCell.swift */; }; + 74D950EEE53FA9AA13367C1A1187631D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A174E57201961225505A5D48D72BCCE /* Foundation.framework */; }; + 77981B58F9615CBBE8528306D8FBEAA6 /* BaseChatViewControllerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = E2087BD132D83AECA6B98E160DDD587A /* BaseChatViewControllerView.swift */; }; + 7ADE09D211D2C7C4197F33F8F9C6F5E8 /* ChatInputItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 25C5574B5F56F195DECF9FF4BB926F0D /* ChatInputItem.swift */; }; + 7B9B632475BFBFFB9BCEBF41AE6781FA /* CompoundBubbleViewStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59131A6B1DE96BEDDDA73AA842F8776B /* CompoundBubbleViewStyle.swift */; }; + 7C4EEEF686E5E839E4DEE2CEF25AC4F6 /* Chatto-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 78CF8BA31EE97EDC67FDA36B06E222BE /* Chatto-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 7CAE9E39794A69BD0B2AD24FC7D501D8 /* BaseMessagePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62A1DA4E1799B76DD0D9EB38CECDD6DF /* BaseMessagePresenter.swift */; }; + 802BE2FEA3A6EF4E65DCA4B4C39D8431 /* LiveCameraCellPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 90C132DF4001430CE6FFEF2EC3B3773C /* LiveCameraCellPresenter.swift */; }; + 80A66B56E95666C6C909A90531631EC7 /* CollectionChanges.swift in Sources */ = {isa = PBXBuildFile; fileRef = DA2DE88E6383BA93E1641D494BA5A52F /* CollectionChanges.swift */; }; + 814A5766635BA4DFB6D7BBC621347791 /* CircleProgressView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF50C9178A05BD4828F9145D555D9C38 /* CircleProgressView.swift */; }; + 8338260847FA1B00181152BC61AF1B6F /* DummyChatItemPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = AEDFC0ABB73C185D8E65D451030468F2 /* DummyChatItemPresenter.swift */; }; + 8365012497A80A360E09A210FBD9DEAC /* ExpandableChatInputBarPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F9769B94A43DC0EF18424B699CB0A6E /* ExpandableChatInputBarPresenter.swift */; }; + 8429362DDAF67750531C00D72C4081FE /* ChatInputItemView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F3E4F24A10E41586A000492B1FE70E64 /* ChatInputItemView.swift */; }; + 8997D8C4D9F21E33F1204F109464A685 /* PhotoMessagePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 330F72FF644CA3C7F0F76585BAD86E72 /* PhotoMessagePresenter.swift */; }; + 8AA0B3344D365AE850A9E34683AB8410 /* TextBubbleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 23FB45107EFE33D6FCCF03E31EE209AF /* TextBubbleView.swift */; }; + 8DA2D5DF6B4820D4C234A5E541516843 /* TextChatInputItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B47FD02DF9C670229FFD264FAD85297 /* TextChatInputItem.swift */; }; + 8EF55C9EBED2553F0524695E2CAB3459 /* PhotoMessageAssets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 8FB103C2E8D604D8C61366C0379E12CC /* PhotoMessageAssets.xcassets */; }; + 8F9936C920063CC06FA1EE957F5F3FBB /* ChatItemCompanionCollection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5DF4CF270A85C5DBF451D3B7ABAE9CB5 /* ChatItemCompanionCollection.swift */; }; + 928CFA1F7B365771297E1666B362EC06 /* BaseMessageViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 429C8A7CCCA531B341935E9351BAD37C /* BaseMessageViewModel.swift */; }; + 93E17A37C62913A444BC0982FD3CAB9C /* DefaultMessageContentPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC42707977DE9EF477B5B1E7DEF7630F /* DefaultMessageContentPresenter.swift */; }; + 9954443AE639B5C9936F68199DA058F3 /* ChattoAdditions-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 0A62285F574BE51D476B7476FF6DAF2A /* ChattoAdditions-dummy.m */; }; + 9C38FB65F59C7DA4B8BAE2C6B2AB4332 /* MessageManualLayoutProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = EFC39FA48DEF8E91EB287035247749B0 /* MessageManualLayoutProvider.swift */; }; + 9CE23EFF4341229AE12A4D3AE4FBE6BF /* PasteActionInterceptor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 410D22969BBD0D1723D110BBD3D2FF5C /* PasteActionInterceptor.swift */; }; + 9F1961CA7D23F6C289AC1ACC15C71443 /* PhotosInputDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C58754BB4B8C1F38FE5D93569A20E0F /* PhotosInputDataProvider.swift */; }; + A24F42B3A3143278B472DD139E8CD708 /* Text.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = CAF7C49D47E84E5FB78DB5B613B15DCF /* Text.xcassets */; }; + A28368F2BC2DF1D80149743445864EF3 /* CompoundMessagePresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9644E4E52B028EAD58CB01A7E9B91E34 /* CompoundMessagePresenter.swift */; }; + A2DDCF7BB7CE4A8955B6D15DC71ED2F0 /* Chatto-dummy.m in Sources */ = {isa = PBXBuildFile; fileRef = 189A0AFF74A9EB2681B09FB3F7AF9CED /* Chatto-dummy.m */; }; A3799C749593280587A2AD008CA75134 /* Chatto.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CCCE6A8E9F86772CD3FC9DDFC357633B /* Chatto.framework */; }; - ABE646530214F360E221ED1A778BA240 /* Photos.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 92050F47BAD040163DE1BCF8E6A1735D /* Photos.xcassets */; }; - AC761B031C2698AF2B003D0AED41356C /* HorizontalStackScrollView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F384B681FD98D4877A38278071015A92 /* HorizontalStackScrollView.swift */; }; - ACE7E2DE63617480A41B1141FC9CCF65 /* MessageContentFactoryProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF92289C8A545481701B6B4765CD8AE0 /* MessageContentFactoryProtocol.swift */; }; - AF48F289ED7D11941B832BED35211287 /* TextMessagePresenterBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3A806C01FA1BFCD488169AE664858363 /* TextMessagePresenterBuilder.swift */; }; - BD37C8ACD6AD9D47E6AF89DC09207161 /* PhotosInputWithPlaceholdersDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34D4F524AE0600A38CCA07CEB5F4C656 /* PhotosInputWithPlaceholdersDataProvider.swift */; }; - BFB5349670A9E23BBA842076F2E6478A /* CircleProgressIndicator.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 89CBBC63C653C97472D7E2ABEC510BC1 /* CircleProgressIndicator.xcassets */; }; - C23BA3A1EC55A281FFBC007A250376FD /* CircleIconView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5EEB0FCC5619208B0C1ABCA0B9B5B242 /* CircleIconView.swift */; }; - C3B2474D40ECE988131966F3DB0D8DC5 /* PhotosInputPlaceholderCellProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE4F103BE3BC2C7B182F8B7D029E7825 /* PhotosInputPlaceholderCellProvider.swift */; }; - C7C6BB47CD88FDA7CE8DD6016DFA032E /* UIView+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 25693FC416E58F954C564A75B06B8014 /* UIView+Additions.swift */; }; - C9C90B9677CB5BB26818973AD9359494 /* ChatInputBarPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 389A30D825C9593862B24D4DEF5608F3 /* ChatInputBarPresenter.swift */; }; - C9F4F7B619A77BB4195D2C1BA060F18A /* SerialTaskQueue.swift in Sources */ = {isa = PBXBuildFile; fileRef = 601AEAA1DD874E1CC895F1F0706B3AED /* SerialTaskQueue.swift */; }; - CA75B2493231B2BF77129702B697E890 /* LiveCameraCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 450E6D7CC218DA1B218A9FF3A086290C /* LiveCameraCell.swift */; }; - CB6543AA87EAC02C244C568866840493 /* BaseChatViewController+Changes.swift in Sources */ = {isa = PBXBuildFile; fileRef = F6A9D5406982D7B2766871EBB80D7DAD /* BaseChatViewController+Changes.swift */; }; - CD4C01F9474A1F558BEA49DE66FF59AE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CD673AD6FDA8BE759BCD31DEF040F680 /* Foundation.framework */; }; - CDFF04FB788482594521B38A28A62427 /* Alignment.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5814301B7B948CED7F98CA913AD2B1A /* Alignment.swift */; }; - CE8B40C4F5F9A08E1982AF84864038DF /* ChattoAdditions-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 80018A9EC57E23575E7580D9034A3D60 /* ChattoAdditions-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CF8A69A01FAA07A056A26EAF63D6A0B6 /* ScreenMetric.swift in Sources */ = {isa = PBXBuildFile; fileRef = 48B643807206FF779D3F1AE54CD142D8 /* ScreenMetric.swift */; }; - D2829242A3C38B87934D76EC277E9E2B /* CompoundBubbleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3B4CA06B50C467916444EC76DF0FA9F7 /* CompoundBubbleView.swift */; }; - D838565318379A2DD2AA4B5067912DE8 /* Comparable+Clamp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1490A3281CD5280EAFCC87D05FFDE515 /* Comparable+Clamp.swift */; }; - D8E5FA17809E054725668683AB5350DD /* UIEdgeInsets+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09FA84E8B9F753554B31D2A6FA91AFA4 /* UIEdgeInsets+Additions.swift */; }; - DBB808D4FE2CF878FF64852DA295A647 /* BaseChatViewController+Scrolling.swift in Sources */ = {isa = PBXBuildFile; fileRef = FA3FFAA6DE2BCFF6993980C497BFD5F0 /* BaseChatViewController+Scrolling.swift */; }; + ABE646530214F360E221ED1A778BA240 /* Photos.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 2EDD90826774E4709D599ACF40CA80AC /* Photos.xcassets */; }; + AC761B031C2698AF2B003D0AED41356C /* HorizontalStackScrollView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 306B0BE8D85FDFC9B57095A82986E0BA /* HorizontalStackScrollView.swift */; }; + ACE7E2DE63617480A41B1141FC9CCF65 /* MessageContentFactoryProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = B9459CCE2BECA66E9E03DDEBCA376D5F /* MessageContentFactoryProtocol.swift */; }; + AF48F289ED7D11941B832BED35211287 /* TextMessagePresenterBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 03F06DCB5A3A8D90B37D7BE6900D8DA9 /* TextMessagePresenterBuilder.swift */; }; + BD37C8ACD6AD9D47E6AF89DC09207161 /* PhotosInputWithPlaceholdersDataProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0BA547788774D075DE59D5FB1C564B7B /* PhotosInputWithPlaceholdersDataProvider.swift */; }; + BFB5349670A9E23BBA842076F2E6478A /* CircleProgressIndicator.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0CEE5BAF6400957AE310D872F6A94A9E /* CircleProgressIndicator.xcassets */; }; + C23BA3A1EC55A281FFBC007A250376FD /* CircleIconView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A4A1CAECACA6512996AFD33A17319647 /* CircleIconView.swift */; }; + C3B2474D40ECE988131966F3DB0D8DC5 /* PhotosInputPlaceholderCellProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = D05404C4DC849544FCB2A8E8D17E5370 /* PhotosInputPlaceholderCellProvider.swift */; }; + C7C6BB47CD88FDA7CE8DD6016DFA032E /* UIView+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D91BA3E25E0D4F8861D6FE5588101CA /* UIView+Additions.swift */; }; + C9C90B9677CB5BB26818973AD9359494 /* ChatInputBarPresenter.swift in Sources */ = {isa = PBXBuildFile; fileRef = BE418F46C97ECA16181058F1719FA0CD /* ChatInputBarPresenter.swift */; }; + C9F4F7B619A77BB4195D2C1BA060F18A /* SerialTaskQueue.swift in Sources */ = {isa = PBXBuildFile; fileRef = A52777B5E1811853F38BFD5390CDAFF2 /* SerialTaskQueue.swift */; }; + CA75B2493231B2BF77129702B697E890 /* LiveCameraCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 602AE15616AFAD7BAF8384143344B124 /* LiveCameraCell.swift */; }; + CB6543AA87EAC02C244C568866840493 /* BaseChatViewController+Changes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45078EDE8BF389F7AB241A7D5B8006A2 /* BaseChatViewController+Changes.swift */; }; + CDFF04FB788482594521B38A28A62427 /* Alignment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D84BBCB7358F97DAC5746C76D69B3B6 /* Alignment.swift */; }; + CE8B40C4F5F9A08E1982AF84864038DF /* ChattoAdditions-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = CE5379F10B93F04D1D3E0351707E0076 /* ChattoAdditions-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CF8A69A01FAA07A056A26EAF63D6A0B6 /* ScreenMetric.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6E7778DA56B23D7230D2488C2CE5C104 /* ScreenMetric.swift */; }; + D2829242A3C38B87934D76EC277E9E2B /* CompoundBubbleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68D2188DC4A1125DF8760A869863406A /* CompoundBubbleView.swift */; }; + D838565318379A2DD2AA4B5067912DE8 /* Comparable+Clamp.swift in Sources */ = {isa = PBXBuildFile; fileRef = E106372C918807DB83B1A36865AC7AE3 /* Comparable+Clamp.swift */; }; + D8E5FA17809E054725668683AB5350DD /* UIEdgeInsets+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 785B47EA7CF056B0C36DADB12B91130B /* UIEdgeInsets+Additions.swift */; }; + DBB808D4FE2CF878FF64852DA295A647 /* BaseChatViewController+Scrolling.swift in Sources */ = {isa = PBXBuildFile; fileRef = 95C73D19EA759C11E76B943EF1AE3CA1 /* BaseChatViewController+Scrolling.swift */; }; DCBC7D07930EF9DD3260194325E03327 /* Pods-ChattoApp-umbrella.h in Headers */ = {isa = PBXBuildFile; fileRef = 6F284074807EBD02656E1B9678B3FA42 /* Pods-ChattoApp-umbrella.h */; settings = {ATTRIBUTES = (Public, ); }; }; - E0A5F0905EA23DE909C3BAFCA723C437 /* BaseMessageCollectionViewCellDefaultStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8175123A596B4CA61393473DF633E21E /* BaseMessageCollectionViewCellDefaultStyle.swift */; }; - E63F2C4214A512B0252A6D2A81F02971 /* CGSize+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8A508A14BD50AC9102368C24A9A91A98 /* CGSize+Additions.swift */; }; - E6437278B4870361CFDF2754058910FF /* InputContainerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C63A0F3D49B9F11D31D3676112C0506B /* InputContainerView.swift */; }; - E64D77B364E6E2BA85F9BA8BFF167833 /* ChatItemDecorationAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29EE7B9618D27C2FD171BBD3943D4F53 /* ChatItemDecorationAttributes.swift */; }; - E69ACE01FADF56AC43F90EADAAD3152F /* TextMessageCollectionViewCellDefaultStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39273FFB8CC4F6EBDC44D2F4BB223D8F /* TextMessageCollectionViewCellDefaultStyle.swift */; }; - E7537A03977266059A763A4D7FD967E7 /* PhotoMessageCollectionViewCellDefaultStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = FBC54F61151A6036D2658DEFB3A54FFA /* PhotoMessageCollectionViewCellDefaultStyle.swift */; }; - E7A5B94651AB3CD403989F9E1BE94C0E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CD673AD6FDA8BE759BCD31DEF040F680 /* Foundation.framework */; }; - E9493F0B1984CC70BD08B41880DD5F87 /* PhotosInputCellProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 939F0BDF7574622A00AA9B75F8A90B12 /* PhotosInputCellProvider.swift */; }; - E9A7B0904A90334AD52850E88BF0F55A /* BaseChatViewController+Presenters.swift in Sources */ = {isa = PBXBuildFile; fileRef = 716328BD4E265D0F857D887BF90E60CE /* BaseChatViewController+Presenters.swift */; }; - EA5CEB4072F203BAE783EE7D9B5D88AE /* KeyboardTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 32DA18178317D81FFA8D56C8D130C622 /* KeyboardTracker.swift */; }; - EFBD4D384FDCE88F20ADAAA27932D661 /* CALayer+ImageMask.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2BA04D067F5FB905DB5C307895A045A /* CALayer+ImageMask.swift */; }; - F3D964E03C8EFFC3A75B5F643E5685BA /* ChatItemPresenterFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1EB3F71B2A515DA6B014B0075ECEC519 /* ChatItemPresenterFactory.swift */; }; - F5C157F56B1262C6E65F0C0D369EC54F /* BaseChatViewController+CellPanGestureHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1B86DB3161E5DE1454E1F3B63DEDE792 /* BaseChatViewController+CellPanGestureHandler.swift */; }; - F602367714356409237ED5B5AF77E1AD /* CircleProgressIndicatorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D18132AAEF3270596CB3D78CA550D455 /* CircleProgressIndicatorView.swift */; }; - F9252BF614C41E2AB648C472FF07862F /* UIImage+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = F598D1DC6E45266010339B726A3B8E3E /* UIImage+Additions.swift */; }; - FDAA0CED1770D7D065490A5898861BE9 /* ExpandableTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D2C41F8AE2F0B21E0B359324AFFB418 /* ExpandableTextView.swift */; }; - FF7482E9D1685533FF5A555A5E8FD64A /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CD673AD6FDA8BE759BCD31DEF040F680 /* Foundation.framework */; }; + E0A5F0905EA23DE909C3BAFCA723C437 /* BaseMessageCollectionViewCellDefaultStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5FB60BB8CC12D8752D94CE124A262F32 /* BaseMessageCollectionViewCellDefaultStyle.swift */; }; + E63F2C4214A512B0252A6D2A81F02971 /* CGSize+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4063B66980C5E5F40533725900B826A8 /* CGSize+Additions.swift */; }; + E6437278B4870361CFDF2754058910FF /* InputContainerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 671D87DB98208F377BD593AE01829FF7 /* InputContainerView.swift */; }; + E64D77B364E6E2BA85F9BA8BFF167833 /* ChatItemDecorationAttributes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1F7097D87BC708CD074FB975062CB6B1 /* ChatItemDecorationAttributes.swift */; }; + E69ACE01FADF56AC43F90EADAAD3152F /* TextMessageCollectionViewCellDefaultStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = B36373DE8261EE918628172B21EF708B /* TextMessageCollectionViewCellDefaultStyle.swift */; }; + E7537A03977266059A763A4D7FD967E7 /* PhotoMessageCollectionViewCellDefaultStyle.swift in Sources */ = {isa = PBXBuildFile; fileRef = FE412FEE8B830414F2C465317F5D1962 /* PhotoMessageCollectionViewCellDefaultStyle.swift */; }; + E9493F0B1984CC70BD08B41880DD5F87 /* PhotosInputCellProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2B784C9B2C603EA70EDA16E856ED2228 /* PhotosInputCellProvider.swift */; }; + E9A7B0904A90334AD52850E88BF0F55A /* BaseChatViewController+Presenters.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0D68CE4CBA65C3AA65780F1562B2F76F /* BaseChatViewController+Presenters.swift */; }; + EA5CEB4072F203BAE783EE7D9B5D88AE /* KeyboardTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3203A5520E7B8E870E14A10BCE6E520 /* KeyboardTracker.swift */; }; + EFBD4D384FDCE88F20ADAAA27932D661 /* CALayer+ImageMask.swift in Sources */ = {isa = PBXBuildFile; fileRef = F5C2A2D0AC6DBF69EA3CAE2AB6B35F8E /* CALayer+ImageMask.swift */; }; + EFFE7A4E0D4ECAAD4F03B07674DA9C93 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5A174E57201961225505A5D48D72BCCE /* Foundation.framework */; }; + F3D964E03C8EFFC3A75B5F643E5685BA /* ChatItemPresenterFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8E1086B4F07A55A961BAACF6EFA6E6E /* ChatItemPresenterFactory.swift */; }; + F5C157F56B1262C6E65F0C0D369EC54F /* BaseChatViewController+CellPanGestureHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 69DBF433EF024C2A66D963EAC6D28C31 /* BaseChatViewController+CellPanGestureHandler.swift */; }; + F602367714356409237ED5B5AF77E1AD /* CircleProgressIndicatorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29CB0CF8C7A4DC192BC3D5F57B634730 /* CircleProgressIndicatorView.swift */; }; + F9252BF614C41E2AB648C472FF07862F /* UIImage+Additions.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA3659601FBC13F3660AD59A9E184F30 /* UIImage+Additions.swift */; }; + FDAA0CED1770D7D065490A5898861BE9 /* ExpandableTextView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 280E34461490B160DF6CF816004A021B /* ExpandableTextView.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ - A2C41191AFC70DDC9F32D138B27DA480 /* PBXContainerItemProxy */ = { + 956F98E382854836C56BB88CC848D3E8 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 2508BC3B908322C9E85E61AE743C9842; - remoteInfo = Chatto; + remoteGlobalIDString = 9A88D54DB316ADF1E80363324718D63E; + remoteInfo = ChattoAdditions; }; - A4E661724D45C6401D542CFCA36A0F93 /* PBXContainerItemProxy */ = { + AF6BE84C85CD7C355265BB09A925183D /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; - remoteGlobalIDString = 9A88D54DB316ADF1E80363324718D63E; - remoteInfo = ChattoAdditions; + remoteGlobalIDString = 2508BC3B908322C9E85E61AE743C9842; + remoteInfo = Chatto; }; - A68E87179033DDCA6995A61F10EE58E1 /* PBXContainerItemProxy */ = { + B9234C75EA629A8138C77520CC544195 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = BFDFE7DC352907FC980B868725387E98 /* Project object */; proxyType = 1; @@ -157,150 +157,150 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ - 011816ED5E011074BFBB08DB9E7E52A5 /* BaseChatViewControllerView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseChatViewControllerView.swift; sourceTree = ""; }; - 04AC49AFCD860E5DCDBFDBC0140AE885 /* CGRect+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "CGRect+Additions.swift"; sourceTree = ""; }; - 06A7041007DC3A31B6D306FF23A0C3E9 /* CGFloat+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "CGFloat+Additions.swift"; sourceTree = ""; }; - 0823EA5BF2EACA8B39AD206AB18E4A51 /* PhotosInputCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputCell.swift; sourceTree = ""; }; - 0895A8F714292AB31032419C0A502719 /* ChatInputBar.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatInputBar.swift; sourceTree = ""; }; - 09FA84E8B9F753554B31D2A6FA91AFA4 /* UIEdgeInsets+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIEdgeInsets+Additions.swift"; sourceTree = ""; }; - 0CF516B9903CE4F1EA7ECE35DEBFD4EB /* PhotoMessageViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoMessageViewModel.swift; sourceTree = ""; }; - 0D2C41F8AE2F0B21E0B359324AFFB418 /* ExpandableTextView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ExpandableTextView.swift; sourceTree = ""; }; - 0F1605BE8B49C062759B56E21F3BE2C8 /* ChatInputBarAppearance.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatInputBarAppearance.swift; sourceTree = ""; }; - 0FA1A535C01FD338F65BD9984B536756 /* UIScreen+Scale.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIScreen+Scale.swift"; sourceTree = ""; }; - 13322131F1DBFDB63B36E6DB589FE8A4 /* MessageDecorationViewLayout.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MessageDecorationViewLayout.swift; sourceTree = ""; }; - 1490A3281CD5280EAFCC87D05FFDE515 /* Comparable+Clamp.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Comparable+Clamp.swift"; sourceTree = ""; }; - 14EBEEF92B23AC6E991F0BDB120E95B8 /* LiveCameraCellPresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LiveCameraCellPresenter.swift; sourceTree = ""; }; + 000DB00CCE3B5B1FE458DF6283312E2D /* ChatItemProtocolDefinitions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatItemProtocolDefinitions.swift; sourceTree = ""; }; + 015BDF54BA5B6802E337719B5C406477 /* ChattoAdditions.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = ChattoAdditions.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 01944C9CE194E95E2B19EEF7CCCD9D70 /* TextMessageCollectionViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextMessageCollectionViewCell.swift; sourceTree = ""; }; + 03E94CC6E656A5A9BC9773E82204084B /* ChatInputBar.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; path = ChatInputBar.xib; sourceTree = ""; }; + 03F06DCB5A3A8D90B37D7BE6900D8DA9 /* TextMessagePresenterBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextMessagePresenterBuilder.swift; sourceTree = ""; }; + 0A62285F574BE51D476B7476FF6DAF2A /* ChattoAdditions-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "ChattoAdditions-dummy.m"; sourceTree = ""; }; + 0BA547788774D075DE59D5FB1C564B7B /* PhotosInputWithPlaceholdersDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputWithPlaceholdersDataProvider.swift; sourceTree = ""; }; + 0C58754BB4B8C1F38FE5D93569A20E0F /* PhotosInputDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputDataProvider.swift; sourceTree = ""; }; + 0CEE5BAF6400957AE310D872F6A94A9E /* CircleProgressIndicator.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; path = CircleProgressIndicator.xcassets; sourceTree = ""; }; + 0D68CE4CBA65C3AA65780F1562B2F76F /* BaseChatViewController+Presenters.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "BaseChatViewController+Presenters.swift"; sourceTree = ""; }; + 0D91BA3E25E0D4F8861D6FE5588101CA /* UIView+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIView+Additions.swift"; sourceTree = ""; }; + 0DBB10C0F9AA6A12AB701B3314425220 /* PhotoBubbleView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoBubbleView.swift; sourceTree = ""; }; + 0FF9EB6943E32107474E987374F0C0E0 /* InputPositionControlling.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = InputPositionControlling.swift; sourceTree = ""; }; + 135E9C384CF86CD81E6C9FD05C672EB5 /* Cache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Cache.swift; sourceTree = ""; }; 17DABB4FAF93F3412343EA3829D21C6E /* Pods-ChattoApp-acknowledgements.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ChattoApp-acknowledgements.plist"; sourceTree = ""; }; - 1B86DB3161E5DE1454E1F3B63DEDE792 /* BaseChatViewController+CellPanGestureHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "BaseChatViewController+CellPanGestureHandler.swift"; sourceTree = ""; }; - 1BBC96A3D4AE6C387957B4C45BD0F840 /* MessageDecorationViewFactory.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MessageDecorationViewFactory.swift; sourceTree = ""; }; - 1EB3F71B2A515DA6B014B0075ECEC519 /* ChatItemPresenterFactory.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatItemPresenterFactory.swift; sourceTree = ""; }; - 1F80EC38EF3F3B62C75375F1BE3FA74A /* ViewDefinitions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ViewDefinitions.swift; sourceTree = ""; }; - 21A1CA29ABA8D533AE6942E22508F8A6 /* TextBubbleView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextBubbleView.swift; sourceTree = ""; }; - 21B0D2035FD656FBD1BE0FD4D0765885 /* TextMessagePresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextMessagePresenter.swift; sourceTree = ""; }; - 236C20E885169120F2B1302E3C152FA0 /* CGPoint+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "CGPoint+Additions.swift"; sourceTree = ""; }; - 25428E5ACCD837FEC4C3BB46554283A3 /* PhotoBubbleView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoBubbleView.swift; sourceTree = ""; }; - 25693FC416E58F954C564A75B06B8014 /* UIView+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIView+Additions.swift"; sourceTree = ""; }; - 2737FB1796FDA0835FBBCDCEB20EAA27 /* Utils.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Utils.swift; path = Chatto/Source/Utils.swift; sourceTree = ""; }; - 283269D75A0B98D05047908FBEF1F33A /* CompoundMessageCollectionViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CompoundMessageCollectionViewCell.swift; sourceTree = ""; }; - 29EE7B9618D27C2FD171BBD3943D4F53 /* ChatItemDecorationAttributes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatItemDecorationAttributes.swift; sourceTree = ""; }; - 2D447A3863D908E9E0E4D273A7688060 /* Text.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; path = Text.xcassets; sourceTree = ""; }; - 2D83DA4EFC41B0135B202C8221A824D2 /* UIColor+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIColor+Additions.swift"; sourceTree = ""; }; - 2F91943BF4071679AC2B022841A1E13F /* ChatItemProtocolDefinitions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatItemProtocolDefinitions.swift; sourceTree = ""; }; - 32DA18178317D81FFA8D56C8D130C622 /* KeyboardTracker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = KeyboardTracker.swift; sourceTree = ""; }; - 33DD84EB99D2B1FED3A2E98CD7D2D08B /* TextMessageViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextMessageViewModel.swift; sourceTree = ""; }; - 34D4F524AE0600A38CCA07CEB5F4C656 /* PhotosInputWithPlaceholdersDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputWithPlaceholdersDataProvider.swift; sourceTree = ""; }; - 379B75F2572444095DDDDB5210539790 /* Chatto.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Chatto.release.xcconfig; sourceTree = ""; }; - 389A30D825C9593862B24D4DEF5608F3 /* ChatInputBarPresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatInputBarPresenter.swift; sourceTree = ""; }; - 39273FFB8CC4F6EBDC44D2F4BB223D8F /* TextMessageCollectionViewCellDefaultStyle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextMessageCollectionViewCellDefaultStyle.swift; sourceTree = ""; }; - 3A806C01FA1BFCD488169AE664858363 /* TextMessagePresenterBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextMessagePresenterBuilder.swift; sourceTree = ""; }; - 3B4CA06B50C467916444EC76DF0FA9F7 /* CompoundBubbleView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CompoundBubbleView.swift; sourceTree = ""; }; + 189A0AFF74A9EB2681B09FB3F7AF9CED /* Chatto-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Chatto-dummy.m"; sourceTree = ""; }; + 19E1D44E2511F07E9E9989CA32D6651A /* ChattoAdditions-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ChattoAdditions-Info.plist"; sourceTree = ""; }; + 1F7097D87BC708CD074FB975062CB6B1 /* ChatItemDecorationAttributes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatItemDecorationAttributes.swift; sourceTree = ""; }; + 1F9769B94A43DC0EF18424B699CB0A6E /* ExpandableChatInputBarPresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ExpandableChatInputBarPresenter.swift; sourceTree = ""; }; + 23FB45107EFE33D6FCCF03E31EE209AF /* TextBubbleView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextBubbleView.swift; sourceTree = ""; }; + 24DA757636FEED80CA67B193AA399F46 /* Utils.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = Utils.swift; path = Chatto/Source/Utils.swift; sourceTree = ""; }; + 25C5574B5F56F195DECF9FF4BB926F0D /* ChatInputItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatInputItem.swift; sourceTree = ""; }; + 266847F0127E05CFB804E0A8AFB5F82A /* BaseMessageModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseMessageModel.swift; sourceTree = ""; }; + 276B8023BDC9B8CBC7A98ABF05635722 /* Observable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Observable.swift; sourceTree = ""; }; + 280E34461490B160DF6CF816004A021B /* ExpandableTextView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ExpandableTextView.swift; sourceTree = ""; }; + 2958F254851CFB57E5E37E1BC0425D49 /* ChatLayoutConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatLayoutConfiguration.swift; sourceTree = ""; }; + 29CB0CF8C7A4DC192BC3D5F57B634730 /* CircleProgressIndicatorView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CircleProgressIndicatorView.swift; sourceTree = ""; }; + 2B76B96EDF5F90809550A50E6AC77889 /* MessageDecorationViewFactory.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MessageDecorationViewFactory.swift; sourceTree = ""; }; + 2B784C9B2C603EA70EDA16E856ED2228 /* PhotosInputCellProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputCellProvider.swift; sourceTree = ""; }; + 2CBA9F161CD788A0618F416C10F9689F /* PhotoMessagePresenterBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoMessagePresenterBuilder.swift; sourceTree = ""; }; + 2EDD90826774E4709D599ACF40CA80AC /* Photos.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; path = Photos.xcassets; sourceTree = ""; }; + 3038806CEE1B2AE12529239CE696164A /* ReplyFeedbackGenerator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ReplyFeedbackGenerator.swift; sourceTree = ""; }; + 306B0BE8D85FDFC9B57095A82986E0BA /* HorizontalStackScrollView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = HorizontalStackScrollView.swift; sourceTree = ""; }; + 313BBF9C37931BBDB81CD287454B3C9D /* ImagePicker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ImagePicker.swift; sourceTree = ""; }; + 330F72FF644CA3C7F0F76585BAD86E72 /* PhotoMessagePresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoMessagePresenter.swift; sourceTree = ""; }; + 3741CE61342F444E0BC6CC2BF241F096 /* CGPoint+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "CGPoint+Additions.swift"; sourceTree = ""; }; + 3B58E0D6F7F31DD3391BF9330CDD0B9C /* CGRect+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "CGRect+Additions.swift"; sourceTree = ""; }; 3C4011DB2C80F78B8321E9E704E40DD2 /* Pods-ChattoApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ChattoApp.release.xcconfig"; sourceTree = ""; }; - 3F6AA5831849C3C2E9145F702B037D51 /* Chatto-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Chatto-Info.plist"; sourceTree = ""; }; - 441161BF7E2BA980954402DC3B085F17 /* Chatto-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Chatto-prefix.pch"; sourceTree = ""; }; - 450E6D7CC218DA1B218A9FF3A086290C /* LiveCameraCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LiveCameraCell.swift; sourceTree = ""; }; - 482BED2103C47E53D2B9810F7E587269 /* ReusableXibView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ReusableXibView.swift; sourceTree = ""; }; - 48B643807206FF779D3F1AE54CD142D8 /* ScreenMetric.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ScreenMetric.swift; sourceTree = ""; }; - 4964FAE6F4A3D52051B3DFD52033900D /* ExpandableChatInputBarPresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ExpandableChatInputBarPresenter.swift; sourceTree = ""; }; - 4A0BCBF7465CEF9DDEFBB5F48F947042 /* CellPanGestureHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CellPanGestureHandler.swift; sourceTree = ""; }; - 4BAA1DE44C80040FB0CD646BEEB58CB5 /* PhotoMessagePresenterBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoMessagePresenterBuilder.swift; sourceTree = ""; }; - 4F7D733A0DEADA2A8CAB6406CB57330B /* MessageContentPresenterProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MessageContentPresenterProtocol.swift; sourceTree = ""; }; - 501226DD9C2D0501786393AD13D2CAEA /* ChatInputItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatInputItem.swift; sourceTree = ""; }; + 3CB486615AA4B2828759A55AA821398C /* Chatto.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Chatto.modulemap; sourceTree = ""; }; + 3D693CE3CEEAE8536B1F46A6FC63FB1C /* UIColor+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIColor+Additions.swift"; sourceTree = ""; }; + 3F5EAA61D235FD6852D95A24909FDBD0 /* PhotoMessageViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoMessageViewModel.swift; sourceTree = ""; }; + 4063B66980C5E5F40533725900B826A8 /* CGSize+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "CGSize+Additions.swift"; sourceTree = ""; }; + 410D22969BBD0D1723D110BBD3D2FF5C /* PasteActionInterceptor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PasteActionInterceptor.swift; sourceTree = ""; }; + 427344757D3F3ADE0DB7173EE7473012 /* Chatto-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Chatto-Info.plist"; sourceTree = ""; }; + 429C8A7CCCA531B341935E9351BAD37C /* BaseMessageViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseMessageViewModel.swift; sourceTree = ""; }; + 45078EDE8BF389F7AB241A7D5B8006A2 /* BaseChatViewController+Changes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "BaseChatViewController+Changes.swift"; sourceTree = ""; }; + 456555122CA49C70D566527B6A9DCC03 /* TextMessageModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextMessageModel.swift; sourceTree = ""; }; + 45A0D02467EE2D5E9F2165F073DEFD8D /* CGFloat+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "CGFloat+Additions.swift"; sourceTree = ""; }; 50C77FEBEB19D818C26806FF54F89504 /* Pods-ChattoApp-acknowledgements.markdown */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = "Pods-ChattoApp-acknowledgements.markdown"; sourceTree = ""; }; - 56880FCEF4E8A4001BC6DEEE39516923 /* InputPositionControlling.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = InputPositionControlling.swift; sourceTree = ""; }; - 5BB248F27627AD32F456EB1B49BB2148 /* ChatItemCompanionCollection.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChatItemCompanionCollection.swift; path = Chatto/Source/ChatItemCompanionCollection.swift; sourceTree = ""; }; - 5DFFA374361CADA7687D2F6AAF3E6128 /* PhotosInputView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputView.swift; sourceTree = ""; }; - 5EEB0FCC5619208B0C1ABCA0B9B5B242 /* CircleIconView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CircleIconView.swift; sourceTree = ""; }; - 601AEAA1DD874E1CC895F1F0706B3AED /* SerialTaskQueue.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SerialTaskQueue.swift; path = Chatto/Source/SerialTaskQueue.swift; sourceTree = ""; }; - 61329A1C6AC7B2B3D80ECAA47B1B07F1 /* Chatto.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = Chatto.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 6396A7565AD4C9AC2BC5E30B4F4A3F43 /* Observable.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Observable.swift; sourceTree = ""; }; - 64F9F8727BF298D7036A993DE64098B1 /* CompoundMessagePresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CompoundMessagePresenter.swift; sourceTree = ""; }; - 65F825FEE553CA33058218D87DBA9B1F /* Cache.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Cache.swift; sourceTree = ""; }; - 66BCAA1ED19612A2FDF2EFD0C1FE7ACC /* ChattoAdditions.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = ChattoAdditions.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 5214BF7820CCE0E095861434EF65E17F /* BaseMessageCollectionViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseMessageCollectionViewCell.swift; sourceTree = ""; }; + 555A6E1E7EAF93B8198BF3F02A4FBAD0 /* ChattoAdditions-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ChattoAdditions-prefix.pch"; sourceTree = ""; }; + 5811E455445D1B2EA8D32936D237068F /* BaseMessageAssets.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; path = BaseMessageAssets.xcassets; sourceTree = ""; }; + 59131A6B1DE96BEDDDA73AA842F8776B /* CompoundBubbleViewStyle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CompoundBubbleViewStyle.swift; sourceTree = ""; }; + 5A174E57201961225505A5D48D72BCCE /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; + 5C506D8C44EF1D426885E23D9FE079A8 /* PhotosInputPlaceholderCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputPlaceholderCell.swift; sourceTree = ""; }; + 5D85B92394DAF2554C0398F24B677DA2 /* TextMessageMenuItemPresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextMessageMenuItemPresenter.swift; sourceTree = ""; }; + 5DF4CF270A85C5DBF451D3B7ABAE9CB5 /* ChatItemCompanionCollection.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ChatItemCompanionCollection.swift; path = Chatto/Source/ChatItemCompanionCollection.swift; sourceTree = ""; }; + 5EE4782BCAF154F919CBA5C8F6513691 /* Chatto.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Chatto.debug.xcconfig; sourceTree = ""; }; + 5FB60BB8CC12D8752D94CE124A262F32 /* BaseMessageCollectionViewCellDefaultStyle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseMessageCollectionViewCellDefaultStyle.swift; sourceTree = ""; }; + 602AE15616AFAD7BAF8384143344B124 /* LiveCameraCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LiveCameraCell.swift; sourceTree = ""; }; + 62A1DA4E1799B76DD0D9EB38CECDD6DF /* BaseMessagePresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseMessagePresenter.swift; sourceTree = ""; }; + 631EDFB3F72FA2F868D665889CF1CBF0 /* ChatInputBarAppearance.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatInputBarAppearance.swift; sourceTree = ""; }; + 671D87DB98208F377BD593AE01829FF7 /* InputContainerView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = InputContainerView.swift; sourceTree = ""; }; + 68D2188DC4A1125DF8760A869863406A /* CompoundBubbleView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CompoundBubbleView.swift; sourceTree = ""; }; + 6957CA570510230D638D3DDD94B313D1 /* ViewDefinitions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ViewDefinitions.swift; sourceTree = ""; }; + 69DBF433EF024C2A66D963EAC6D28C31 /* BaseChatViewController+CellPanGestureHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "BaseChatViewController+CellPanGestureHandler.swift"; sourceTree = ""; }; + 6A40280D33B3C05BCB076B0DE332D543 /* LiveCameraCaptureSession.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LiveCameraCaptureSession.swift; sourceTree = ""; }; + 6A487F8D3B94E28CE2FD97BE739BF5E5 /* CompoundMessagePresenterBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CompoundMessagePresenterBuilder.swift; sourceTree = ""; }; + 6E7778DA56B23D7230D2488C2CE5C104 /* ScreenMetric.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ScreenMetric.swift; sourceTree = ""; }; + 6E9A752EBD2D386C08801E9A10E40F31 /* ChattoAdditions.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ChattoAdditions.release.xcconfig; sourceTree = ""; }; 6F284074807EBD02656E1B9678B3FA42 /* Pods-ChattoApp-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Pods-ChattoApp-umbrella.h"; sourceTree = ""; }; - 716328BD4E265D0F857D887BF90E60CE /* BaseChatViewController+Presenters.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "BaseChatViewController+Presenters.swift"; sourceTree = ""; }; - 7223F8C033BFFEE0FDB15697CF2BB6C8 /* TabInputButton.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TabInputButton.swift; sourceTree = ""; }; - 779BC9D8CCD2E20F50D9C3A896385B69 /* DummyChatItemPresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DummyChatItemPresenter.swift; sourceTree = ""; }; - 7D0110B6E288B7DDC5F5D908A64A4BC0 /* ChattoAdditions.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = ChattoAdditions.modulemap; sourceTree = ""; }; - 80018A9EC57E23575E7580D9034A3D60 /* ChattoAdditions-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ChattoAdditions-umbrella.h"; sourceTree = ""; }; - 806AC8F1CD6A8C7EADE94C791EE39F9D /* BaseMessageViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseMessageViewModel.swift; sourceTree = ""; }; - 8175123A596B4CA61393473DF633E21E /* BaseMessageCollectionViewCellDefaultStyle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseMessageCollectionViewCellDefaultStyle.swift; sourceTree = ""; }; - 8407F3DCCFB69F669A808405C9D329CA /* PhotosInputViewItemSizeCalculator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputViewItemSizeCalculator.swift; sourceTree = ""; }; - 85832A5C6F4E62651AFDDAD8D95D8083 /* Chatto-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Chatto-dummy.m"; sourceTree = ""; }; - 89AD4E3AE9A6A4616B3E47334A660B61 /* BaseMessageCollectionViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseMessageCollectionViewCell.swift; sourceTree = ""; }; - 89CBBC63C653C97472D7E2ABEC510BC1 /* CircleProgressIndicator.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; path = CircleProgressIndicator.xcassets; sourceTree = ""; }; - 8A05D1B506E39896D053A99661B1B3BB /* ChatDataSourceProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatDataSourceProtocol.swift; sourceTree = ""; }; - 8A508A14BD50AC9102368C24A9A91A98 /* CGSize+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "CGSize+Additions.swift"; sourceTree = ""; }; - 8A752E0DE33643E6879E911B1998F7AB /* TextChatInputItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextChatInputItem.swift; sourceTree = ""; }; - 8E22DE258A822554858D3207243AC833 /* ChatInputBar.xib */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = file.xib; path = ChatInputBar.xib; sourceTree = ""; }; - 8F4810AC5C9D8A11DD7DF2C1AA9BB2FD /* PhotosInputPlaceholderDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputPlaceholderDataProvider.swift; sourceTree = ""; }; - 913F2880190E5ECDEEEE4BF992BAA21B /* CompoundBubbleViewStyle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CompoundBubbleViewStyle.swift; sourceTree = ""; }; - 91F8BC669B2F2636DFE299052A0207B4 /* BaseChatViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseChatViewController.swift; sourceTree = ""; }; - 92050F47BAD040163DE1BCF8E6A1735D /* Photos.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; path = Photos.xcassets; sourceTree = ""; }; - 939F0BDF7574622A00AA9B75F8A90B12 /* PhotosInputCellProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputCellProvider.swift; sourceTree = ""; }; - 97A1922A09ADA4895D43F912C9BD2EB4 /* BaseMessageAssets.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; path = BaseMessageAssets.xcassets; sourceTree = ""; }; - 9AF22E9F96884321F0BCEA0D10A0A852 /* MessageManualLayoutProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MessageManualLayoutProvider.swift; sourceTree = ""; }; + 76D4380AC2D3C66D0D5AFD3FE64642CE /* ChatInputBar.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatInputBar.swift; sourceTree = ""; }; + 785B47EA7CF056B0C36DADB12B91130B /* UIEdgeInsets+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIEdgeInsets+Additions.swift"; sourceTree = ""; }; + 78CF8BA31EE97EDC67FDA36B06E222BE /* Chatto-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Chatto-umbrella.h"; sourceTree = ""; }; + 79382D6CADCEE7EA20655E3CA6646C17 /* TextMessagePresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextMessagePresenter.swift; sourceTree = ""; }; + 79F313B4E57DEA9FD7DF5E0B720AA164 /* CellPanGestureHandler.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CellPanGestureHandler.swift; sourceTree = ""; }; + 7B0CB18BDC364E8389788CD8DCC6F9F8 /* Chatto.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Chatto.release.xcconfig; sourceTree = ""; }; + 7B3F79F4144CA65B6F2E9B300D8D0F2F /* PhotoMessageCollectionViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoMessageCollectionViewCell.swift; sourceTree = ""; }; + 80A6ACDBD57FB1C8BC58E1A129C1E2FA /* BaseChatItemPresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseChatItemPresenter.swift; sourceTree = ""; }; + 827F3D4623155BB7E6C7D54752A913DE /* UIScreen+Scale.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIScreen+Scale.swift"; sourceTree = ""; }; + 84EDC53299B3AAA224EC576F90F2F278 /* Chatto.podspec */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; path = Chatto.podspec; sourceTree = ""; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 8520A50D7628A48D0B256304A9AD5FF4 /* CompoundMessageCollectionViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CompoundMessageCollectionViewCell.swift; sourceTree = ""; }; + 8557AE293D1137879C8DD1C60E41FDDE /* Chatto-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Chatto-prefix.pch"; sourceTree = ""; }; + 88023C11D8D7CA22492708054243E3AF /* MessageDecorationViewLayout.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MessageDecorationViewLayout.swift; sourceTree = ""; }; + 88A1444628CDBADCF1A76C09E783CDC4 /* AnimationUtils.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AnimationUtils.swift; sourceTree = ""; }; + 8B47FD02DF9C670229FFD264FAD85297 /* TextChatInputItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextChatInputItem.swift; sourceTree = ""; }; + 8FB103C2E8D604D8C61366C0379E12CC /* PhotoMessageAssets.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; path = PhotoMessageAssets.xcassets; sourceTree = ""; }; + 90C132DF4001430CE6FFEF2EC3B3773C /* LiveCameraCellPresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LiveCameraCellPresenter.swift; sourceTree = ""; }; + 93AAD6808143DBB19A2E71530EDF19B3 /* ReusableXibView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ReusableXibView.swift; sourceTree = ""; }; + 95C73D19EA759C11E76B943EF1AE3CA1 /* BaseChatViewController+Scrolling.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "BaseChatViewController+Scrolling.swift"; sourceTree = ""; }; + 9644E4E52B028EAD58CB01A7E9B91E34 /* CompoundMessagePresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CompoundMessagePresenter.swift; sourceTree = ""; }; + 9833E80BF0DC80AF0C57E85B83CDB1EA /* TextMessageViewModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextMessageViewModel.swift; sourceTree = ""; }; + 990382A8CFB48462A0CEC61DF2ED3A4B /* ChatItemCompanion.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatItemCompanion.swift; sourceTree = ""; }; + 9D84BBCB7358F97DAC5746C76D69B3B6 /* Alignment.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Alignment.swift; sourceTree = ""; }; 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */ = {isa = PBXFileReference; explicitFileType = text.script.ruby; includeInIndex = 1; indentWidth = 2; lastKnownFileType = text; name = Podfile; path = ../Podfile; sourceTree = SOURCE_ROOT; tabWidth = 2; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 9FAE7ED5DCE606F482905FD3A27D81B4 /* CompoundBubbleLayout.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CompoundBubbleLayout.swift; sourceTree = ""; }; + A3203A5520E7B8E870E14A10BCE6E520 /* KeyboardTracker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = KeyboardTracker.swift; sourceTree = ""; }; A3268B957AD18F7B3950012DFE6FFC88 /* Pods_ChattoApp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Pods_ChattoApp.framework; path = "Pods-ChattoApp.framework"; sourceTree = BUILT_PRODUCTS_DIR; }; - AABD4F579A866A84B779427F513C116E /* TextMessageCollectionViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextMessageCollectionViewCell.swift; sourceTree = ""; }; - AD1B0FF275C25A3C07B6EB4ED433BBE1 /* PhotoMessagePresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoMessagePresenter.swift; sourceTree = ""; }; - ADACB467BFFDEA729BFB8ADF01D0CB01 /* ChattoAdditions.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ChattoAdditions.debug.xcconfig; sourceTree = ""; }; - ADE49B40025576C54A5800919EC51582 /* TextMessageModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextMessageModel.swift; sourceTree = ""; }; - AF92289C8A545481701B6B4765CD8AE0 /* MessageContentFactoryProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MessageContentFactoryProtocol.swift; sourceTree = ""; }; + A4761E06891B57B3585B97E47A9E1973 /* ChatDataSourceProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatDataSourceProtocol.swift; sourceTree = ""; }; + A4A1CAECACA6512996AFD33A17319647 /* CircleIconView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CircleIconView.swift; sourceTree = ""; }; + A52777B5E1811853F38BFD5390CDAFF2 /* SerialTaskQueue.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = SerialTaskQueue.swift; path = Chatto/Source/SerialTaskQueue.swift; sourceTree = ""; }; + A8E1086B4F07A55A961BAACF6EFA6E6E /* ChatItemPresenterFactory.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatItemPresenterFactory.swift; sourceTree = ""; }; + AA700684063EB8598D50267E0E2AC9C4 /* PhotosInputViewItemSizeCalculator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputViewItemSizeCalculator.swift; sourceTree = ""; }; + AEDFC0ABB73C185D8E65D451030468F2 /* DummyChatItemPresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DummyChatItemPresenter.swift; sourceTree = ""; }; + B1CB456113C0F19E2AF2E2F43E4D19EF /* ChatCollectionViewLayout.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatCollectionViewLayout.swift; sourceTree = ""; }; B24B9472C67862C09B6F86427666B494 /* Pods-ChattoApp-frameworks.sh */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.script.sh; path = "Pods-ChattoApp-frameworks.sh"; sourceTree = ""; }; - B2BE442AA2438AE0CA41A759149014C4 /* PasteActionInterceptor.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PasteActionInterceptor.swift; sourceTree = ""; }; - B62BD16D68353978A24663F0D6FDCCA7 /* HashableRepresentible.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = HashableRepresentible.swift; sourceTree = ""; }; - B815F4D20E1659CAA5481A9CF527F4E0 /* DeviceImagePicker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DeviceImagePicker.swift; sourceTree = ""; }; - B87C51B550537D0D0E4B1AB8515D6C73 /* AnimationUtils.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = AnimationUtils.swift; sourceTree = ""; }; - BB75128305707A226A53276390BB8FAA /* PhotosInputPermissionsRequester.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputPermissionsRequester.swift; sourceTree = ""; }; - BC2BB1EBBCA2D1B36DA567DAD034C731 /* ChatInputItemView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatInputItemView.swift; sourceTree = ""; }; - BD6FDED50AC98EBD9963A9821F10B115 /* CompoundMessagePresenterBuilder.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CompoundMessagePresenterBuilder.swift; sourceTree = ""; }; + B36373DE8261EE918628172B21EF708B /* TextMessageCollectionViewCellDefaultStyle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextMessageCollectionViewCellDefaultStyle.swift; sourceTree = ""; }; + B7D76A763D77FD4657CC4AF470245D7D /* PhotosInputPlaceholderDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputPlaceholderDataProvider.swift; sourceTree = ""; }; + B9459CCE2BECA66E9E03DDEBCA376D5F /* MessageContentFactoryProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MessageContentFactoryProtocol.swift; sourceTree = ""; }; BE3893C08724F3D82CF1D199CF98F274 /* Chatto.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = Chatto.framework; path = Chatto.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - C0F68CE9E175448BDAA8DAE759A7FF2A /* PhotosInputDataProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputDataProvider.swift; sourceTree = ""; }; - C15E52FE2E7D7781E212D50D1B4A765A /* ChatItemCompanion.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatItemCompanion.swift; sourceTree = ""; }; - C22FF1BD81A4EF3AAC7A88FC4013F7B7 /* ChattoAdditions-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "ChattoAdditions-Info.plist"; sourceTree = ""; }; + BE418F46C97ECA16181058F1719FA0CD /* ChatInputBarPresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatInputBarPresenter.swift; sourceTree = ""; }; + BEDE26F86F99C71004C526D48396279C /* PhotosChatInputItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosChatInputItem.swift; sourceTree = ""; }; C31EDB90BA1E733F2706E722923E129A /* Pods-ChattoApp.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = "Pods-ChattoApp.modulemap"; sourceTree = ""; }; C3B22A268DB72CE1BC85F17F9ECA20C2 /* ChattoAdditions.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; name = ChattoAdditions.framework; path = ChattoAdditions.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - C5814301B7B948CED7F98CA913AD2B1A /* Alignment.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = Alignment.swift; sourceTree = ""; }; - C63A0F3D49B9F11D31D3676112C0506B /* InputContainerView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = InputContainerView.swift; sourceTree = ""; }; - C9869199FF0C45C00B9E6E429A329B1E /* CircleProgressView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CircleProgressView.swift; sourceTree = ""; }; + C60DF9CC492F87ED5D501168684E7626 /* HashableRepresentible.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = HashableRepresentible.swift; sourceTree = ""; }; + C6B67A8A3669E0AE851283F01AF3F11C /* ChattoAdditions.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = ChattoAdditions.modulemap; sourceTree = ""; }; C9D8F53B3D35A3001CB4D8DF8DEE7781 /* Pods-ChattoApp-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "Pods-ChattoApp-dummy.m"; sourceTree = ""; }; + CAF7C49D47E84E5FB78DB5B613B15DCF /* Text.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; path = Text.xcassets; sourceTree = ""; }; + CB04B2956068977B51C704D56859B30A /* PhotosInputView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputView.swift; sourceTree = ""; }; CCCE6A8E9F86772CD3FC9DDFC357633B /* Chatto.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Chatto.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - CD673AD6FDA8BE759BCD31DEF040F680 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.2.sdk/System/Library/Frameworks/Foundation.framework; sourceTree = DEVELOPER_DIR; }; - D18132AAEF3270596CB3D78CA550D455 /* CircleProgressIndicatorView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CircleProgressIndicatorView.swift; sourceTree = ""; }; - D2BA04D067F5FB905DB5C307895A045A /* CALayer+ImageMask.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "CALayer+ImageMask.swift"; sourceTree = ""; }; - D2C4D06686F5E064C1AE42E90F8732F6 /* ChattoAdditions.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ChattoAdditions.release.xcconfig; sourceTree = ""; }; - D40710D191836A81D87A5505DDBF2C36 /* BaseMessageModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseMessageModel.swift; sourceTree = ""; }; - D43345688FD3BBE9E2163B953A575197 /* CollectionChanges.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CollectionChanges.swift; sourceTree = ""; }; - D4F668A526C96DE7B3DA684A74533E8D /* ChattoAdditions-prefix.pch */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ChattoAdditions-prefix.pch"; sourceTree = ""; }; - D9BCA972B80D11A89C07AD256516A566 /* LiveCameraCaptureSession.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = LiveCameraCaptureSession.swift; sourceTree = ""; }; - DC6463741D8D222EA495C7F13C82BDDA /* ChatCollectionViewLayout.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatCollectionViewLayout.swift; sourceTree = ""; }; - DD355C8CA51C0706F629F4E885E44F0F /* Chatto.modulemap */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.module; path = Chatto.modulemap; sourceTree = ""; }; - DD8808CCD6243E9AEDAFA2EFF5B2AD23 /* BaseMessagePresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseMessagePresenter.swift; sourceTree = ""; }; - DDBBC539E90109AB64C29FFC777AE9BD /* PhotoMessageCollectionViewCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoMessageCollectionViewCell.swift; sourceTree = ""; }; - DE4F103BE3BC2C7B182F8B7D029E7825 /* PhotosInputPlaceholderCellProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputPlaceholderCellProvider.swift; sourceTree = ""; }; - DEADFB0F0D46FBA486EAE9A0D5AFA8E7 /* CompoundBubbleLayout.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CompoundBubbleLayout.swift; sourceTree = ""; }; + CE5379F10B93F04D1D3E0351707E0076 /* ChattoAdditions-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "ChattoAdditions-umbrella.h"; sourceTree = ""; }; + CF50C9178A05BD4828F9145D555D9C38 /* CircleProgressView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CircleProgressView.swift; sourceTree = ""; }; + D05404C4DC849544FCB2A8E8D17E5370 /* PhotosInputPlaceholderCellProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputPlaceholderCellProvider.swift; sourceTree = ""; }; + D2BADB931FACDD59329A885FF8FF9FFF /* InterfaceOrientation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = InterfaceOrientation.swift; sourceTree = ""; }; + DA2DE88E6383BA93E1641D494BA5A52F /* CollectionChanges.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = CollectionChanges.swift; sourceTree = ""; }; + DC42707977DE9EF477B5B1E7DEF7630F /* DefaultMessageContentPresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DefaultMessageContentPresenter.swift; sourceTree = ""; }; + DF3BACDA58B6A5DDCFCEB99B4D881BE8 /* PhotosInputCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputCell.swift; sourceTree = ""; }; + E106372C918807DB83B1A36865AC7AE3 /* Comparable+Clamp.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "Comparable+Clamp.swift"; sourceTree = ""; }; + E2087BD132D83AECA6B98E160DDD587A /* BaseChatViewControllerView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseChatViewControllerView.swift; sourceTree = ""; }; + E2211DE914E44D2FE548F64B0E245EFD /* BaseChatViewController.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseChatViewController.swift; sourceTree = ""; }; E231744704984B2CE53B4D6B20451D07 /* Pods-ChattoApp-Info.plist */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.plist.xml; path = "Pods-ChattoApp-Info.plist"; sourceTree = ""; }; - E5313B20C8EA26B49A3A260677748246 /* ReplyFeedbackGenerator.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ReplyFeedbackGenerator.swift; sourceTree = ""; }; - E6CE1B3DC70E182285B03BA408034F98 /* PhotoMessageModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoMessageModel.swift; sourceTree = ""; }; - E8ABDCC71A86D9447EEB9E234C04DB87 /* InterfaceOrientation.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = InterfaceOrientation.swift; sourceTree = ""; }; - E8BC6AC9FC58CB35BFCC08837BE6865E /* PhotosInputCameraPicker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputCameraPicker.swift; sourceTree = ""; }; - E994A42C4BBCE943DEDA4ADCABFBF488 /* PhotoMessageAssets.xcassets */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = folder.assetcatalog; path = PhotoMessageAssets.xcassets; sourceTree = ""; }; - EAEA366E7B2333E217B086495D552C75 /* PhotosInputPlaceholderCell.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputPlaceholderCell.swift; sourceTree = ""; }; - EB9600C142ED198331B7F945D91076A8 /* ImagePicker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ImagePicker.swift; sourceTree = ""; }; - ED87067CA4F4C6D1B43A4F79756F0F82 /* BaseChatItemPresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BaseChatItemPresenter.swift; sourceTree = ""; }; - F0BBBD1FFF5A696C90066B277D6D4A10 /* ChatLayoutConfiguration.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatLayoutConfiguration.swift; sourceTree = ""; }; - F0BE53BF5253D56DE7B1F8CC27E99DC1 /* TextMessageMenuItemPresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TextMessageMenuItemPresenter.swift; sourceTree = ""; }; - F19EA325FF08EEEF8E04FBF1D4D84A74 /* Chatto-umbrella.h */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.h; path = "Chatto-umbrella.h"; sourceTree = ""; }; + E36873CF331DB525EA5846AB853DD898 /* PhotosInputCameraPicker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputCameraPicker.swift; sourceTree = ""; }; + EA3659601FBC13F3660AD59A9E184F30 /* UIImage+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIImage+Additions.swift"; sourceTree = ""; }; + ED1749E9DEEA6F20E7158F868E4E9D06 /* TabInputButton.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = TabInputButton.swift; sourceTree = ""; }; + EE59BB17E6124822F2951FC320B5F19B /* PhotoMessageModel.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoMessageModel.swift; sourceTree = ""; }; + EFC39FA48DEF8E91EB287035247749B0 /* MessageManualLayoutProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MessageManualLayoutProvider.swift; sourceTree = ""; }; + F0530A293180571318EA0F10D531990B /* DeviceImagePicker.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DeviceImagePicker.swift; sourceTree = ""; }; F26241E90E38090426B8539A653278AC /* Pods-ChattoApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = "Pods-ChattoApp.debug.xcconfig"; sourceTree = ""; }; - F384B681FD98D4877A38278071015A92 /* HorizontalStackScrollView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = HorizontalStackScrollView.swift; sourceTree = ""; }; - F598D1DC6E45266010339B726A3B8E3E /* UIImage+Additions.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "UIImage+Additions.swift"; sourceTree = ""; }; - F6A9D5406982D7B2766871EBB80D7DAD /* BaseChatViewController+Changes.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "BaseChatViewController+Changes.swift"; sourceTree = ""; }; - F73C3CF1E6276222AB57EF3E5B471115 /* Chatto.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = Chatto.debug.xcconfig; sourceTree = ""; }; - F7A2277E1CD524B02A1863528336B6DA /* PhotosChatInputItem.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosChatInputItem.swift; sourceTree = ""; }; - F93718D9C807F23012F25F889C6D05D8 /* ChattoAdditions-dummy.m */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.c.objc; path = "ChattoAdditions-dummy.m"; sourceTree = ""; }; - FA3FFAA6DE2BCFF6993980C497BFD5F0 /* BaseChatViewController+Scrolling.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "BaseChatViewController+Scrolling.swift"; sourceTree = ""; }; - FBC54F61151A6036D2658DEFB3A54FFA /* PhotoMessageCollectionViewCellDefaultStyle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoMessageCollectionViewCellDefaultStyle.swift; sourceTree = ""; }; - FCB5C95E8B0BEAB6A9A66F67E6556B18 /* DefaultMessageContentPresenter.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = DefaultMessageContentPresenter.swift; sourceTree = ""; }; + F3E4F24A10E41586A000492B1FE70E64 /* ChatInputItemView.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = ChatInputItemView.swift; sourceTree = ""; }; + F5AD58C89E8D7A5E58BC534FAEA4E958 /* PhotosInputPermissionsRequester.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotosInputPermissionsRequester.swift; sourceTree = ""; }; + F5C2A2D0AC6DBF69EA3CAE2AB6B35F8E /* CALayer+ImageMask.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = "CALayer+ImageMask.swift"; sourceTree = ""; }; + FBC1B449E66FEF49632A311E974D986F /* MessageContentPresenterProtocol.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MessageContentPresenterProtocol.swift; sourceTree = ""; }; + FE412FEE8B830414F2C465317F5D1962 /* PhotoMessageCollectionViewCellDefaultStyle.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = PhotoMessageCollectionViewCellDefaultStyle.swift; sourceTree = ""; }; + FEEF0AF47D2928BE7DE1482FF4CDD47C /* ChattoAdditions.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; path = ChattoAdditions.debug.xcconfig; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -309,7 +309,7 @@ buildActionMask = 2147483647; files = ( A3799C749593280587A2AD008CA75134 /* Chatto.framework in Frameworks */, - CD4C01F9474A1F558BEA49DE66FF59AE /* Foundation.framework in Frameworks */, + 5D38B022D72A1FC3E1A3951AE22EA9FD /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -317,7 +317,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - FF7482E9D1685533FF5A555A5E8FD64A /* Foundation.framework in Frameworks */, + EFFE7A4E0D4ECAAD4F03B07674DA9C93 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -325,169 +325,140 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - E7A5B94651AB3CD403989F9E1BE94C0E /* Foundation.framework in Frameworks */, + 74D950EEE53FA9AA13367C1A1187631D /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 083B5BF8E37707051385B5C4878E4D3A /* PhotoMessages */ = { - isa = PBXGroup; - children = ( - C1CF1A73DCC4A42C1C1014FB02B1F0CB /* Views */, - ); - name = PhotoMessages; - path = PhotoMessages; - sourceTree = ""; - }; - 1181FBBDE7F4980FE006C277823A81E0 /* Development Pods */ = { + 04CA85F8896683489EA165C5281C2B32 /* ChatController */ = { isa = PBXGroup; children = ( - DE5B5258E3F6ADBB312E6F8A26EB2B82 /* Chatto */, - 943253A3889D2CF797A54A39E9B918C7 /* ChattoAdditions */, + E2211DE914E44D2FE548F64B0E245EFD /* BaseChatViewController.swift */, + 69DBF433EF024C2A66D963EAC6D28C31 /* BaseChatViewController+CellPanGestureHandler.swift */, + 45078EDE8BF389F7AB241A7D5B8006A2 /* BaseChatViewController+Changes.swift */, + 0D68CE4CBA65C3AA65780F1562B2F76F /* BaseChatViewController+Presenters.swift */, + 95C73D19EA759C11E76B943EF1AE3CA1 /* BaseChatViewController+Scrolling.swift */, + 2958F254851CFB57E5E37E1BC0425D49 /* ChatLayoutConfiguration.swift */, + 0FF9EB6943E32107474E987374F0C0E0 /* InputPositionControlling.swift */, + 8107112C4E36F39C1DE6830942BF80A9 /* Collaborators */, ); - name = "Development Pods"; - sourceTree = ""; - }; - 12044A5F5DB431B287403A3BFA8146CC /* iOS */ = { - isa = PBXGroup; - children = ( - CD673AD6FDA8BE759BCD31DEF040F680 /* Foundation.framework */, - ); - name = iOS; + name = ChatController; + path = Chatto/Source/ChatController; sourceTree = ""; }; - 17DC8830FBC5CE7F0430103DAB9D8D9A /* Views */ = { + 06D17AB5CE0980514475D99ED14CABD3 /* Support Files */ = { isa = PBXGroup; children = ( - DEADFB0F0D46FBA486EAE9A0D5AFA8E7 /* CompoundBubbleLayout.swift */, - 3B4CA06B50C467916444EC76DF0FA9F7 /* CompoundBubbleView.swift */, - 913F2880190E5ECDEEEE4BF992BAA21B /* CompoundBubbleViewStyle.swift */, - 283269D75A0B98D05047908FBEF1F33A /* CompoundMessageCollectionViewCell.swift */, + C6B67A8A3669E0AE851283F01AF3F11C /* ChattoAdditions.modulemap */, + 0A62285F574BE51D476B7476FF6DAF2A /* ChattoAdditions-dummy.m */, + 19E1D44E2511F07E9E9989CA32D6651A /* ChattoAdditions-Info.plist */, + 555A6E1E7EAF93B8198BF3F02A4FBAD0 /* ChattoAdditions-prefix.pch */, + CE5379F10B93F04D1D3E0351707E0076 /* ChattoAdditions-umbrella.h */, + FEEF0AF47D2928BE7DE1482FF4CDD47C /* ChattoAdditions.debug.xcconfig */, + 6E9A752EBD2D386C08801E9A10E40F31 /* ChattoAdditions.release.xcconfig */, ); - name = Views; - path = Views; + name = "Support Files"; + path = "ChattoApp/Pods/Target Support Files/ChattoAdditions"; sourceTree = ""; }; - 17E61878344DEA558AA22B196BDCEAB4 /* Decoration */ = { + 0D2A11B53A32189E99ED8849DF4AB618 /* Content */ = { isa = PBXGroup; children = ( - 1BBC96A3D4AE6C387957B4C45BD0F840 /* MessageDecorationViewFactory.swift */, - 13322131F1DBFDB63B36E6DB589FE8A4 /* MessageDecorationViewLayout.swift */, + DC42707977DE9EF477B5B1E7DEF7630F /* DefaultMessageContentPresenter.swift */, + B9459CCE2BECA66E9E03DDEBCA376D5F /* MessageContentFactoryProtocol.swift */, + FBC1B449E66FEF49632A311E974D986F /* MessageContentPresenterProtocol.swift */, + EFC39FA48DEF8E91EB287035247749B0 /* MessageManualLayoutProvider.swift */, ); - name = Decoration; - path = Decoration; + name = Content; + path = Content; sourceTree = ""; }; - 1B66A175DDFFD3417036418D619112DB /* TextMessages */ = { + 1C272DEA67ABF9A0F0D36DDA1B8E683A /* UI Components */ = { isa = PBXGroup; children = ( - F0BE53BF5253D56DE7B1F8CC27E99DC1 /* TextMessageMenuItemPresenter.swift */, - ADE49B40025576C54A5800919EC51582 /* TextMessageModel.swift */, - 21B0D2035FD656FBD1BE0FD4D0765885 /* TextMessagePresenter.swift */, - 3A806C01FA1BFCD488169AE664858363 /* TextMessagePresenterBuilder.swift */, - 33DD84EB99D2B1FED3A2E98CD7D2D08B /* TextMessageViewModel.swift */, - CF2BFD418CD1B2A1400FAE07EBA2EE52 /* Views */, + 343331E4B01BEDD1C6EACD570B742ABD /* CircleProgressIndicatorView */, ); - name = TextMessages; - path = TextMessages; + name = "UI Components"; + path = "ChattoAdditions/Source/UI Components"; sourceTree = ""; }; 1C80FD19AEB21133388E13112314D213 /* Frameworks */ = { isa = PBXGroup; children = ( CCCE6A8E9F86772CD3FC9DDFC357633B /* Chatto.framework */, - 12044A5F5DB431B287403A3BFA8146CC /* iOS */, + ECEC75E1191C8D845FFD7067AF8B2288 /* iOS */, ); name = Frameworks; sourceTree = ""; }; - 1FA213D54AC1188B601B1208B8774D50 /* Chat Items */ = { - isa = PBXGroup; - children = ( - 29EE7B9618D27C2FD171BBD3943D4F53 /* ChatItemDecorationAttributes.swift */, - 8533301BBD6FE2BB3740D35685FAFD29 /* BaseMessage */, - 9B64CC97C08D54A6C8D9E52B78931AC0 /* CompoundMessage */, - 6986A3508FDC446DCA79E3114401E558 /* PhotoMessages */, - 1B66A175DDFFD3417036418D619112DB /* TextMessages */, - ); - name = "Chat Items"; - path = "ChattoAdditions/Source/Chat Items"; - sourceTree = ""; - }; - 249075C14877B73BE59F7D3AFC7A0BB0 /* Views */ = { + 3058D4C2B518F1BD8C71C513D9765C84 /* Photos */ = { isa = PBXGroup; children = ( - 25428E5ACCD837FEC4C3BB46554283A3 /* PhotoBubbleView.swift */, - DDBBC539E90109AB64C29FFC777AE9BD /* PhotoMessageCollectionViewCell.swift */, - FBC54F61151A6036D2658DEFB3A54FFA /* PhotoMessageCollectionViewCellDefaultStyle.swift */, + 2EDD90826774E4709D599ACF40CA80AC /* Photos.xcassets */, + BEDE26F86F99C71004C526D48396279C /* PhotosChatInputItem.swift */, + F5AD58C89E8D7A5E58BC534FAEA4E958 /* PhotosInputPermissionsRequester.swift */, + CB04B2956068977B51C704D56859B30A /* PhotosInputView.swift */, + AA700684063EB8598D50267E0E2AC9C4 /* PhotosInputViewItemSizeCalculator.swift */, + 0BA547788774D075DE59D5FB1C564B7B /* PhotosInputWithPlaceholdersDataProvider.swift */, + 65DE13E7C19AD33C6E76397EDCF9C0B4 /* Camera */, + DC0B5773B1D17291A641130ECFC40262 /* Photo */, + B73A8ACD76755C6ADB3DBF54F6245B76 /* Placeholder */, ); - name = Views; - path = Views; - sourceTree = ""; - }; - 2802D48826C3E11A69070BE7F5574839 /* Chat Items */ = { - isa = PBXGroup; - children = ( - ED87067CA4F4C6D1B43A4F79756F0F82 /* BaseChatItemPresenter.swift */, - C15E52FE2E7D7781E212D50D1B4A765A /* ChatItemCompanion.swift */, - 2F91943BF4071679AC2B022841A1E13F /* ChatItemProtocolDefinitions.swift */, - 779BC9D8CCD2E20F50D9C3A896385B69 /* DummyChatItemPresenter.swift */, - ); - name = "Chat Items"; - path = "Chatto/Source/Chat Items"; + name = Photos; + path = Photos; sourceTree = ""; }; - 2D4C4C781A1CFC56075739A1BC7B2830 /* Support Files */ = { + 343331E4B01BEDD1C6EACD570B742ABD /* CircleProgressIndicatorView */ = { isa = PBXGroup; children = ( - DD355C8CA51C0706F629F4E885E44F0F /* Chatto.modulemap */, - 85832A5C6F4E62651AFDDAD8D95D8083 /* Chatto-dummy.m */, - 3F6AA5831849C3C2E9145F702B037D51 /* Chatto-Info.plist */, - 441161BF7E2BA980954402DC3B085F17 /* Chatto-prefix.pch */, - F19EA325FF08EEEF8E04FBF1D4D84A74 /* Chatto-umbrella.h */, - F73C3CF1E6276222AB57EF3E5B471115 /* Chatto.debug.xcconfig */, - 379B75F2572444095DDDDB5210539790 /* Chatto.release.xcconfig */, + A4A1CAECACA6512996AFD33A17319647 /* CircleIconView.swift */, + 0CEE5BAF6400957AE310D872F6A94A9E /* CircleProgressIndicator.xcassets */, + 29CB0CF8C7A4DC192BC3D5F57B634730 /* CircleProgressIndicatorView.swift */, + CF50C9178A05BD4828F9145D555D9C38 /* CircleProgressView.swift */, ); - name = "Support Files"; - path = "ChattoApp/Pods/Target Support Files/Chatto"; + name = CircleProgressIndicatorView; + path = CircleProgressIndicatorView; sourceTree = ""; }; - 2E6E7B4FE6EA712F649A376D5FBB361C /* Text */ = { + 3CDB26291A009D002DD4EC536F5EFF50 /* Chatto */ = { isa = PBXGroup; children = ( - 8A752E0DE33643E6879E911B1998F7AB /* TextChatInputItem.swift */, + 5DF4CF270A85C5DBF451D3B7ABAE9CB5 /* ChatItemCompanionCollection.swift */, + A52777B5E1811853F38BFD5390CDAFF2 /* SerialTaskQueue.swift */, + 24DA757636FEED80CA67B193AA399F46 /* Utils.swift */, + 500A96EC462C50D75B57C781F1F8DF3B /* Chat Items */, + 04CA85F8896683489EA165C5281C2B32 /* ChatController */, + ED2672FE70C2C5C6899E24B7E8DBC1C3 /* Pod */, + CF5352CF3CD81610DAC775E6270994C7 /* Support Files */, ); - name = Text; - path = Text; + name = Chatto; + path = ../..; sourceTree = ""; }; - 4023EC6D6E039B680C08AF92AC07FA48 /* Collaborators */ = { + 3F08E790FEF768711C36CB9F86B776C7 /* Views */ = { isa = PBXGroup; children = ( - 011816ED5E011074BFBB08DB9E7E52A5 /* BaseChatViewControllerView.swift */, - 4A0BCBF7465CEF9DDEFBB5F48F947042 /* CellPanGestureHandler.swift */, - DC6463741D8D222EA495C7F13C82BDDA /* ChatCollectionViewLayout.swift */, - 8A05D1B506E39896D053A99661B1B3BB /* ChatDataSourceProtocol.swift */, - 1EB3F71B2A515DA6B014B0075ECEC519 /* ChatItemPresenterFactory.swift */, - D43345688FD3BBE9E2163B953A575197 /* CollectionChanges.swift */, - 32DA18178317D81FFA8D56C8D130C622 /* KeyboardTracker.swift */, - E5313B20C8EA26B49A3A260677748246 /* ReplyFeedbackGenerator.swift */, + 23FB45107EFE33D6FCCF03E31EE209AF /* TextBubbleView.swift */, + 01944C9CE194E95E2B19EEF7CCCD9D70 /* TextMessageCollectionViewCell.swift */, + B36373DE8261EE918628172B21EF708B /* TextMessageCollectionViewCellDefaultStyle.swift */, ); - name = Collaborators; - path = Collaborators; + name = Views; + path = Views; sourceTree = ""; }; - 422EEC579539DDCDC443D00B8E5A218A /* Photo */ = { + 41BCEA4ABC50BCF2F0B4D449F98565EB /* Chat Items */ = { isa = PBXGroup; children = ( - 0823EA5BF2EACA8B39AD206AB18E4A51 /* PhotosInputCell.swift */, - 939F0BDF7574622A00AA9B75F8A90B12 /* PhotosInputCellProvider.swift */, - C0F68CE9E175448BDAA8DAE759A7FF2A /* PhotosInputDataProvider.swift */, + 1F7097D87BC708CD074FB975062CB6B1 /* ChatItemDecorationAttributes.swift */, + 55A00EE162F3526E066DED648BFEC491 /* BaseMessage */, + 4ED136FD8547EADBDE4ADA5261799763 /* CompoundMessage */, + 6277B8F308046918515DB0A73D4FF9D8 /* PhotoMessages */, + F187FDB2778CE362770C3FB936274FE6 /* TextMessages */, ); - name = Photo; - path = Photo; + name = "Chat Items"; + path = "ChattoAdditions/Source/Chat Items"; sourceTree = ""; }; 45DC6E7E812AC969C9BE9C5F57D090F2 /* Pods-ChattoApp */ = { @@ -507,357 +478,298 @@ path = "Target Support Files/Pods-ChattoApp"; sourceTree = ""; }; - 50D7A1015B9BB6ED4509685BE0069605 /* Input */ = { + 4ED136FD8547EADBDE4ADA5261799763 /* CompoundMessage */ = { isa = PBXGroup; children = ( - 8E22DE258A822554858D3207243AC833 /* ChatInputBar.xib */, - C6DCC419433A9E590E833D378D3634C1 /* Photos */, - 643603EE163B0C2B67C066AC420C744B /* Text */, + 9644E4E52B028EAD58CB01A7E9B91E34 /* CompoundMessagePresenter.swift */, + 6A487F8D3B94E28CE2FD97BE739BF5E5 /* CompoundMessagePresenterBuilder.swift */, + 0D2A11B53A32189E99ED8849DF4AB618 /* Content */, + F4AD57BC57AB829B5316C96B80E3422B /* Decoration */, + 6BF21556EB3BAB7D8DE4A83EE938C75B /* Views */, ); - name = Input; - path = ChattoAdditions/Source/Input; - sourceTree = ""; - }; - 52F57B8C1BD0C36C2BE2EA2A80D9528A /* Views */ = { - isa = PBXGroup; - children = ( - 97A1922A09ADA4895D43F912C9BD2EB4 /* BaseMessageAssets.xcassets */, - ); - name = Views; - path = Views; - sourceTree = ""; - }; - 643603EE163B0C2B67C066AC420C744B /* Text */ = { - isa = PBXGroup; - children = ( - 2D447A3863D908E9E0E4D273A7688060 /* Text.xcassets */, - ); - name = Text; - path = Text; - sourceTree = ""; - }; - 6986A3508FDC446DCA79E3114401E558 /* PhotoMessages */ = { - isa = PBXGroup; - children = ( - E6CE1B3DC70E182285B03BA408034F98 /* PhotoMessageModel.swift */, - AD1B0FF275C25A3C07B6EB4ED433BBE1 /* PhotoMessagePresenter.swift */, - 4BAA1DE44C80040FB0CD646BEEB58CB5 /* PhotoMessagePresenterBuilder.swift */, - 0CF516B9903CE4F1EA7ECE35DEBFD4EB /* PhotoMessageViewModel.swift */, - 249075C14877B73BE59F7D3AFC7A0BB0 /* Views */, - ); - name = PhotoMessages; - path = PhotoMessages; - sourceTree = ""; - }; - 73CB4EC23BB030DC1DCA117D32186DE5 /* Pod */ = { - isa = PBXGroup; - children = ( - 61329A1C6AC7B2B3D80ECAA47B1B07F1 /* Chatto.podspec */, - ); - name = Pod; + name = CompoundMessage; + path = CompoundMessage; sourceTree = ""; }; - 7C22F7DCC1EB69C9BE4F1ABEBB1CE8CC /* Pod */ = { + 500A96EC462C50D75B57C781F1F8DF3B /* Chat Items */ = { isa = PBXGroup; children = ( - 66BCAA1ED19612A2FDF2EFD0C1FE7ACC /* ChattoAdditions.podspec */, + 80A6ACDBD57FB1C8BC58E1A129C1E2FA /* BaseChatItemPresenter.swift */, + 990382A8CFB48462A0CEC61DF2ED3A4B /* ChatItemCompanion.swift */, + 000DB00CCE3B5B1FE458DF6283312E2D /* ChatItemProtocolDefinitions.swift */, + AEDFC0ABB73C185D8E65D451030468F2 /* DummyChatItemPresenter.swift */, ); - name = Pod; + name = "Chat Items"; + path = "Chatto/Source/Chat Items"; sourceTree = ""; }; - 8533301BBD6FE2BB3740D35685FAFD29 /* BaseMessage */ = { + 55A00EE162F3526E066DED648BFEC491 /* BaseMessage */ = { isa = PBXGroup; children = ( - D40710D191836A81D87A5505DDBF2C36 /* BaseMessageModel.swift */, - DD8808CCD6243E9AEDAFA2EFF5B2AD23 /* BaseMessagePresenter.swift */, - 806AC8F1CD6A8C7EADE94C791EE39F9D /* BaseMessageViewModel.swift */, - A2A48E6F42E2044476E1E2430012D920 /* Views */, + 266847F0127E05CFB804E0A8AFB5F82A /* BaseMessageModel.swift */, + 62A1DA4E1799B76DD0D9EB38CECDD6DF /* BaseMessagePresenter.swift */, + 429C8A7CCCA531B341935E9351BAD37C /* BaseMessageViewModel.swift */, + DDA3D9D0C8D59BE78035D48CF6273FC7 /* Views */, ); name = BaseMessage; path = BaseMessage; sourceTree = ""; }; - 8BD468B3A74D8FAC10207E81708376AB /* Content */ = { - isa = PBXGroup; - children = ( - FCB5C95E8B0BEAB6A9A66F67E6556B18 /* DefaultMessageContentPresenter.swift */, - AF92289C8A545481701B6B4765CD8AE0 /* MessageContentFactoryProtocol.swift */, - 4F7D733A0DEADA2A8CAB6406CB57330B /* MessageContentPresenterProtocol.swift */, - 9AF22E9F96884321F0BCEA0D10A0A852 /* MessageManualLayoutProvider.swift */, - ); - name = Content; - path = Content; - sourceTree = ""; - }; - 8DBD352F2FA424AE987514C7EBC4BB1F /* Photos */ = { + 5938397D882CF7188B126590219178F8 /* Development Pods */ = { isa = PBXGroup; children = ( - F7A2277E1CD524B02A1863528336B6DA /* PhotosChatInputItem.swift */, - BB75128305707A226A53276390BB8FAA /* PhotosInputPermissionsRequester.swift */, - 5DFFA374361CADA7687D2F6AAF3E6128 /* PhotosInputView.swift */, - 8407F3DCCFB69F669A808405C9D329CA /* PhotosInputViewItemSizeCalculator.swift */, - 34D4F524AE0600A38CCA07CEB5F4C656 /* PhotosInputWithPlaceholdersDataProvider.swift */, - 9C0C4CE48CD6E54DE52BFD1BE5637504 /* Camera */, - 422EEC579539DDCDC443D00B8E5A218A /* Photo */, - 8E31D2DC07A53F4008BEE7603DB98342 /* Placeholder */, + 3CDB26291A009D002DD4EC536F5EFF50 /* Chatto */, + BC67EF5E20E633ED433D38F841CD2924 /* ChattoAdditions */, ); - name = Photos; - path = Photos; + name = "Development Pods"; sourceTree = ""; }; - 8E31D2DC07A53F4008BEE7603DB98342 /* Placeholder */ = { + 6277B8F308046918515DB0A73D4FF9D8 /* PhotoMessages */ = { isa = PBXGroup; children = ( - EAEA366E7B2333E217B086495D552C75 /* PhotosInputPlaceholderCell.swift */, - DE4F103BE3BC2C7B182F8B7D029E7825 /* PhotosInputPlaceholderCellProvider.swift */, - 8F4810AC5C9D8A11DD7DF2C1AA9BB2FD /* PhotosInputPlaceholderDataProvider.swift */, + EE59BB17E6124822F2951FC320B5F19B /* PhotoMessageModel.swift */, + 330F72FF644CA3C7F0F76585BAD86E72 /* PhotoMessagePresenter.swift */, + 2CBA9F161CD788A0618F416C10F9689F /* PhotoMessagePresenterBuilder.swift */, + 3F5EAA61D235FD6852D95A24909FDBD0 /* PhotoMessageViewModel.swift */, + 8CE83444976B52BD9D572CC529FB9E79 /* Views */, ); - name = Placeholder; - path = Placeholder; + name = PhotoMessages; + path = PhotoMessages; sourceTree = ""; }; - 943253A3889D2CF797A54A39E9B918C7 /* ChattoAdditions */ = { + 65DE13E7C19AD33C6E76397EDCF9C0B4 /* Camera */ = { isa = PBXGroup; children = ( - 1FA213D54AC1188B601B1208B8774D50 /* Chat Items */, - F4589B1593F41AC6CF7B73EEADA4D062 /* Common */, - DB8139D710B943D0A69B31FF18F025BF /* Input */, - 7C22F7DCC1EB69C9BE4F1ABEBB1CE8CC /* Pod */, - B420F70B17697E99C43A6AC9A5DDF5B4 /* Resources */, - A2083F9E3C11006EF0D6EDADB68A0B96 /* Support Files */, - FAF8757B3AA866D33150D07ED406DFBB /* UI Components */, + F0530A293180571318EA0F10D531990B /* DeviceImagePicker.swift */, + 313BBF9C37931BBDB81CD287454B3C9D /* ImagePicker.swift */, + 6A40280D33B3C05BCB076B0DE332D543 /* LiveCameraCaptureSession.swift */, + 602AE15616AFAD7BAF8384143344B124 /* LiveCameraCell.swift */, + 90C132DF4001430CE6FFEF2EC3B3773C /* LiveCameraCellPresenter.swift */, + E36873CF331DB525EA5846AB853DD898 /* PhotosInputCameraPicker.swift */, ); - name = ChattoAdditions; - path = ../..; + name = Camera; + path = Camera; sourceTree = ""; }; - 9B64CC97C08D54A6C8D9E52B78931AC0 /* CompoundMessage */ = { + 6BF21556EB3BAB7D8DE4A83EE938C75B /* Views */ = { isa = PBXGroup; children = ( - 64F9F8727BF298D7036A993DE64098B1 /* CompoundMessagePresenter.swift */, - BD6FDED50AC98EBD9963A9821F10B115 /* CompoundMessagePresenterBuilder.swift */, - 8BD468B3A74D8FAC10207E81708376AB /* Content */, - 17E61878344DEA558AA22B196BDCEAB4 /* Decoration */, - 17DC8830FBC5CE7F0430103DAB9D8D9A /* Views */, + 9FAE7ED5DCE606F482905FD3A27D81B4 /* CompoundBubbleLayout.swift */, + 68D2188DC4A1125DF8760A869863406A /* CompoundBubbleView.swift */, + 59131A6B1DE96BEDDDA73AA842F8776B /* CompoundBubbleViewStyle.swift */, + 8520A50D7628A48D0B256304A9AD5FF4 /* CompoundMessageCollectionViewCell.swift */, ); - name = CompoundMessage; - path = CompoundMessage; + name = Views; + path = Views; sourceTree = ""; }; - 9C0C4CE48CD6E54DE52BFD1BE5637504 /* Camera */ = { + 7C0E8F1FD29BF8EFD15D6CA8C534A9E6 /* Input */ = { isa = PBXGroup; children = ( - B815F4D20E1659CAA5481A9CF527F4E0 /* DeviceImagePicker.swift */, - EB9600C142ED198331B7F945D91076A8 /* ImagePicker.swift */, - D9BCA972B80D11A89C07AD256516A566 /* LiveCameraCaptureSession.swift */, - 450E6D7CC218DA1B218A9FF3A086290C /* LiveCameraCell.swift */, - 14EBEEF92B23AC6E991F0BDB120E95B8 /* LiveCameraCellPresenter.swift */, - E8BC6AC9FC58CB35BFCC08837BE6865E /* PhotosInputCameraPicker.swift */, + 76D4380AC2D3C66D0D5AFD3FE64642CE /* ChatInputBar.swift */, + 03E94CC6E656A5A9BC9773E82204084B /* ChatInputBar.xib */, + 631EDFB3F72FA2F868D665889CF1CBF0 /* ChatInputBarAppearance.swift */, + BE418F46C97ECA16181058F1719FA0CD /* ChatInputBarPresenter.swift */, + 25C5574B5F56F195DECF9FF4BB926F0D /* ChatInputItem.swift */, + F3E4F24A10E41586A000492B1FE70E64 /* ChatInputItemView.swift */, + 1F9769B94A43DC0EF18424B699CB0A6E /* ExpandableChatInputBarPresenter.swift */, + 280E34461490B160DF6CF816004A021B /* ExpandableTextView.swift */, + 306B0BE8D85FDFC9B57095A82986E0BA /* HorizontalStackScrollView.swift */, + 671D87DB98208F377BD593AE01829FF7 /* InputContainerView.swift */, + D2BADB931FACDD59329A885FF8FF9FFF /* InterfaceOrientation.swift */, + 410D22969BBD0D1723D110BBD3D2FF5C /* PasteActionInterceptor.swift */, + 93AAD6808143DBB19A2E71530EDF19B3 /* ReusableXibView.swift */, + ED1749E9DEEA6F20E7158F868E4E9D06 /* TabInputButton.swift */, + 3058D4C2B518F1BD8C71C513D9765C84 /* Photos */, + B52BEE50CA97DCABC90240315DA60A74 /* Text */, ); - name = Camera; - path = Camera; + name = Input; + path = ChattoAdditions/Source/Input; sourceTree = ""; }; - A2083F9E3C11006EF0D6EDADB68A0B96 /* Support Files */ = { + 8107112C4E36F39C1DE6830942BF80A9 /* Collaborators */ = { isa = PBXGroup; children = ( - 7D0110B6E288B7DDC5F5D908A64A4BC0 /* ChattoAdditions.modulemap */, - F93718D9C807F23012F25F889C6D05D8 /* ChattoAdditions-dummy.m */, - C22FF1BD81A4EF3AAC7A88FC4013F7B7 /* ChattoAdditions-Info.plist */, - D4F668A526C96DE7B3DA684A74533E8D /* ChattoAdditions-prefix.pch */, - 80018A9EC57E23575E7580D9034A3D60 /* ChattoAdditions-umbrella.h */, - ADACB467BFFDEA729BFB8ADF01D0CB01 /* ChattoAdditions.debug.xcconfig */, - D2C4D06686F5E064C1AE42E90F8732F6 /* ChattoAdditions.release.xcconfig */, + E2087BD132D83AECA6B98E160DDD587A /* BaseChatViewControllerView.swift */, + 79F313B4E57DEA9FD7DF5E0B720AA164 /* CellPanGestureHandler.swift */, + B1CB456113C0F19E2AF2E2F43E4D19EF /* ChatCollectionViewLayout.swift */, + A4761E06891B57B3585B97E47A9E1973 /* ChatDataSourceProtocol.swift */, + A8E1086B4F07A55A961BAACF6EFA6E6E /* ChatItemPresenterFactory.swift */, + DA2DE88E6383BA93E1641D494BA5A52F /* CollectionChanges.swift */, + A3203A5520E7B8E870E14A10BCE6E520 /* KeyboardTracker.swift */, + 3038806CEE1B2AE12529239CE696164A /* ReplyFeedbackGenerator.swift */, ); - name = "Support Files"; - path = "ChattoApp/Pods/Target Support Files/ChattoAdditions"; + name = Collaborators; + path = Collaborators; sourceTree = ""; }; - A2A48E6F42E2044476E1E2430012D920 /* Views */ = { + 8CE83444976B52BD9D572CC529FB9E79 /* Views */ = { isa = PBXGroup; children = ( - 89AD4E3AE9A6A4616B3E47334A660B61 /* BaseMessageCollectionViewCell.swift */, - 8175123A596B4CA61393473DF633E21E /* BaseMessageCollectionViewCellDefaultStyle.swift */, - 1F80EC38EF3F3B62C75375F1BE3FA74A /* ViewDefinitions.swift */, + 0DBB10C0F9AA6A12AB701B3314425220 /* PhotoBubbleView.swift */, + 8FB103C2E8D604D8C61366C0379E12CC /* PhotoMessageAssets.xcassets */, + 7B3F79F4144CA65B6F2E9B300D8D0F2F /* PhotoMessageCollectionViewCell.swift */, + FE412FEE8B830414F2C465317F5D1962 /* PhotoMessageCollectionViewCellDefaultStyle.swift */, ); name = Views; path = Views; sourceTree = ""; }; - AF38547C441BF6C84B3E5854591113BC /* CircleProgressIndicatorView */ = { - isa = PBXGroup; - children = ( - 5EEB0FCC5619208B0C1ABCA0B9B5B242 /* CircleIconView.swift */, - D18132AAEF3270596CB3D78CA550D455 /* CircleProgressIndicatorView.swift */, - C9869199FF0C45C00B9E6E429A329B1E /* CircleProgressView.swift */, - ); - name = CircleProgressIndicatorView; - path = CircleProgressIndicatorView; - sourceTree = ""; - }; - B420F70B17697E99C43A6AC9A5DDF5B4 /* Resources */ = { + B52BEE50CA97DCABC90240315DA60A74 /* Text */ = { isa = PBXGroup; children = ( - FD4972B04D41371EB96ED01BDFB2B353 /* Chat Items */, - 50D7A1015B9BB6ED4509685BE0069605 /* Input */, - CB2370575D1C25ADB5406A0694511B94 /* UI Components */, + CAF7C49D47E84E5FB78DB5B613B15DCF /* Text.xcassets */, + 8B47FD02DF9C670229FFD264FAD85297 /* TextChatInputItem.swift */, ); - name = Resources; + name = Text; + path = Text; sourceTree = ""; }; - B58EFD7F332A156056960BBC01A51F70 /* CircleProgressIndicatorView */ = { + B73A8ACD76755C6ADB3DBF54F6245B76 /* Placeholder */ = { isa = PBXGroup; children = ( - 89CBBC63C653C97472D7E2ABEC510BC1 /* CircleProgressIndicator.xcassets */, + 5C506D8C44EF1D426885E23D9FE079A8 /* PhotosInputPlaceholderCell.swift */, + D05404C4DC849544FCB2A8E8D17E5370 /* PhotosInputPlaceholderCellProvider.swift */, + B7D76A763D77FD4657CC4AF470245D7D /* PhotosInputPlaceholderDataProvider.swift */, ); - name = CircleProgressIndicatorView; - path = CircleProgressIndicatorView; + name = Placeholder; + path = Placeholder; sourceTree = ""; }; - BDF68ADA53F187C935750B7A7A61E6F6 /* BaseMessage */ = { + BC67EF5E20E633ED433D38F841CD2924 /* ChattoAdditions */ = { isa = PBXGroup; children = ( - 52F57B8C1BD0C36C2BE2EA2A80D9528A /* Views */, + 41BCEA4ABC50BCF2F0B4D449F98565EB /* Chat Items */, + E33553966FDE6469EC36D539BC4F5119 /* Common */, + 7C0E8F1FD29BF8EFD15D6CA8C534A9E6 /* Input */, + CDB5CBD2C197FA2BEFCFCACD4612C2E4 /* Pod */, + 06D17AB5CE0980514475D99ED14CABD3 /* Support Files */, + 1C272DEA67ABF9A0F0D36DDA1B8E683A /* UI Components */, ); - name = BaseMessage; - path = BaseMessage; + name = ChattoAdditions; + path = ../..; sourceTree = ""; }; - C1CF1A73DCC4A42C1C1014FB02B1F0CB /* Views */ = { + CDB5CBD2C197FA2BEFCFCACD4612C2E4 /* Pod */ = { isa = PBXGroup; children = ( - E994A42C4BBCE943DEDA4ADCABFBF488 /* PhotoMessageAssets.xcassets */, + 015BDF54BA5B6802E337719B5C406477 /* ChattoAdditions.podspec */, ); - name = Views; - path = Views; + name = Pod; sourceTree = ""; }; - C6DCC419433A9E590E833D378D3634C1 /* Photos */ = { + CF1408CF629C7361332E53B88F7BD30C = { isa = PBXGroup; children = ( - 92050F47BAD040163DE1BCF8E6A1735D /* Photos.xcassets */, + 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, + 5938397D882CF7188B126590219178F8 /* Development Pods */, + 1C80FD19AEB21133388E13112314D213 /* Frameworks */, + FC106E74D3276542F24B5DC027CB1A53 /* Products */, + FD17E734AA9201EACDD77D7DC48B1F43 /* Targets Support Files */, ); - name = Photos; - path = Photos; sourceTree = ""; }; - CB2370575D1C25ADB5406A0694511B94 /* UI Components */ = { + CF5352CF3CD81610DAC775E6270994C7 /* Support Files */ = { isa = PBXGroup; children = ( - B58EFD7F332A156056960BBC01A51F70 /* CircleProgressIndicatorView */, + 3CB486615AA4B2828759A55AA821398C /* Chatto.modulemap */, + 189A0AFF74A9EB2681B09FB3F7AF9CED /* Chatto-dummy.m */, + 427344757D3F3ADE0DB7173EE7473012 /* Chatto-Info.plist */, + 8557AE293D1137879C8DD1C60E41FDDE /* Chatto-prefix.pch */, + 78CF8BA31EE97EDC67FDA36B06E222BE /* Chatto-umbrella.h */, + 5EE4782BCAF154F919CBA5C8F6513691 /* Chatto.debug.xcconfig */, + 7B0CB18BDC364E8389788CD8DCC6F9F8 /* Chatto.release.xcconfig */, ); - name = "UI Components"; - path = "ChattoAdditions/Source/UI Components"; + name = "Support Files"; + path = "ChattoApp/Pods/Target Support Files/Chatto"; sourceTree = ""; }; - CF1408CF629C7361332E53B88F7BD30C = { + DC0B5773B1D17291A641130ECFC40262 /* Photo */ = { isa = PBXGroup; children = ( - 9D940727FF8FB9C785EB98E56350EF41 /* Podfile */, - 1181FBBDE7F4980FE006C277823A81E0 /* Development Pods */, - 1C80FD19AEB21133388E13112314D213 /* Frameworks */, - FC106E74D3276542F24B5DC027CB1A53 /* Products */, - FD17E734AA9201EACDD77D7DC48B1F43 /* Targets Support Files */, + DF3BACDA58B6A5DDCFCEB99B4D881BE8 /* PhotosInputCell.swift */, + 2B784C9B2C603EA70EDA16E856ED2228 /* PhotosInputCellProvider.swift */, + 0C58754BB4B8C1F38FE5D93569A20E0F /* PhotosInputDataProvider.swift */, ); + name = Photo; + path = Photo; sourceTree = ""; }; - CF2BFD418CD1B2A1400FAE07EBA2EE52 /* Views */ = { + DDA3D9D0C8D59BE78035D48CF6273FC7 /* Views */ = { isa = PBXGroup; children = ( - 21A1CA29ABA8D533AE6942E22508F8A6 /* TextBubbleView.swift */, - AABD4F579A866A84B779427F513C116E /* TextMessageCollectionViewCell.swift */, - 39273FFB8CC4F6EBDC44D2F4BB223D8F /* TextMessageCollectionViewCellDefaultStyle.swift */, + 5811E455445D1B2EA8D32936D237068F /* BaseMessageAssets.xcassets */, + 5214BF7820CCE0E095861434EF65E17F /* BaseMessageCollectionViewCell.swift */, + 5FB60BB8CC12D8752D94CE124A262F32 /* BaseMessageCollectionViewCellDefaultStyle.swift */, + 6957CA570510230D638D3DDD94B313D1 /* ViewDefinitions.swift */, ); name = Views; path = Views; sourceTree = ""; }; - DB8139D710B943D0A69B31FF18F025BF /* Input */ = { + E33553966FDE6469EC36D539BC4F5119 /* Common */ = { isa = PBXGroup; children = ( - 0895A8F714292AB31032419C0A502719 /* ChatInputBar.swift */, - 0F1605BE8B49C062759B56E21F3BE2C8 /* ChatInputBarAppearance.swift */, - 389A30D825C9593862B24D4DEF5608F3 /* ChatInputBarPresenter.swift */, - 501226DD9C2D0501786393AD13D2CAEA /* ChatInputItem.swift */, - BC2BB1EBBCA2D1B36DA567DAD034C731 /* ChatInputItemView.swift */, - 4964FAE6F4A3D52051B3DFD52033900D /* ExpandableChatInputBarPresenter.swift */, - 0D2C41F8AE2F0B21E0B359324AFFB418 /* ExpandableTextView.swift */, - F384B681FD98D4877A38278071015A92 /* HorizontalStackScrollView.swift */, - C63A0F3D49B9F11D31D3676112C0506B /* InputContainerView.swift */, - E8ABDCC71A86D9447EEB9E234C04DB87 /* InterfaceOrientation.swift */, - B2BE442AA2438AE0CA41A759149014C4 /* PasteActionInterceptor.swift */, - 482BED2103C47E53D2B9810F7E587269 /* ReusableXibView.swift */, - 7223F8C033BFFEE0FDB15697CF2BB6C8 /* TabInputButton.swift */, - 8DBD352F2FA424AE987514C7EBC4BB1F /* Photos */, - 2E6E7B4FE6EA712F649A376D5FBB361C /* Text */, + 9D84BBCB7358F97DAC5746C76D69B3B6 /* Alignment.swift */, + 88A1444628CDBADCF1A76C09E783CDC4 /* AnimationUtils.swift */, + 135E9C384CF86CD81E6C9FD05C672EB5 /* Cache.swift */, + F5C2A2D0AC6DBF69EA3CAE2AB6B35F8E /* CALayer+ImageMask.swift */, + 45A0D02467EE2D5E9F2165F073DEFD8D /* CGFloat+Additions.swift */, + 3741CE61342F444E0BC6CC2BF241F096 /* CGPoint+Additions.swift */, + 3B58E0D6F7F31DD3391BF9330CDD0B9C /* CGRect+Additions.swift */, + 4063B66980C5E5F40533725900B826A8 /* CGSize+Additions.swift */, + E106372C918807DB83B1A36865AC7AE3 /* Comparable+Clamp.swift */, + C60DF9CC492F87ED5D501168684E7626 /* HashableRepresentible.swift */, + 276B8023BDC9B8CBC7A98ABF05635722 /* Observable.swift */, + 6E7778DA56B23D7230D2488C2CE5C104 /* ScreenMetric.swift */, + 3D693CE3CEEAE8536B1F46A6FC63FB1C /* UIColor+Additions.swift */, + 785B47EA7CF056B0C36DADB12B91130B /* UIEdgeInsets+Additions.swift */, + EA3659601FBC13F3660AD59A9E184F30 /* UIImage+Additions.swift */, + 827F3D4623155BB7E6C7D54752A913DE /* UIScreen+Scale.swift */, + 0D91BA3E25E0D4F8861D6FE5588101CA /* UIView+Additions.swift */, ); - name = Input; - path = ChattoAdditions/Source/Input; + name = Common; + path = ChattoAdditions/Source/Common; sourceTree = ""; }; - DE5B5258E3F6ADBB312E6F8A26EB2B82 /* Chatto */ = { + ECEC75E1191C8D845FFD7067AF8B2288 /* iOS */ = { isa = PBXGroup; children = ( - 5BB248F27627AD32F456EB1B49BB2148 /* ChatItemCompanionCollection.swift */, - 601AEAA1DD874E1CC895F1F0706B3AED /* SerialTaskQueue.swift */, - 2737FB1796FDA0835FBBCDCEB20EAA27 /* Utils.swift */, - 2802D48826C3E11A69070BE7F5574839 /* Chat Items */, - E148286C138B42B823DC00A5D380AFBD /* ChatController */, - 73CB4EC23BB030DC1DCA117D32186DE5 /* Pod */, - 2D4C4C781A1CFC56075739A1BC7B2830 /* Support Files */, + 5A174E57201961225505A5D48D72BCCE /* Foundation.framework */, ); - name = Chatto; - path = ../..; + name = iOS; sourceTree = ""; }; - E148286C138B42B823DC00A5D380AFBD /* ChatController */ = { + ED2672FE70C2C5C6899E24B7E8DBC1C3 /* Pod */ = { isa = PBXGroup; children = ( - 91F8BC669B2F2636DFE299052A0207B4 /* BaseChatViewController.swift */, - 1B86DB3161E5DE1454E1F3B63DEDE792 /* BaseChatViewController+CellPanGestureHandler.swift */, - F6A9D5406982D7B2766871EBB80D7DAD /* BaseChatViewController+Changes.swift */, - 716328BD4E265D0F857D887BF90E60CE /* BaseChatViewController+Presenters.swift */, - FA3FFAA6DE2BCFF6993980C497BFD5F0 /* BaseChatViewController+Scrolling.swift */, - F0BBBD1FFF5A696C90066B277D6D4A10 /* ChatLayoutConfiguration.swift */, - 56880FCEF4E8A4001BC6DEEE39516923 /* InputPositionControlling.swift */, - 4023EC6D6E039B680C08AF92AC07FA48 /* Collaborators */, + 84EDC53299B3AAA224EC576F90F2F278 /* Chatto.podspec */, ); - name = ChatController; - path = Chatto/Source/ChatController; + name = Pod; sourceTree = ""; }; - F4589B1593F41AC6CF7B73EEADA4D062 /* Common */ = { + F187FDB2778CE362770C3FB936274FE6 /* TextMessages */ = { isa = PBXGroup; children = ( - C5814301B7B948CED7F98CA913AD2B1A /* Alignment.swift */, - B87C51B550537D0D0E4B1AB8515D6C73 /* AnimationUtils.swift */, - 65F825FEE553CA33058218D87DBA9B1F /* Cache.swift */, - D2BA04D067F5FB905DB5C307895A045A /* CALayer+ImageMask.swift */, - 06A7041007DC3A31B6D306FF23A0C3E9 /* CGFloat+Additions.swift */, - 236C20E885169120F2B1302E3C152FA0 /* CGPoint+Additions.swift */, - 04AC49AFCD860E5DCDBFDBC0140AE885 /* CGRect+Additions.swift */, - 8A508A14BD50AC9102368C24A9A91A98 /* CGSize+Additions.swift */, - 1490A3281CD5280EAFCC87D05FFDE515 /* Comparable+Clamp.swift */, - B62BD16D68353978A24663F0D6FDCCA7 /* HashableRepresentible.swift */, - 6396A7565AD4C9AC2BC5E30B4F4A3F43 /* Observable.swift */, - 48B643807206FF779D3F1AE54CD142D8 /* ScreenMetric.swift */, - 2D83DA4EFC41B0135B202C8221A824D2 /* UIColor+Additions.swift */, - 09FA84E8B9F753554B31D2A6FA91AFA4 /* UIEdgeInsets+Additions.swift */, - F598D1DC6E45266010339B726A3B8E3E /* UIImage+Additions.swift */, - 0FA1A535C01FD338F65BD9984B536756 /* UIScreen+Scale.swift */, - 25693FC416E58F954C564A75B06B8014 /* UIView+Additions.swift */, + 5D85B92394DAF2554C0398F24B677DA2 /* TextMessageMenuItemPresenter.swift */, + 456555122CA49C70D566527B6A9DCC03 /* TextMessageModel.swift */, + 79382D6CADCEE7EA20655E3CA6646C17 /* TextMessagePresenter.swift */, + 03F06DCB5A3A8D90B37D7BE6900D8DA9 /* TextMessagePresenterBuilder.swift */, + 9833E80BF0DC80AF0C57E85B83CDB1EA /* TextMessageViewModel.swift */, + 3F08E790FEF768711C36CB9F86B776C7 /* Views */, ); - name = Common; - path = ChattoAdditions/Source/Common; + name = TextMessages; + path = TextMessages; sourceTree = ""; }; - FAF8757B3AA866D33150D07ED406DFBB /* UI Components */ = { + F4AD57BC57AB829B5316C96B80E3422B /* Decoration */ = { isa = PBXGroup; children = ( - AF38547C441BF6C84B3E5854591113BC /* CircleProgressIndicatorView */, + 2B76B96EDF5F90809550A50E6AC77889 /* MessageDecorationViewFactory.swift */, + 88023C11D8D7CA22492708054243E3AF /* MessageDecorationViewLayout.swift */, ); - name = "UI Components"; - path = "ChattoAdditions/Source/UI Components"; + name = Decoration; + path = Decoration; sourceTree = ""; }; FC106E74D3276542F24B5DC027CB1A53 /* Products */ = { @@ -878,16 +790,6 @@ name = "Targets Support Files"; sourceTree = ""; }; - FD4972B04D41371EB96ED01BDFB2B353 /* Chat Items */ = { - isa = PBXGroup; - children = ( - BDF68ADA53F187C935750B7A7A61E6F6 /* BaseMessage */, - 083B5BF8E37707051385B5C4878E4D3A /* PhotoMessages */, - ); - name = "Chat Items"; - path = "ChattoAdditions/Source/Chat Items"; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ @@ -948,7 +850,7 @@ buildRules = ( ); dependencies = ( - A3C6479559E6F81051115E30B23D4F42 /* PBXTargetDependency */, + 0F7BFCD07F46711687AAE6420B35DD69 /* PBXTargetDependency */, ); name = ChattoAdditions; productName = ChattoAdditions; @@ -967,8 +869,8 @@ buildRules = ( ); dependencies = ( - 568D625C937B47B7F5CA7B7D9B2BAA80 /* PBXTargetDependency */, - 58DD845CD0AEA424ACCF2A74191A5B36 /* PBXTargetDependency */, + DEBBE13D19242F1BDED1D36BF99F3CCC /* PBXTargetDependency */, + 5344B5FBD1AE42C057F69FDC05A7EF00 /* PBXTargetDependency */, ); name = "Pods-ChattoApp"; productName = "Pods-ChattoApp"; @@ -1169,65 +1071,32 @@ /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ - 568D625C937B47B7F5CA7B7D9B2BAA80 /* PBXTargetDependency */ = { + 0F7BFCD07F46711687AAE6420B35DD69 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = Chatto; target = 2508BC3B908322C9E85E61AE743C9842 /* Chatto */; - targetProxy = A68E87179033DDCA6995A61F10EE58E1 /* PBXContainerItemProxy */; + targetProxy = AF6BE84C85CD7C355265BB09A925183D /* PBXContainerItemProxy */; }; - 58DD845CD0AEA424ACCF2A74191A5B36 /* PBXTargetDependency */ = { + 5344B5FBD1AE42C057F69FDC05A7EF00 /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = ChattoAdditions; target = 9A88D54DB316ADF1E80363324718D63E /* ChattoAdditions */; - targetProxy = A4E661724D45C6401D542CFCA36A0F93 /* PBXContainerItemProxy */; + targetProxy = 956F98E382854836C56BB88CC848D3E8 /* PBXContainerItemProxy */; }; - A3C6479559E6F81051115E30B23D4F42 /* PBXTargetDependency */ = { + DEBBE13D19242F1BDED1D36BF99F3CCC /* PBXTargetDependency */ = { isa = PBXTargetDependency; name = Chatto; target = 2508BC3B908322C9E85E61AE743C9842 /* Chatto */; - targetProxy = A2C41191AFC70DDC9F32D138B27DA480 /* PBXContainerItemProxy */; + targetProxy = B9234C75EA629A8138C77520CC544195 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ - 50C007BE2456A92F8A8572C1642A565F /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = D2C4D06686F5E064C1AE42E90F8732F6 /* ChattoAdditions.release.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/ChattoAdditions/ChattoAdditions-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/ChattoAdditions/ChattoAdditions-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/ChattoAdditions/ChattoAdditions.modulemap"; - PRODUCT_MODULE_NAME = ChattoAdditions; - PRODUCT_NAME = ChattoAdditions; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 5.3; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 5FFC4CAFE94E1EEA044A05840BBF5B25 /* Release */ = { + 02D9349573871E46571B69E2534E8D67 /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 3C4011DB2C80F78B8321E9E704E40DD2 /* Pods-ChattoApp.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; @@ -1256,101 +1125,11 @@ }; name = Release; }; - 773649593F7FCE0AB01B1CE0A3C8CF28 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = ADACB467BFFDEA729BFB8ADF01D0CB01 /* ChattoAdditions.debug.xcconfig */; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREFIX_HEADER = "Target Support Files/ChattoAdditions/ChattoAdditions-prefix.pch"; - INFOPLIST_FILE = "Target Support Files/ChattoAdditions/ChattoAdditions-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MODULEMAP_FILE = "Target Support Files/ChattoAdditions/ChattoAdditions.modulemap"; - PRODUCT_MODULE_NAME = ChattoAdditions; - PRODUCT_NAME = ChattoAdditions; - SDKROOT = iphoneos; - SKIP_INSTALL = YES; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; - SWIFT_VERSION = 5.3; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 8F17DC3A99F99FBAD606CE6963886315 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "POD_CONFIGURATION_RELEASE=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - PRODUCT_NAME = "$(TARGET_NAME)"; - STRIP_INSTALLED_PRODUCT = NO; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - SWIFT_VERSION = 5.0; - SYMROOT = "${SRCROOT}/../build"; - }; - name = Release; - }; - 916E0404255105F480DC4950B7625F7A /* Debug */ = { + 25AD9454612BF454A1E3DC4CD4FA8C6D /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; @@ -1373,6 +1152,7 @@ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; @@ -1411,12 +1191,10 @@ }; name = Debug; }; - AC94E92DFCFF9069B1891A8C3E33C7FA /* Debug */ = { + 48E805AEC762741C12229E3BDD72DC7F /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F26241E90E38090426B8539A653278AC /* Pods-ChattoApp.debug.xcconfig */; + baseConfigurationReference = FEEF0AF47D2928BE7DE1482FF4CDD47C /* ChattoAdditions.debug.xcconfig */; buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; - CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; @@ -1425,30 +1203,28 @@ DYLIB_COMPATIBILITY_VERSION = 1; DYLIB_CURRENT_VERSION = 1; DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = "Target Support Files/Pods-ChattoApp/Pods-ChattoApp-Info.plist"; + GCC_PREFIX_HEADER = "Target Support Files/ChattoAdditions/ChattoAdditions-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/ChattoAdditions/ChattoAdditions-Info.plist"; INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACH_O_TYPE = staticlib; - MODULEMAP_FILE = "Target Support Files/Pods-ChattoApp/Pods-ChattoApp.modulemap"; - OTHER_LDFLAGS = ""; - OTHER_LIBTOOLFLAGS = ""; - PODS_ROOT = "$(SRCROOT)"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + MODULEMAP_FILE = "Target Support Files/ChattoAdditions/ChattoAdditions.modulemap"; + PRODUCT_MODULE_NAME = ChattoAdditions; + PRODUCT_NAME = ChattoAdditions; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.3; TARGETED_DEVICE_FAMILY = "1,2"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; name = Debug; }; - D703CDBFA111B654B85685CF98A90C71 /* Debug */ = { + 4D6C3581B387C63D7227DBE230B9676C /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = F73C3CF1E6276222AB57EF3E5B471115 /* Chatto.debug.xcconfig */; + baseConfigurationReference = 7B0CB18BDC364E8389788CD8DCC6F9F8 /* Chatto.release.xcconfig */; buildSettings = { - CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; @@ -1470,16 +1246,47 @@ SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; SWIFT_VERSION = 5.3; TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; - name = Debug; + name = Release; + }; + 5D7A84B0F864D85302D5DFC17C7C4D6A /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 6E9A752EBD2D386C08801E9A10E40F31 /* ChattoAdditions.release.xcconfig */; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_PREFIX_HEADER = "Target Support Files/ChattoAdditions/ChattoAdditions-prefix.pch"; + INFOPLIST_FILE = "Target Support Files/ChattoAdditions/ChattoAdditions-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MODULEMAP_FILE = "Target Support Files/ChattoAdditions/ChattoAdditions.modulemap"; + PRODUCT_MODULE_NAME = ChattoAdditions; + PRODUCT_NAME = ChattoAdditions; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; + SWIFT_VERSION = 5.3; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; }; - E62D84813C76AE0DFA267081067C2F1E /* Release */ = { + 7B959B69A43E8F5A089E02AA8C1B2C0F /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 379B75F2572444095DDDDB5210539790 /* Chatto.release.xcconfig */; + baseConfigurationReference = 5EE4782BCAF154F919CBA5C8F6513691 /* Chatto.debug.xcconfig */; buildSettings = { - CODE_SIGN_IDENTITY = ""; "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; @@ -1501,10 +1308,103 @@ SWIFT_ACTIVE_COMPILATION_CONDITIONS = "$(inherited) "; SWIFT_VERSION = 5.3; TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; + name = Debug; + }; + C7BA722F1FFD2924D0E9683E489AE677 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = F26241E90E38090426B8539A653278AC /* Pods-ChattoApp.debug.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = NO; + "CODE_SIGN_IDENTITY[sdk=appletvos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + "CODE_SIGN_IDENTITY[sdk=watchos*]" = ""; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = "Target Support Files/Pods-ChattoApp/Pods-ChattoApp-Info.plist"; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACH_O_TYPE = staticlib; + MODULEMAP_FILE = "Target Support Files/Pods-ChattoApp/Pods-ChattoApp.modulemap"; + OTHER_LDFLAGS = ""; + OTHER_LIBTOOLFLAGS = ""; + PODS_ROOT = "$(SRCROOT)"; + PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.${PRODUCT_NAME:rfc1034identifier}"; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + CA547D2C7E9A8A153DC2B27FBE00B112 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_PREPROCESSOR_DEFINITIONS = ( + "POD_CONFIGURATION_RELEASE=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_NAME = "$(TARGET_NAME)"; + STRIP_INSTALLED_PRODUCT = NO; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + SYMROOT = "${SRCROOT}/../build"; + }; name = Release; }; /* End XCBuildConfiguration section */ @@ -1513,8 +1413,8 @@ 3DD15C259BD47801E93B91EC63A468CD /* Build configuration list for PBXNativeTarget "Pods-ChattoApp" */ = { isa = XCConfigurationList; buildConfigurations = ( - AC94E92DFCFF9069B1891A8C3E33C7FA /* Debug */, - 5FFC4CAFE94E1EEA044A05840BBF5B25 /* Release */, + C7BA722F1FFD2924D0E9683E489AE677 /* Debug */, + 02D9349573871E46571B69E2534E8D67 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -1522,8 +1422,8 @@ 4821239608C13582E20E6DA73FD5F1F9 /* Build configuration list for PBXProject "Pods" */ = { isa = XCConfigurationList; buildConfigurations = ( - 916E0404255105F480DC4950B7625F7A /* Debug */, - 8F17DC3A99F99FBAD606CE6963886315 /* Release */, + 25AD9454612BF454A1E3DC4CD4FA8C6D /* Debug */, + CA547D2C7E9A8A153DC2B27FBE00B112 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -1531,8 +1431,8 @@ 6D30F6C2F1B6331D051DB525C9F02D28 /* Build configuration list for PBXNativeTarget "Chatto" */ = { isa = XCConfigurationList; buildConfigurations = ( - D703CDBFA111B654B85685CF98A90C71 /* Debug */, - E62D84813C76AE0DFA267081067C2F1E /* Release */, + 7B959B69A43E8F5A089E02AA8C1B2C0F /* Debug */, + 4D6C3581B387C63D7227DBE230B9676C /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; @@ -1540,8 +1440,8 @@ 7B28015123D1F7963B9F66550784E1A2 /* Build configuration list for PBXNativeTarget "ChattoAdditions" */ = { isa = XCConfigurationList; buildConfigurations = ( - 773649593F7FCE0AB01B1CE0A3C8CF28 /* Debug */, - 50C007BE2456A92F8A8572C1642A565F /* Release */, + 48E805AEC762741C12229E3BDD72DC7F /* Debug */, + 5D7A84B0F864D85302D5DFC17C7C4D6A /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; diff --git a/ChattoApp/Pods/Target Support Files/Chatto/Chatto.debug.xcconfig b/ChattoApp/Pods/Target Support Files/Chatto/Chatto.debug.xcconfig index b7c51050c..d806091ea 100644 --- a/ChattoApp/Pods/Target Support Files/Chatto/Chatto.debug.xcconfig +++ b/ChattoApp/Pods/Target Support Files/Chatto/Chatto.debug.xcconfig @@ -1,3 +1,4 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Chatto GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS @@ -5,6 +6,7 @@ PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} PODS_TARGET_SRCROOT = ${PODS_ROOT}/../.. +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} SKIP_INSTALL = YES USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ChattoApp/Pods/Target Support Files/Chatto/Chatto.release.xcconfig b/ChattoApp/Pods/Target Support Files/Chatto/Chatto.release.xcconfig index b7c51050c..d806091ea 100644 --- a/ChattoApp/Pods/Target Support Files/Chatto/Chatto.release.xcconfig +++ b/ChattoApp/Pods/Target Support Files/Chatto/Chatto.release.xcconfig @@ -1,3 +1,4 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Chatto GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS @@ -5,6 +6,7 @@ PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} PODS_TARGET_SRCROOT = ${PODS_ROOT}/../.. +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} SKIP_INSTALL = YES USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ChattoApp/Pods/Target Support Files/ChattoAdditions/ChattoAdditions.debug.xcconfig b/ChattoApp/Pods/Target Support Files/ChattoAdditions/ChattoAdditions.debug.xcconfig index 5f84a9f20..a9e0cc755 100644 --- a/ChattoApp/Pods/Target Support Files/ChattoAdditions/ChattoAdditions.debug.xcconfig +++ b/ChattoApp/Pods/Target Support Files/ChattoAdditions/ChattoAdditions.debug.xcconfig @@ -1,3 +1,4 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/ChattoAdditions FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Chatto" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 @@ -6,6 +7,7 @@ PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} PODS_TARGET_SRCROOT = ${PODS_ROOT}/../.. +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} SKIP_INSTALL = YES USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ChattoApp/Pods/Target Support Files/ChattoAdditions/ChattoAdditions.release.xcconfig b/ChattoApp/Pods/Target Support Files/ChattoAdditions/ChattoAdditions.release.xcconfig index 5f84a9f20..a9e0cc755 100644 --- a/ChattoApp/Pods/Target Support Files/ChattoAdditions/ChattoAdditions.release.xcconfig +++ b/ChattoApp/Pods/Target Support Files/ChattoAdditions/ChattoAdditions.release.xcconfig @@ -1,3 +1,4 @@ +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/ChattoAdditions FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Chatto" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 @@ -6,6 +7,7 @@ PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_ROOT = ${SRCROOT} PODS_TARGET_SRCROOT = ${PODS_ROOT}/../.. +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} SKIP_INSTALL = YES USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ChattoApp/Pods/Target Support Files/Pods-ChattoApp/Pods-ChattoApp-frameworks.sh b/ChattoApp/Pods/Target Support Files/Pods-ChattoApp/Pods-ChattoApp-frameworks.sh index 8c57ad8f9..5f655bff6 100755 --- a/ChattoApp/Pods/Target Support Files/Pods-ChattoApp/Pods-ChattoApp-frameworks.sh +++ b/ChattoApp/Pods/Target Support Files/Pods-ChattoApp/Pods-ChattoApp-frameworks.sh @@ -19,9 +19,8 @@ mkdir -p "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}" COCOAPODS_PARALLEL_CODE_SIGN="${COCOAPODS_PARALLEL_CODE_SIGN:-false}" SWIFT_STDLIB_PATH="${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" +BCSYMBOLMAP_DIR="BCSymbolMaps" -# Used as a return value for each invocation of `strip_invalid_archs` function. -STRIP_BINARY_RETVAL=0 # This protects against multiple targets copying the same framework dependency at the same time. The solution # was originally proposed here: https://lists.samba.org/archive/rsync/2008-February/020158.html @@ -45,6 +44,16 @@ install_framework() source="$(readlink "${source}")" fi + if [ -d "${source}/${BCSYMBOLMAP_DIR}" ]; then + # Locate and install any .bcsymbolmaps if present, and remove them from the .framework before the framework is copied + find "${source}/${BCSYMBOLMAP_DIR}" -name "*.bcsymbolmap"|while read f; do + echo "Installing $f" + install_bcsymbolmap "$f" "$destination" + rm "$f" + done + rmdir "${source}/${BCSYMBOLMAP_DIR}" + fi + # Use filter instead of exclude so missing patterns don't throw errors. echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\"" rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}" @@ -80,7 +89,6 @@ install_framework() done fi } - # Copies and strips a vendored dSYM install_dsym() { local source="$1" @@ -95,12 +103,11 @@ install_dsym() { binary_name="$(ls "$source/Contents/Resources/DWARF")" binary="${DERIVED_FILES_DIR}/${basename}.dSYM/Contents/Resources/DWARF/${binary_name}" - # Strip invalid architectures so "fat" simulator / device frameworks work on device + # Strip invalid architectures from the dSYM. if [[ "$(file "$binary")" == *"Mach-O "*"dSYM companion"* ]]; then strip_invalid_archs "$binary" "$warn_missing_arch" fi - - if [[ $STRIP_BINARY_RETVAL == 1 ]]; then + if [[ $STRIP_BINARY_RETVAL == 0 ]]; then # Move the stripped file into its final destination. echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\"" rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.dSYM" "${DWARF_DSYM_FOLDER_PATH}" @@ -111,28 +118,8 @@ install_dsym() { fi } -# Copies the bcsymbolmap files of a vendored framework -install_bcsymbolmap() { - local bcsymbolmap_path="$1" - local destination="${BUILT_PRODUCTS_DIR}" - echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"" - rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}" -} - -# Signs a framework with the provided identity -code_sign_if_enabled() { - if [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then - # Use the current code_sign_identity - echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" - local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" - - if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then - code_sign_cmd="$code_sign_cmd &" - fi - echo "$code_sign_cmd" - eval "$code_sign_cmd" - fi -} +# Used as a return value for each invocation of `strip_invalid_archs` function. +STRIP_BINARY_RETVAL=0 # Strip invalid architectures strip_invalid_archs() { @@ -147,7 +134,7 @@ strip_invalid_archs() { if [[ "$warn_missing_arch" == "true" ]]; then echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)." fi - STRIP_BINARY_RETVAL=0 + STRIP_BINARY_RETVAL=1 return fi stripped="" @@ -161,40 +148,31 @@ strip_invalid_archs() { if [[ "$stripped" ]]; then echo "Stripped $binary of architectures:$stripped" fi - STRIP_BINARY_RETVAL=1 + STRIP_BINARY_RETVAL=0 } -install_artifact() { - artifact="$1" - base="$(basename "$artifact")" - case $base in - *.framework) - install_framework "$artifact" - ;; - *.dSYM) - # Suppress arch warnings since XCFrameworks will include many dSYM files - install_dsym "$artifact" "false" - ;; - *.bcsymbolmap) - install_bcsymbolmap "$artifact" - ;; - *) - echo "error: Unrecognized artifact "$artifact"" - ;; - esac +# Copies the bcsymbolmap files of a vendored framework +install_bcsymbolmap() { + local bcsymbolmap_path="$1" + local destination="${BUILT_PRODUCTS_DIR}" + echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}"" + rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${bcsymbolmap_path}" "${destination}" } -copy_artifacts() { - file_list="$1" - while read artifact; do - install_artifact "$artifact" - done <$file_list -} +# Signs a framework with the provided identity +code_sign_if_enabled() { + if [ -n "${EXPANDED_CODE_SIGN_IDENTITY:-}" -a "${CODE_SIGNING_REQUIRED:-}" != "NO" -a "${CODE_SIGNING_ALLOWED}" != "NO" ]; then + # Use the current code_sign_identity + echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" + local code_sign_cmd="/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} ${OTHER_CODE_SIGN_FLAGS:-} --preserve-metadata=identifier,entitlements '$1'" -ARTIFACT_LIST_FILE="${BUILT_PRODUCTS_DIR}/cocoapods-artifacts-${CONFIGURATION}.txt" -if [ -r "${ARTIFACT_LIST_FILE}" ]; then - copy_artifacts "${ARTIFACT_LIST_FILE}" -fi + if [ "${COCOAPODS_PARALLEL_CODE_SIGN}" == "true" ]; then + code_sign_cmd="$code_sign_cmd &" + fi + echo "$code_sign_cmd" + eval "$code_sign_cmd" + fi +} if [[ "$CONFIGURATION" == "Debug" ]]; then install_framework "${BUILT_PRODUCTS_DIR}/Chatto/Chatto.framework" diff --git a/ChattoApp/Pods/Target Support Files/Pods-ChattoApp/Pods-ChattoApp.debug.xcconfig b/ChattoApp/Pods/Target Support Files/Pods-ChattoApp/Pods-ChattoApp.debug.xcconfig index 41de578ab..afe5787fa 100644 --- a/ChattoApp/Pods/Target Support Files/Pods-ChattoApp/Pods-ChattoApp.debug.xcconfig +++ b/ChattoApp/Pods/Target Support Files/Pods-ChattoApp/Pods-ChattoApp.debug.xcconfig @@ -1,4 +1,5 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Chatto" "${PODS_CONFIGURATION_BUILD_DIR}/ChattoAdditions" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Chatto/Chatto.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/ChattoAdditions/ChattoAdditions.framework/Headers" @@ -9,4 +10,5 @@ PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES diff --git a/ChattoApp/Pods/Target Support Files/Pods-ChattoApp/Pods-ChattoApp.release.xcconfig b/ChattoApp/Pods/Target Support Files/Pods-ChattoApp/Pods-ChattoApp.release.xcconfig index 41de578ab..afe5787fa 100644 --- a/ChattoApp/Pods/Target Support Files/Pods-ChattoApp/Pods-ChattoApp.release.xcconfig +++ b/ChattoApp/Pods/Target Support Files/Pods-ChattoApp/Pods-ChattoApp.release.xcconfig @@ -1,4 +1,5 @@ ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES +CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Chatto" "${PODS_CONFIGURATION_BUILD_DIR}/ChattoAdditions" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 HEADER_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/Chatto/Chatto.framework/Headers" "${PODS_CONFIGURATION_BUILD_DIR}/ChattoAdditions/ChattoAdditions.framework/Headers" @@ -9,4 +10,5 @@ PODS_BUILD_DIR = ${BUILD_DIR} PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) PODS_PODFILE_DIR_PATH = ${SRCROOT}/. PODS_ROOT = ${SRCROOT}/Pods +PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES