diff --git a/.travis.yml b/.travis.yml index 7b373c4ff..99a0d4c51 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,4 +1,4 @@ -osx_image: xcode10.2 +osx_image: xcode11.3 language: objective-c # Handle git submodules yourself @@ -9,7 +9,7 @@ git: # Use sed to replace the SSH URL with the public URL, then initialize submodules before_install: # Fix Travis xcodebuild exited with 65 https://github.com/travis-ci/travis-ci/issues/6675#issuecomment-257964767 - - export IOS_SIMULATOR_UDID=`instruments -s devices | grep -m 1 "iPhone 8 (12" | awk -F '[ ]' '{print $4}' | awk -F '[\[]' '{print $2}' | sed 's/.$//'` + - export IOS_SIMULATOR_UDID=`instruments -s devices | grep -m 1 "iPhone 8 (13" | awk -F '[ ]' '{print $4}' | awk -F '[\[]' '{print $2}' | sed 's/.$//'` - echo $IOS_SIMULATOR_UDID - bundle install # We need a pre-release CocoaPods version - sed -i -e 's/git@github.com:/git:\/\/github.com\//' .gitmodules @@ -21,10 +21,8 @@ install: - curl -L https://github.com/ChatSecure/ChatSecure-iOS-Precompiled-Dependencies/archive/master.zip -o ChatSecure-iOS-Precompiled-Dependencies.zip - unzip -q ChatSecure-iOS-Precompiled-Dependencies.zip - mv ChatSecure-iOS-Precompiled-Dependencies-master ChatSecure-iOS-Precompiled-Dependencies - - mkdir -p ./Carthage/Build/iOS/ - - unzip -q ./ChatSecure-iOS-Precompiled-Dependencies/CPAProxyDependencies-iOS.zip -d ./Submodules/CPAProxy/ - - cp -r ./Submodules/CPAProxy/CPAProxyDependencies-iOS ./Submodules/CPAProxy/CPAProxyDependencies-macOS - - unzip -q ./ChatSecure-iOS-Precompiled-Dependencies/OTRKitDependencies-iOS.zip -d ./Submodules/OTRKit/ + - unzip -q ./ChatSecure-iOS-Precompiled-Dependencies/CPAProxyDependencies.zip -d ./Submodules/CPAProxy/ + - unzip -q ./ChatSecure-iOS-Precompiled-Dependencies/OTRKitDependencies.zip -d ./Submodules/OTRKit/ - unzip -q ./ChatSecure-iOS-Precompiled-Dependencies/Pods.zip before_script: diff --git a/ChatSecure.xcodeproj/project.pbxproj b/ChatSecure.xcodeproj/project.pbxproj index 1cf3df5c4..d435a0ef4 100644 --- a/ChatSecure.xcodeproj/project.pbxproj +++ b/ChatSecure.xcodeproj/project.pbxproj @@ -3,19 +3,16 @@ archiveVersion = 1; classes = { }; - objectVersion = 46; + objectVersion = 52; objects = { /* Begin PBXBuildFile section */ - 4D17A0182F0DA3D98412BA60 /* libPods-ChatSecureCorePods-ChatSecure.a in Frameworks */ = {isa = PBXBuildFile; fileRef = B9F54C7203BBEF36D2A9CAE7 /* libPods-ChatSecureCorePods-ChatSecure.a */; }; - 6308D1451CA20762002F5F30 /* Pods-ChatSecureCorePods-ChatSecure-acknowledgements.plist in Resources */ = {isa = PBXBuildFile; fileRef = 6308D1441CA20762002F5F30 /* Pods-ChatSecureCorePods-ChatSecure-acknowledgements.plist */; }; + 07BD06A9B424D601FC93AB82 /* libPods-ChatSecureCorePods-ChatSecure.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 2BA701560D538F2F5771BBCB /* libPods-ChatSecureCorePods-ChatSecure.a */; }; 632157DD1E57D01A00738D4E /* SnapshotHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 632157DC1E57D01A00738D4E /* SnapshotHelper.swift */; }; 6323C6FE1E39547200D0FB42 /* OTRImageTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6323C6FD1E39547200D0FB42 /* OTRImageTest.swift */; }; 6323C7031E396D3D00D0FB42 /* landscape.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 6323C7001E396D3D00D0FB42 /* landscape.jpg */; }; 6323C7041E396D3D00D0FB42 /* portrait.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 6323C7011E396D3D00D0FB42 /* portrait.jpg */; }; 6323C7051E396D3D00D0FB42 /* small.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 6323C7021E396D3D00D0FB42 /* small.jpg */; }; - 632A2D341E2728B8000D3192 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 633104D61A169EC800C17BAE /* Localizable.strings */; }; - 633107201A16D1A300C17BAE /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 633106661A16D1A300C17BAE /* LaunchScreen.xib */; }; 6331072B1A16D1F200C17BAE /* DemoImages.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 633107291A16D1F200C17BAE /* DemoImages.xcassets */; }; 6331072C1A16D1F200C17BAE /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6331072A1A16D1F200C17BAE /* Images.xcassets */; }; 635E51A91DA82A4E002B70AB /* OTROMEMOTestModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 635E51A81DA82A4E002B70AB /* OTROMEMOTestModule.swift */; }; @@ -35,45 +32,442 @@ 63E353B21BB9D0CF005C54C3 /* PushSerializerTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63E353B11BB9D0CF005C54C3 /* PushSerializerTest.swift */; }; 63F0CAFB1E60C1B40045359C /* OTRYapViewTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63F0CAFA1E60C1B40045359C /* OTRYapViewTest.swift */; }; 63F614DC1BB214660083A06A /* ChatSecureModelTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 63F614DB1BB214660083A06A /* ChatSecureModelTest.swift */; }; - 8F56C3272EBE7F45BC8F925A /* OTRMessagesLoadingView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8F56C50436DA64774EBB16E3 /* OTRMessagesLoadingView.xib */; }; - 921236501FCD77B7009F97F0 /* OTRMessageUnknownSenderCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9212364D1FCD779C009F97F0 /* OTRMessageUnknownSenderCell.xib */; }; - 9224A5F3207E3BD800A044BF /* JoinRoomView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9224A5F2207E3BD800A044BF /* JoinRoomView.xib */; }; - 924F67C51EA5541C00528FB6 /* MigrationInfoHeaderView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 924F67C41EA5541C00528FB6 /* MigrationInfoHeaderView.xib */; }; - 924F68591EA7A31A00528FB6 /* MigratedBuddyHeaderView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 924F68581EA7A31A00528FB6 /* MigratedBuddyHeaderView.xib */; }; - 9251C3051F345DD5003ACE4A /* OTRRoomOccupants.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 9251C3041F345DD5003ACE4A /* OTRRoomOccupants.storyboard */; }; - 9251C34E1F35CC44003ACE4A /* ios-icon-font.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 9251C34C1F35CC44003ACE4A /* ios-icon-font.ttf */; }; - 9251C34F1F35CC44003ACE4A /* MaterialIcons-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 9251C34D1F35CC44003ACE4A /* MaterialIcons-Regular.ttf */; }; - 92614201200656CB00E8216F /* OTRMessageNewDeviceCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 926141FD2006563D00E8216F /* OTRMessageNewDeviceCell.xib */; }; - 92CC68BF1F42F0710006CDF8 /* OTRComposeGroup.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 92CC68BE1F42F0710006CDF8 /* OTRComposeGroup.storyboard */; }; - 92CC68F41F4309B50006CDF8 /* OTRComposeGroupBuddyCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 92CC68F21F43054E0006CDF8 /* OTRComposeGroupBuddyCell.xib */; }; - D91C866D1E4E7F07008BD763 /* ServerCapabilityTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D91C866A1E4E7EEA008BD763 /* ServerCapabilityTableViewCell.xib */; }; - D91E641C1DB179A00074B2D4 /* OMEMODeviceFingerprintCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D91E64191DB156E90074B2D4 /* OMEMODeviceFingerprintCell.xib */; }; + 7CD871CB705CA365E0755104 /* libPods-ChatSecureCorePods-ChatSecureTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5179DA87B83F57EEA9589733 /* libPods-ChatSecureCorePods-ChatSecureTests.a */; }; D91F9EFE1ED645F100AEA62C /* FileTransferIntegrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D91F9EFD1ED645F100AEA62C /* FileTransferIntegrationTests.swift */; }; - D9315CAE1BB600450077D2EE /* AddFriendsView.xib in Resources */ = {isa = PBXBuildFile; fileRef = D9315CAD1BB600450077D2EE /* AddFriendsView.xib */; }; D9365E7A1A1EB0050006434A /* torrc in Resources */ = {isa = PBXBuildFile; fileRef = D9365E791A1EB0050006434A /* torrc */; }; D936D6CB1E8B1B34003B1343 /* FileTransferTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D936D6CA1E8B1B34003B1343 /* FileTransferTests.swift */; }; - D937184E1EC13D7B00766D49 /* Purchase.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D937184D1EC13D7B00766D49 /* Purchase.storyboard */; }; - D93E50671FC3E9B400E0E624 /* OTRResources.bundle in Resources */ = {isa = PBXBuildFile; fileRef = D93027561BAA381F000CC975 /* OTRResources.bundle */; }; - D943AA441E6A0BB9007F3564 /* XMPPAccountCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D943AA411E6A0BA3007F3564 /* XMPPAccountCell.xib */; }; D95AD2291B684AE1007DEBC3 /* xmpp-server-list in Resources */ = {isa = PBXBuildFile; fileRef = D95AD2281B684AE1007DEBC3 /* xmpp-server-list */; }; - D967CA8E1E516B8D005FBB49 /* PushAccountTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D967CA8D1E516B8D005FBB49 /* PushAccountTableViewCell.xib */; }; - D97070921EEF382D004FEBDE /* MediaDownloadView.xib in Resources */ = {isa = PBXBuildFile; fileRef = D97070911EEF382D004FEBDE /* MediaDownloadView.xib */; }; D985BC7A1EBD32F700993D27 /* StoreKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D985BC791EBD32F700993D27 /* StoreKit.framework */; }; - D98BA36C1EDE47BB004475B6 /* HTMLPreviewView.xib in Resources */ = {isa = PBXBuildFile; fileRef = D98BA36B1EDE47BB004475B6 /* HTMLPreviewView.xib */; }; - D99F17861BAB932800604558 /* OTRImages.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D9AE3A231BA8D02800255537 /* OTRImages.xcassets */; }; - D99F17871BAB932C00604558 /* OTRCountryImages.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D9AE3A221BA8D02800255537 /* OTRCountryImages.xcassets */; }; - D99F17881BAB936100604558 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 633104D61A169EC800C17BAE /* Localizable.strings */; }; - D99F178A1BAB946800604558 /* Branding.plist in Resources */ = {isa = PBXBuildFile; fileRef = D99F17891BAB946800604558 /* Branding.plist */; }; - D99F178C1BAB947E00604558 /* Secrets.plist in Resources */ = {isa = PBXBuildFile; fileRef = D99F178B1BAB947E00604558 /* Secrets.plist */; }; - D99F17911BABA84600604558 /* XMPPServerInfoCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D9BE65451B6A08ED002D4136 /* XMPPServerInfoCell.xib */; }; - D99F17921BABA84600604558 /* OTRUsernameCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D9C6E69D1B7148EF00572273 /* OTRUsernameCell.xib */; }; - D99F17931BABA85D00604558 /* Onboarding.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D913A56C1B747B62006C5ACD /* Onboarding.storyboard */; }; D9B3EC221FA196CE00E63C7F /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9B3EC211FA196CE00E63C7F /* AppDelegate.swift */; }; - D9B9B1351DC7F3BF0007F5A7 /* UserInfoProfileCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D9B9B1321DC7F3AC0007F5A7 /* UserInfoProfileCell.xib */; }; - D9BC71DC1E53B31C007A3C4F /* SingleButtonTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D9BC71D91E53B2BF007A3C4F /* SingleButtonTableViewCell.xib */; }; - D9BC71E11E53B4A3007A3C4F /* TwoButtonTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D9BC71DE1E53B465007A3C4F /* TwoButtonTableViewCell.xib */; }; + D9B7EEFB235D47C400AD1EEA /* OTRKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D9B7EEF6235D477200AD1EEA /* OTRKit.framework */; }; + D9B7EEFC235D47CA00AD1EEA /* CPAProxy.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D9B7EEE9235D476700AD1EEA /* CPAProxy.framework */; }; + D9C52807235CB55C002B213A /* ChatSecureCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D9C52800235CB55C002B213A /* ChatSecureCore.framework */; }; + D9C529B2235CB580002B213A /* ChatSecureCore.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5280D235CB57F002B213A /* ChatSecureCore.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C529B3235CB580002B213A /* OTRAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5280F235CB57F002B213A /* OTRAppDelegate.m */; }; + D9C529B4235CB580002B213A /* Compatibility.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C52810235CB57F002B213A /* Compatibility.swift */; }; + D9C529B5235CB580002B213A /* OTRDoubleSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52812235CB57F002B213A /* OTRDoubleSettingViewController.m */; }; + D9C529B6235CB580002B213A /* OTRNewBuddyViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52813235CB57F002B213A /* OTRNewBuddyViewController.m */; }; + D9C529B7235CB580002B213A /* OTRChooseAccountViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52814235CB57F002B213A /* OTRChooseAccountViewController.m */; }; + D9C529B8235CB580002B213A /* OTRMessagesViewController+RoomOperations.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C52815235CB57F002B213A /* OTRMessagesViewController+RoomOperations.swift */; }; + D9C529B9235CB580002B213A /* AccountDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C52816235CB57F002B213A /* AccountDetailViewController.swift */; }; + D9C529BA235CB580002B213A /* PurchaseViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C52817235CB57F002B213A /* PurchaseViewController.swift */; }; + D9C529BB235CB580002B213A /* OTRInviteViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52818235CB57F002B213A /* OTRInviteViewController.m */; }; + D9C529BC235CB580002B213A /* OTRConversationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52819235CB57F002B213A /* OTRConversationViewController.m */; }; + D9C529BD235CB580002B213A /* OTRIntSettingViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5281A235CB57F002B213A /* OTRIntSettingViewController.h */; }; + D9C529BE235CB580002B213A /* OTRRoomOccupantsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C5281B235CB57F002B213A /* OTRRoomOccupantsViewController.swift */; }; + D9C529BF235CB580002B213A /* MaybeLaterViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C5281C235CB57F002B213A /* MaybeLaterViewController.swift */; }; + D9C529C0235CB580002B213A /* OTRQRCodeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5281D235CB57F002B213A /* OTRQRCodeViewController.m */; }; + D9C529C1235CB580002B213A /* OTRListSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5281E235CB57F002B213A /* OTRListSettingViewController.m */; }; + D9C529C2235CB580002B213A /* OTRCertificateDomainViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5281F235CB57F002B213A /* OTRCertificateDomainViewController.m */; }; + D9C529C3235CB580002B213A /* OTRDatabaseUnlockViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52820235CB57F002B213A /* OTRDatabaseUnlockViewController.m */; }; + D9C529C4235CB580002B213A /* OTRMessagesHoldTalkViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52821235CB57F002B213A /* OTRMessagesHoldTalkViewController.m */; }; + D9C529C5235CB580002B213A /* OTRCertificatesViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52822235CB57F002B213A /* OTRCertificatesViewController.h */; }; + D9C529C6235CB580002B213A /* OTRSettingDetailViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52823235CB57F002B213A /* OTRSettingDetailViewController.m */; }; + D9C529C7235CB580002B213A /* OTRBaseLoginViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52825235CB57F002B213A /* OTRBaseLoginViewController.m */; }; + D9C529C8235CB580002B213A /* OTRAccountMigrationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52826235CB580002B213A /* OTRAccountMigrationViewController.m */; }; + D9C529C9235CB580002B213A /* OTRXMPPCreateAccountHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52827235CB580002B213A /* OTRXMPPCreateAccountHandler.m */; }; + D9C529CA235CB580002B213A /* OTRExistingAccountViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52828235CB580002B213A /* OTRExistingAccountViewController.h */; }; + D9C529CB235CB580002B213A /* OTRXMPPServerListViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52829235CB580002B213A /* OTRXMPPServerListViewController.h */; }; + D9C529CC235CB580002B213A /* OTRXLFormCreator.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5282A235CB580002B213A /* OTRXLFormCreator.m */; }; + D9C529CD235CB580002B213A /* OTRXMPPLoginHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5282B235CB580002B213A /* OTRXMPPLoginHandler.m */; }; + D9C529CE235CB580002B213A /* OTRXMPPServerListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5282C235CB580002B213A /* OTRXMPPServerListViewController.m */; }; + D9C529CF235CB580002B213A /* OTRExistingAccountViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5282D235CB580002B213A /* OTRExistingAccountViewController.m */; }; + D9C529D0235CB580002B213A /* OTRLoginHandler.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5282E235CB580002B213A /* OTRLoginHandler.m */; }; + D9C529D1235CB580002B213A /* OTRMessagesViewController+SupplementaryViews.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C5282F235CB580002B213A /* OTRMessagesViewController+SupplementaryViews.swift */; }; + D9C529D2235CB580002B213A /* OTRDoubleSettingViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52830235CB580002B213A /* OTRDoubleSettingViewController.h */; }; + D9C529D3235CB580002B213A /* OTRMessagesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52831235CB580002B213A /* OTRMessagesViewController.m */; }; + D9C529D4235CB580002B213A /* OTRMessagesCollectionViewFlowLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C52832235CB580002B213A /* OTRMessagesCollectionViewFlowLayout.swift */; }; + D9C529D5235CB580002B213A /* OTRSettingsViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52833235CB580002B213A /* OTRSettingsViewController.m */; }; + D9C529D6235CB580002B213A /* OTRIntSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52834235CB580002B213A /* OTRIntSettingViewController.m */; }; + D9C529D7235CB580002B213A /* OTRLanguageListSettingViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52835235CB580002B213A /* OTRLanguageListSettingViewController.m */; }; + D9C529D8235CB580002B213A /* KeyManagementViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C52836235CB580002B213A /* KeyManagementViewController.swift */; }; + D9C529D9235CB580002B213A /* OTRComposeGroupViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C52837235CB580002B213A /* OTRComposeGroupViewController.swift */; }; + D9C529DA235CB580002B213A /* OTRQRCodeReaderDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52838235CB580002B213A /* OTRQRCodeReaderDelegate.m */; }; + D9C529DB235CB580002B213A /* OTRCertificatesViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52839235CB580002B213A /* OTRCertificatesViewController.m */; }; + D9C529DC235CB580002B213A /* OTRAddBuddyQRCodeViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5283B235CB580002B213A /* OTRAddBuddyQRCodeViewController.h */; }; + D9C529DD235CB580002B213A /* OTRWelcomeViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C5283C235CB580002B213A /* OTRWelcomeViewController.swift */; }; + D9C529DE235CB580002B213A /* ServerCapabilitiesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C5283D235CB580002B213A /* ServerCapabilitiesViewController.swift */; }; + D9C529DF235CB580002B213A /* OTRWelcomeAccountTableViewDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5283E235CB580002B213A /* OTRWelcomeAccountTableViewDelegate.h */; }; + D9C529E0235CB580002B213A /* OTRAddBuddyQRCodeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5283F235CB580002B213A /* OTRAddBuddyQRCodeViewController.m */; }; + D9C529E1235CB580002B213A /* EnablePushViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C52840235CB580002B213A /* EnablePushViewController.swift */; }; + D9C529E2235CB580002B213A /* OTRWelcomeAccountTableViewDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52841235CB580002B213A /* OTRWelcomeAccountTableViewDelegate.m */; }; + D9C529E3235CB580002B213A /* OTRCertificateDomainViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52842235CB580002B213A /* OTRCertificateDomainViewController.h */; }; + D9C529E4235CB580002B213A /* OTRComposeViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52843235CB580002B213A /* OTRComposeViewController.m */; }; + D9C529E5235CB580002B213A /* OTRLogListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C52844235CB580002B213A /* OTRLogListViewController.swift */; }; + D9C529E6235CB580002B213A /* OTRAppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C52845235CB580002B213A /* OTRAppDelegate.swift */; }; + D9C529E7235CB580002B213A /* OTRConstants.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52847235CB580002B213A /* OTRConstants.m */; }; + D9C529E8235CB580002B213A /* OTRColors.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52848235CB580002B213A /* OTRColors.m */; }; + D9C529E9235CB580002B213A /* OTRUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52849235CB580002B213A /* OTRUtilities.h */; }; + D9C529EA235CB580002B213A /* OTRChatDemo.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5284A235CB580002B213A /* OTRChatDemo.m */; }; + D9C529EB235CB580002B213A /* DefaultTheme.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C5284B235CB580002B213A /* DefaultTheme.swift */; }; + D9C529EC235CB580002B213A /* OTRPasswordGenerator.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5284C235CB580002B213A /* OTRPasswordGenerator.m */; }; + D9C529ED235CB580002B213A /* UIAlertController+ChatSecure.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C5284D235CB580002B213A /* UIAlertController+ChatSecure.swift */; }; + D9C529EE235CB580002B213A /* OTRLog.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5284E235CB580002B213A /* OTRLog.h */; }; + D9C529EF235CB580002B213A /* OTRColors.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5284F235CB580002B213A /* OTRColors.h */; }; + D9C529F0235CB580002B213A /* OTRServerDeprecation.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C52850235CB580002B213A /* OTRServerDeprecation.swift */; }; + D9C529F1235CB580002B213A /* OTRCertificatePinning.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52851235CB580002B213A /* OTRCertificatePinning.m */; }; + D9C529F2235CB580002B213A /* OTRXMPPError.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52852235CB580002B213A /* OTRXMPPError.m */; }; + D9C529F3235CB580002B213A /* OTRChatDemo.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52853235CB580002B213A /* OTRChatDemo.h */; }; + D9C529F4235CB580002B213A /* OTRUtilities.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52854235CB580002B213A /* OTRUtilities.m */; }; + D9C529F5235CB580002B213A /* OTRSecrets.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52855235CB580002B213A /* OTRSecrets.m */; }; + D9C529F6235CB580002B213A /* OTRImages.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52856235CB580002B213A /* OTRImages.m */; }; + D9C529F7235CB580002B213A /* OTRGroupAvatarGenerator.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C52857235CB580002B213A /* OTRGroupAvatarGenerator.swift */; }; + D9C529F8235CB580002B213A /* OTRViewSetting.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5285A235CB580002B213A /* OTRViewSetting.m */; }; + D9C529F9235CB580002B213A /* OTRIntSetting.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5285B235CB580002B213A /* OTRIntSetting.m */; }; + D9C529FA235CB580002B213A /* OTRBoolSetting.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5285C235CB580002B213A /* OTRBoolSetting.h */; }; + D9C529FB235CB580002B213A /* OTRShareSetting.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5285D235CB580002B213A /* OTRShareSetting.m */; }; + D9C529FC235CB580002B213A /* OTRSettingsGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5285E235CB580002B213A /* OTRSettingsGroup.m */; }; + D9C529FD235CB580002B213A /* OTRDonateSetting.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5285F235CB580002B213A /* OTRDonateSetting.m */; }; + D9C529FE235CB580002B213A /* OTRCertificateSetting.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52860235CB580002B213A /* OTRCertificateSetting.m */; }; + D9C529FF235CB580002B213A /* OTRListSetting.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52861235CB580002B213A /* OTRListSetting.m */; }; + D9C52A00235CB580002B213A /* OTRDoubleSetting.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52862235CB580002B213A /* OTRDoubleSetting.m */; }; + D9C52A01235CB580002B213A /* OTRListSettingValue.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52863235CB580002B213A /* OTRListSettingValue.h */; }; + D9C52A02235CB580002B213A /* OTRFeedbackSetting.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52864235CB580002B213A /* OTRFeedbackSetting.h */; }; + D9C52A03235CB580002B213A /* OTRBoolSetting.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52865235CB580002B213A /* OTRBoolSetting.m */; }; + D9C52A04235CB580002B213A /* OTRIntSetting.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52866235CB580002B213A /* OTRIntSetting.h */; }; + D9C52A05235CB580002B213A /* OTRValueSetting.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52867235CB580002B213A /* OTRValueSetting.m */; }; + D9C52A06235CB580002B213A /* OTRDonateSetting.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52868235CB580002B213A /* OTRDonateSetting.h */; }; + D9C52A07235CB580002B213A /* OTRDoubleSetting.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52869235CB580002B213A /* OTRDoubleSetting.h */; }; + D9C52A08235CB580002B213A /* OTRSetting.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5286A235CB580002B213A /* OTRSetting.m */; }; + D9C52A09235CB580002B213A /* OTRLanguageSetting.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5286B235CB580002B213A /* OTRLanguageSetting.m */; }; + D9C52A0A235CB580002B213A /* OTRCertificateSetting.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5286C235CB580002B213A /* OTRCertificateSetting.h */; }; + D9C52A0B235CB580002B213A /* OTRListSettingValue.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5286D235CB580002B213A /* OTRListSettingValue.m */; }; + D9C52A0C235CB580002B213A /* OTRFeedbackSetting.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5286E235CB580002B213A /* OTRFeedbackSetting.m */; }; + D9C52A0D235CB580002B213A /* OTRHTMLItem.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52870235CB580002B213A /* OTRHTMLItem.m */; }; + D9C52A0E235CB580002B213A /* OTRTextItem.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52871235CB580002B213A /* OTRTextItem.h */; }; + D9C52A0F235CB580002B213A /* PushContainers.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C52872235CB580002B213A /* PushContainers.swift */; }; + D9C52A10235CB580002B213A /* OTRXMPPPresenceSubscriptionRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52873235CB580002B213A /* OTRXMPPPresenceSubscriptionRequest.m */; }; + D9C52A11235CB580002B213A /* OTRStreamManagementStorageObject.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52874235CB580002B213A /* OTRStreamManagementStorageObject.h */; }; + D9C52A12235CB580002B213A /* OTRMediaItem.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52875235CB580002B213A /* OTRMediaItem.m */; }; + D9C52A13235CB580002B213A /* OMEMODevice.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52877235CB580002B213A /* OMEMODevice.m */; }; + D9C52A14235CB580002B213A /* OMEMODevice.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C52878235CB580002B213A /* OMEMODevice.swift */; }; + D9C52A15235CB580002B213A /* OTRYapMessageSendAction.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C52879235CB580002B213A /* OTRYapMessageSendAction.swift */; }; + D9C52A16235CB580002B213A /* OTRMessage+JSQMessageData.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5287A235CB580002B213A /* OTRMessage+JSQMessageData.h */; }; + D9C52A17235CB580002B213A /* PushMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C5287B235CB580002B213A /* PushMessage.swift */; }; + D9C52A18235CB580002B213A /* OTRMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5287C235CB580002B213A /* OTRMessage.m */; }; + D9C52A19235CB580002B213A /* OTRYapMessageSendAction.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5287D235CB580002B213A /* OTRYapMessageSendAction.m */; }; + D9C52A1A235CB580002B213A /* OTRXMPPRoomOccupant.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C5287E235CB580002B213A /* OTRXMPPRoomOccupant.swift */; }; + D9C52A1B235CB580002B213A /* OTRXMPPBuddy.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5287F235CB580002B213A /* OTRXMPPBuddy.m */; }; + D9C52A1C235CB580002B213A /* OTRDownloadMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C52880235CB580002B213A /* OTRDownloadMessage.swift */; }; + D9C52A1D235CB580002B213A /* OTRFileItem.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52881235CB580002B213A /* OTRFileItem.h */; }; + D9C52A1E235CB580002B213A /* OTRAudioItem.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52882235CB580002B213A /* OTRAudioItem.m */; }; + D9C52A1F235CB581002B213A /* BuddySubscriptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C52883235CB580002B213A /* BuddySubscriptions.swift */; }; + D9C52A20235CB581002B213A /* OTRVideoItem.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52884235CB580002B213A /* OTRVideoItem.m */; }; + D9C52A21235CB581002B213A /* OTRXMPPRoomMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C52885235CB580002B213A /* OTRXMPPRoomMessage.swift */; }; + D9C52A22235CB581002B213A /* OTRTextItem.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52886235CB580002B213A /* OTRTextItem.m */; }; + D9C52A23235CB581002B213A /* OTRHTMLItem.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52887235CB580002B213A /* OTRHTMLItem.h */; }; + D9C52A24235CB581002B213A /* OTROutgoingMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52888235CB580002B213A /* OTROutgoingMessage.m */; }; + D9C52A25235CB581002B213A /* OTRBuddy.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52889235CB580002B213A /* OTRBuddy.m */; }; + D9C52A26235CB581002B213A /* OTRMessageEncryptionInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5288A235CB580002B213A /* OTRMessageEncryptionInfo.m */; }; + D9C52A27235CB581002B213A /* OTRAccount.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5288C235CB580002B213A /* OTRAccount.m */; }; + D9C52A28235CB581002B213A /* OTRXMPPAccount+Migration.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C5288D235CB580002B213A /* OTRXMPPAccount+Migration.swift */; }; + D9C52A29235CB581002B213A /* OTRXMPPTorAccount.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5288E235CB580002B213A /* OTRXMPPTorAccount.h */; }; + D9C52A2A235CB581002B213A /* OTRXMPPTorAccount.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5288F235CB580002B213A /* OTRXMPPTorAccount.m */; }; + D9C52A2B235CB581002B213A /* OTRXMPPAccount.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52890235CB580002B213A /* OTRXMPPAccount.m */; }; + D9C52A2C235CB581002B213A /* Account.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C52891235CB580002B213A /* Account.swift */; }; + D9C52A2D235CB581002B213A /* OTRStreamManagementStorageObject.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52892235CB580002B213A /* OTRStreamManagementStorageObject.m */; }; + D9C52A2E235CB581002B213A /* OTRXMPPPresenceSubscriptionRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52893235CB580002B213A /* OTRXMPPPresenceSubscriptionRequest.h */; }; + D9C52A2F235CB581002B213A /* BuddyActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C52895235CB580002B213A /* BuddyActions.swift */; }; + D9C52A30235CB581002B213A /* OTRIncomingMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52896235CB580002B213A /* OTRIncomingMessage.m */; }; + D9C52A31235CB581002B213A /* OTRDownloadMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52897235CB580002B213A /* OTRDownloadMessage.m */; }; + D9C52A32235CB581002B213A /* OTRMessage+JSQMessageData.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52898235CB580002B213A /* OTRMessage+JSQMessageData.m */; }; + D9C52A33235CB581002B213A /* OTRMediaItem+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52899235CB580002B213A /* OTRMediaItem+Private.h */; }; + D9C52A34235CB581002B213A /* OTRImageItem.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5289A235CB580002B213A /* OTRImageItem.m */; }; + D9C52A35235CB581002B213A /* OTRXMPPRoom.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C5289B235CB580002B213A /* OTRXMPPRoom.swift */; }; + D9C52A36235CB581002B213A /* OTRYapDatabaseObject.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5289C235CB580002B213A /* OTRYapDatabaseObject.m */; }; + D9C52A37235CB581002B213A /* OTRSignalSession.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5289E235CB580002B213A /* OTRSignalSession.m */; }; + D9C52A38235CB581002B213A /* OTRSignalObject.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5289F235CB580002B213A /* OTRSignalObject.m */; }; + D9C52A39235CB581002B213A /* OTRSignalSignedPreKey.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C528A0235CB580002B213A /* OTRSignalSignedPreKey.m */; }; + D9C52A3A235CB581002B213A /* OTRAccountSignalIdentity.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C528A1235CB580002B213A /* OTRAccountSignalIdentity.m */; }; + D9C52A3B235CB581002B213A /* OTRSignalPreKey.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C528A2235CB580002B213A /* OTRSignalPreKey.m */; }; + D9C52A3C235CB581002B213A /* OTRSignalSenderKey.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C528A3235CB580002B213A /* OTRSignalSenderKey.m */; }; + D9C52A3D235CB581002B213A /* SecondaryIndexes.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C528A4235CB580002B213A /* SecondaryIndexes.swift */; }; + D9C52A3E235CB581002B213A /* OTRBaseMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C528A5235CB580002B213A /* OTRBaseMessage.m */; }; + D9C52A3F235CB581002B213A /* OTRFileItem.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C528A6235CB580002B213A /* OTRFileItem.m */; }; + D9C52A40235CB581002B213A /* ChatSecure.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = D9C528A8235CB580002B213A /* ChatSecure.xcdatamodeld */; }; + D9C52A41235CB581002B213A /* OTRDomainCellInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C528AC235CB580002B213A /* OTRDomainCellInfo.m */; }; + D9C52A42235CB581002B213A /* MessagesViewControllerState.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C528AD235CB580002B213A /* MessagesViewControllerState.swift */; }; + D9C52A43235CB581002B213A /* OTRQRCodeActivity.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C528AE235CB580002B213A /* OTRQRCodeActivity.m */; }; + D9C52A44235CB581002B213A /* ServerCapabilityInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C528AF235CB580002B213A /* ServerCapabilityInfo.swift */; }; + D9C52A45235CB581002B213A /* OTRXMPPServerInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C528B0235CB580002B213A /* OTRXMPPServerInfo.m */; }; + D9C52A46235CB581002B213A /* OTRToastOptions.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C528B1235CB580002B213A /* OTRToastOptions.h */; }; + D9C52A47235CB581002B213A /* OTROpenInFacebookActivity.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C528B2235CB580002B213A /* OTROpenInFacebookActivity.h */; }; + D9C52A48235CB581002B213A /* OTROpenInTwitterActivity.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C528B3235CB580002B213A /* OTROpenInTwitterActivity.h */; }; + D9C52A49235CB581002B213A /* OTRActivityItemProvider.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C528B4235CB580002B213A /* OTRActivityItemProvider.m */; }; + D9C52A4A235CB581002B213A /* OTRBuddyCache.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C528B5235CB580002B213A /* OTRBuddyCache.m */; }; + D9C52A4B235CB581002B213A /* OTRDomainCellInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C528B6235CB580002B213A /* OTRDomainCellInfo.h */; }; + D9C52A4C235CB581002B213A /* OTROpenInTwitterActivity.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C528B7235CB580002B213A /* OTROpenInTwitterActivity.m */; }; + D9C52A4D235CB581002B213A /* OTROpenInFacebookActivity.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C528B8235CB580002B213A /* OTROpenInFacebookActivity.m */; }; + D9C52A4E235CB581002B213A /* OTRToastOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C528B9235CB580002B213A /* OTRToastOptions.m */; }; + D9C52A4F235CB581002B213A /* PushStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C528BB235CB580002B213A /* PushStorage.swift */; }; + D9C52A50235CB581002B213A /* OTRDatabaseManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C528BC235CB580002B213A /* OTRDatabaseManager.m */; }; + D9C52A51235CB581002B213A /* FileTransferManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C528BD235CB580002B213A /* FileTransferManager.swift */; }; + D9C52A52235CB581002B213A /* OTRXMPPChangeAvatar.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C528BE235CB580002B213A /* OTRXMPPChangeAvatar.swift */; }; + D9C52A53235CB581002B213A /* OTRAudioPlaybackController.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C528BF235CB580002B213A /* OTRAudioPlaybackController.h */; }; + D9C52A54235CB581002B213A /* OTROMEMOStorageManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C528C0235CB580002B213A /* OTROMEMOStorageManager.swift */; }; + D9C52A55235CB581002B213A /* PushDeserializer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C528C1235CB580002B213A /* PushDeserializer.swift */; }; + D9C52A56235CB581002B213A /* OTRAccountMigrator.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C528C2235CB580002B213A /* OTRAccountMigrator.m */; }; + D9C52A57235CB581002B213A /* PushController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C528C3235CB580002B213A /* PushController.swift */; }; + D9C52A59235CB581002B213A /* OTRAudioSessionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C528C5235CB580002B213A /* OTRAudioSessionManager.h */; }; + D9C52A5A235CB581002B213A /* OTRDatabaseView.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C528C6235CB580002B213A /* OTRDatabaseView.m */; }; + D9C52A5B235CB581002B213A /* OTRProtocolManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C528C7235CB580002B213A /* OTRProtocolManager.m */; }; + D9C52A5C235CB581002B213A /* OTRAttachmentPicker.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C528C8235CB580002B213A /* OTRAttachmentPicker.m */; }; + D9C52A5D235CB581002B213A /* OTRXMPPChangePasswordManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C528C9235CB580002B213A /* OTRXMPPChangePasswordManager.swift */; }; + D9C52A5E235CB581002B213A /* OTRMediaFileManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C528CA235CB580002B213A /* OTRMediaFileManager.m */; }; + D9C52A5F235CB581002B213A /* OTROMEMOSignalCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C528CB235CB580002B213A /* OTROMEMOSignalCoordinator.swift */; }; + D9C52A60235CB581002B213A /* YapDatabaseConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C528CC235CB580002B213A /* YapDatabaseConstants.swift */; }; + D9C52A61235CB581002B213A /* OTRTorManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C528CD235CB580002B213A /* OTRTorManager.m */; }; + D9C52A62235CB581002B213A /* OTRSplitViewCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C528CE235CB580002B213A /* OTRSplitViewCoordinator.swift */; }; + D9C52A63235CB581002B213A /* OTRXMPPMessageStatusModule.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C528CF235CB580002B213A /* OTRXMPPMessageStatusModule.swift */; }; + D9C52A64235CB581002B213A /* ShareController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C528D0235CB580002B213A /* ShareController.swift */; }; + D9C52A65235CB581002B213A /* MessageQueueHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C528D1235CB580002B213A /* MessageQueueHandler.swift */; }; + D9C52A66235CB581002B213A /* OTRYapViewHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C528D2235CB580002B213A /* OTRYapViewHandler.swift */; }; + D9C52A67235CB581002B213A /* OTRProtocolManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C528D3235CB580002B213A /* OTRProtocolManager.swift */; }; + D9C52A68235CB581002B213A /* OTRSignalEncryptionHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C528D4235CB580002B213A /* OTRSignalEncryptionHelper.swift */; }; + D9C52A69235CB581002B213A /* OTRXMPPManager_Private.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C528D6235CB580002B213A /* OTRXMPPManager_Private.h */; }; + D9C52A6A235CB581002B213A /* OTRXMPPRoomManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C528D7235CB580002B213A /* OTRXMPPRoomManager.m */; }; + D9C52A6B235CB581002B213A /* OTRXMPPTorManager.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C528D8235CB580002B213A /* OTRXMPPTorManager.h */; }; + D9C52A6C235CB581002B213A /* OTRXMPPBuddyTimers.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C528D9235CB580002B213A /* OTRXMPPBuddyTimers.m */; }; + D9C52A6D235CB581002B213A /* OTRXMPPBuddyManager.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C528DA235CB580002B213A /* OTRXMPPBuddyManager.h */; }; + D9C52A6E235CB581002B213A /* ProxyXMPPStream.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C528DB235CB580002B213A /* ProxyXMPPStream.m */; }; + D9C52A6F235CB581002B213A /* OTRStreamManagementYapStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C528DD235CB580002B213A /* OTRStreamManagementYapStorage.m */; }; + D9C52A70235CB581002B213A /* VCardStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C528DE235CB580002B213A /* VCardStorage.swift */; }; + D9C52A71235CB581002B213A /* MessageStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C528DF235CB580002B213A /* MessageStorage.swift */; }; + D9C52A72235CB581002B213A /* OTRStreamManagementYapStorage.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C528E0235CB580002B213A /* OTRStreamManagementYapStorage.h */; }; + D9C52A73235CB581002B213A /* RosterStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C528E1235CB580002B213A /* RosterStorage.swift */; }; + D9C52A74235CB581002B213A /* RoomStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C528E2235CB580002B213A /* RoomStorage.swift */; }; + D9C52A75235CB581002B213A /* OTRServerCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C528E3235CB580002B213A /* OTRServerCapabilities.m */; }; + D9C52A76235CB581002B213A /* OTRXMPPBuddyTimers.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C528E4235CB580002B213A /* OTRXMPPBuddyTimers.h */; }; + D9C52A77235CB581002B213A /* OTRXMPPTorManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C528E5235CB580002B213A /* OTRXMPPTorManager.m */; }; + D9C52A78235CB581002B213A /* OTRXMPPManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C528E6235CB580002B213A /* OTRXMPPManager.m */; }; + D9C52A79235CB581002B213A /* RoomManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C528E7235CB580002B213A /* RoomManager.swift */; }; + D9C52A7A235CB581002B213A /* XMPPManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C528E8235CB580002B213A /* XMPPManager.swift */; }; + D9C52A7B235CB581002B213A /* OTRXMPPBuddyManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C528E9235CB580002B213A /* OTRXMPPBuddyManager.m */; }; + D9C52A7C235CB581002B213A /* OTRStreamManagementDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C528EA235CB580002B213A /* OTRStreamManagementDelegate.swift */; }; + D9C52A7D235CB581002B213A /* ProxyXMPPStream.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C528EB235CB580002B213A /* ProxyXMPPStream.h */; }; + D9C52A7E235CB581002B213A /* OTRMediaServer.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C528EC235CB580002B213A /* OTRMediaServer.m */; }; + D9C52A7F235CB581002B213A /* OTRYapExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C528ED235CB580002B213A /* OTRYapExtensions.swift */; }; + D9C52A80235CB581002B213A /* OTRSignalStorageManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C528EE235CB580002B213A /* OTRSignalStorageManager.swift */; }; + D9C52A81235CB581002B213A /* OTRSettingsManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C528EF235CB580002B213A /* OTRSettingsManager.m */; }; + D9C52A82235CB581002B213A /* OTRAudioPlaybackController.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C528F0235CB580002B213A /* OTRAudioPlaybackController.m */; }; + D9C52A83235CB581002B213A /* Errors.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C528F1235CB580002B213A /* Errors.swift */; }; + D9C52A84235CB581002B213A /* OTRAudioSessionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C528F2235CB580002B213A /* OTRAudioSessionManager.m */; }; + D9C52A85235CB581002B213A /* OTREncryptionManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C528F3235CB580002B213A /* OTREncryptionManager.m */; }; + D9C52A87235CB581002B213A /* PushSerializer.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C528F5235CB580002B213A /* PushSerializer.swift */; }; + D9C52A88235CB581002B213A /* YapDatabase+ChatSecure.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C528F6235CB580002B213A /* YapDatabase+ChatSecure.swift */; }; + D9C52A89235CB581002B213A /* OTRAccountsManager.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C528F7235CB580002B213A /* OTRAccountsManager.m */; }; + D9C52A8A235CB581002B213A /* YapDatabaseTransaction+ChatSecure.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C528F8235CB580002B213A /* YapDatabaseTransaction+ChatSecure.swift */; }; + D9C52A8B235CB581002B213A /* ServerCheck.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C528F9235CB580002B213A /* ServerCheck.swift */; }; + D9C52A8C235CB581002B213A /* OTRTorManager.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C528FA235CB580002B213A /* OTRTorManager.h */; }; + D9C52A8D235CB581002B213A /* OTRAccountSignalEncryptionManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C528FB235CB580002B213A /* OTRAccountSignalEncryptionManager.swift */; }; + D9C52A8E235CB581002B213A /* OTRAccountDatabaseCount.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C528FC235CB580002B213A /* OTRAccountDatabaseCount.swift */; }; + D9C52A8F235CB581002B213A /* OTRCircleButtonView.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C528FE235CB580002B213A /* OTRCircleButtonView.m */; }; + D9C52A90235CB581002B213A /* OTRAccountTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52900235CB580002B213A /* OTRAccountTableViewCell.m */; }; + D9C52A91235CB581002B213A /* XMPPAccountCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C52901235CB580002B213A /* XMPPAccountCell.swift */; }; + D9C52A92235CB581002B213A /* SingleButtonTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C52902235CB580002B213A /* SingleButtonTableViewCell.swift */; }; + D9C52A93235CB581002B213A /* MediaDownloadView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C52903235CB580002B213A /* MediaDownloadView.swift */; }; + D9C52A94235CB581002B213A /* HTMLPreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C52904235CB580002B213A /* HTMLPreviewView.swift */; }; + D9C52A95235CB581002B213A /* OTRConversationCell.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52905235CB580002B213A /* OTRConversationCell.h */; }; + D9C52A96235CB581002B213A /* OTRBuddyImageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52906235CB580002B213A /* OTRBuddyImageCell.m */; }; + D9C52A97235CB581002B213A /* OTRSettingTableViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52907235CB580002B213A /* OTRSettingTableViewCell.h */; }; + D9C52A98235CB581002B213A /* XMPPServerInfoCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52908235CB580002B213A /* XMPPServerInfoCell.m */; }; + D9C52A99235CB581002B213A /* OTRStatusMessageCell.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52909235CB580002B213A /* OTRStatusMessageCell.h */; }; + D9C52A9A235CB581002B213A /* OTRInLineTextEditTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5290A235CB580002B213A /* OTRInLineTextEditTableViewCell.m */; }; + D9C52A9B235CB581002B213A /* OTRAccountTableViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5290B235CB580002B213A /* OTRAccountTableViewCell.h */; }; + D9C52A9C235CB581002B213A /* UserInfoProfileCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C5290C235CB580002B213A /* UserInfoProfileCell.swift */; }; + D9C52A9D235CB581002B213A /* OTRUsernameCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C5290D235CB580002B213A /* OTRUsernameCell.swift */; }; + D9C52A9E235CB581002B213A /* OTRBuddyInfoCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5290E235CB580002B213A /* OTRBuddyInfoCell.m */; }; + D9C52A9F235CB581002B213A /* OTRComposeGroupBuddyCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C5290F235CB580002B213A /* OTRComposeGroupBuddyCell.swift */; }; + D9C52AA0235CB581002B213A /* OTRConversationCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52910235CB580002B213A /* OTRConversationCell.m */; }; + D9C52AA1235CB581002B213A /* OTRMessageNewDeviceCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C52911235CB580002B213A /* OTRMessageNewDeviceCell.swift */; }; + D9C52AA2235CB581002B213A /* TwoButtonTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C52912235CB580002B213A /* TwoButtonTableViewCell.swift */; }; + D9C52AA3235CB581002B213A /* ServerCapabilityTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C52913235CB580002B213A /* ServerCapabilityTableViewCell.swift */; }; + D9C52AA4235CB581002B213A /* OMEMODeviceFingerprintCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C52914235CB580002B213A /* OMEMODeviceFingerprintCell.swift */; }; + D9C52AA5235CB581002B213A /* OTRStatusMessageCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52915235CB580002B213A /* OTRStatusMessageCell.m */; }; + D9C52AA6235CB581002B213A /* OTRSettingTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52916235CB580002B213A /* OTRSettingTableViewCell.m */; }; + D9C52AA7235CB581002B213A /* XMPPServerInfoCell.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52917235CB580002B213A /* XMPPServerInfoCell.h */; }; + D9C52AA8235CB581002B213A /* OTRMessageUnknownSenderCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C52918235CB580002B213A /* OTRMessageUnknownSenderCell.swift */; }; + D9C52AA9235CB581002B213A /* PushAccountTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C52919235CB580002B213A /* PushAccountTableViewCell.swift */; }; + D9C52AAA235CB581002B213A /* OTRInLineTextEditTableViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5291A235CB580002B213A /* OTRInLineTextEditTableViewCell.h */; }; + D9C52AAB235CB581002B213A /* OTRBuddyInfoCheckableCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C5291B235CB580002B213A /* OTRBuddyInfoCheckableCell.swift */; }; + D9C52AAC235CB581002B213A /* OTRBuddyApprovalCell.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5291C235CB580002B213A /* OTRBuddyApprovalCell.m */; }; + D9C52AAD235CB581002B213A /* OTRComposingImageView.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5291D235CB580002B213A /* OTRComposingImageView.m */; }; + D9C52AAE235CB581002B213A /* OTRLockButton.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5291E235CB580002B213A /* OTRLockButton.m */; }; + D9C52AAF235CB581002B213A /* OTRButtonView.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5291F235CB580002B213A /* OTRButtonView.h */; }; + D9C52AB0235CB581002B213A /* OTRCircleView.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52920235CB580002B213A /* OTRCircleView.h */; }; + D9C52AB1235CB581002B213A /* OTRSocialButtonsView.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52921235CB580002B213A /* OTRSocialButtonsView.m */; }; + D9C52AB2235CB581002B213A /* OTRPlayView.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52922235CB580002B213A /* OTRPlayView.m */; }; + D9C52AB3235CB581002B213A /* OTRHoldToTalkView.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52923235CB580002B213A /* OTRHoldToTalkView.m */; }; + D9C52AB4235CB581002B213A /* OTRTouchAndHoldGestureRecognizer.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52924235CB580002B213A /* OTRTouchAndHoldGestureRecognizer.m */; }; + D9C52AB5235CB581002B213A /* MigrationInfoHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C52925235CB580002B213A /* MigrationInfoHeaderView.swift */; }; + D9C52AB6235CB581002B213A /* OTRRememberPasswordView.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52926235CB580002B213A /* OTRRememberPasswordView.m */; }; + D9C52AB7235CB581002B213A /* OTRColorFadingDotView.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52927235CB580002B213A /* OTRColorFadingDotView.m */; }; + D9C52AB8235CB581002B213A /* OTRPlayPauseProgressView.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52928235CB580002B213A /* OTRPlayPauseProgressView.h */; }; + D9C52AB9235CB581002B213A /* OTRAudioTrashView.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52929235CB580002B213A /* OTRAudioTrashView.h */; }; + D9C52ABA235CB581002B213A /* JoinRoomView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C5292A235CB580002B213A /* JoinRoomView.swift */; }; + D9C52ABB235CB581002B213A /* OTRPauseView.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5292B235CB580002B213A /* OTRPauseView.h */; }; + D9C52ABC235CB581002B213A /* OTRAudioControlsView.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5292C235CB580002B213A /* OTRAudioControlsView.h */; }; + D9C52ABD235CB581002B213A /* OTRLockButton.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5292D235CB580002B213A /* OTRLockButton.h */; }; + D9C52ABE235CB581002B213A /* OTRButtonView.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5292E235CB580002B213A /* OTRButtonView.m */; }; + D9C52ABF235CB581002B213A /* OTRComposingImageView.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5292F235CB580002B213A /* OTRComposingImageView.h */; }; + D9C52AC0235CB581002B213A /* OTRCircleButtonView.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52930235CB580002B213A /* OTRCircleButtonView.h */; }; + D9C52AC1235CB581002B213A /* OTRTitleSubtitleView.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52931235CB580002B213A /* OTRTitleSubtitleView.m */; }; + D9C52AC2235CB581002B213A /* OTRCircleView.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52932235CB580002B213A /* OTRCircleView.m */; }; + D9C52AC3235CB581002B213A /* OTRColorFadingDotView.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52933235CB580002B213A /* OTRColorFadingDotView.h */; }; + D9C52AC4235CB581002B213A /* OTRRememberPasswordView.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52934235CB580002B213A /* OTRRememberPasswordView.h */; }; + D9C52AC5235CB581002B213A /* OTRTouchAndHoldGestureRecognizer.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52935235CB580002B213A /* OTRTouchAndHoldGestureRecognizer.h */; }; + D9C52AC6235CB581002B213A /* OTRHoldToTalkView.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52936235CB580002B213A /* OTRHoldToTalkView.h */; }; + D9C52AC7235CB581002B213A /* OTRPlayView.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52937235CB580002B213A /* OTRPlayView.h */; }; + D9C52AC8235CB581002B213A /* OTRSocialButtonsView.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52938235CB580002B213A /* OTRSocialButtonsView.h */; }; + D9C52AC9235CB581002B213A /* AddFriendsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C52939235CB580002B213A /* AddFriendsView.swift */; }; + D9C52ACA235CB581002B213A /* OTRPauseView.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5293A235CB580002B213A /* OTRPauseView.m */; }; + D9C52ACB235CB581002B213A /* OTRAudioControlsView.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5293B235CB580002B213A /* OTRAudioControlsView.m */; }; + D9C52ACC235CB581002B213A /* OTRAudioTrashView.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5293C235CB580002B213A /* OTRAudioTrashView.m */; }; + D9C52ACD235CB581002B213A /* OTRVerticalStackView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C5293D235CB580002B213A /* OTRVerticalStackView.swift */; }; + D9C52ACE235CB581002B213A /* OTRPlayPauseProgressView.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5293E235CB580002B213A /* OTRPlayPauseProgressView.m */; }; + D9C52ACF235CB581002B213A /* MigratedBuddyHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C5293F235CB580002B213A /* MigratedBuddyHeaderView.swift */; }; + D9C52AD0235CB581002B213A /* UIViewController+ChatSecure.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C52941235CB580002B213A /* UIViewController+ChatSecure.swift */; }; + D9C52AD1235CB581002B213A /* UIViewController+ChatSecure.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52942235CB580002B213A /* UIViewController+ChatSecure.h */; }; + D9C52AD2235CB581002B213A /* NSFileManager+ChatSecure.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52943235CB580002B213A /* NSFileManager+ChatSecure.h */; }; + D9C52AD3235CB581002B213A /* NSData+ChatSecure.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C52944235CB580002B213A /* NSData+ChatSecure.swift */; }; + D9C52AD4235CB581002B213A /* YapDatabaseViewConnection+ChatSecure.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52945235CB580002B213A /* YapDatabaseViewConnection+ChatSecure.m */; }; + D9C52AD5235CB581002B213A /* UIApplication+ChatSecure.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C52946235CB580002B213A /* UIApplication+ChatSecure.swift */; }; + D9C52AD6235CB581002B213A /* UITableView+ChatSecure.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52947235CB580002B213A /* UITableView+ChatSecure.h */; }; + D9C52AD7235CB581002B213A /* JSQMessagesCollectionViewCell+ChatSecure.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52948235CB580002B213A /* JSQMessagesCollectionViewCell+ChatSecure.m */; }; + D9C52AD8235CB581002B213A /* UIActivityViewController+ChatSecure.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52949235CB580002B213A /* UIActivityViewController+ChatSecure.m */; }; + D9C52AD9235CB581002B213A /* UIActivity+ChatSecure.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5294A235CB580002B213A /* UIActivity+ChatSecure.m */; }; + D9C52ADA235CB581002B213A /* NSFileManager+ChatSecure.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5294B235CB580002B213A /* NSFileManager+ChatSecure.m */; }; + D9C52ADB235CB581002B213A /* UIViewController+ChatSecure.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5294C235CB580002B213A /* UIViewController+ChatSecure.m */; }; + D9C52ADC235CB581002B213A /* UINavigationController+ChatSecure.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C5294D235CB580002B213A /* UINavigationController+ChatSecure.swift */; }; + D9C52ADD235CB581002B213A /* XMPPMessage+ChatSecure.swift in Sources */ = {isa = PBXBuildFile; fileRef = D9C5294E235CB580002B213A /* XMPPMessage+ChatSecure.swift */; }; + D9C52ADE235CB581002B213A /* NSURL+ChatSecure.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C5294F235CB580002B213A /* NSURL+ChatSecure.m */; }; + D9C52ADF235CB581002B213A /* UIImage+ChatSecure.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52950235CB580002B213A /* UIImage+ChatSecure.m */; }; + D9C52AE0235CB581002B213A /* UIActivity+ChatSecure.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52951235CB580002B213A /* UIActivity+ChatSecure.h */; }; + D9C52AE1235CB581002B213A /* NSString+ChatSecure.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52952235CB580002B213A /* NSString+ChatSecure.m */; }; + D9C52AE2235CB581002B213A /* JSQMessagesCollectionViewCell+ChatSecure.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52953235CB580002B213A /* JSQMessagesCollectionViewCell+ChatSecure.h */; }; + D9C52AE3235CB581002B213A /* UIActivityViewController+ChatSecure.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52954235CB580002B213A /* UIActivityViewController+ChatSecure.h */; }; + D9C52AE4235CB581002B213A /* UITableView+ChatSecure.m in Sources */ = {isa = PBXBuildFile; fileRef = D9C52955235CB580002B213A /* UITableView+ChatSecure.m */; }; + D9C52AE5235CB581002B213A /* OTRSignalPreKey.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52957235CB580002B213A /* OTRSignalPreKey.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52AE6235CB581002B213A /* OTRBuddyInfoCell.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52958235CB580002B213A /* OTRBuddyInfoCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52AE7235CB581002B213A /* OTRMessageEncryptionInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52959235CB580002B213A /* OTRMessageEncryptionInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52AE8235CB581002B213A /* OTRBuddyCache.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5295A235CB580002B213A /* OTRBuddyCache.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52AE9235CB581002B213A /* OTRBuddy.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5295B235CB580002B213A /* OTRBuddy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52AEA235CB581002B213A /* OTROutgoingMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5295C235CB580002B213A /* OTROutgoingMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52AEB235CB581002B213A /* RoomOccupantRole.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5295D235CB580002B213A /* RoomOccupantRole.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52AEC235CB581002B213A /* OTRServerCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5295E235CB580002B213A /* OTRServerCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52AED235CB581002B213A /* OTRActivityItemProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5295F235CB580002B213A /* OTRActivityItemProvider.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52AEE235CB581002B213A /* OTRSettingDetailViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52960235CB580002B213A /* OTRSettingDetailViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52AEF235CB581002B213A /* OTRSettingsViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52961235CB580002B213A /* OTRSettingsViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52AF0235CB581002B213A /* OTRIncomingMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52962235CB580002B213A /* OTRIncomingMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52AF1235CB581002B213A /* NSURL+ChatSecure.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52963235CB580002B213A /* NSURL+ChatSecure.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52AF2235CB581002B213A /* OTRMessagesViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52964235CB580002B213A /* OTRMessagesViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52AF3235CB581002B213A /* OTRSettingsManager.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52965235CB580002B213A /* OTRSettingsManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52AF4235CB581002B213A /* OTRTitleSubtitleView.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52966235CB580002B213A /* OTRTitleSubtitleView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52AF5235CB581002B213A /* OTRMediaServer.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52967235CB580002B213A /* OTRMediaServer.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52AF6235CB581002B213A /* OTRCertificatePinning.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52968235CB580002B213A /* OTRCertificatePinning.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52AF7235CB581002B213A /* OTRXMPPLoginHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52969235CB580002B213A /* OTRXMPPLoginHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52AF8235CB581002B213A /* OTRValueSetting.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5296A235CB580002B213A /* OTRValueSetting.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52AF9235CB581002B213A /* OTRXMPPManager.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5296B235CB580002B213A /* OTRXMPPManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52AFA235CB581002B213A /* OTRSignalSenderKey.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5296C235CB580002B213A /* OTRSignalSenderKey.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52AFB235CB581002B213A /* OTRQRCodeReaderDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5296D235CB580002B213A /* OTRQRCodeReaderDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52AFC235CB581002B213A /* OTRLanguageSetting.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5296E235CB580002B213A /* OTRLanguageSetting.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52AFD235CB581002B213A /* OTRXMPPAccount.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5296F235CB580002B213A /* OTRXMPPAccount.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52AFE235CB581002B213A /* OTRSetting.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52970235CB580002B213A /* OTRSetting.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52AFF235CB581002B213A /* OTRYapDatabaseObject.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52971235CB580002B213A /* OTRYapDatabaseObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B00235CB581002B213A /* OTREncryptionManager.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52972235CB580002B213A /* OTREncryptionManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B01235CB581002B213A /* OTRImageItem.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52973235CB580002B213A /* OTRImageItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B02235CB581002B213A /* OTRLanguageListSettingViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52974235CB580002B213A /* OTRLanguageListSettingViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B03235CB581002B213A /* OTRDownloadMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52975235CB580002B213A /* OTRDownloadMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B04235CB581002B213A /* OTRXMPPError.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52976235CB580002B213A /* OTRXMPPError.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B05235CB581002B213A /* OTRComposeViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52977235CB580002B213A /* OTRComposeViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B06235CB581002B213A /* OTRLoginHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52978235CB580002B213A /* OTRLoginHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B07235CB581002B213A /* NSString+ChatSecure.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52979235CB580002B213A /* NSString+ChatSecure.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B08235CB581002B213A /* OTRUserInfoProfile.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5297A235CB580002B213A /* OTRUserInfoProfile.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B09235CB581002B213A /* OTRImages.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5297B235CB580002B213A /* OTRImages.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B0B235CB582002B213A /* OTRBuddyApprovalCell.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5297D235CB580002B213A /* OTRBuddyApprovalCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B0C235CB582002B213A /* OTRBaseMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5297E235CB580002B213A /* OTRBaseMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B0D235CB582002B213A /* OTRAccountsManager.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5297F235CB580002B213A /* OTRAccountsManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B0E235CB582002B213A /* UIImage+ChatSecure.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52980235CB580002B213A /* UIImage+ChatSecure.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B0F235CB582002B213A /* AppTheme.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52981235CB580002B213A /* AppTheme.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B10235CB582002B213A /* OTRDatabaseManager.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52982235CB580002B213A /* OTRDatabaseManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B11235CB582002B213A /* OTRXMPPRoomManager.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52983235CB580002B213A /* OTRXMPPRoomManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B12235CB582002B213A /* OTRViewSetting.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52984235CB580002B213A /* OTRViewSetting.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B13235CB582002B213A /* OMEMODevice.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52985235CB580002B213A /* OMEMODevice.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B14235CB582002B213A /* OTRConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52986235CB580002B213A /* OTRConstants.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B15235CB582002B213A /* OTRAccount.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52987235CB580002B213A /* OTRAccount.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B16235CB582002B213A /* OTRBaseLoginViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52988235CB580002B213A /* OTRBaseLoginViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B17235CB582002B213A /* OTRAppDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52989235CB580002B213A /* OTRAppDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B18235CB582002B213A /* OTRMediaItem.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5298A235CB580002B213A /* OTRMediaItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B19235CB582002B213A /* OTRXMPPCreateAccountHandler.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5298B235CB580002B213A /* OTRXMPPCreateAccountHandler.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B1A235CB582002B213A /* OTRAccountMigrationViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5298C235CB580002B213A /* OTRAccountMigrationViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B1B235CB582002B213A /* OTRChooseAccountViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5298D235CB580002B213A /* OTRChooseAccountViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B1C235CB582002B213A /* OTRNewBuddyViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5298E235CB580002B213A /* OTRNewBuddyViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B1D235CB582002B213A /* OTRSettingsGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5298F235CB580002B213A /* OTRSettingsGroup.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B1E235CB582002B213A /* OTRShareSetting.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52990235CB580002B213A /* OTRShareSetting.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B1F235CB582002B213A /* OTRProtocolManager.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52991235CB580002B213A /* OTRProtocolManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B20235CB582002B213A /* OTRYapMessageSendAction.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52992235CB580002B213A /* OTRYapMessageSendAction.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B21235CB582002B213A /* OTRMessage.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52993235CB580002B213A /* OTRMessage.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B22235CB582002B213A /* OTRDatabaseView.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52994235CB580002B213A /* OTRDatabaseView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B23235CB582002B213A /* OTRQRCodeActivity.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52995235CB580002B213A /* OTRQRCodeActivity.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B24235CB582002B213A /* OTRListSetting.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52996235CB580002B213A /* OTRListSetting.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B25235CB582002B213A /* OTRSignalSignedPreKey.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52997235CB580002B213A /* OTRSignalSignedPreKey.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B26235CB582002B213A /* OTRProtocol.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52998235CB580002B213A /* OTRProtocol.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B27235CB582002B213A /* OTRBuddyImageCell.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C52999235CB580002B213A /* OTRBuddyImageCell.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B28235CB582002B213A /* OTRConversationViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5299A235CB580002B213A /* OTRConversationViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B29235CB582002B213A /* OTRAccountMigrator.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5299B235CB580002B213A /* OTRAccountMigrator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B2A235CB582002B213A /* YapDatabaseViewConnection+ChatSecure.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5299C235CB580002B213A /* YapDatabaseViewConnection+ChatSecure.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B2B235CB582002B213A /* OTRInviteViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5299D235CB580002B213A /* OTRInviteViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B2C235CB582002B213A /* OTRSignalObject.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5299E235CB580002B213A /* OTRSignalObject.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B2D235CB582002B213A /* OTRSignalSession.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C5299F235CB580002B213A /* OTRSignalSession.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B2E235CB582002B213A /* OTRvCard.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C529A0235CB580002B213A /* OTRvCard.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B2F235CB582002B213A /* OTRVideoItem.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C529A1235CB580002B213A /* OTRVideoItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B30235CB582002B213A /* OTRXLFormCreator.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C529A2235CB580002B213A /* OTRXLFormCreator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B31235CB582002B213A /* OTRMessagesHoldTalkViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C529A3235CB580002B213A /* OTRMessagesHoldTalkViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B32235CB582002B213A /* OTRAudioItem.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C529A4235CB580002B213A /* OTRAudioItem.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B33235CB582002B213A /* OTRDatabaseUnlockViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C529A5235CB580002B213A /* OTRDatabaseUnlockViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B34235CB582002B213A /* OTRPasswordGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C529A6235CB580002B213A /* OTRPasswordGenerator.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B35235CB582002B213A /* OTRThreadOwner.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C529A7235CB580002B213A /* OTRThreadOwner.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B36235CB582002B213A /* OTRListSettingViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C529A8235CB580002B213A /* OTRListSettingViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B37235CB582002B213A /* OTRQRCodeViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C529A9235CB580002B213A /* OTRQRCodeViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B38235CB582002B213A /* OTRXMPPBuddy.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C529AA235CB580002B213A /* OTRXMPPBuddy.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B39235CB582002B213A /* OTRAccountSignalIdentity.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C529AB235CB580002B213A /* OTRAccountSignalIdentity.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B3A235CB582002B213A /* OTRMediaFileManager.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C529AC235CB580002B213A /* OTRMediaFileManager.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B3B235CB582002B213A /* OTRAttachmentPicker.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C529AD235CB580002B213A /* OTRAttachmentPicker.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B3C235CB582002B213A /* OTRXMPPServerInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C529AE235CB580002B213A /* OTRXMPPServerInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + D9C52B3D235CB582002B213A /* ChatSecureCoreCompat-Swift.h in Headers */ = {isa = PBXBuildFile; fileRef = D9C529B0235CB580002B213A /* ChatSecureCoreCompat-Swift.h */; }; + D9C52B3F235CBC27002B213A /* ChatSecureCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D9C52800235CB55C002B213A /* ChatSecureCore.framework */; }; D9DEC34A1FABC9F900BF1F7C /* Settings.bundle in Resources */ = {isa = PBXBuildFile; fileRef = D9DEC3491FABC9F900BF1F7C /* Settings.bundle */; }; - DB6ED7303C69215971C9934B /* libPods-ChatSecureCorePods-ChatSecureTests.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 825F80066EC1363ED873BFC5 /* libPods-ChatSecureCorePods-ChatSecureTests.a */; }; + D9ECD08F2344626800ECE5F9 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D9ECD08E2344626800ECE5F9 /* LaunchScreen.storyboard */; }; + D9F5C2A8236F7F8200F14A16 /* Purchase.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D93EFA8D235971E2007474EC /* Purchase.storyboard */; }; + D9F5C2A9236F7F8200F14A16 /* OMEMODeviceFingerprintCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D93EFA7A23596BC9007474EC /* OMEMODeviceFingerprintCell.xib */; }; + D9F5C2AA236F7F8200F14A16 /* OTRComposeGroupBuddyCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D93EFA7723596BC9007474EC /* OTRComposeGroupBuddyCell.xib */; }; + D9F5C2AB236F7F8200F14A16 /* OTRMessageNewDeviceCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D93EFA7F23596BCA007474EC /* OTRMessageNewDeviceCell.xib */; }; + D9F5C2AC236F7F8200F14A16 /* OTRMessageUnknownSenderCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D93EFA7923596BC9007474EC /* OTRMessageUnknownSenderCell.xib */; }; + D9F5C2AD236F7F8200F14A16 /* PushAccountTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D93EFA7B23596BC9007474EC /* PushAccountTableViewCell.xib */; }; + D9F5C2AE236F7F8200F14A16 /* ServerCapabilityTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D93EFA7C23596BC9007474EC /* ServerCapabilityTableViewCell.xib */; }; + D9F5C2AF236F7F8200F14A16 /* SingleButtonTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D93EFA8023596BCA007474EC /* SingleButtonTableViewCell.xib */; }; + D9F5C2B0236F7F8200F14A16 /* TwoButtonTableViewCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D93EFA7D23596BCA007474EC /* TwoButtonTableViewCell.xib */; }; + D9F5C2B1236F7F8200F14A16 /* UserInfoProfileCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D93EFA7E23596BCA007474EC /* UserInfoProfileCell.xib */; }; + D9F5C2B2236F7F8200F14A16 /* XMPPAccountCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D93EFA7823596BC9007474EC /* XMPPAccountCell.xib */; }; + D9F5C2B3236F7F8200F14A16 /* ios-icon-font.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 9251C34C1F35CC44003ACE4A /* ios-icon-font.ttf */; }; + D9F5C2B4236F7F8200F14A16 /* MaterialIcons-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 9251C34D1F35CC44003ACE4A /* MaterialIcons-Regular.ttf */; }; + D9F5C2B5236F7F8200F14A16 /* MediaDownloadView.xib in Resources */ = {isa = PBXBuildFile; fileRef = D97070911EEF382D004FEBDE /* MediaDownloadView.xib */; }; + D9F5C2B6236F7F8200F14A16 /* HTMLPreviewView.xib in Resources */ = {isa = PBXBuildFile; fileRef = D98BA36B1EDE47BB004475B6 /* HTMLPreviewView.xib */; }; + D9F5C2B7236F7F8200F14A16 /* XMPPServerInfoCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D9BE65451B6A08ED002D4136 /* XMPPServerInfoCell.xib */; }; + D9F5C2B8236F7F8200F14A16 /* OTRUsernameCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = D9C6E69D1B7148EF00572273 /* OTRUsernameCell.xib */; }; + D9F5C2B9236F7F8200F14A16 /* Onboarding.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D913A56C1B747B62006C5ACD /* Onboarding.storyboard */; }; + D9F5C2BA236F7FA200F14A16 /* OTRCountryImages.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D9AE3A221BA8D02800255537 /* OTRCountryImages.xcassets */; }; + D9F5C2BB236F7FA200F14A16 /* OTRImages.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D9AE3A231BA8D02800255537 /* OTRImages.xcassets */; }; + D9F5C2BC236F7FA700F14A16 /* Branding.plist in Resources */ = {isa = PBXBuildFile; fileRef = D99F17891BAB946800604558 /* Branding.plist */; }; + D9F5C2BD236F7FA700F14A16 /* Secrets.plist in Resources */ = {isa = PBXBuildFile; fileRef = D99F178B1BAB947E00604558 /* Secrets.plist */; }; + D9F5C2BE236F7FA700F14A16 /* AddFriendsView.xib in Resources */ = {isa = PBXBuildFile; fileRef = D9315CAD1BB600450077D2EE /* AddFriendsView.xib */; }; + D9F5C2BF236F7FA700F14A16 /* MigrationInfoHeaderView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 924F67C41EA5541C00528FB6 /* MigrationInfoHeaderView.xib */; }; + D9F5C2C0236F7FA700F14A16 /* MigratedBuddyHeaderView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 924F68581EA7A31A00528FB6 /* MigratedBuddyHeaderView.xib */; }; + D9F5C2C1236F7FA700F14A16 /* OTRMessagesLoadingView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 8F56C50436DA64774EBB16E3 /* OTRMessagesLoadingView.xib */; }; + D9F5C2C2236F7FA700F14A16 /* OTRRoomOccupants.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 9251C3041F345DD5003ACE4A /* OTRRoomOccupants.storyboard */; }; + D9F5C2C3236F7FA700F14A16 /* OTRComposeGroup.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 92CC68BE1F42F0710006CDF8 /* OTRComposeGroup.storyboard */; }; + D9F5C2C4236F7FA700F14A16 /* JoinRoomView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 9224A5F2207E3BD800A044BF /* JoinRoomView.xib */; }; + FC71232B8C2603C869639700 /* libPods-ChatSecureCorePods-ChatSecureCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 83C35A70D105953D80691D31 /* libPods-ChatSecureCorePods-ChatSecureCore.a */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -84,62 +478,101 @@ remoteGlobalIDString = 6396AF991A169D54009F3E6C; remoteInfo = ChatSecure; }; - 6396AFB41A169D54009F3E6C /* PBXContainerItemProxy */ = { + D9B7EEE6235D476700AD1EEA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D9B7EEDF235D476700AD1EEA /* CPAProxy.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = D9C52B62235CEE08002B213A; + remoteInfo = "CPAProxy (macOS)"; + }; + D9B7EEE8235D476700AD1EEA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D9B7EEDF235D476700AD1EEA /* CPAProxy.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = D91D772A235CF5FF007D2A54; + remoteInfo = "CPAProxy (iOS)"; + }; + D9B7EEEA235D476700AD1EEA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D9B7EEDF235D476700AD1EEA /* CPAProxy.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = D97947B6235CFF4B000D86AE; + remoteInfo = "CPAProxy.bundle (macOS)"; + }; + D9B7EEEC235D476700AD1EEA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D9B7EEDF235D476700AD1EEA /* CPAProxy.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = D97947CD235D0005000D86AE; + remoteInfo = "CPAProxy.bundle (iOS)"; + }; + D9B7EEF3235D477200AD1EEA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D9B7EEEE235D477200AD1EEA /* OTRKit.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = D96A69CC235BB43E006FF925; + remoteInfo = "OTRKit (macOS)"; + }; + D9B7EEF5235D477200AD1EEA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D9B7EEEE235D477200AD1EEA /* OTRKit.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = D96A6A35235BB83B006FF925; + remoteInfo = "OTRKit (iOS)"; + }; + D9B7EEF7235D47A000AD1EEA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D9B7EEEE235D477200AD1EEA /* OTRKit.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = D96A6A11235BB83B006FF925; + remoteInfo = "OTRKit (iOS)"; + }; + D9B7EEF9235D47B100AD1EEA /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = D9B7EEDF235D476700AD1EEA /* CPAProxy.xcodeproj */; + proxyType = 1; + remoteGlobalIDString = D91D7704235CF5FF007D2A54; + remoteInfo = "CPAProxy (iOS)"; + }; + D9C52805235CB55C002B213A /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 6396AF921A169D54009F3E6C /* Project object */; proxyType = 1; - remoteGlobalIDString = 6396AF991A169D54009F3E6C; - remoteInfo = ChatSecure; + remoteGlobalIDString = D9C527FF235CB55C002B213A; + remoteInfo = ChatSecureCore; }; - D99F178F1BAB9CD400604558 /* PBXContainerItemProxy */ = { + D9C52B40235CBC3A002B213A /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 6396AF921A169D54009F3E6C /* Project object */; proxyType = 1; - remoteGlobalIDString = D93027551BAA381F000CC975; - remoteInfo = OTRResources; + remoteGlobalIDString = D9C527FF235CB55C002B213A; + remoteInfo = ChatSecureCore; }; /* End PBXContainerItemProxy section */ -/* Begin PBXCopyFilesBuildPhase section */ - D9227C481BA7952100B5E1D0 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - /* Begin PBXFileReference section */ + 02700BD14C69C0E5B88BB7B8 /* Pods-ChatSecureCorePods-ChatSecure.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ChatSecureCorePods-ChatSecure.release.xcconfig"; path = "Target Support Files/Pods-ChatSecureCorePods-ChatSecure/Pods-ChatSecureCorePods-ChatSecure.release.xcconfig"; sourceTree = ""; }; + 0787C95583715C56D30272CC /* Pods-ChatSecureCorePods-ChatSecureCore.macos_release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ChatSecureCorePods-ChatSecureCore.macos_release.xcconfig"; path = "Target Support Files/Pods-ChatSecureCorePods-ChatSecureCore/Pods-ChatSecureCorePods-ChatSecureCore.macos_release.xcconfig"; sourceTree = ""; }; + 0F10D8D68EF9105245CE0D9F /* Pods-ChatSecureCorePods-ChatSecureCore.release (mac).xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ChatSecureCorePods-ChatSecureCore.release (mac).xcconfig"; path = "Target Support Files/Pods-ChatSecureCorePods-ChatSecureCore/Pods-ChatSecureCorePods-ChatSecureCore.release (mac).xcconfig"; sourceTree = ""; }; + 1BB82A92ECB98785BADD286E /* Pods-ChatSecureCorePods-ChatSecureCore.ios_release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ChatSecureCorePods-ChatSecureCore.ios_release.xcconfig"; path = "Target Support Files/Pods-ChatSecureCorePods-ChatSecureCore/Pods-ChatSecureCorePods-ChatSecureCore.ios_release.xcconfig"; sourceTree = ""; }; + 1DF3B63791159A0338AFF0D0 /* Pods-ChatSecureCorePods-ChatSecure.macos_debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ChatSecureCorePods-ChatSecure.macos_debug.xcconfig"; path = "Target Support Files/Pods-ChatSecureCorePods-ChatSecure/Pods-ChatSecureCorePods-ChatSecure.macos_debug.xcconfig"; sourceTree = ""; }; + 1EB047809C85EF9C3AACEFCC /* Pods-ChatSecureCore.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ChatSecureCore.debug.xcconfig"; path = "Target Support Files/Pods-ChatSecureCore/Pods-ChatSecureCore.debug.xcconfig"; sourceTree = ""; }; + 242940F967DCFC191A55C19D /* Pods-ChatSecureCore-ChatSecure.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ChatSecureCore-ChatSecure.release.xcconfig"; path = "Target Support Files/Pods-ChatSecureCore-ChatSecure/Pods-ChatSecureCore-ChatSecure.release.xcconfig"; sourceTree = ""; }; + 2BA701560D538F2F5771BBCB /* libPods-ChatSecureCorePods-ChatSecure.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ChatSecureCorePods-ChatSecure.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 3096761ACDDAAF472A2FAFCE /* Pods-ChatSecure.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ChatSecure.debug.xcconfig"; path = "Target Support Files/Pods-ChatSecure/Pods-ChatSecure.debug.xcconfig"; sourceTree = ""; }; + 30CF60268F58900535B9B31A /* Pods-ChatSecureCorePods-ChatSecureTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ChatSecureCorePods-ChatSecureTests.release.xcconfig"; path = "Target Support Files/Pods-ChatSecureCorePods-ChatSecureTests/Pods-ChatSecureCorePods-ChatSecureTests.release.xcconfig"; sourceTree = ""; }; + 3E4338474FF3B540674FEC5F /* Pods-ChatSecureCore-ChatSecureTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ChatSecureCore-ChatSecureTests.release.xcconfig"; path = "Target Support Files/Pods-ChatSecureCore-ChatSecureTests/Pods-ChatSecureCore-ChatSecureTests.release.xcconfig"; sourceTree = ""; }; 46AAC6968EC686E61C8E8EA4 /* Pods_ChatSecureCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ChatSecureCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 63039E961B0D43FE007C9978 /* OTRXMPPServerListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRXMPPServerListViewController.h; sourceTree = ""; }; - 63039E971B0D43FE007C9978 /* OTRXMPPServerListViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRXMPPServerListViewController.m; sourceTree = ""; }; - 6308D1441CA20762002F5F30 /* Pods-ChatSecureCorePods-ChatSecure-acknowledgements.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "Pods-ChatSecureCorePods-ChatSecure-acknowledgements.plist"; path = "Pods/Target Support Files/Pods-ChatSecureCorePods-ChatSecure/Pods-ChatSecureCorePods-ChatSecure-acknowledgements.plist"; sourceTree = ""; }; - 6309E4D51D493B6E002CF8FC /* OTRAccountSignalEncryptionManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRAccountSignalEncryptionManager.swift; sourceTree = ""; }; - 631C79921E56846700B30CB4 /* NSData+ChatSecure.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSData+ChatSecure.swift"; sourceTree = ""; }; + 49ABA5011FCB27BD5F715BC4 /* Pods-ChatSecureCorePods-ChatSecureTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ChatSecureCorePods-ChatSecureTests.debug.xcconfig"; path = "Target Support Files/Pods-ChatSecureCorePods-ChatSecureTests/Pods-ChatSecureCorePods-ChatSecureTests.debug.xcconfig"; sourceTree = ""; }; + 4BD803A40662A0FD3DA93554 /* Pods-ChatSecureCorePods-ChatSecure.release (mac).xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ChatSecureCorePods-ChatSecure.release (mac).xcconfig"; path = "Target Support Files/Pods-ChatSecureCorePods-ChatSecure/Pods-ChatSecureCorePods-ChatSecure.release (mac).xcconfig"; sourceTree = ""; }; + 5179DA87B83F57EEA9589733 /* libPods-ChatSecureCorePods-ChatSecureTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ChatSecureCorePods-ChatSecureTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 51A79F83EAE1FC455A4FAA1B /* Pods-ChatSecureCore-ChatSecureTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ChatSecureCore-ChatSecureTests.debug.xcconfig"; path = "Target Support Files/Pods-ChatSecureCore-ChatSecureTests/Pods-ChatSecureCore-ChatSecureTests.debug.xcconfig"; sourceTree = ""; }; + 6009355D15BA89BBBF7D3537 /* Pods-ChatSecureCorePods-ChatSecureCore.macos_debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ChatSecureCorePods-ChatSecureCore.macos_debug.xcconfig"; path = "Target Support Files/Pods-ChatSecureCorePods-ChatSecureCore/Pods-ChatSecureCorePods-ChatSecureCore.macos_debug.xcconfig"; sourceTree = ""; }; 632157DC1E57D01A00738D4E /* SnapshotHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SnapshotHelper.swift; path = fastlane/SnapshotHelper.swift; sourceTree = SOURCE_ROOT; }; - 63232AC61E37F13C00D84CDF /* OTRAccountDatabaseCount.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRAccountDatabaseCount.swift; sourceTree = ""; }; 6323C6FD1E39547200D0FB42 /* OTRImageTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRImageTest.swift; sourceTree = ""; }; 6323C7001E396D3D00D0FB42 /* landscape.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = landscape.jpg; path = TestImages/landscape.jpg; sourceTree = ""; }; 6323C7011E396D3D00D0FB42 /* portrait.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = portrait.jpg; path = TestImages/portrait.jpg; sourceTree = ""; }; 6323C7021E396D3D00D0FB42 /* small.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = small.jpg; path = TestImages/small.jpg; sourceTree = ""; }; - 6325DD5F1E20390700C88944 /* OTRLogListViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRLogListViewController.swift; sourceTree = ""; }; - 6326D9AD1DC3D0F100D72403 /* OTRYapMessageSendAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRYapMessageSendAction.h; sourceTree = ""; }; - 6326D9AE1DC3D0F100D72403 /* OTRYapMessageSendAction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRYapMessageSendAction.m; sourceTree = ""; }; - 632AA7281D480BFF00F65733 /* OTRSignalSenderKey.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OTRSignalSenderKey.h; path = "Signal-Storage/OTRSignalSenderKey.h"; sourceTree = ""; }; - 632AA7291D480BFF00F65733 /* OTRSignalSenderKey.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OTRSignalSenderKey.m; path = "Signal-Storage/OTRSignalSenderKey.m"; sourceTree = ""; }; - 632AA72C1D4819BD00F65733 /* OTRSignalPreKey.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OTRSignalPreKey.h; path = "Signal-Storage/OTRSignalPreKey.h"; sourceTree = ""; }; - 632AA72D1D4819BD00F65733 /* OTRSignalPreKey.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OTRSignalPreKey.m; path = "Signal-Storage/OTRSignalPreKey.m"; sourceTree = ""; }; - 632AA7301D4819E000F65733 /* OTRSignalSignedPreKey.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OTRSignalSignedPreKey.h; path = "Signal-Storage/OTRSignalSignedPreKey.h"; sourceTree = ""; }; - 632AA7311D4819E000F65733 /* OTRSignalSignedPreKey.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OTRSignalSignedPreKey.m; path = "Signal-Storage/OTRSignalSignedPreKey.m"; sourceTree = ""; }; - 632AA7341D481A6300F65733 /* OTRSignalObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OTRSignalObject.h; path = "Signal-Storage/OTRSignalObject.h"; sourceTree = ""; }; - 632AA7351D481A6300F65733 /* OTRSignalObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OTRSignalObject.m; path = "Signal-Storage/OTRSignalObject.m"; sourceTree = ""; }; - 632AA7381D482A1A00F65733 /* OTRSignalSession.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OTRSignalSession.h; path = "Signal-Storage/OTRSignalSession.h"; sourceTree = ""; }; - 632AA7391D482A1A00F65733 /* OTRSignalSession.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OTRSignalSession.m; path = "Signal-Storage/OTRSignalSession.m"; sourceTree = ""; }; - 632BF03F1E3817A400C2D0C2 /* OTRXMPPChangeAvatar.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRXMPPChangeAvatar.swift; sourceTree = ""; }; 633104D51A169EC800C17BAE /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Base.lproj/Localizable.strings; sourceTree = ""; }; 633104D81A169F0E00C17BAE /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; }; 633104DA1A169FF900C17BAE /* ar */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ar; path = ar.lproj/Localizable.strings; sourceTree = ""; }; @@ -171,486 +604,498 @@ 633104F51A16A29B00C17BAE /* zh-Hans-CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans-CN"; path = "zh-Hans-CN.lproj/Localizable.strings"; sourceTree = ""; }; 633104F61A16A35500C17BAE /* nb-NO */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "nb-NO"; path = "nb-NO.lproj/Localizable.strings"; sourceTree = ""; }; 633104F71A16AACB00C17BAE /* zh-Hant-TW */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant-TW"; path = "zh-Hant-TW.lproj/Localizable.strings"; sourceTree = ""; }; - 633104FF1A16AEA800C17BAE /* OTRStrings.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = OTRStrings.h; path = Strings/OTRStrings.h; sourceTree = ""; }; - 633105021A16D1A300C17BAE /* NSURL+ChatSecure.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSURL+ChatSecure.h"; sourceTree = ""; }; - 633105031A16D1A300C17BAE /* NSURL+ChatSecure.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSURL+ChatSecure.m"; sourceTree = ""; }; - 633105061A16D1A300C17BAE /* UIActivity+ChatSecure.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIActivity+ChatSecure.h"; sourceTree = ""; }; - 633105071A16D1A300C17BAE /* UIActivity+ChatSecure.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIActivity+ChatSecure.m"; sourceTree = ""; }; - 633105081A16D1A300C17BAE /* UIActivityViewController+ChatSecure.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIActivityViewController+ChatSecure.h"; sourceTree = ""; }; - 633105091A16D1A300C17BAE /* UIActivityViewController+ChatSecure.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIActivityViewController+ChatSecure.m"; sourceTree = ""; }; - 6331050A1A16D1A300C17BAE /* UIImage+ChatSecure.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImage+ChatSecure.h"; sourceTree = ""; }; - 6331050B1A16D1A300C17BAE /* UIImage+ChatSecure.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImage+ChatSecure.m"; sourceTree = ""; }; - 6331050C1A16D1A300C17BAE /* UIViewController+ChatSecure.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIViewController+ChatSecure.h"; sourceTree = ""; }; - 6331050D1A16D1A300C17BAE /* UIViewController+ChatSecure.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIViewController+ChatSecure.m"; sourceTree = ""; }; - 6331050F1A16D1A300C17BAE /* OTRAccountsManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRAccountsManager.h; sourceTree = ""; }; - 633105101A16D1A300C17BAE /* OTRAccountsManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRAccountsManager.m; sourceTree = ""; }; - 633105131A16D1A300C17BAE /* OTRDatabaseManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRDatabaseManager.h; sourceTree = ""; }; - 633105141A16D1A300C17BAE /* OTRDatabaseManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRDatabaseManager.m; sourceTree = ""; }; - 633105151A16D1A300C17BAE /* OTRDatabaseView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRDatabaseView.h; sourceTree = ""; }; - 633105161A16D1A300C17BAE /* OTRDatabaseView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRDatabaseView.m; sourceTree = ""; }; - 633105171A16D1A300C17BAE /* OTREncryptionManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTREncryptionManager.h; sourceTree = ""; }; - 633105181A16D1A300C17BAE /* OTREncryptionManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTREncryptionManager.m; sourceTree = ""; }; - 6331051B1A16D1A300C17BAE /* OTRLanguageManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRLanguageManager.h; sourceTree = ""; }; - 6331051C1A16D1A300C17BAE /* OTRLanguageManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRLanguageManager.m; sourceTree = ""; }; - 6331051D1A16D1A300C17BAE /* OTROAuthRefresher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTROAuthRefresher.h; sourceTree = ""; }; - 6331051E1A16D1A300C17BAE /* OTROAuthRefresher.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTROAuthRefresher.m; sourceTree = ""; }; - 633105211A16D1A300C17BAE /* OTRProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRProtocol.h; sourceTree = ""; }; - 633105221A16D1A300C17BAE /* OTRProtocolManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRProtocolManager.h; sourceTree = ""; }; - 633105231A16D1A300C17BAE /* OTRProtocolManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRProtocolManager.m; sourceTree = ""; }; - 6331052E1A16D1A300C17BAE /* OTRSettingsManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRSettingsManager.h; sourceTree = ""; }; - 6331052F1A16D1A300C17BAE /* OTRSettingsManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRSettingsManager.m; sourceTree = ""; }; - 633105301A16D1A300C17BAE /* OTRTorManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRTorManager.h; sourceTree = ""; }; - 633105311A16D1A300C17BAE /* OTRTorManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRTorManager.m; sourceTree = ""; }; - 633105351A16D1A300C17BAE /* OTRXMPPBuddyTimers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRXMPPBuddyTimers.h; sourceTree = ""; }; - 633105361A16D1A300C17BAE /* OTRXMPPBuddyTimers.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRXMPPBuddyTimers.m; sourceTree = ""; }; - 633105371A16D1A300C17BAE /* OTRXMPPManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRXMPPManager.h; sourceTree = ""; }; - 633105381A16D1A300C17BAE /* OTRXMPPManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = OTRXMPPManager.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; - 6331053B1A16D1A300C17BAE /* OTRXMPPTorManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRXMPPTorManager.h; sourceTree = ""; }; - 6331053C1A16D1A300C17BAE /* OTRXMPPTorManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRXMPPTorManager.m; sourceTree = ""; }; - 6331058D1A16D1A300C17BAE /* OTRActivityItemProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRActivityItemProvider.h; sourceTree = ""; }; - 6331058E1A16D1A300C17BAE /* OTRActivityItemProvider.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRActivityItemProvider.m; sourceTree = ""; }; - 6331058F1A16D1A300C17BAE /* OTRDomainCellInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRDomainCellInfo.h; sourceTree = ""; }; - 633105901A16D1A300C17BAE /* OTRDomainCellInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRDomainCellInfo.m; sourceTree = ""; }; - 633105911A16D1A300C17BAE /* OTROpenInFacebookActivity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTROpenInFacebookActivity.h; sourceTree = ""; }; - 633105921A16D1A300C17BAE /* OTROpenInFacebookActivity.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTROpenInFacebookActivity.m; sourceTree = ""; }; - 633105931A16D1A300C17BAE /* OTROpenInTwitterActivity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTROpenInTwitterActivity.h; sourceTree = ""; }; - 633105941A16D1A300C17BAE /* OTROpenInTwitterActivity.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTROpenInTwitterActivity.m; sourceTree = ""; }; - 633105951A16D1A300C17BAE /* OTRQRCodeActivity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRQRCodeActivity.h; sourceTree = ""; }; - 633105961A16D1A300C17BAE /* OTRQRCodeActivity.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRQRCodeActivity.m; sourceTree = ""; }; - 633105981A16D1A300C17BAE /* OTRBoolSetting.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRBoolSetting.h; sourceTree = ""; }; - 633105991A16D1A300C17BAE /* OTRBoolSetting.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRBoolSetting.m; sourceTree = ""; }; - 6331059A1A16D1A300C17BAE /* OTRCertificateSetting.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRCertificateSetting.h; sourceTree = ""; }; - 6331059B1A16D1A300C17BAE /* OTRCertificateSetting.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRCertificateSetting.m; sourceTree = ""; }; - 6331059C1A16D1A300C17BAE /* OTRDonateSetting.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRDonateSetting.h; sourceTree = ""; }; - 6331059D1A16D1A300C17BAE /* OTRDonateSetting.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRDonateSetting.m; sourceTree = ""; }; - 6331059E1A16D1A300C17BAE /* OTRDoubleSetting.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRDoubleSetting.h; sourceTree = ""; }; - 6331059F1A16D1A300C17BAE /* OTRDoubleSetting.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRDoubleSetting.m; sourceTree = ""; }; - 633105A01A16D1A300C17BAE /* OTRFeedbackSetting.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRFeedbackSetting.h; sourceTree = ""; }; - 633105A11A16D1A300C17BAE /* OTRFeedbackSetting.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRFeedbackSetting.m; sourceTree = ""; }; - 633105A41A16D1A300C17BAE /* OTRIntSetting.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRIntSetting.h; sourceTree = ""; }; - 633105A51A16D1A300C17BAE /* OTRIntSetting.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRIntSetting.m; sourceTree = ""; }; - 633105A61A16D1A300C17BAE /* OTRLanguageSetting.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRLanguageSetting.h; sourceTree = ""; }; - 633105A71A16D1A300C17BAE /* OTRLanguageSetting.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRLanguageSetting.m; sourceTree = ""; }; - 633105A81A16D1A300C17BAE /* OTRListSetting.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRListSetting.h; sourceTree = ""; }; - 633105A91A16D1A300C17BAE /* OTRListSetting.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRListSetting.m; sourceTree = ""; }; - 633105AA1A16D1A300C17BAE /* OTRListSettingValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRListSettingValue.h; sourceTree = ""; }; - 633105AB1A16D1A300C17BAE /* OTRListSettingValue.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRListSettingValue.m; sourceTree = ""; }; - 633105AE1A16D1A300C17BAE /* OTRSetting.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRSetting.h; sourceTree = ""; }; - 633105AF1A16D1A300C17BAE /* OTRSetting.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRSetting.m; sourceTree = ""; }; - 633105B01A16D1A300C17BAE /* OTRSettingsGroup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRSettingsGroup.h; sourceTree = ""; }; - 633105B11A16D1A300C17BAE /* OTRSettingsGroup.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRSettingsGroup.m; sourceTree = ""; }; - 633105B21A16D1A300C17BAE /* OTRShareSetting.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRShareSetting.h; sourceTree = ""; }; - 633105B31A16D1A300C17BAE /* OTRShareSetting.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRShareSetting.m; sourceTree = ""; }; - 633105B41A16D1A300C17BAE /* OTRValueSetting.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRValueSetting.h; sourceTree = ""; }; - 633105B51A16D1A300C17BAE /* OTRValueSetting.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRValueSetting.m; sourceTree = ""; }; - 633105B61A16D1A300C17BAE /* OTRViewSetting.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRViewSetting.h; sourceTree = ""; }; - 633105B71A16D1A300C17BAE /* OTRViewSetting.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRViewSetting.m; sourceTree = ""; }; - 633105BA1A16D1A300C17BAE /* OTRAccount.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRAccount.h; sourceTree = ""; }; - 633105BB1A16D1A300C17BAE /* OTRAccount.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRAccount.m; sourceTree = ""; }; - 633105BE1A16D1A300C17BAE /* OTRGoogleOAuthXMPPAccount.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRGoogleOAuthXMPPAccount.h; sourceTree = ""; }; - 633105BF1A16D1A300C17BAE /* OTRGoogleOAuthXMPPAccount.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRGoogleOAuthXMPPAccount.m; sourceTree = ""; }; - 633105C01A16D1A300C17BAE /* OTROAuthXMPPAccount.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTROAuthXMPPAccount.h; sourceTree = ""; }; - 633105C11A16D1A300C17BAE /* OTROAuthXMPPAccount.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTROAuthXMPPAccount.m; sourceTree = ""; }; - 633105C41A16D1A300C17BAE /* OTRXMPPAccount.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRXMPPAccount.h; sourceTree = ""; }; - 633105C51A16D1A300C17BAE /* OTRXMPPAccount.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRXMPPAccount.m; sourceTree = ""; }; - 633105C61A16D1A300C17BAE /* OTRXMPPTorAccount.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRXMPPTorAccount.h; sourceTree = ""; }; - 633105C71A16D1A300C17BAE /* OTRXMPPTorAccount.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRXMPPTorAccount.m; sourceTree = ""; }; - 633105CA1A16D1A300C17BAE /* OTRBuddy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRBuddy.h; sourceTree = ""; }; - 633105CB1A16D1A300C17BAE /* OTRBuddy.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = OTRBuddy.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; - 633105CC1A16D1A300C17BAE /* OTRMessage+JSQMessageData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "OTRMessage+JSQMessageData.h"; sourceTree = ""; }; - 633105CD1A16D1A300C17BAE /* OTRMessage+JSQMessageData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "OTRMessage+JSQMessageData.m"; sourceTree = ""; }; - 633105CE1A16D1A300C17BAE /* OTRBaseMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRBaseMessage.h; sourceTree = ""; }; - 633105CF1A16D1A300C17BAE /* OTRBaseMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRBaseMessage.m; sourceTree = ""; }; - 633105D01A16D1A300C17BAE /* OTRXMPPBuddy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRXMPPBuddy.h; sourceTree = ""; }; - 633105D11A16D1A300C17BAE /* OTRXMPPBuddy.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRXMPPBuddy.m; sourceTree = ""; }; - 633105D41A16D1A300C17BAE /* OTRYapDatabaseObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRYapDatabaseObject.h; sourceTree = ""; }; - 633105D51A16D1A300C17BAE /* OTRYapDatabaseObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRYapDatabaseObject.m; sourceTree = ""; }; - 633105E51A16D1A300C17BAE /* OTRAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRAppDelegate.h; sourceTree = ""; }; - 633105E61A16D1A300C17BAE /* OTRAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRAppDelegate.m; sourceTree = ""; }; - 633105E81A16D1A300C17BAE /* OTRCertificatePinning.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRCertificatePinning.h; sourceTree = ""; }; - 633105E91A16D1A300C17BAE /* OTRCertificatePinning.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRCertificatePinning.m; sourceTree = ""; }; - 633105EA1A16D1A300C17BAE /* OTRChatDemo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRChatDemo.h; sourceTree = ""; }; - 633105EB1A16D1A300C17BAE /* OTRChatDemo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = OTRChatDemo.m; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.objc; }; - 633105EC1A16D1A300C17BAE /* OTRColors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRColors.h; sourceTree = ""; }; - 633105ED1A16D1A300C17BAE /* OTRColors.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRColors.m; sourceTree = ""; }; - 633105EE1A16D1A300C17BAE /* OTRConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRConstants.h; sourceTree = ""; }; - 633105EF1A16D1A300C17BAE /* OTRConstants.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRConstants.m; sourceTree = ""; }; - 633105F01A16D1A300C17BAE /* OTRImages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRImages.h; sourceTree = ""; }; - 633105F11A16D1A300C17BAE /* OTRImages.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRImages.m; sourceTree = ""; }; - 633105F21A16D1A300C17BAE /* OTRLog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRLog.h; sourceTree = ""; }; - 633105F51A16D1A300C17BAE /* OTRPasswordGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRPasswordGenerator.h; sourceTree = ""; }; - 633105F61A16D1A300C17BAE /* OTRPasswordGenerator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRPasswordGenerator.m; sourceTree = ""; }; - 633105F81A16D1A300C17BAE /* OTRSecrets.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRSecrets.h; sourceTree = ""; }; - 633105F91A16D1A300C17BAE /* OTRSecrets.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRSecrets.m; sourceTree = ""; }; - 633105FA1A16D1A300C17BAE /* OTRUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRUtilities.h; sourceTree = ""; }; - 633105FB1A16D1A300C17BAE /* OTRUtilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRUtilities.m; sourceTree = ""; }; - 633105FC1A16D1A300C17BAE /* OTRXMPPError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRXMPPError.h; sourceTree = ""; }; - 633105FD1A16D1A300C17BAE /* OTRXMPPError.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRXMPPError.m; sourceTree = ""; }; - 633106181A16D1A300C17BAE /* OTRCertificateDomainViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRCertificateDomainViewController.h; sourceTree = ""; }; - 633106191A16D1A300C17BAE /* OTRCertificateDomainViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRCertificateDomainViewController.m; sourceTree = ""; }; - 6331061A1A16D1A300C17BAE /* OTRCertificatesViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRCertificatesViewController.h; sourceTree = ""; }; - 6331061B1A16D1A300C17BAE /* OTRCertificatesViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRCertificatesViewController.m; sourceTree = ""; }; - 6331061E1A16D1A300C17BAE /* OTRChooseAccountViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRChooseAccountViewController.h; sourceTree = ""; }; - 6331061F1A16D1A300C17BAE /* OTRChooseAccountViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRChooseAccountViewController.m; sourceTree = ""; }; - 633106201A16D1A300C17BAE /* OTRComposeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRComposeViewController.h; sourceTree = ""; }; - 633106211A16D1A300C17BAE /* OTRComposeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRComposeViewController.m; sourceTree = ""; }; - 633106221A16D1A300C17BAE /* OTRConversationViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRConversationViewController.h; sourceTree = ""; }; - 633106231A16D1A300C17BAE /* OTRConversationViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRConversationViewController.m; sourceTree = ""; }; - 633106281A16D1A300C17BAE /* OTRDatabaseUnlockViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRDatabaseUnlockViewController.h; sourceTree = ""; }; - 633106291A16D1A300C17BAE /* OTRDatabaseUnlockViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRDatabaseUnlockViewController.m; sourceTree = ""; }; - 6331062A1A16D1A300C17BAE /* OTRDoubleSettingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRDoubleSettingViewController.h; sourceTree = ""; }; - 6331062B1A16D1A300C17BAE /* OTRDoubleSettingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRDoubleSettingViewController.m; sourceTree = ""; }; - 6331062E1A16D1A300C17BAE /* OTRIntSettingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRIntSettingViewController.h; sourceTree = ""; }; - 6331062F1A16D1A300C17BAE /* OTRIntSettingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRIntSettingViewController.m; sourceTree = ""; }; - 633106301A16D1A300C17BAE /* OTRLanguageListSettingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRLanguageListSettingViewController.h; sourceTree = ""; }; - 633106311A16D1A300C17BAE /* OTRLanguageListSettingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRLanguageListSettingViewController.m; sourceTree = ""; }; - 633106321A16D1A300C17BAE /* OTRListSettingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRListSettingViewController.h; sourceTree = ""; }; - 633106331A16D1A300C17BAE /* OTRListSettingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRListSettingViewController.m; sourceTree = ""; }; - 633106341A16D1A300C17BAE /* OTRMessagesViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRMessagesViewController.h; sourceTree = ""; }; - 633106351A16D1A300C17BAE /* OTRMessagesViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = OTRMessagesViewController.m; sourceTree = ""; }; - 633106381A16D1A300C17BAE /* OTRNewBuddyViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRNewBuddyViewController.h; sourceTree = ""; }; - 633106391A16D1A300C17BAE /* OTRNewBuddyViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRNewBuddyViewController.m; sourceTree = ""; }; - 6331063E1A16D1A300C17BAE /* OTRQRCodeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRQRCodeViewController.h; sourceTree = ""; }; - 6331063F1A16D1A300C17BAE /* OTRQRCodeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRQRCodeViewController.m; sourceTree = ""; }; - 633106421A16D1A300C17BAE /* OTRSettingDetailViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRSettingDetailViewController.h; sourceTree = ""; }; - 633106431A16D1A300C17BAE /* OTRSettingDetailViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRSettingDetailViewController.m; sourceTree = ""; }; - 633106441A16D1A300C17BAE /* OTRSettingsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRSettingsViewController.h; sourceTree = ""; }; - 633106451A16D1A300C17BAE /* OTRSettingsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRSettingsViewController.m; sourceTree = ""; }; - 6331064C1A16D1A300C17BAE /* OTRAccountTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRAccountTableViewCell.h; sourceTree = ""; }; - 6331064D1A16D1A300C17BAE /* OTRAccountTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRAccountTableViewCell.m; sourceTree = ""; }; - 6331064E1A16D1A300C17BAE /* OTRBuddyImageCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRBuddyImageCell.h; sourceTree = ""; }; - 6331064F1A16D1A300C17BAE /* OTRBuddyImageCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRBuddyImageCell.m; sourceTree = ""; }; - 633106501A16D1A300C17BAE /* OTRBuddyInfoCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRBuddyInfoCell.h; sourceTree = ""; }; - 633106511A16D1A300C17BAE /* OTRBuddyInfoCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRBuddyInfoCell.m; sourceTree = ""; }; - 633106521A16D1A300C17BAE /* OTRConversationCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRConversationCell.h; sourceTree = ""; }; - 633106531A16D1A300C17BAE /* OTRConversationCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRConversationCell.m; sourceTree = ""; }; - 633106541A16D1A300C17BAE /* OTRInLineTextEditTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRInLineTextEditTableViewCell.h; sourceTree = ""; }; - 633106551A16D1A300C17BAE /* OTRInLineTextEditTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRInLineTextEditTableViewCell.m; sourceTree = ""; }; - 6331065E1A16D1A300C17BAE /* OTRSettingTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRSettingTableViewCell.h; sourceTree = ""; }; - 6331065F1A16D1A300C17BAE /* OTRSettingTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRSettingTableViewCell.m; sourceTree = ""; }; - 633106601A16D1A300C17BAE /* OTRStatusMessageCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRStatusMessageCell.h; sourceTree = ""; }; - 633106611A16D1A300C17BAE /* OTRStatusMessageCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRStatusMessageCell.m; sourceTree = ""; }; - 633106661A16D1A300C17BAE /* LaunchScreen.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = LaunchScreen.xib; path = Resources/LaunchScreen.xib; sourceTree = ""; }; - 633106671A16D1A300C17BAE /* OTRButtonView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRButtonView.h; sourceTree = ""; }; - 633106681A16D1A300C17BAE /* OTRButtonView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRButtonView.m; sourceTree = ""; }; - 633106691A16D1A300C17BAE /* OTRColorFadingDotView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRColorFadingDotView.h; sourceTree = ""; }; - 6331066A1A16D1A300C17BAE /* OTRColorFadingDotView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRColorFadingDotView.m; sourceTree = ""; }; - 6331066B1A16D1A300C17BAE /* OTRComposingImageView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRComposingImageView.h; sourceTree = ""; }; - 6331066C1A16D1A300C17BAE /* OTRComposingImageView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRComposingImageView.m; sourceTree = ""; }; - 6331066D1A16D1A300C17BAE /* OTRLockButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRLockButton.h; sourceTree = ""; }; - 6331066E1A16D1A300C17BAE /* OTRLockButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRLockButton.m; sourceTree = ""; }; - 633106711A16D1A300C17BAE /* OTRRememberPasswordView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRRememberPasswordView.h; sourceTree = ""; }; - 633106721A16D1A300C17BAE /* OTRRememberPasswordView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRRememberPasswordView.m; sourceTree = ""; }; - 633106731A16D1A300C17BAE /* OTRSocialButtonsView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRSocialButtonsView.h; sourceTree = ""; }; - 633106741A16D1A300C17BAE /* OTRSocialButtonsView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRSocialButtonsView.m; sourceTree = ""; }; - 633106751A16D1A300C17BAE /* OTRTitleSubtitleView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRTitleSubtitleView.h; sourceTree = ""; }; - 633106761A16D1A300C17BAE /* OTRTitleSubtitleView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRTitleSubtitleView.m; sourceTree = ""; }; 633107291A16D1F200C17BAE /* DemoImages.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = DemoImages.xcassets; path = Resources/DemoImages.xcassets; sourceTree = ""; }; 6331072A1A16D1F200C17BAE /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = Resources/Images.xcassets; sourceTree = ""; }; - 6331D3B51B4DBBEE00C85365 /* OTRInviteViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRInviteViewController.h; sourceTree = ""; }; - 6331D3B61B4DBBEE00C85365 /* OTRInviteViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRInviteViewController.m; sourceTree = ""; }; - 6331D3B81B4F3C6E00C85365 /* OTRAddBuddyQRCodeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OTRAddBuddyQRCodeViewController.h; path = Onboarding/OTRAddBuddyQRCodeViewController.h; sourceTree = ""; }; - 6331D3B91B4F3C6E00C85365 /* OTRAddBuddyQRCodeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OTRAddBuddyQRCodeViewController.m; path = Onboarding/OTRAddBuddyQRCodeViewController.m; sourceTree = ""; }; - 6331D3BB1B4F41AF00C85365 /* OTRQRCodeReaderDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRQRCodeReaderDelegate.h; sourceTree = ""; }; - 6331D3BC1B4F41AF00C85365 /* OTRQRCodeReaderDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRQRCodeReaderDelegate.m; sourceTree = ""; }; - 633620971A76E87B006E8739 /* OTRImageItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRImageItem.h; sourceTree = ""; }; - 633620981A76E87B006E8739 /* OTRImageItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRImageItem.m; sourceTree = ""; }; - 6336209A1A76E88C006E8739 /* OTRVideoItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRVideoItem.h; sourceTree = ""; }; - 6336209B1A76E88C006E8739 /* OTRVideoItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRVideoItem.m; sourceTree = ""; }; - 6336209D1A76E89A006E8739 /* OTRAudioItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRAudioItem.h; sourceTree = ""; }; - 6336209E1A76E89A006E8739 /* OTRAudioItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRAudioItem.m; sourceTree = ""; }; - 63363FAD1CCAE29B00B0C720 /* OTRYapExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRYapExtensions.swift; sourceTree = ""; }; - 633821C81BA8D48D0019C906 /* PushContainers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PushContainers.swift; sourceTree = ""; }; - 633AF2F81A7C3DBB0030A3FF /* OTRAudioSessionManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRAudioSessionManager.h; sourceTree = ""; }; - 633AF2F91A7C3DBC0030A3FF /* OTRAudioSessionManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRAudioSessionManager.m; sourceTree = ""; }; - 6340431A1BD5BCD800ECA95A /* OTRXMPPRoomMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRXMPPRoomMessage.swift; sourceTree = ""; }; - 6340431C1BD5BD0400ECA95A /* OTRXMPPRoomOccupant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRXMPPRoomOccupant.swift; sourceTree = ""; }; - 634364221CC192F1009E169F /* YapDatabaseConstants.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YapDatabaseConstants.swift; sourceTree = ""; }; - 634680811B0404CE00D9A1C5 /* OTRXMPPLoginHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRXMPPLoginHandler.h; sourceTree = ""; }; - 634680821B0404CE00D9A1C5 /* OTRXMPPLoginHandler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRXMPPLoginHandler.m; sourceTree = ""; }; - 634680881B041F2F00D9A1C5 /* OTRGoolgeOAuthLoginHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRGoolgeOAuthLoginHandler.h; sourceTree = ""; }; - 634680891B041F2F00D9A1C5 /* OTRGoolgeOAuthLoginHandler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRGoolgeOAuthLoginHandler.m; sourceTree = ""; }; - 6346808B1B04206400D9A1C5 /* OTRXMPPCreateAccountHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRXMPPCreateAccountHandler.h; sourceTree = ""; }; - 6346808C1B04206400D9A1C5 /* OTRXMPPCreateAccountHandler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRXMPPCreateAccountHandler.m; sourceTree = ""; }; - 634905AF1BD05E3900347FE2 /* OTRYapViewHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRYapViewHandler.swift; sourceTree = ""; }; - 6353AC2B1AD5E32000753B83 /* OTRAudioTrashView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRAudioTrashView.h; sourceTree = ""; }; - 6353AC2C1AD5E32000753B83 /* OTRAudioTrashView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRAudioTrashView.m; sourceTree = ""; }; - 6354BBE21A96C67400E8EBAC /* OTRMediaFileManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRMediaFileManager.h; sourceTree = ""; }; - 6354BBE31A96C67400E8EBAC /* OTRMediaFileManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRMediaFileManager.m; sourceTree = ""; }; - 63564E0F1BBB1C5200EB4CA6 /* PushStorage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PushStorage.swift; sourceTree = ""; }; - 6358FDDF1CDC097A00C9D3B6 /* OTRXMPPMessageStatusModule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRXMPPMessageStatusModule.swift; sourceTree = ""; }; 635E51A81DA82A4E002B70AB /* OTROMEMOTestModule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTROMEMOTestModule.swift; sourceTree = ""; }; 635E51AA1DA83AF0002B70AB /* OTRTestDatabase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRTestDatabase.swift; sourceTree = ""; }; 635FCC831D1B5116008F903C /* OTRStringTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRStringTests.swift; sourceTree = ""; }; 63634CE81DA704AA00B0BAE8 /* OTROMEMOIntegrationTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTROMEMOIntegrationTest.swift; sourceTree = ""; }; - 63636D6D1C1F78A6009F5FCD /* UINavigationController+ChatSecure.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UINavigationController+ChatSecure.swift"; sourceTree = ""; }; - 63636D711C1F9D7C009F5FCD /* UIApplication+ChatSecure.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIApplication+ChatSecure.swift"; sourceTree = ""; }; 6365CEFC1E2453F6009E213F /* ChatSecureUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ChatSecureUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 6365CEFE1E2453F6009E213F /* ChatSecureUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChatSecureUITests.swift; sourceTree = ""; }; 6365CF001E2453F6009E213F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 636767E81D83562700432B48 /* TestXMPPAccount.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestXMPPAccount.swift; sourceTree = ""; }; - 636985581BC875110083FC53 /* OTRXMPPRoomManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRXMPPRoomManager.h; sourceTree = ""; }; - 636985591BC875110083FC53 /* OTRXMPPRoomManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRXMPPRoomManager.m; sourceTree = ""; }; 636C63201B571B56008FEE69 /* OTRURLTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRURLTests.m; sourceTree = ""; }; 636DE07D1E5E476200D8D868 /* portrait-orientation.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = "portrait-orientation.jpg"; path = "TestImages/portrait-orientation.jpg"; sourceTree = ""; }; - 6370CCB81CF65A07005DA8D2 /* YapDatabase+ChatSecure.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "YapDatabase+ChatSecure.swift"; sourceTree = ""; }; - 637645C81B98F9BF00B3402F /* PushController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PushController.swift; sourceTree = ""; }; - 637ABBC11DD5232800B18DD2 /* OTRMessageEncryptionInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRMessageEncryptionInfo.h; sourceTree = ""; }; - 637ABBC21DD5232800B18DD2 /* OTRMessageEncryptionInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRMessageEncryptionInfo.m; sourceTree = ""; }; - 637ABBC51DD530CD00B18DD2 /* OTRIncomingMessage.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OTRIncomingMessage.h; sourceTree = ""; }; - 637ABBC61DD530CD00B18DD2 /* OTRIncomingMessage.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = OTRIncomingMessage.m; sourceTree = ""; }; - 637ABBC71DD5312200B18DD2 /* OTROutgoingMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTROutgoingMessage.h; sourceTree = ""; }; - 637ABBC81DD5312200B18DD2 /* OTROutgoingMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTROutgoingMessage.m; sourceTree = ""; }; - 638045671BB4BDEC002D8BAE /* PushSerializer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PushSerializer.swift; sourceTree = ""; }; - 638045691BB4C832002D8BAE /* PushDeserializer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PushDeserializer.swift; sourceTree = ""; }; - 6381F35F1DFB7AD800563057 /* OTRXMPPChangePasswordManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRXMPPChangePasswordManager.swift; sourceTree = ""; }; - 63828A9F1D53F54F00B81249 /* OTROMEMOSignalCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTROMEMOSignalCoordinator.swift; sourceTree = ""; }; - 638C7CF01B02BE4A004F8EC3 /* OTRBaseLoginViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRBaseLoginViewController.h; sourceTree = ""; }; - 638C7CF11B02BE4A004F8EC3 /* OTRBaseLoginViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRBaseLoginViewController.m; sourceTree = ""; }; - 638C7CF31B02BF0D004F8EC3 /* OTRXLFormCreator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRXLFormCreator.h; sourceTree = ""; }; - 638C7CF41B02BF0D004F8EC3 /* OTRXLFormCreator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRXLFormCreator.m; sourceTree = ""; }; - 638D2E011AFBFE2200F3C50C /* OTRWelcomeAccountTableViewDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OTRWelcomeAccountTableViewDelegate.h; path = Onboarding/OTRWelcomeAccountTableViewDelegate.h; sourceTree = ""; }; - 638D2E021AFBFE2200F3C50C /* OTRWelcomeAccountTableViewDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OTRWelcomeAccountTableViewDelegate.m; path = Onboarding/OTRWelcomeAccountTableViewDelegate.m; sourceTree = ""; }; - 638FC09B1B0BE46100B37454 /* NSFileManager+ChatSecure.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSFileManager+ChatSecure.h"; sourceTree = ""; }; - 638FC09C1B0BE46100B37454 /* NSFileManager+ChatSecure.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSFileManager+ChatSecure.m"; sourceTree = ""; }; 639120921D8CA1E200F4100E /* OTROmemoStorageTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTROmemoStorageTest.swift; sourceTree = ""; }; 63917C3D1DFA20D900341D96 /* OTRModelTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRModelTest.swift; sourceTree = ""; }; - 63929C951C7D32D9008DB2E3 /* MessagesViewControllerState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessagesViewControllerState.swift; sourceTree = ""; }; 6396AF9A1A169D54009F3E6C /* ChatSecure.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ChatSecure.app; sourceTree = BUILT_PRODUCTS_DIR; }; 6396AF9E1A169D54009F3E6C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 6396AFB31A169D54009F3E6C /* ChatSecureTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ChatSecureTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 6396AFB81A169D54009F3E6C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 639C35281C3DDDDE00132330 /* OTRXMPPBuddyManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRXMPPBuddyManager.h; sourceTree = ""; }; - 639C35291C3DDDDE00132330 /* OTRXMPPBuddyManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRXMPPBuddyManager.m; sourceTree = ""; }; - 639CDD8F1AD74419009BAABC /* OTRTouchAndHoldGestureRecognizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRTouchAndHoldGestureRecognizer.h; sourceTree = ""; }; - 639CDD901AD74419009BAABC /* OTRTouchAndHoldGestureRecognizer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRTouchAndHoldGestureRecognizer.m; sourceTree = ""; }; - 63AB1A061C0D116A005FA351 /* OTRSplitViewCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRSplitViewCoordinator.swift; sourceTree = ""; }; 63B578631D51600300D80ED3 /* OTRSignalTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRSignalTest.swift; sourceTree = ""; }; - 63B916E01B743198003B778F /* OTRStreamManagementYapStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRStreamManagementYapStorage.h; sourceTree = ""; }; - 63B916E11B743198003B778F /* OTRStreamManagementYapStorage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRStreamManagementYapStorage.m; sourceTree = ""; }; - 63B916E31B7431C1003B778F /* OTRStreamManagementStorageObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRStreamManagementStorageObject.h; sourceTree = ""; }; - 63B916E41B7431C1003B778F /* OTRStreamManagementStorageObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRStreamManagementStorageObject.m; sourceTree = ""; }; - 63BA43DB1D41826F007FAF7F /* OTRSignalStorageManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRSignalStorageManager.swift; sourceTree = ""; }; - 63BA43DD1D418F14007FAF7F /* OTRAccountSignalIdentity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OTRAccountSignalIdentity.h; path = "Signal-Storage/OTRAccountSignalIdentity.h"; sourceTree = ""; }; - 63BA43DE1D418F14007FAF7F /* OTRAccountSignalIdentity.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OTRAccountSignalIdentity.m; path = "Signal-Storage/OTRAccountSignalIdentity.m"; sourceTree = ""; }; - 63BAB26C1C863C60005185F3 /* PushMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PushMessage.swift; sourceTree = ""; }; - 63BB66B31BC5D5F00004A619 /* OTRXMPPRoom.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRXMPPRoom.swift; sourceTree = ""; }; - 63BE425C1B320EE20017058C /* OTRLoginHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRLoginHandler.h; sourceTree = ""; }; - 63BE425D1B320EE20017058C /* OTRLoginHandler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRLoginHandler.m; sourceTree = ""; }; - 63C0C4421BE010B00086B529 /* YapDatabaseTransaction+ChatSecure.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "YapDatabaseTransaction+ChatSecure.swift"; sourceTree = ""; }; - 63C0C4441BE184910086B529 /* OTRRoomOccupantsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRRoomOccupantsViewController.swift; sourceTree = ""; }; - 63C5B6681A82F3EE0011BEA8 /* OTRAudioPlaybackController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRAudioPlaybackController.h; sourceTree = ""; }; - 63C5B6691A82F3EE0011BEA8 /* OTRAudioPlaybackController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRAudioPlaybackController.m; sourceTree = ""; }; - 63C7E64C1B20F69F0085FA06 /* OTRXMPPServerInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OTRXMPPServerInfo.h; path = ChatSecure/Classes/Model/OTRXMPPServerInfo.h; sourceTree = SOURCE_ROOT; }; - 63C7E64D1B20F69F0085FA06 /* OTRXMPPServerInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OTRXMPPServerInfo.m; path = ChatSecure/Classes/Model/OTRXMPPServerInfo.m; sourceTree = SOURCE_ROOT; }; - 63CBD68F1C642B9E00AC6D1F /* BuddyActions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = BuddyActions.swift; path = YapActions/BuddyActions.swift; sourceTree = ""; }; - 63CFB1021ABA492600A8D27E /* OTRFacebookOAuthXMPPAccount.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRFacebookOAuthXMPPAccount.h; sourceTree = ""; }; - 63CFB1031ABA492600A8D27E /* OTRFacebookOAuthXMPPAccount.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRFacebookOAuthXMPPAccount.m; sourceTree = ""; }; - 63D14F341C0FC6A90029F36B /* OTRThreadOwner.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OTRThreadOwner.h; sourceTree = ""; }; - 63D150F91D8A0C9C006FB2E2 /* OMEMODevice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OMEMODevice.h; path = "OMEMO-Storage/OMEMODevice.h"; sourceTree = ""; }; - 63D150FA1D8A0C9C006FB2E2 /* OMEMODevice.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OMEMODevice.m; path = "OMEMO-Storage/OMEMODevice.m"; sourceTree = ""; }; - 63D150FD1D8B5637006FB2E2 /* OTROMEMOStorageManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTROMEMOStorageManager.swift; sourceTree = ""; }; - 63D27FC31A6DC51C00EC251A /* OTRMediaItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRMediaItem.h; sourceTree = ""; }; - 63D27FC41A6DC51C00EC251A /* OTRMediaItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRMediaItem.m; sourceTree = ""; }; - 63D639E11D12124F002B4175 /* OTRStreamManagementDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRStreamManagementDelegate.swift; sourceTree = ""; }; - 63D64D641A2FBA8C00E21F77 /* OTRToastOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRToastOptions.h; sourceTree = ""; }; - 63D64D651A2FBA8C00E21F77 /* OTRToastOptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRToastOptions.m; sourceTree = ""; }; - 63D65D2B1DD68A8D00D9E52E /* OTRMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRMessage.h; sourceTree = ""; }; - 63D65D2C1DD68A8D00D9E52E /* OTRMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRMessage.m; sourceTree = ""; }; - 63DC0EB31A1ABC86002C9598 /* OTR_Codesigning.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = OTR_Codesigning.xcconfig; path = configurations/OTR_Codesigning.xcconfig; sourceTree = ""; }; - 63DC0EB41A1ABC86002C9598 /* OTR_Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = OTR_Debug.xcconfig; path = configurations/OTR_Debug.xcconfig; sourceTree = ""; }; - 63DC0EB61A1ABC86002C9598 /* OTR_Release.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = OTR_Release.xcconfig; path = configurations/OTR_Release.xcconfig; sourceTree = ""; }; - 63DC417A1BB3767000D42857 /* Errors.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Errors.swift; sourceTree = ""; }; - 63DDD8AE1A9D3C0400C0A918 /* OTRMediaServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRMediaServer.h; sourceTree = ""; }; - 63DDD8AF1A9D3C0400C0A918 /* OTRMediaServer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRMediaServer.m; sourceTree = ""; }; 63DDD8B41A9E94B700C0A918 /* OTRMediaTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRMediaTests.m; sourceTree = ""; }; 63DDD8B91A9E9BD900C0A918 /* samples */ = {isa = PBXFileReference; lastKnownFileType = folder; path = samples; sourceTree = ""; }; 63DF75F41E5FBE550032950B /* OTRYapViewTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRYapViewTest.swift; sourceTree = ""; }; 63E353B11BB9D0CF005C54C3 /* PushSerializerTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PushSerializerTest.swift; sourceTree = ""; }; - 63E353B51BB9D83B005C54C3 /* OTRPushTLVHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRPushTLVHandler.h; sourceTree = ""; }; - 63E353B61BB9D83B005C54C3 /* OTRPushTLVHandler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRPushTLVHandler.m; sourceTree = ""; }; - 63E353F51BB9E41D005C54C3 /* OTRPushTLVHandlerProtocols.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OTRPushTLVHandlerProtocols.h; sourceTree = ""; }; - 63E413A91CDA9E2400B17303 /* MessageQueueHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageQueueHandler.swift; sourceTree = ""; }; - 63EA4CF71ACC81C800B19E12 /* OTRMessagesHoldTalkViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRMessagesHoldTalkViewController.h; sourceTree = ""; }; - 63EA4CF81ACC81C800B19E12 /* OTRMessagesHoldTalkViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRMessagesHoldTalkViewController.m; sourceTree = ""; }; - 63EA4CFB1ACC96AB00B19E12 /* OTRHoldToTalkView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRHoldToTalkView.h; sourceTree = ""; }; - 63EA4CFC1ACC96AB00B19E12 /* OTRHoldToTalkView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRHoldToTalkView.m; sourceTree = ""; }; 63F0CAFA1E60C1B40045359C /* OTRYapViewTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRYapViewTest.swift; sourceTree = ""; }; - 63F0FF621A798D8E001F0C99 /* OTRAudioControlsView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRAudioControlsView.h; sourceTree = ""; }; - 63F0FF631A798D8E001F0C99 /* OTRAudioControlsView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRAudioControlsView.m; sourceTree = ""; }; 63F614DA1BB214640083A06A /* ChatSecureTests-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ChatSecureTests-Bridging-Header.h"; sourceTree = ""; }; 63F614DB1BB214660083A06A /* ChatSecureModelTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChatSecureModelTest.swift; sourceTree = ""; }; - 63F6E18F1A69B9BA0011E6F7 /* OTRAttachmentPicker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRAttachmentPicker.h; sourceTree = ""; }; - 63F6E1901A69B9BA0011E6F7 /* OTRAttachmentPicker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRAttachmentPicker.m; sourceTree = ""; }; - 63FA130B1C8A4EB700AE33EF /* OTRMessagesCollectionViewFlowLayout.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRMessagesCollectionViewFlowLayout.swift; sourceTree = ""; }; - 63FA54891A7ACA2F00F2AEBB /* OTRPlayPauseProgressView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRPlayPauseProgressView.h; sourceTree = ""; }; - 63FA548A1A7ACA2F00F2AEBB /* OTRPlayPauseProgressView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRPlayPauseProgressView.m; sourceTree = ""; }; - 63FA548C1A7B29EB00F2AEBB /* OTRPlayView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRPlayView.h; sourceTree = ""; }; - 63FA548D1A7B29EB00F2AEBB /* OTRPlayView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRPlayView.m; sourceTree = ""; }; - 63FA548F1A7B2C2E00F2AEBB /* OTRPauseView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRPauseView.h; sourceTree = ""; }; - 63FA54901A7B2C2E00F2AEBB /* OTRPauseView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRPauseView.m; sourceTree = ""; }; - 63FABC8C1A410EBF009BF681 /* JSQMessagesCollectionViewCell+ChatSecure.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "JSQMessagesCollectionViewCell+ChatSecure.h"; sourceTree = ""; }; - 63FABC8D1A410EBF009BF681 /* JSQMessagesCollectionViewCell+ChatSecure.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "JSQMessagesCollectionViewCell+ChatSecure.m"; sourceTree = ""; }; - 63FABC8F1A41218E009BF681 /* NSString+ChatSecure.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+ChatSecure.h"; sourceTree = ""; }; - 63FABC901A41218E009BF681 /* NSString+ChatSecure.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+ChatSecure.m"; sourceTree = ""; }; - 63FCB1361DA3224A00A801F2 /* OTRSignalEncryptionHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRSignalEncryptionHelper.swift; sourceTree = ""; }; - 702F03DE10003A33635A366F /* Pods-ChatSecureCorePods-ChatSecureTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ChatSecureCorePods-ChatSecureTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-ChatSecureCorePods-ChatSecureTests/Pods-ChatSecureCorePods-ChatSecureTests.release.xcconfig"; sourceTree = ""; }; - 7A62FCE8FEC1E7C9644F8C38 /* Pods-ChatSecureCorePods-ChatSecure.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ChatSecureCorePods-ChatSecure.release.xcconfig"; path = "Pods/Target Support Files/Pods-ChatSecureCorePods-ChatSecure/Pods-ChatSecureCorePods-ChatSecure.release.xcconfig"; sourceTree = ""; }; - 825F80066EC1363ED873BFC5 /* libPods-ChatSecureCorePods-ChatSecureTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ChatSecureCorePods-ChatSecureTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 6A7EE4EA4252D079E2CD4C5B /* Pods-ChatSecureCorePods-ChatSecureTests.release (mac).xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ChatSecureCorePods-ChatSecureTests.release (mac).xcconfig"; path = "Target Support Files/Pods-ChatSecureCorePods-ChatSecureTests/Pods-ChatSecureCorePods-ChatSecureTests.release (mac).xcconfig"; sourceTree = ""; }; + 6C1E59A7F629602AA386C2B8 /* Pods-ChatSecureCorePods-ChatSecure.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ChatSecureCorePods-ChatSecure.debug.xcconfig"; path = "Target Support Files/Pods-ChatSecureCorePods-ChatSecure/Pods-ChatSecureCorePods-ChatSecure.debug.xcconfig"; sourceTree = ""; }; + 83C35A70D105953D80691D31 /* libPods-ChatSecureCorePods-ChatSecureCore.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ChatSecureCorePods-ChatSecureCore.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 8B0F7D8477AAAE9D06628430 /* Pods-ChatSecureCore.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ChatSecureCore.release.xcconfig"; path = "Target Support Files/Pods-ChatSecureCore/Pods-ChatSecureCore.release.xcconfig"; sourceTree = ""; }; 8F56C50436DA64774EBB16E3 /* OTRMessagesLoadingView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = OTRMessagesLoadingView.xib; sourceTree = ""; }; - 9212364C1FCD779C009F97F0 /* OTRMessageUnknownSenderCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRMessageUnknownSenderCell.swift; sourceTree = ""; }; - 9212364D1FCD779C009F97F0 /* OTRMessageUnknownSenderCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = OTRMessageUnknownSenderCell.xib; sourceTree = ""; }; - 9224A5EE207E39CF00A044BF /* OTRMessagesViewController+RoomOperations.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "OTRMessagesViewController+RoomOperations.swift"; sourceTree = ""; }; - 9224A5F0207E3B6700A044BF /* JoinRoomView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = JoinRoomView.swift; sourceTree = ""; }; + 9093D0A3DB37442CFB9718F8 /* Pods-ChatSecureCorePods-ChatSecureTests.macos_release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ChatSecureCorePods-ChatSecureTests.macos_release.xcconfig"; path = "Target Support Files/Pods-ChatSecureCorePods-ChatSecureTests/Pods-ChatSecureCorePods-ChatSecureTests.macos_release.xcconfig"; sourceTree = ""; }; 9224A5F2207E3BD800A044BF /* JoinRoomView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = JoinRoomView.xib; path = Interface/JoinRoomView.xib; sourceTree = ""; }; - 9236F56A1F21FFA600C963D0 /* OTRGroupAvatarGenerator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRGroupAvatarGenerator.swift; sourceTree = ""; }; 924F67C41EA5541C00528FB6 /* MigrationInfoHeaderView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = MigrationInfoHeaderView.xib; path = Interface/MigrationInfoHeaderView.xib; sourceTree = ""; }; - 924F67C61EA55C6F00528FB6 /* MigrationInfoHeaderView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MigrationInfoHeaderView.swift; sourceTree = ""; }; - 924F68561EA7A2FD00528FB6 /* MigratedBuddyHeaderView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MigratedBuddyHeaderView.swift; sourceTree = ""; }; 924F68581EA7A31A00528FB6 /* MigratedBuddyHeaderView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = MigratedBuddyHeaderView.xib; path = Interface/MigratedBuddyHeaderView.xib; sourceTree = ""; }; - 924F68601EA8A00D00528FB6 /* OTRServerDeprecation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRServerDeprecation.swift; sourceTree = ""; }; 9251C3041F345DD5003ACE4A /* OTRRoomOccupants.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = OTRRoomOccupants.storyboard; path = Interface/OTRRoomOccupants.storyboard; sourceTree = ""; }; 9251C34C1F35CC44003ACE4A /* ios-icon-font.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "ios-icon-font.ttf"; sourceTree = ""; }; 9251C34D1F35CC44003ACE4A /* MaterialIcons-Regular.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "MaterialIcons-Regular.ttf"; sourceTree = ""; }; - 926141FD2006563D00E8216F /* OTRMessageNewDeviceCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = OTRMessageNewDeviceCell.xib; sourceTree = ""; }; - 926141FF2006566400E8216F /* OTRMessageNewDeviceCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OTRMessageNewDeviceCell.swift; sourceTree = ""; }; - 926509191F4CB45B003FCAD3 /* OTRVerticalStackView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRVerticalStackView.swift; sourceTree = ""; }; - 929D6F1B1EC4EC9C00802941 /* OTRXMPPAccount+Migration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "OTRXMPPAccount+Migration.swift"; sourceTree = ""; }; - 929FCF6A2010AA4D004736AF /* BuddySubscriptions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BuddySubscriptions.swift; sourceTree = ""; }; - 92BE6C7C2010E33F00A79C8B /* OTRXMPPPresenceSubscriptionRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRXMPPPresenceSubscriptionRequest.m; sourceTree = ""; }; - 92BE6C7D2010E34000A79C8B /* OTRXMPPPresenceSubscriptionRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRXMPPPresenceSubscriptionRequest.h; sourceTree = ""; }; - 92BE6C842014DBB400A79C8B /* RosterStorage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RosterStorage.swift; sourceTree = ""; }; 92CC68BE1F42F0710006CDF8 /* OTRComposeGroup.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = OTRComposeGroup.storyboard; path = Interface/OTRComposeGroup.storyboard; sourceTree = ""; }; - 92CC68C01F42F11D0006CDF8 /* OTRComposeGroupViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRComposeGroupViewController.swift; sourceTree = ""; }; - 92CC68F01F42FF8D0006CDF8 /* OTRComposeGroupBuddyCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRComposeGroupBuddyCell.swift; sourceTree = ""; }; - 92CC68F21F43054E0006CDF8 /* OTRComposeGroupBuddyCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = OTRComposeGroupBuddyCell.xib; sourceTree = ""; }; - 92DC0F751F442DBA00318E49 /* OTRBuddyInfoCheckableCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRBuddyInfoCheckableCell.swift; sourceTree = ""; }; - 92ED91D520441B92002011FB /* OTRMessagesViewController+SupplementaryViews.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "OTRMessagesViewController+SupplementaryViews.swift"; sourceTree = ""; }; - 962ED3D89B1F330A2A34928B /* Pods-ChatSecureCorePods-ChatSecureTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ChatSecureCorePods-ChatSecureTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-ChatSecureCorePods-ChatSecureTests/Pods-ChatSecureCorePods-ChatSecureTests.debug.xcconfig"; sourceTree = ""; }; - B9F54C7203BBEF36D2A9CAE7 /* libPods-ChatSecureCorePods-ChatSecure.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-ChatSecureCorePods-ChatSecure.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + 99AA03F8FC490C50FCDB3372 /* Pods-ChatSecureCorePods-ChatSecure.ios_debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ChatSecureCorePods-ChatSecure.ios_debug.xcconfig"; path = "Target Support Files/Pods-ChatSecureCorePods-ChatSecure/Pods-ChatSecureCorePods-ChatSecure.ios_debug.xcconfig"; sourceTree = ""; }; + A0810F735CB0C0686C3D35C1 /* Pods-ChatSecureCorePods-ChatSecureCore.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ChatSecureCorePods-ChatSecureCore.debug.xcconfig"; path = "Target Support Files/Pods-ChatSecureCorePods-ChatSecureCore/Pods-ChatSecureCorePods-ChatSecureCore.debug.xcconfig"; sourceTree = ""; }; + B1625F54938553179BDE1438 /* Pods-ChatSecureCorePods-ChatSecureTests.macos_debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ChatSecureCorePods-ChatSecureTests.macos_debug.xcconfig"; path = "Target Support Files/Pods-ChatSecureCorePods-ChatSecureTests/Pods-ChatSecureCorePods-ChatSecureTests.macos_debug.xcconfig"; sourceTree = ""; }; C492FFACC855CE12E882968E /* Pods_ChatSecureCorePods_ChatSecureUITests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ChatSecureCorePods_ChatSecureUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + C49EB1E6D7F0D4F0A9FB232D /* Pods-ChatSecureCorePods-ChatSecureTests.ios_release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ChatSecureCorePods-ChatSecureTests.ios_release.xcconfig"; path = "Target Support Files/Pods-ChatSecureCorePods-ChatSecureTests/Pods-ChatSecureCorePods-ChatSecureTests.ios_release.xcconfig"; sourceTree = ""; }; + C66839AD8A8A4F785B556BF5 /* Pods-ChatSecureCorePods-ChatSecure.ios_release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ChatSecureCorePods-ChatSecure.ios_release.xcconfig"; path = "Target Support Files/Pods-ChatSecureCorePods-ChatSecure/Pods-ChatSecureCorePods-ChatSecure.ios_release.xcconfig"; sourceTree = ""; }; + C77091A8CD45453CD4E09235 /* Pods-ChatSecureCorePods-ChatSecureCore.ios_debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ChatSecureCorePods-ChatSecureCore.ios_debug.xcconfig"; path = "Target Support Files/Pods-ChatSecureCorePods-ChatSecureCore/Pods-ChatSecureCorePods-ChatSecureCore.ios_debug.xcconfig"; sourceTree = ""; }; CCD1F8E85C658C8D3865B584 /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - D9040CB01EF1EB050027A862 /* OTRMediaItem+Private.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "OTRMediaItem+Private.h"; sourceTree = ""; }; - D90E711B1E6CB4360008D83B /* AccountDetailViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountDetailViewController.swift; sourceTree = ""; }; + D785F9E1338B477035D07DAE /* Pods-ChatSecureCore-ChatSecure.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ChatSecureCore-ChatSecure.debug.xcconfig"; path = "Target Support Files/Pods-ChatSecureCore-ChatSecure/Pods-ChatSecureCore-ChatSecure.debug.xcconfig"; sourceTree = ""; }; + D90DA4F2236F3C6800C585B7 /* Appirater.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; path = Appirater.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; + D90DA4F3236F3C6800C585B7 /* CPAProxy.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; path = CPAProxy.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; + D90DA4F4236F3C6800C585B7 /* TUSafariActivity.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; path = TUSafariActivity.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; D913A56C1B747B62006C5ACD /* Onboarding.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = Onboarding.storyboard; path = Interface/Onboarding.storyboard; sourceTree = ""; }; - D913A56E1B7481AD006C5ACD /* OTRWelcomeViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = OTRWelcomeViewController.swift; path = Onboarding/OTRWelcomeViewController.swift; sourceTree = ""; }; - D917CCDD1E553007003636B7 /* ServerCheck.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServerCheck.swift; sourceTree = ""; }; - D91C86671E4E6DEE008BD763 /* ServerCapabilityInfo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServerCapabilityInfo.swift; sourceTree = ""; }; - D91C86691E4E7EEA008BD763 /* ServerCapabilityTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServerCapabilityTableViewCell.swift; sourceTree = ""; }; - D91C866A1E4E7EEA008BD763 /* ServerCapabilityTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = ServerCapabilityTableViewCell.xib; sourceTree = ""; }; - D91E64181DB156E90074B2D4 /* OMEMODeviceFingerprintCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OMEMODeviceFingerprintCell.swift; sourceTree = ""; }; - D91E64191DB156E90074B2D4 /* OMEMODeviceFingerprintCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = OMEMODeviceFingerprintCell.xib; sourceTree = ""; }; - D91F9EF91ED6301500AEA62C /* OTRDownloadMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRDownloadMessage.h; sourceTree = ""; }; - D91F9EFA1ED6301500AEA62C /* OTRDownloadMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRDownloadMessage.m; sourceTree = ""; }; D91F9EFD1ED645F100AEA62C /* FileTransferIntegrationTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FileTransferIntegrationTests.swift; sourceTree = ""; }; D9227C231BA78E6B00B5E1D0 /* FontAwesome.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = FontAwesome.ttf; sourceTree = ""; }; - D9227C2C1BA7952100B5E1D0 /* ChatSecureCore.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ChatSecureCore.h; sourceTree = ""; }; - D9227C2E1BA7952100B5E1D0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - D9229D521EA960CF003D0D09 /* OTRAccountMigrationViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRAccountMigrationViewController.h; sourceTree = ""; }; - D9229D531EA960CF003D0D09 /* OTRAccountMigrationViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRAccountMigrationViewController.m; sourceTree = ""; }; - D926C19A20FBDD9E0053C538 /* Compatibility.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Compatibility.swift; sourceTree = ""; }; - D927C9761EF0C5AF00B72026 /* UIView+OTRAssets.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIView+OTRAssets.swift"; sourceTree = ""; }; - D92AC2081DB023D8007BD3E7 /* KeyManagementViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KeyManagementViewController.swift; sourceTree = ""; }; - D93027561BAA381F000CC975 /* OTRResources.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = OTRResources.bundle; sourceTree = BUILT_PRODUCTS_DIR; }; D93027581BAA381F000CC975 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; D9315CAD1BB600450077D2EE /* AddFriendsView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = AddFriendsView.xib; path = Interface/AddFriendsView.xib; sourceTree = ""; }; - D9315CAF1BB604FA0077D2EE /* AddFriendsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddFriendsView.swift; sourceTree = ""; }; - D9315CB11BB606890077D2EE /* ShareController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShareController.swift; sourceTree = ""; }; - D935EF091CFFA19A005A1AC8 /* OTRBuddyApprovalCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRBuddyApprovalCell.h; sourceTree = ""; }; - D935EF0A1CFFA19A005A1AC8 /* OTRBuddyApprovalCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRBuddyApprovalCell.m; sourceTree = ""; }; D9365E791A1EB0050006434A /* torrc */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = torrc; path = Resources/torrc; sourceTree = ""; }; - D936D6C81E8B0F6C003B1343 /* FileTransferManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FileTransferManager.swift; sourceTree = ""; }; D936D6CA1E8B1B34003B1343 /* FileTransferTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FileTransferTests.swift; sourceTree = ""; }; - D937184D1EC13D7B00766D49 /* Purchase.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Purchase.storyboard; sourceTree = ""; }; - D937184F1EC1402B00766D49 /* MaybeLaterViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MaybeLaterViewController.swift; sourceTree = ""; }; - D93718511EC267F800766D49 /* OTRAccountMigrator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRAccountMigrator.h; sourceTree = ""; }; - D93718521EC267F800766D49 /* OTRAccountMigrator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRAccountMigrator.m; sourceTree = ""; }; - D943AA401E6A0BA3007F3564 /* XMPPAccountCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XMPPAccountCell.swift; sourceTree = ""; }; - D943AA411E6A0BA3007F3564 /* XMPPAccountCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = XMPPAccountCell.xib; sourceTree = ""; }; - D945D6FC1FDA08DD00C7502C /* RoomStorage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomStorage.swift; sourceTree = ""; }; - D947C2FA1FB251410037DE84 /* SecondaryIndexes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecondaryIndexes.swift; sourceTree = ""; }; - D94ACBA21DFA206500B8C0F5 /* OTRBuddyCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRBuddyCache.h; sourceTree = ""; }; - D94ACBA31DFA206500B8C0F5 /* OTRBuddyCache.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRBuddyCache.m; sourceTree = ""; }; - D94D5A0E1F98132300AC23BF /* XMPPMessage+ChatSecure.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "XMPPMessage+ChatSecure.swift"; sourceTree = ""; }; + D93EFA7723596BC9007474EC /* OTRComposeGroupBuddyCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = OTRComposeGroupBuddyCell.xib; path = Interface/OTRComposeGroupBuddyCell.xib; sourceTree = ""; }; + D93EFA7823596BC9007474EC /* XMPPAccountCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = XMPPAccountCell.xib; path = Interface/XMPPAccountCell.xib; sourceTree = ""; }; + D93EFA7923596BC9007474EC /* OTRMessageUnknownSenderCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = OTRMessageUnknownSenderCell.xib; path = Interface/OTRMessageUnknownSenderCell.xib; sourceTree = ""; }; + D93EFA7A23596BC9007474EC /* OMEMODeviceFingerprintCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = OMEMODeviceFingerprintCell.xib; path = Interface/OMEMODeviceFingerprintCell.xib; sourceTree = ""; }; + D93EFA7B23596BC9007474EC /* PushAccountTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = PushAccountTableViewCell.xib; path = Interface/PushAccountTableViewCell.xib; sourceTree = ""; }; + D93EFA7C23596BC9007474EC /* ServerCapabilityTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = ServerCapabilityTableViewCell.xib; path = Interface/ServerCapabilityTableViewCell.xib; sourceTree = ""; }; + D93EFA7D23596BCA007474EC /* TwoButtonTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = TwoButtonTableViewCell.xib; path = Interface/TwoButtonTableViewCell.xib; sourceTree = ""; }; + D93EFA7E23596BCA007474EC /* UserInfoProfileCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = UserInfoProfileCell.xib; path = Interface/UserInfoProfileCell.xib; sourceTree = ""; }; + D93EFA7F23596BCA007474EC /* OTRMessageNewDeviceCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = OTRMessageNewDeviceCell.xib; path = Interface/OTRMessageNewDeviceCell.xib; sourceTree = ""; }; + D93EFA8023596BCA007474EC /* SingleButtonTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = SingleButtonTableViewCell.xib; path = Interface/SingleButtonTableViewCell.xib; sourceTree = ""; }; + D93EFA8D235971E2007474EC /* Purchase.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = Purchase.storyboard; path = Interface/Purchase.storyboard; sourceTree = ""; }; + D9403743236660D5001AF5C0 /* InfoPlist.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = InfoPlist.h; sourceTree = ""; }; D95553D71C4F16730019667A /* ChatSecure.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = ChatSecure.entitlements; sourceTree = ""; }; - D9599BB91E284BCA006A4450 /* StringsConverter.py */ = {isa = PBXFileReference; lastKnownFileType = text.script.python; name = StringsConverter.py; path = Strings/StringsConverter.py; sourceTree = ""; }; - D9599BBA1E284BCA006A4450 /* StringsUnused.py */ = {isa = PBXFileReference; lastKnownFileType = text.script.python; name = StringsUnused.py; path = Strings/StringsUnused.py; sourceTree = ""; }; - D9599BBB1E28578D006A4450 /* OTRStrings.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OTRStrings.m; path = Strings/OTRStrings.m; sourceTree = ""; }; - D9599BBD1E285EC3006A4450 /* OTRLanguageManager_Private.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OTRLanguageManager_Private.h; sourceTree = ""; }; - D95AD2221B67FD6A007DEBC3 /* OTRCircleView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRCircleView.h; sourceTree = ""; }; - D95AD2231B67FD6A007DEBC3 /* OTRCircleView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRCircleView.m; sourceTree = ""; }; D95AD2281B684AE1007DEBC3 /* xmpp-server-list */ = {isa = PBXFileReference; lastKnownFileType = folder; name = "xmpp-server-list"; path = "Submodules/xmpp-server-list"; sourceTree = SOURCE_ROOT; }; - D967CA881E516A95005FBB49 /* PushAccountTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PushAccountTableViewCell.swift; sourceTree = ""; }; - D967CA8D1E516B8D005FBB49 /* PushAccountTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PushAccountTableViewCell.xib; sourceTree = ""; }; + D9638A0723A3320200C0CDF7 /* iOS_Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = iOS_Release.xcconfig; sourceTree = ""; }; + D9638A0823A3320A00C0CDF7 /* macOS_Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = macOS_Debug.xcconfig; sourceTree = ""; }; + D9638A0923A3320D00C0CDF7 /* macOS_Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = macOS_Release.xcconfig; sourceTree = ""; }; + D9638A0A23A3320F00C0CDF7 /* iOS_Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = iOS_Debug.xcconfig; sourceTree = ""; }; D97070911EEF382D004FEBDE /* MediaDownloadView.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = MediaDownloadView.xib; path = Interface/MediaDownloadView.xib; sourceTree = ""; }; - D97070A61EEF3909004FEBDE /* MediaDownloadView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MediaDownloadView.swift; sourceTree = ""; }; - D97097A11FC4DB3D008ED04B /* MessageStorage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MessageStorage.swift; sourceTree = ""; }; - D97175511E60D59300675DDE /* YapDatabaseViewConnection+ChatSecure.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "YapDatabaseViewConnection+ChatSecure.h"; sourceTree = ""; }; - D97175521E60D59300675DDE /* YapDatabaseViewConnection+ChatSecure.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "YapDatabaseViewConnection+ChatSecure.m"; sourceTree = ""; }; D973D7051A2D4094004D353E /* Pods-ChatSecureCorePods-ChatSecure-acknowledgements.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "Pods-ChatSecureCorePods-ChatSecure-acknowledgements.plist"; path = "Pods/Target Support Files/Pods-ChatSecureCorePods-ChatSecure/Pods-ChatSecureCorePods-ChatSecure-acknowledgements.plist"; sourceTree = SOURCE_ROOT; }; - D985BC751EBD307D00993D27 /* PurchaseViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PurchaseViewController.swift; sourceTree = ""; }; D985BC791EBD32F700993D27 /* StoreKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = StoreKit.framework; path = System/Library/Frameworks/StoreKit.framework; sourceTree = SDKROOT; }; - D989A84D1B5DBD90000608A9 /* OTRExistingAccountViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OTRExistingAccountViewController.h; path = "Login View Controllers/OTRExistingAccountViewController.h"; sourceTree = ""; }; - D989A84E1B5DBD90000608A9 /* OTRExistingAccountViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = OTRExistingAccountViewController.m; path = "Login View Controllers/OTRExistingAccountViewController.m"; sourceTree = ""; }; - D98B8E301E4CF90400A713E1 /* OTRServerCapabilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRServerCapabilities.h; sourceTree = ""; }; - D98B8E311E4CF90400A713E1 /* OTRServerCapabilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRServerCapabilities.m; sourceTree = ""; }; - D98B8E341E4D3DB600A713E1 /* ServerCapabilitiesViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ServerCapabilitiesViewController.swift; path = Onboarding/ServerCapabilitiesViewController.swift; sourceTree = ""; }; D98BA36B1EDE47BB004475B6 /* HTMLPreviewView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = HTMLPreviewView.xib; path = Interface/HTMLPreviewView.xib; sourceTree = ""; }; - D98BA36D1EDE47F3004475B6 /* HTMLPreviewView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HTMLPreviewView.swift; sourceTree = ""; }; - D98C850A203D133800F8DA6B /* OMEMODevice.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = OMEMODevice.swift; path = "OMEMO-Storage/OMEMODevice.swift"; sourceTree = ""; }; - D997E3F21EAECD1400BF72EF /* UITableView+ChatSecure.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UITableView+ChatSecure.h"; sourceTree = ""; }; - D997E3F31EAECD1400BF72EF /* UITableView+ChatSecure.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UITableView+ChatSecure.m"; sourceTree = ""; }; D99F17891BAB946800604558 /* Branding.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Branding.plist; sourceTree = ""; }; D99F178B1BAB947E00604558 /* Secrets.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Secrets.plist; sourceTree = ""; }; - D9A1E6541F7309C100E42118 /* OTRDownloadMessage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OTRDownloadMessage.swift; sourceTree = ""; }; - D9A2C4DB204B1D2900C5DF8B /* VCardStorage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VCardStorage.swift; sourceTree = ""; }; - D9A429CF1F31169F00BD2545 /* UIAlertController+ChatSecure.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIAlertController+ChatSecure.swift"; sourceTree = ""; }; - D9A7756D1E43F8A200027864 /* ProxyXMPPStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProxyXMPPStream.h; sourceTree = ""; }; - D9A7756E1E43F8A200027864 /* ProxyXMPPStream.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ProxyXMPPStream.m; sourceTree = ""; }; - D9ABD71C1ED787EE00219A9C /* OTRHTMLItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRHTMLItem.h; sourceTree = ""; }; - D9ABD71D1ED787EE00219A9C /* OTRHTMLItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRHTMLItem.m; sourceTree = ""; }; - D9ABD7291ED7886100219A9C /* OTRTextItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRTextItem.h; sourceTree = ""; }; - D9ABD72A1ED7886100219A9C /* OTRTextItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRTextItem.m; sourceTree = ""; }; - D9AC94191FCD0DE50051B457 /* XMPPManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XMPPManager.swift; sourceTree = ""; }; - D9ADE5B71B606642009471FF /* OTRCircleButtonView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRCircleButtonView.h; sourceTree = ""; }; - D9ADE5B81B606642009471FF /* OTRCircleButtonView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRCircleButtonView.m; sourceTree = ""; }; - D9AE3A101BA8CBFA00255537 /* OTRAssets.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OTRAssets.h; sourceTree = ""; }; - D9AE3A121BA8CBFA00255537 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; D9AE3A221BA8D02800255537 /* OTRCountryImages.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = OTRCountryImages.xcassets; path = Images/OTRCountryImages.xcassets; sourceTree = ""; }; D9AE3A231BA8D02800255537 /* OTRImages.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = OTRImages.xcassets; path = Images/OTRImages.xcassets; sourceTree = ""; }; - D9AE3A2E1BA8D84500255537 /* OTRBranding.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRBranding.h; sourceTree = ""; }; - D9AE3A2F1BA8D84500255537 /* OTRBranding.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRBranding.m; sourceTree = ""; }; D9B3EC211FA196CE00E63C7F /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - D9B3F9E620C6500F005000A9 /* RoomOccupantRole.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RoomOccupantRole.h; sourceTree = ""; }; - D9B79B931ECF951F00883963 /* OTRFileItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRFileItem.h; sourceTree = ""; }; - D9B79B941ECF951F00883963 /* OTRFileItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRFileItem.m; sourceTree = ""; }; - D9B9B1311DC7F3AC0007F5A7 /* UserInfoProfileCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserInfoProfileCell.swift; sourceTree = ""; }; - D9B9B1321DC7F3AC0007F5A7 /* UserInfoProfileCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = UserInfoProfileCell.xib; sourceTree = ""; }; - D9B9B1361DC802480007F5A7 /* OTRUserInfoProfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRUserInfoProfile.h; sourceTree = ""; }; - D9BC71D81E53B2BF007A3C4F /* SingleButtonTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SingleButtonTableViewCell.swift; sourceTree = ""; }; - D9BC71D91E53B2BF007A3C4F /* SingleButtonTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = SingleButtonTableViewCell.xib; sourceTree = ""; }; - D9BC71DD1E53B465007A3C4F /* TwoButtonTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TwoButtonTableViewCell.swift; sourceTree = ""; }; - D9BC71DE1E53B465007A3C4F /* TwoButtonTableViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = TwoButtonTableViewCell.xib; sourceTree = ""; }; - D9BD54141E567A20007077FB /* UIViewController+ChatSecure.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIViewController+ChatSecure.swift"; sourceTree = ""; }; - D9BE65431B6A08ED002D4136 /* XMPPServerInfoCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XMPPServerInfoCell.h; sourceTree = ""; }; - D9BE65441B6A08ED002D4136 /* XMPPServerInfoCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XMPPServerInfoCell.m; sourceTree = ""; }; + D9B7EEDF235D476700AD1EEA /* CPAProxy.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = CPAProxy.xcodeproj; path = Submodules/CPAProxy/CPAProxy.xcodeproj; sourceTree = ""; }; + D9B7EEEE235D477200AD1EEA /* OTRKit.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = OTRKit.xcodeproj; path = Submodules/OTRKit/OTRKit.xcodeproj; sourceTree = ""; }; D9BE65451B6A08ED002D4136 /* XMPPServerInfoCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = XMPPServerInfoCell.xib; path = Interface/XMPPServerInfoCell.xib; sourceTree = ""; }; - D9BEF8DF1DCE6E12009945D1 /* OTRXMPPManager_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRXMPPManager_Private.h; sourceTree = ""; }; - D9BF84201EFA036A00EF7A0B /* AFNetworking.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AFNetworking.framework; path = Carthage/Build/iOS/AFNetworking.framework; sourceTree = ""; }; + D9C52800235CB55C002B213A /* ChatSecureCore.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ChatSecureCore.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D9C5280D235CB57F002B213A /* ChatSecureCore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChatSecureCore.h; sourceTree = ""; }; + D9C5280F235CB57F002B213A /* OTRAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRAppDelegate.m; sourceTree = ""; }; + D9C52810235CB57F002B213A /* Compatibility.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Compatibility.swift; sourceTree = ""; }; + D9C52812235CB57F002B213A /* OTRDoubleSettingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRDoubleSettingViewController.m; sourceTree = ""; }; + D9C52813235CB57F002B213A /* OTRNewBuddyViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRNewBuddyViewController.m; sourceTree = ""; }; + D9C52814235CB57F002B213A /* OTRChooseAccountViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRChooseAccountViewController.m; sourceTree = ""; }; + D9C52815235CB57F002B213A /* OTRMessagesViewController+RoomOperations.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "OTRMessagesViewController+RoomOperations.swift"; sourceTree = ""; }; + D9C52816235CB57F002B213A /* AccountDetailViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountDetailViewController.swift; sourceTree = ""; }; + D9C52817235CB57F002B213A /* PurchaseViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PurchaseViewController.swift; sourceTree = ""; }; + D9C52818235CB57F002B213A /* OTRInviteViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRInviteViewController.m; sourceTree = ""; }; + D9C52819235CB57F002B213A /* OTRConversationViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRConversationViewController.m; sourceTree = ""; }; + D9C5281A235CB57F002B213A /* OTRIntSettingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRIntSettingViewController.h; sourceTree = ""; }; + D9C5281B235CB57F002B213A /* OTRRoomOccupantsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRRoomOccupantsViewController.swift; sourceTree = ""; }; + D9C5281C235CB57F002B213A /* MaybeLaterViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MaybeLaterViewController.swift; sourceTree = ""; }; + D9C5281D235CB57F002B213A /* OTRQRCodeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRQRCodeViewController.m; sourceTree = ""; }; + D9C5281E235CB57F002B213A /* OTRListSettingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRListSettingViewController.m; sourceTree = ""; }; + D9C5281F235CB57F002B213A /* OTRCertificateDomainViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRCertificateDomainViewController.m; sourceTree = ""; }; + D9C52820235CB57F002B213A /* OTRDatabaseUnlockViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRDatabaseUnlockViewController.m; sourceTree = ""; }; + D9C52821235CB57F002B213A /* OTRMessagesHoldTalkViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRMessagesHoldTalkViewController.m; sourceTree = ""; }; + D9C52822235CB57F002B213A /* OTRCertificatesViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRCertificatesViewController.h; sourceTree = ""; }; + D9C52823235CB57F002B213A /* OTRSettingDetailViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRSettingDetailViewController.m; sourceTree = ""; }; + D9C52825235CB57F002B213A /* OTRBaseLoginViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRBaseLoginViewController.m; sourceTree = ""; }; + D9C52826235CB580002B213A /* OTRAccountMigrationViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRAccountMigrationViewController.m; sourceTree = ""; }; + D9C52827235CB580002B213A /* OTRXMPPCreateAccountHandler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRXMPPCreateAccountHandler.m; sourceTree = ""; }; + D9C52828235CB580002B213A /* OTRExistingAccountViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRExistingAccountViewController.h; sourceTree = ""; }; + D9C52829235CB580002B213A /* OTRXMPPServerListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRXMPPServerListViewController.h; sourceTree = ""; }; + D9C5282A235CB580002B213A /* OTRXLFormCreator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRXLFormCreator.m; sourceTree = ""; }; + D9C5282B235CB580002B213A /* OTRXMPPLoginHandler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRXMPPLoginHandler.m; sourceTree = ""; }; + D9C5282C235CB580002B213A /* OTRXMPPServerListViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRXMPPServerListViewController.m; sourceTree = ""; }; + D9C5282D235CB580002B213A /* OTRExistingAccountViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRExistingAccountViewController.m; sourceTree = ""; }; + D9C5282E235CB580002B213A /* OTRLoginHandler.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRLoginHandler.m; sourceTree = ""; }; + D9C5282F235CB580002B213A /* OTRMessagesViewController+SupplementaryViews.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "OTRMessagesViewController+SupplementaryViews.swift"; sourceTree = ""; }; + D9C52830235CB580002B213A /* OTRDoubleSettingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRDoubleSettingViewController.h; sourceTree = ""; }; + D9C52831235CB580002B213A /* OTRMessagesViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRMessagesViewController.m; sourceTree = ""; }; + D9C52832235CB580002B213A /* OTRMessagesCollectionViewFlowLayout.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRMessagesCollectionViewFlowLayout.swift; sourceTree = ""; }; + D9C52833235CB580002B213A /* OTRSettingsViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRSettingsViewController.m; sourceTree = ""; }; + D9C52834235CB580002B213A /* OTRIntSettingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRIntSettingViewController.m; sourceTree = ""; }; + D9C52835235CB580002B213A /* OTRLanguageListSettingViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRLanguageListSettingViewController.m; sourceTree = ""; }; + D9C52836235CB580002B213A /* KeyManagementViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = KeyManagementViewController.swift; sourceTree = ""; }; + D9C52837235CB580002B213A /* OTRComposeGroupViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRComposeGroupViewController.swift; sourceTree = ""; }; + D9C52838235CB580002B213A /* OTRQRCodeReaderDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRQRCodeReaderDelegate.m; sourceTree = ""; }; + D9C52839235CB580002B213A /* OTRCertificatesViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRCertificatesViewController.m; sourceTree = ""; }; + D9C5283B235CB580002B213A /* OTRAddBuddyQRCodeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRAddBuddyQRCodeViewController.h; sourceTree = ""; }; + D9C5283C235CB580002B213A /* OTRWelcomeViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRWelcomeViewController.swift; sourceTree = ""; }; + D9C5283D235CB580002B213A /* ServerCapabilitiesViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServerCapabilitiesViewController.swift; sourceTree = ""; }; + D9C5283E235CB580002B213A /* OTRWelcomeAccountTableViewDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRWelcomeAccountTableViewDelegate.h; sourceTree = ""; }; + D9C5283F235CB580002B213A /* OTRAddBuddyQRCodeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRAddBuddyQRCodeViewController.m; sourceTree = ""; }; + D9C52840235CB580002B213A /* EnablePushViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EnablePushViewController.swift; sourceTree = ""; }; + D9C52841235CB580002B213A /* OTRWelcomeAccountTableViewDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRWelcomeAccountTableViewDelegate.m; sourceTree = ""; }; + D9C52842235CB580002B213A /* OTRCertificateDomainViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRCertificateDomainViewController.h; sourceTree = ""; }; + D9C52843235CB580002B213A /* OTRComposeViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRComposeViewController.m; sourceTree = ""; }; + D9C52844235CB580002B213A /* OTRLogListViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRLogListViewController.swift; sourceTree = ""; }; + D9C52845235CB580002B213A /* OTRAppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRAppDelegate.swift; sourceTree = ""; }; + D9C52847235CB580002B213A /* OTRConstants.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRConstants.m; sourceTree = ""; }; + D9C52848235CB580002B213A /* OTRColors.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRColors.m; sourceTree = ""; }; + D9C52849235CB580002B213A /* OTRUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRUtilities.h; sourceTree = ""; }; + D9C5284A235CB580002B213A /* OTRChatDemo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRChatDemo.m; sourceTree = ""; }; + D9C5284B235CB580002B213A /* DefaultTheme.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DefaultTheme.swift; sourceTree = ""; }; + D9C5284C235CB580002B213A /* OTRPasswordGenerator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRPasswordGenerator.m; sourceTree = ""; }; + D9C5284D235CB580002B213A /* UIAlertController+ChatSecure.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIAlertController+ChatSecure.swift"; sourceTree = ""; }; + D9C5284E235CB580002B213A /* OTRLog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRLog.h; sourceTree = ""; }; + D9C5284F235CB580002B213A /* OTRColors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRColors.h; sourceTree = ""; }; + D9C52850235CB580002B213A /* OTRServerDeprecation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRServerDeprecation.swift; sourceTree = ""; }; + D9C52851235CB580002B213A /* OTRCertificatePinning.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRCertificatePinning.m; sourceTree = ""; }; + D9C52852235CB580002B213A /* OTRXMPPError.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRXMPPError.m; sourceTree = ""; }; + D9C52853235CB580002B213A /* OTRChatDemo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRChatDemo.h; sourceTree = ""; }; + D9C52854235CB580002B213A /* OTRUtilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRUtilities.m; sourceTree = ""; }; + D9C52855235CB580002B213A /* OTRSecrets.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRSecrets.m; sourceTree = ""; }; + D9C52856235CB580002B213A /* OTRImages.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRImages.m; sourceTree = ""; }; + D9C52857235CB580002B213A /* OTRGroupAvatarGenerator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRGroupAvatarGenerator.swift; sourceTree = ""; }; + D9C5285A235CB580002B213A /* OTRViewSetting.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRViewSetting.m; sourceTree = ""; }; + D9C5285B235CB580002B213A /* OTRIntSetting.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRIntSetting.m; sourceTree = ""; }; + D9C5285C235CB580002B213A /* OTRBoolSetting.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRBoolSetting.h; sourceTree = ""; }; + D9C5285D235CB580002B213A /* OTRShareSetting.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRShareSetting.m; sourceTree = ""; }; + D9C5285E235CB580002B213A /* OTRSettingsGroup.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRSettingsGroup.m; sourceTree = ""; }; + D9C5285F235CB580002B213A /* OTRDonateSetting.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRDonateSetting.m; sourceTree = ""; }; + D9C52860235CB580002B213A /* OTRCertificateSetting.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRCertificateSetting.m; sourceTree = ""; }; + D9C52861235CB580002B213A /* OTRListSetting.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRListSetting.m; sourceTree = ""; }; + D9C52862235CB580002B213A /* OTRDoubleSetting.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRDoubleSetting.m; sourceTree = ""; }; + D9C52863235CB580002B213A /* OTRListSettingValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRListSettingValue.h; sourceTree = ""; }; + D9C52864235CB580002B213A /* OTRFeedbackSetting.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRFeedbackSetting.h; sourceTree = ""; }; + D9C52865235CB580002B213A /* OTRBoolSetting.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRBoolSetting.m; sourceTree = ""; }; + D9C52866235CB580002B213A /* OTRIntSetting.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRIntSetting.h; sourceTree = ""; }; + D9C52867235CB580002B213A /* OTRValueSetting.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRValueSetting.m; sourceTree = ""; }; + D9C52868235CB580002B213A /* OTRDonateSetting.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRDonateSetting.h; sourceTree = ""; }; + D9C52869235CB580002B213A /* OTRDoubleSetting.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRDoubleSetting.h; sourceTree = ""; }; + D9C5286A235CB580002B213A /* OTRSetting.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRSetting.m; sourceTree = ""; }; + D9C5286B235CB580002B213A /* OTRLanguageSetting.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRLanguageSetting.m; sourceTree = ""; }; + D9C5286C235CB580002B213A /* OTRCertificateSetting.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRCertificateSetting.h; sourceTree = ""; }; + D9C5286D235CB580002B213A /* OTRListSettingValue.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRListSettingValue.m; sourceTree = ""; }; + D9C5286E235CB580002B213A /* OTRFeedbackSetting.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRFeedbackSetting.m; sourceTree = ""; }; + D9C52870235CB580002B213A /* OTRHTMLItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRHTMLItem.m; sourceTree = ""; }; + D9C52871235CB580002B213A /* OTRTextItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRTextItem.h; sourceTree = ""; }; + D9C52872235CB580002B213A /* PushContainers.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PushContainers.swift; sourceTree = ""; }; + D9C52873235CB580002B213A /* OTRXMPPPresenceSubscriptionRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRXMPPPresenceSubscriptionRequest.m; sourceTree = ""; }; + D9C52874235CB580002B213A /* OTRStreamManagementStorageObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRStreamManagementStorageObject.h; sourceTree = ""; }; + D9C52875235CB580002B213A /* OTRMediaItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRMediaItem.m; sourceTree = ""; }; + D9C52877235CB580002B213A /* OMEMODevice.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OMEMODevice.m; sourceTree = ""; }; + D9C52878235CB580002B213A /* OMEMODevice.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OMEMODevice.swift; sourceTree = ""; }; + D9C52879235CB580002B213A /* OTRYapMessageSendAction.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRYapMessageSendAction.swift; sourceTree = ""; }; + D9C5287A235CB580002B213A /* OTRMessage+JSQMessageData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "OTRMessage+JSQMessageData.h"; sourceTree = ""; }; + D9C5287B235CB580002B213A /* PushMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PushMessage.swift; sourceTree = ""; }; + D9C5287C235CB580002B213A /* OTRMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRMessage.m; sourceTree = ""; }; + D9C5287D235CB580002B213A /* OTRYapMessageSendAction.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRYapMessageSendAction.m; sourceTree = ""; }; + D9C5287E235CB580002B213A /* OTRXMPPRoomOccupant.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRXMPPRoomOccupant.swift; sourceTree = ""; }; + D9C5287F235CB580002B213A /* OTRXMPPBuddy.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRXMPPBuddy.m; sourceTree = ""; }; + D9C52880235CB580002B213A /* OTRDownloadMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRDownloadMessage.swift; sourceTree = ""; }; + D9C52881235CB580002B213A /* OTRFileItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRFileItem.h; sourceTree = ""; }; + D9C52882235CB580002B213A /* OTRAudioItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRAudioItem.m; sourceTree = ""; }; + D9C52883235CB580002B213A /* BuddySubscriptions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BuddySubscriptions.swift; sourceTree = ""; }; + D9C52884235CB580002B213A /* OTRVideoItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRVideoItem.m; sourceTree = ""; }; + D9C52885235CB580002B213A /* OTRXMPPRoomMessage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRXMPPRoomMessage.swift; sourceTree = ""; }; + D9C52886235CB580002B213A /* OTRTextItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRTextItem.m; sourceTree = ""; }; + D9C52887235CB580002B213A /* OTRHTMLItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRHTMLItem.h; sourceTree = ""; }; + D9C52888235CB580002B213A /* OTROutgoingMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTROutgoingMessage.m; sourceTree = ""; }; + D9C52889235CB580002B213A /* OTRBuddy.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRBuddy.m; sourceTree = ""; }; + D9C5288A235CB580002B213A /* OTRMessageEncryptionInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRMessageEncryptionInfo.m; sourceTree = ""; }; + D9C5288C235CB580002B213A /* OTRAccount.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRAccount.m; sourceTree = ""; }; + D9C5288D235CB580002B213A /* OTRXMPPAccount+Migration.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "OTRXMPPAccount+Migration.swift"; sourceTree = ""; }; + D9C5288E235CB580002B213A /* OTRXMPPTorAccount.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRXMPPTorAccount.h; sourceTree = ""; }; + D9C5288F235CB580002B213A /* OTRXMPPTorAccount.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRXMPPTorAccount.m; sourceTree = ""; }; + D9C52890235CB580002B213A /* OTRXMPPAccount.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRXMPPAccount.m; sourceTree = ""; }; + D9C52891235CB580002B213A /* Account.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Account.swift; sourceTree = ""; }; + D9C52892235CB580002B213A /* OTRStreamManagementStorageObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRStreamManagementStorageObject.m; sourceTree = ""; }; + D9C52893235CB580002B213A /* OTRXMPPPresenceSubscriptionRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRXMPPPresenceSubscriptionRequest.h; sourceTree = ""; }; + D9C52895235CB580002B213A /* BuddyActions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BuddyActions.swift; sourceTree = ""; }; + D9C52896235CB580002B213A /* OTRIncomingMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRIncomingMessage.m; sourceTree = ""; }; + D9C52897235CB580002B213A /* OTRDownloadMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRDownloadMessage.m; sourceTree = ""; }; + D9C52898235CB580002B213A /* OTRMessage+JSQMessageData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "OTRMessage+JSQMessageData.m"; sourceTree = ""; }; + D9C52899235CB580002B213A /* OTRMediaItem+Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "OTRMediaItem+Private.h"; sourceTree = ""; }; + D9C5289A235CB580002B213A /* OTRImageItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRImageItem.m; sourceTree = ""; }; + D9C5289B235CB580002B213A /* OTRXMPPRoom.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRXMPPRoom.swift; sourceTree = ""; }; + D9C5289C235CB580002B213A /* OTRYapDatabaseObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRYapDatabaseObject.m; sourceTree = ""; }; + D9C5289E235CB580002B213A /* OTRSignalSession.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRSignalSession.m; sourceTree = ""; }; + D9C5289F235CB580002B213A /* OTRSignalObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRSignalObject.m; sourceTree = ""; }; + D9C528A0235CB580002B213A /* OTRSignalSignedPreKey.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRSignalSignedPreKey.m; sourceTree = ""; }; + D9C528A1235CB580002B213A /* OTRAccountSignalIdentity.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRAccountSignalIdentity.m; sourceTree = ""; }; + D9C528A2235CB580002B213A /* OTRSignalPreKey.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRSignalPreKey.m; sourceTree = ""; }; + D9C528A3235CB580002B213A /* OTRSignalSenderKey.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRSignalSenderKey.m; sourceTree = ""; }; + D9C528A4235CB580002B213A /* SecondaryIndexes.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SecondaryIndexes.swift; sourceTree = ""; }; + D9C528A5235CB580002B213A /* OTRBaseMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRBaseMessage.m; sourceTree = ""; }; + D9C528A6235CB580002B213A /* OTRFileItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRFileItem.m; sourceTree = ""; }; + D9C528A9235CB580002B213A /* ChatSecure.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = ChatSecure.xcdatamodel; sourceTree = ""; }; + D9C528AA235CB580002B213A /* ChatSecure 3.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "ChatSecure 3.xcdatamodel"; sourceTree = ""; }; + D9C528AB235CB580002B213A /* ChatSecure 2.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = "ChatSecure 2.xcdatamodel"; sourceTree = ""; }; + D9C528AC235CB580002B213A /* OTRDomainCellInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRDomainCellInfo.m; sourceTree = ""; }; + D9C528AD235CB580002B213A /* MessagesViewControllerState.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessagesViewControllerState.swift; sourceTree = ""; }; + D9C528AE235CB580002B213A /* OTRQRCodeActivity.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRQRCodeActivity.m; sourceTree = ""; }; + D9C528AF235CB580002B213A /* ServerCapabilityInfo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServerCapabilityInfo.swift; sourceTree = ""; }; + D9C528B0235CB580002B213A /* OTRXMPPServerInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRXMPPServerInfo.m; sourceTree = ""; }; + D9C528B1235CB580002B213A /* OTRToastOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRToastOptions.h; sourceTree = ""; }; + D9C528B2235CB580002B213A /* OTROpenInFacebookActivity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTROpenInFacebookActivity.h; sourceTree = ""; }; + D9C528B3235CB580002B213A /* OTROpenInTwitterActivity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTROpenInTwitterActivity.h; sourceTree = ""; }; + D9C528B4235CB580002B213A /* OTRActivityItemProvider.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRActivityItemProvider.m; sourceTree = ""; }; + D9C528B5235CB580002B213A /* OTRBuddyCache.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRBuddyCache.m; sourceTree = ""; }; + D9C528B6235CB580002B213A /* OTRDomainCellInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRDomainCellInfo.h; sourceTree = ""; }; + D9C528B7235CB580002B213A /* OTROpenInTwitterActivity.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTROpenInTwitterActivity.m; sourceTree = ""; }; + D9C528B8235CB580002B213A /* OTROpenInFacebookActivity.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTROpenInFacebookActivity.m; sourceTree = ""; }; + D9C528B9235CB580002B213A /* OTRToastOptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRToastOptions.m; sourceTree = ""; }; + D9C528BB235CB580002B213A /* PushStorage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PushStorage.swift; sourceTree = ""; }; + D9C528BC235CB580002B213A /* OTRDatabaseManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRDatabaseManager.m; sourceTree = ""; }; + D9C528BD235CB580002B213A /* FileTransferManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FileTransferManager.swift; sourceTree = ""; }; + D9C528BE235CB580002B213A /* OTRXMPPChangeAvatar.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRXMPPChangeAvatar.swift; sourceTree = ""; }; + D9C528BF235CB580002B213A /* OTRAudioPlaybackController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRAudioPlaybackController.h; sourceTree = ""; }; + D9C528C0235CB580002B213A /* OTROMEMOStorageManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTROMEMOStorageManager.swift; sourceTree = ""; }; + D9C528C1235CB580002B213A /* PushDeserializer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PushDeserializer.swift; sourceTree = ""; }; + D9C528C2235CB580002B213A /* OTRAccountMigrator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRAccountMigrator.m; sourceTree = ""; }; + D9C528C3235CB580002B213A /* PushController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PushController.swift; sourceTree = ""; }; + D9C528C5235CB580002B213A /* OTRAudioSessionManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRAudioSessionManager.h; sourceTree = ""; }; + D9C528C6235CB580002B213A /* OTRDatabaseView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRDatabaseView.m; sourceTree = ""; }; + D9C528C7235CB580002B213A /* OTRProtocolManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRProtocolManager.m; sourceTree = ""; }; + D9C528C8235CB580002B213A /* OTRAttachmentPicker.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRAttachmentPicker.m; sourceTree = ""; }; + D9C528C9235CB580002B213A /* OTRXMPPChangePasswordManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRXMPPChangePasswordManager.swift; sourceTree = ""; }; + D9C528CA235CB580002B213A /* OTRMediaFileManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRMediaFileManager.m; sourceTree = ""; }; + D9C528CB235CB580002B213A /* OTROMEMOSignalCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTROMEMOSignalCoordinator.swift; sourceTree = ""; }; + D9C528CC235CB580002B213A /* YapDatabaseConstants.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = YapDatabaseConstants.swift; sourceTree = ""; }; + D9C528CD235CB580002B213A /* OTRTorManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRTorManager.m; sourceTree = ""; }; + D9C528CE235CB580002B213A /* OTRSplitViewCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRSplitViewCoordinator.swift; sourceTree = ""; }; + D9C528CF235CB580002B213A /* OTRXMPPMessageStatusModule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRXMPPMessageStatusModule.swift; sourceTree = ""; }; + D9C528D0235CB580002B213A /* ShareController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShareController.swift; sourceTree = ""; }; + D9C528D1235CB580002B213A /* MessageQueueHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageQueueHandler.swift; sourceTree = ""; }; + D9C528D2235CB580002B213A /* OTRYapViewHandler.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRYapViewHandler.swift; sourceTree = ""; }; + D9C528D3235CB580002B213A /* OTRProtocolManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRProtocolManager.swift; sourceTree = ""; }; + D9C528D4235CB580002B213A /* OTRSignalEncryptionHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRSignalEncryptionHelper.swift; sourceTree = ""; }; + D9C528D6235CB580002B213A /* OTRXMPPManager_Private.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRXMPPManager_Private.h; sourceTree = ""; }; + D9C528D7235CB580002B213A /* OTRXMPPRoomManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRXMPPRoomManager.m; sourceTree = ""; }; + D9C528D8235CB580002B213A /* OTRXMPPTorManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRXMPPTorManager.h; sourceTree = ""; }; + D9C528D9235CB580002B213A /* OTRXMPPBuddyTimers.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRXMPPBuddyTimers.m; sourceTree = ""; }; + D9C528DA235CB580002B213A /* OTRXMPPBuddyManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRXMPPBuddyManager.h; sourceTree = ""; }; + D9C528DB235CB580002B213A /* ProxyXMPPStream.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ProxyXMPPStream.m; sourceTree = ""; }; + D9C528DD235CB580002B213A /* OTRStreamManagementYapStorage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRStreamManagementYapStorage.m; sourceTree = ""; }; + D9C528DE235CB580002B213A /* VCardStorage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VCardStorage.swift; sourceTree = ""; }; + D9C528DF235CB580002B213A /* MessageStorage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageStorage.swift; sourceTree = ""; }; + D9C528E0235CB580002B213A /* OTRStreamManagementYapStorage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRStreamManagementYapStorage.h; sourceTree = ""; }; + D9C528E1235CB580002B213A /* RosterStorage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RosterStorage.swift; sourceTree = ""; }; + D9C528E2235CB580002B213A /* RoomStorage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RoomStorage.swift; sourceTree = ""; }; + D9C528E3235CB580002B213A /* OTRServerCapabilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRServerCapabilities.m; sourceTree = ""; }; + D9C528E4235CB580002B213A /* OTRXMPPBuddyTimers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRXMPPBuddyTimers.h; sourceTree = ""; }; + D9C528E5235CB580002B213A /* OTRXMPPTorManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRXMPPTorManager.m; sourceTree = ""; }; + D9C528E6235CB580002B213A /* OTRXMPPManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRXMPPManager.m; sourceTree = ""; }; + D9C528E7235CB580002B213A /* RoomManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RoomManager.swift; sourceTree = ""; }; + D9C528E8235CB580002B213A /* XMPPManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XMPPManager.swift; sourceTree = ""; }; + D9C528E9235CB580002B213A /* OTRXMPPBuddyManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRXMPPBuddyManager.m; sourceTree = ""; }; + D9C528EA235CB580002B213A /* OTRStreamManagementDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRStreamManagementDelegate.swift; sourceTree = ""; }; + D9C528EB235CB580002B213A /* ProxyXMPPStream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProxyXMPPStream.h; sourceTree = ""; }; + D9C528EC235CB580002B213A /* OTRMediaServer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRMediaServer.m; sourceTree = ""; }; + D9C528ED235CB580002B213A /* OTRYapExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRYapExtensions.swift; sourceTree = ""; }; + D9C528EE235CB580002B213A /* OTRSignalStorageManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRSignalStorageManager.swift; sourceTree = ""; }; + D9C528EF235CB580002B213A /* OTRSettingsManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRSettingsManager.m; sourceTree = ""; }; + D9C528F0235CB580002B213A /* OTRAudioPlaybackController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRAudioPlaybackController.m; sourceTree = ""; }; + D9C528F1235CB580002B213A /* Errors.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Errors.swift; sourceTree = ""; }; + D9C528F2235CB580002B213A /* OTRAudioSessionManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRAudioSessionManager.m; sourceTree = ""; }; + D9C528F3235CB580002B213A /* OTREncryptionManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTREncryptionManager.m; sourceTree = ""; }; + D9C528F5235CB580002B213A /* PushSerializer.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PushSerializer.swift; sourceTree = ""; }; + D9C528F6235CB580002B213A /* YapDatabase+ChatSecure.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "YapDatabase+ChatSecure.swift"; sourceTree = ""; }; + D9C528F7235CB580002B213A /* OTRAccountsManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRAccountsManager.m; sourceTree = ""; }; + D9C528F8235CB580002B213A /* YapDatabaseTransaction+ChatSecure.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "YapDatabaseTransaction+ChatSecure.swift"; sourceTree = ""; }; + D9C528F9235CB580002B213A /* ServerCheck.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServerCheck.swift; sourceTree = ""; }; + D9C528FA235CB580002B213A /* OTRTorManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRTorManager.h; sourceTree = ""; }; + D9C528FB235CB580002B213A /* OTRAccountSignalEncryptionManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRAccountSignalEncryptionManager.swift; sourceTree = ""; }; + D9C528FC235CB580002B213A /* OTRAccountDatabaseCount.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRAccountDatabaseCount.swift; sourceTree = ""; }; + D9C528FE235CB580002B213A /* OTRCircleButtonView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRCircleButtonView.m; sourceTree = ""; }; + D9C52900235CB580002B213A /* OTRAccountTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRAccountTableViewCell.m; sourceTree = ""; }; + D9C52901235CB580002B213A /* XMPPAccountCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = XMPPAccountCell.swift; sourceTree = ""; }; + D9C52902235CB580002B213A /* SingleButtonTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SingleButtonTableViewCell.swift; sourceTree = ""; }; + D9C52903235CB580002B213A /* MediaDownloadView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MediaDownloadView.swift; sourceTree = ""; }; + D9C52904235CB580002B213A /* HTMLPreviewView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HTMLPreviewView.swift; sourceTree = ""; }; + D9C52905235CB580002B213A /* OTRConversationCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRConversationCell.h; sourceTree = ""; }; + D9C52906235CB580002B213A /* OTRBuddyImageCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRBuddyImageCell.m; sourceTree = ""; }; + D9C52907235CB580002B213A /* OTRSettingTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRSettingTableViewCell.h; sourceTree = ""; }; + D9C52908235CB580002B213A /* XMPPServerInfoCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XMPPServerInfoCell.m; sourceTree = ""; }; + D9C52909235CB580002B213A /* OTRStatusMessageCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRStatusMessageCell.h; sourceTree = ""; }; + D9C5290A235CB580002B213A /* OTRInLineTextEditTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRInLineTextEditTableViewCell.m; sourceTree = ""; }; + D9C5290B235CB580002B213A /* OTRAccountTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRAccountTableViewCell.h; sourceTree = ""; }; + D9C5290C235CB580002B213A /* UserInfoProfileCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UserInfoProfileCell.swift; sourceTree = ""; }; + D9C5290D235CB580002B213A /* OTRUsernameCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRUsernameCell.swift; sourceTree = ""; }; + D9C5290E235CB580002B213A /* OTRBuddyInfoCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRBuddyInfoCell.m; sourceTree = ""; }; + D9C5290F235CB580002B213A /* OTRComposeGroupBuddyCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRComposeGroupBuddyCell.swift; sourceTree = ""; }; + D9C52910235CB580002B213A /* OTRConversationCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRConversationCell.m; sourceTree = ""; }; + D9C52911235CB580002B213A /* OTRMessageNewDeviceCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRMessageNewDeviceCell.swift; sourceTree = ""; }; + D9C52912235CB580002B213A /* TwoButtonTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TwoButtonTableViewCell.swift; sourceTree = ""; }; + D9C52913235CB580002B213A /* ServerCapabilityTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ServerCapabilityTableViewCell.swift; sourceTree = ""; }; + D9C52914235CB580002B213A /* OMEMODeviceFingerprintCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OMEMODeviceFingerprintCell.swift; sourceTree = ""; }; + D9C52915235CB580002B213A /* OTRStatusMessageCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRStatusMessageCell.m; sourceTree = ""; }; + D9C52916235CB580002B213A /* OTRSettingTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRSettingTableViewCell.m; sourceTree = ""; }; + D9C52917235CB580002B213A /* XMPPServerInfoCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XMPPServerInfoCell.h; sourceTree = ""; }; + D9C52918235CB580002B213A /* OTRMessageUnknownSenderCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRMessageUnknownSenderCell.swift; sourceTree = ""; }; + D9C52919235CB580002B213A /* PushAccountTableViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PushAccountTableViewCell.swift; sourceTree = ""; }; + D9C5291A235CB580002B213A /* OTRInLineTextEditTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRInLineTextEditTableViewCell.h; sourceTree = ""; }; + D9C5291B235CB580002B213A /* OTRBuddyInfoCheckableCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRBuddyInfoCheckableCell.swift; sourceTree = ""; }; + D9C5291C235CB580002B213A /* OTRBuddyApprovalCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRBuddyApprovalCell.m; sourceTree = ""; }; + D9C5291D235CB580002B213A /* OTRComposingImageView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRComposingImageView.m; sourceTree = ""; }; + D9C5291E235CB580002B213A /* OTRLockButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRLockButton.m; sourceTree = ""; }; + D9C5291F235CB580002B213A /* OTRButtonView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRButtonView.h; sourceTree = ""; }; + D9C52920235CB580002B213A /* OTRCircleView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRCircleView.h; sourceTree = ""; }; + D9C52921235CB580002B213A /* OTRSocialButtonsView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRSocialButtonsView.m; sourceTree = ""; }; + D9C52922235CB580002B213A /* OTRPlayView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRPlayView.m; sourceTree = ""; }; + D9C52923235CB580002B213A /* OTRHoldToTalkView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRHoldToTalkView.m; sourceTree = ""; }; + D9C52924235CB580002B213A /* OTRTouchAndHoldGestureRecognizer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRTouchAndHoldGestureRecognizer.m; sourceTree = ""; }; + D9C52925235CB580002B213A /* MigrationInfoHeaderView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MigrationInfoHeaderView.swift; sourceTree = ""; }; + D9C52926235CB580002B213A /* OTRRememberPasswordView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRRememberPasswordView.m; sourceTree = ""; }; + D9C52927235CB580002B213A /* OTRColorFadingDotView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRColorFadingDotView.m; sourceTree = ""; }; + D9C52928235CB580002B213A /* OTRPlayPauseProgressView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRPlayPauseProgressView.h; sourceTree = ""; }; + D9C52929235CB580002B213A /* OTRAudioTrashView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRAudioTrashView.h; sourceTree = ""; }; + D9C5292A235CB580002B213A /* JoinRoomView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = JoinRoomView.swift; sourceTree = ""; }; + D9C5292B235CB580002B213A /* OTRPauseView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRPauseView.h; sourceTree = ""; }; + D9C5292C235CB580002B213A /* OTRAudioControlsView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRAudioControlsView.h; sourceTree = ""; }; + D9C5292D235CB580002B213A /* OTRLockButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRLockButton.h; sourceTree = ""; }; + D9C5292E235CB580002B213A /* OTRButtonView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRButtonView.m; sourceTree = ""; }; + D9C5292F235CB580002B213A /* OTRComposingImageView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRComposingImageView.h; sourceTree = ""; }; + D9C52930235CB580002B213A /* OTRCircleButtonView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRCircleButtonView.h; sourceTree = ""; }; + D9C52931235CB580002B213A /* OTRTitleSubtitleView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRTitleSubtitleView.m; sourceTree = ""; }; + D9C52932235CB580002B213A /* OTRCircleView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRCircleView.m; sourceTree = ""; }; + D9C52933235CB580002B213A /* OTRColorFadingDotView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRColorFadingDotView.h; sourceTree = ""; }; + D9C52934235CB580002B213A /* OTRRememberPasswordView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRRememberPasswordView.h; sourceTree = ""; }; + D9C52935235CB580002B213A /* OTRTouchAndHoldGestureRecognizer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRTouchAndHoldGestureRecognizer.h; sourceTree = ""; }; + D9C52936235CB580002B213A /* OTRHoldToTalkView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRHoldToTalkView.h; sourceTree = ""; }; + D9C52937235CB580002B213A /* OTRPlayView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRPlayView.h; sourceTree = ""; }; + D9C52938235CB580002B213A /* OTRSocialButtonsView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRSocialButtonsView.h; sourceTree = ""; }; + D9C52939235CB580002B213A /* AddFriendsView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddFriendsView.swift; sourceTree = ""; }; + D9C5293A235CB580002B213A /* OTRPauseView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRPauseView.m; sourceTree = ""; }; + D9C5293B235CB580002B213A /* OTRAudioControlsView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRAudioControlsView.m; sourceTree = ""; }; + D9C5293C235CB580002B213A /* OTRAudioTrashView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRAudioTrashView.m; sourceTree = ""; }; + D9C5293D235CB580002B213A /* OTRVerticalStackView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRVerticalStackView.swift; sourceTree = ""; }; + D9C5293E235CB580002B213A /* OTRPlayPauseProgressView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTRPlayPauseProgressView.m; sourceTree = ""; }; + D9C5293F235CB580002B213A /* MigratedBuddyHeaderView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MigratedBuddyHeaderView.swift; sourceTree = ""; }; + D9C52941235CB580002B213A /* UIViewController+ChatSecure.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIViewController+ChatSecure.swift"; sourceTree = ""; }; + D9C52942235CB580002B213A /* UIViewController+ChatSecure.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIViewController+ChatSecure.h"; sourceTree = ""; }; + D9C52943235CB580002B213A /* NSFileManager+ChatSecure.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSFileManager+ChatSecure.h"; sourceTree = ""; }; + D9C52944235CB580002B213A /* NSData+ChatSecure.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "NSData+ChatSecure.swift"; sourceTree = ""; }; + D9C52945235CB580002B213A /* YapDatabaseViewConnection+ChatSecure.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "YapDatabaseViewConnection+ChatSecure.m"; sourceTree = ""; }; + D9C52946235CB580002B213A /* UIApplication+ChatSecure.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIApplication+ChatSecure.swift"; sourceTree = ""; }; + D9C52947235CB580002B213A /* UITableView+ChatSecure.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UITableView+ChatSecure.h"; sourceTree = ""; }; + D9C52948235CB580002B213A /* JSQMessagesCollectionViewCell+ChatSecure.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "JSQMessagesCollectionViewCell+ChatSecure.m"; sourceTree = ""; }; + D9C52949235CB580002B213A /* UIActivityViewController+ChatSecure.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIActivityViewController+ChatSecure.m"; sourceTree = ""; }; + D9C5294A235CB580002B213A /* UIActivity+ChatSecure.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIActivity+ChatSecure.m"; sourceTree = ""; }; + D9C5294B235CB580002B213A /* NSFileManager+ChatSecure.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSFileManager+ChatSecure.m"; sourceTree = ""; }; + D9C5294C235CB580002B213A /* UIViewController+ChatSecure.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIViewController+ChatSecure.m"; sourceTree = ""; }; + D9C5294D235CB580002B213A /* UINavigationController+ChatSecure.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UINavigationController+ChatSecure.swift"; sourceTree = ""; }; + D9C5294E235CB580002B213A /* XMPPMessage+ChatSecure.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "XMPPMessage+ChatSecure.swift"; sourceTree = ""; }; + D9C5294F235CB580002B213A /* NSURL+ChatSecure.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSURL+ChatSecure.m"; sourceTree = ""; }; + D9C52950235CB580002B213A /* UIImage+ChatSecure.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImage+ChatSecure.m"; sourceTree = ""; }; + D9C52951235CB580002B213A /* UIActivity+ChatSecure.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIActivity+ChatSecure.h"; sourceTree = ""; }; + D9C52952235CB580002B213A /* NSString+ChatSecure.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+ChatSecure.m"; sourceTree = ""; }; + D9C52953235CB580002B213A /* JSQMessagesCollectionViewCell+ChatSecure.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "JSQMessagesCollectionViewCell+ChatSecure.h"; sourceTree = ""; }; + D9C52954235CB580002B213A /* UIActivityViewController+ChatSecure.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIActivityViewController+ChatSecure.h"; sourceTree = ""; }; + D9C52955235CB580002B213A /* UITableView+ChatSecure.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UITableView+ChatSecure.m"; sourceTree = ""; }; + D9C52957235CB580002B213A /* OTRSignalPreKey.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRSignalPreKey.h; sourceTree = ""; }; + D9C52958235CB580002B213A /* OTRBuddyInfoCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRBuddyInfoCell.h; sourceTree = ""; }; + D9C52959235CB580002B213A /* OTRMessageEncryptionInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRMessageEncryptionInfo.h; sourceTree = ""; }; + D9C5295A235CB580002B213A /* OTRBuddyCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRBuddyCache.h; sourceTree = ""; }; + D9C5295B235CB580002B213A /* OTRBuddy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRBuddy.h; sourceTree = ""; }; + D9C5295C235CB580002B213A /* OTROutgoingMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTROutgoingMessage.h; sourceTree = ""; }; + D9C5295D235CB580002B213A /* RoomOccupantRole.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RoomOccupantRole.h; sourceTree = ""; }; + D9C5295E235CB580002B213A /* OTRServerCapabilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRServerCapabilities.h; sourceTree = ""; }; + D9C5295F235CB580002B213A /* OTRActivityItemProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRActivityItemProvider.h; sourceTree = ""; }; + D9C52960235CB580002B213A /* OTRSettingDetailViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRSettingDetailViewController.h; sourceTree = ""; }; + D9C52961235CB580002B213A /* OTRSettingsViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRSettingsViewController.h; sourceTree = ""; }; + D9C52962235CB580002B213A /* OTRIncomingMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRIncomingMessage.h; sourceTree = ""; }; + D9C52963235CB580002B213A /* NSURL+ChatSecure.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSURL+ChatSecure.h"; sourceTree = ""; }; + D9C52964235CB580002B213A /* OTRMessagesViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRMessagesViewController.h; sourceTree = ""; }; + D9C52965235CB580002B213A /* OTRSettingsManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRSettingsManager.h; sourceTree = ""; }; + D9C52966235CB580002B213A /* OTRTitleSubtitleView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRTitleSubtitleView.h; sourceTree = ""; }; + D9C52967235CB580002B213A /* OTRMediaServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRMediaServer.h; sourceTree = ""; }; + D9C52968235CB580002B213A /* OTRCertificatePinning.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRCertificatePinning.h; sourceTree = ""; }; + D9C52969235CB580002B213A /* OTRXMPPLoginHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRXMPPLoginHandler.h; sourceTree = ""; }; + D9C5296A235CB580002B213A /* OTRValueSetting.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRValueSetting.h; sourceTree = ""; }; + D9C5296B235CB580002B213A /* OTRXMPPManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRXMPPManager.h; sourceTree = ""; }; + D9C5296C235CB580002B213A /* OTRSignalSenderKey.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRSignalSenderKey.h; sourceTree = ""; }; + D9C5296D235CB580002B213A /* OTRQRCodeReaderDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRQRCodeReaderDelegate.h; sourceTree = ""; }; + D9C5296E235CB580002B213A /* OTRLanguageSetting.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRLanguageSetting.h; sourceTree = ""; }; + D9C5296F235CB580002B213A /* OTRXMPPAccount.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRXMPPAccount.h; sourceTree = ""; }; + D9C52970235CB580002B213A /* OTRSetting.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRSetting.h; sourceTree = ""; }; + D9C52971235CB580002B213A /* OTRYapDatabaseObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRYapDatabaseObject.h; sourceTree = ""; }; + D9C52972235CB580002B213A /* OTREncryptionManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTREncryptionManager.h; sourceTree = ""; }; + D9C52973235CB580002B213A /* OTRImageItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRImageItem.h; sourceTree = ""; }; + D9C52974235CB580002B213A /* OTRLanguageListSettingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRLanguageListSettingViewController.h; sourceTree = ""; }; + D9C52975235CB580002B213A /* OTRDownloadMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRDownloadMessage.h; sourceTree = ""; }; + D9C52976235CB580002B213A /* OTRXMPPError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRXMPPError.h; sourceTree = ""; }; + D9C52977235CB580002B213A /* OTRComposeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRComposeViewController.h; sourceTree = ""; }; + D9C52978235CB580002B213A /* OTRLoginHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRLoginHandler.h; sourceTree = ""; }; + D9C52979235CB580002B213A /* NSString+ChatSecure.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+ChatSecure.h"; sourceTree = ""; }; + D9C5297A235CB580002B213A /* OTRUserInfoProfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRUserInfoProfile.h; sourceTree = ""; }; + D9C5297B235CB580002B213A /* OTRImages.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRImages.h; sourceTree = ""; }; + D9C5297D235CB580002B213A /* OTRBuddyApprovalCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRBuddyApprovalCell.h; sourceTree = ""; }; + D9C5297E235CB580002B213A /* OTRBaseMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRBaseMessage.h; sourceTree = ""; }; + D9C5297F235CB580002B213A /* OTRAccountsManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRAccountsManager.h; sourceTree = ""; }; + D9C52980235CB580002B213A /* UIImage+ChatSecure.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImage+ChatSecure.h"; sourceTree = ""; }; + D9C52981235CB580002B213A /* AppTheme.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppTheme.h; sourceTree = ""; }; + D9C52982235CB580002B213A /* OTRDatabaseManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRDatabaseManager.h; sourceTree = ""; }; + D9C52983235CB580002B213A /* OTRXMPPRoomManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRXMPPRoomManager.h; sourceTree = ""; }; + D9C52984235CB580002B213A /* OTRViewSetting.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRViewSetting.h; sourceTree = ""; }; + D9C52985235CB580002B213A /* OMEMODevice.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OMEMODevice.h; sourceTree = ""; }; + D9C52986235CB580002B213A /* OTRConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRConstants.h; sourceTree = ""; }; + D9C52987235CB580002B213A /* OTRAccount.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRAccount.h; sourceTree = ""; }; + D9C52988235CB580002B213A /* OTRBaseLoginViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRBaseLoginViewController.h; sourceTree = ""; }; + D9C52989235CB580002B213A /* OTRAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRAppDelegate.h; sourceTree = ""; }; + D9C5298A235CB580002B213A /* OTRMediaItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRMediaItem.h; sourceTree = ""; }; + D9C5298B235CB580002B213A /* OTRXMPPCreateAccountHandler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRXMPPCreateAccountHandler.h; sourceTree = ""; }; + D9C5298C235CB580002B213A /* OTRAccountMigrationViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRAccountMigrationViewController.h; sourceTree = ""; }; + D9C5298D235CB580002B213A /* OTRChooseAccountViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRChooseAccountViewController.h; sourceTree = ""; }; + D9C5298E235CB580002B213A /* OTRNewBuddyViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRNewBuddyViewController.h; sourceTree = ""; }; + D9C5298F235CB580002B213A /* OTRSettingsGroup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRSettingsGroup.h; sourceTree = ""; }; + D9C52990235CB580002B213A /* OTRShareSetting.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRShareSetting.h; sourceTree = ""; }; + D9C52991235CB580002B213A /* OTRProtocolManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRProtocolManager.h; sourceTree = ""; }; + D9C52992235CB580002B213A /* OTRYapMessageSendAction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRYapMessageSendAction.h; sourceTree = ""; }; + D9C52993235CB580002B213A /* OTRMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRMessage.h; sourceTree = ""; }; + D9C52994235CB580002B213A /* OTRDatabaseView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRDatabaseView.h; sourceTree = ""; }; + D9C52995235CB580002B213A /* OTRQRCodeActivity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRQRCodeActivity.h; sourceTree = ""; }; + D9C52996235CB580002B213A /* OTRListSetting.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRListSetting.h; sourceTree = ""; }; + D9C52997235CB580002B213A /* OTRSignalSignedPreKey.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRSignalSignedPreKey.h; sourceTree = ""; }; + D9C52998235CB580002B213A /* OTRProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRProtocol.h; sourceTree = ""; }; + D9C52999235CB580002B213A /* OTRBuddyImageCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRBuddyImageCell.h; sourceTree = ""; }; + D9C5299A235CB580002B213A /* OTRConversationViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRConversationViewController.h; sourceTree = ""; }; + D9C5299B235CB580002B213A /* OTRAccountMigrator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRAccountMigrator.h; sourceTree = ""; }; + D9C5299C235CB580002B213A /* YapDatabaseViewConnection+ChatSecure.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "YapDatabaseViewConnection+ChatSecure.h"; sourceTree = ""; }; + D9C5299D235CB580002B213A /* OTRInviteViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRInviteViewController.h; sourceTree = ""; }; + D9C5299E235CB580002B213A /* OTRSignalObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRSignalObject.h; sourceTree = ""; }; + D9C5299F235CB580002B213A /* OTRSignalSession.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRSignalSession.h; sourceTree = ""; }; + D9C529A0235CB580002B213A /* OTRvCard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRvCard.h; sourceTree = ""; }; + D9C529A1235CB580002B213A /* OTRVideoItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRVideoItem.h; sourceTree = ""; }; + D9C529A2235CB580002B213A /* OTRXLFormCreator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRXLFormCreator.h; sourceTree = ""; }; + D9C529A3235CB580002B213A /* OTRMessagesHoldTalkViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRMessagesHoldTalkViewController.h; sourceTree = ""; }; + D9C529A4235CB580002B213A /* OTRAudioItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRAudioItem.h; sourceTree = ""; }; + D9C529A5235CB580002B213A /* OTRDatabaseUnlockViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRDatabaseUnlockViewController.h; sourceTree = ""; }; + D9C529A6235CB580002B213A /* OTRPasswordGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRPasswordGenerator.h; sourceTree = ""; }; + D9C529A7235CB580002B213A /* OTRThreadOwner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRThreadOwner.h; sourceTree = ""; }; + D9C529A8235CB580002B213A /* OTRListSettingViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRListSettingViewController.h; sourceTree = ""; }; + D9C529A9235CB580002B213A /* OTRQRCodeViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRQRCodeViewController.h; sourceTree = ""; }; + D9C529AA235CB580002B213A /* OTRXMPPBuddy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRXMPPBuddy.h; sourceTree = ""; }; + D9C529AB235CB580002B213A /* OTRAccountSignalIdentity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRAccountSignalIdentity.h; sourceTree = ""; }; + D9C529AC235CB580002B213A /* OTRMediaFileManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRMediaFileManager.h; sourceTree = ""; }; + D9C529AD235CB580002B213A /* OTRAttachmentPicker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRAttachmentPicker.h; sourceTree = ""; }; + D9C529AE235CB580002B213A /* OTRXMPPServerInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OTRXMPPServerInfo.h; sourceTree = ""; }; + D9C529B0235CB580002B213A /* ChatSecureCoreCompat-Swift.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "ChatSecureCoreCompat-Swift.h"; sourceTree = ""; }; + D9C529B1235CB580002B213A /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; D9C6E69D1B7148EF00572273 /* OTRUsernameCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = OTRUsernameCell.xib; path = Interface/OTRUsernameCell.xib; sourceTree = ""; }; - D9C6E6A01B71575300572273 /* OTRUsernameCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTRUsernameCell.swift; sourceTree = ""; }; - D9CBBC571C642BAA005CD715 /* EnablePushViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = EnablePushViewController.swift; path = "ChatSecure/Classes/View Controllers/Onboarding/EnablePushViewController.swift"; sourceTree = SOURCE_ROOT; }; - D9DB2D131F37AEBB005D64E4 /* OTRYapMessageSendAction.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OTRYapMessageSendAction.swift; sourceTree = ""; }; D9DEC3491FABC9F900BF1F7C /* Settings.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = Settings.bundle; sourceTree = ""; }; - D9E8277D1E2819F20071F40D /* strings.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; name = strings.json; path = OTRAssets/Strings/strings.json; sourceTree = SOURCE_ROOT; }; - D9EEEDD11D27388600B8BC54 /* OTRvCard.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OTRvCard.h; path = "Yap Storage/OTRvCard.h"; sourceTree = ""; }; - D9F3B1AE1FD48DDA00DFC5DA /* Account.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Account.swift; sourceTree = ""; }; - D9F5EC492016E94800010966 /* OTRProtocolManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OTRProtocolManager.swift; sourceTree = ""; }; - D9F8C3C11FBFD2CA00D4B857 /* RoomManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomManager.swift; sourceTree = ""; }; - D9FBDDC81FD74A93006F1C6C /* OTRAppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OTRAppDelegate.swift; sourceTree = ""; }; - D9FF60212040A9EF003207DC /* AppTheme.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppTheme.h; sourceTree = ""; }; - D9FF60232040B0E5003207DC /* DefaultTheme.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DefaultTheme.swift; sourceTree = ""; }; - DE32B878BAC9A236855EAF6E /* Pods-ChatSecureCorePods-ChatSecure.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ChatSecureCorePods-ChatSecure.debug.xcconfig"; path = "Pods/Target Support Files/Pods-ChatSecureCorePods-ChatSecure/Pods-ChatSecureCorePods-ChatSecure.debug.xcconfig"; sourceTree = ""; }; + D9ECD08E2344626800ECE5F9 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = ""; }; + DC9AC4BC9B1EE58593CE5C3D /* Pods-ChatSecure.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ChatSecure.release.xcconfig"; path = "Target Support Files/Pods-ChatSecure/Pods-ChatSecure.release.xcconfig"; sourceTree = ""; }; + E3E9B8FEBB110591EF226AD3 /* Pods-ChatSecureCorePods-ChatSecure.macos_release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ChatSecureCorePods-ChatSecure.macos_release.xcconfig"; path = "Target Support Files/Pods-ChatSecureCorePods-ChatSecure/Pods-ChatSecureCorePods-ChatSecure.macos_release.xcconfig"; sourceTree = ""; }; + F0C9D2C724F78DD3739637DD /* Pods-ChatSecureCorePods-ChatSecureCore.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ChatSecureCorePods-ChatSecureCore.release.xcconfig"; path = "Target Support Files/Pods-ChatSecureCorePods-ChatSecureCore/Pods-ChatSecureCorePods-ChatSecureCore.release.xcconfig"; sourceTree = ""; }; + F3ABC9C273758A049CBDA652 /* Pods-ChatSecureCorePods-ChatSecureTests.ios_debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ChatSecureCorePods-ChatSecureTests.ios_debug.xcconfig"; path = "Target Support Files/Pods-ChatSecureCorePods-ChatSecureTests/Pods-ChatSecureCorePods-ChatSecureTests.ios_debug.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -665,8 +1110,9 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D9C52807235CB55C002B213A /* ChatSecureCore.framework in Frameworks */, D985BC7A1EBD32F700993D27 /* StoreKit.framework in Frameworks */, - 4D17A0182F0DA3D98412BA60 /* libPods-ChatSecureCorePods-ChatSecure.a in Frameworks */, + 07BD06A9B424D601FC93AB82 /* libPods-ChatSecureCorePods-ChatSecure.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -674,30 +1120,58 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - DB6ED7303C69215971C9934B /* libPods-ChatSecureCorePods-ChatSecureTests.a in Frameworks */, + D9C52B3F235CBC27002B213A /* ChatSecureCore.framework in Frameworks */, + 7CD871CB705CA365E0755104 /* libPods-ChatSecureCorePods-ChatSecureTests.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - D93027531BAA381F000CC975 /* Frameworks */ = { + D9C527FD235CB55C002B213A /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + D9B7EEFC235D47CA00AD1EEA /* CPAProxy.framework in Frameworks */, + D9B7EEFB235D47C400AD1EEA /* OTRKit.framework in Frameworks */, + FC71232B8C2603C869639700 /* libPods-ChatSecureCorePods-ChatSecureCore.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 6309E4D41D493B2D002CF8FC /* Signal Controllers */ = { + 1507F5BA78237F257C4590AD /* Pods */ = { isa = PBXGroup; children = ( - 63828A9F1D53F54F00B81249 /* OTROMEMOSignalCoordinator.swift */, - 63D150FD1D8B5637006FB2E2 /* OTROMEMOStorageManager.swift */, - 63BA43DB1D41826F007FAF7F /* OTRSignalStorageManager.swift */, - 6309E4D51D493B6E002CF8FC /* OTRAccountSignalEncryptionManager.swift */, - 63FCB1361DA3224A00A801F2 /* OTRSignalEncryptionHelper.swift */, - ); - name = "Signal Controllers"; + 3096761ACDDAAF472A2FAFCE /* Pods-ChatSecure.debug.xcconfig */, + DC9AC4BC9B1EE58593CE5C3D /* Pods-ChatSecure.release.xcconfig */, + 1EB047809C85EF9C3AACEFCC /* Pods-ChatSecureCore.debug.xcconfig */, + 8B0F7D8477AAAE9D06628430 /* Pods-ChatSecureCore.release.xcconfig */, + D785F9E1338B477035D07DAE /* Pods-ChatSecureCore-ChatSecure.debug.xcconfig */, + 242940F967DCFC191A55C19D /* Pods-ChatSecureCore-ChatSecure.release.xcconfig */, + 51A79F83EAE1FC455A4FAA1B /* Pods-ChatSecureCore-ChatSecureTests.debug.xcconfig */, + 3E4338474FF3B540674FEC5F /* Pods-ChatSecureCore-ChatSecureTests.release.xcconfig */, + 6C1E59A7F629602AA386C2B8 /* Pods-ChatSecureCorePods-ChatSecure.debug.xcconfig */, + 02700BD14C69C0E5B88BB7B8 /* Pods-ChatSecureCorePods-ChatSecure.release.xcconfig */, + A0810F735CB0C0686C3D35C1 /* Pods-ChatSecureCorePods-ChatSecureCore.debug.xcconfig */, + F0C9D2C724F78DD3739637DD /* Pods-ChatSecureCorePods-ChatSecureCore.release.xcconfig */, + 49ABA5011FCB27BD5F715BC4 /* Pods-ChatSecureCorePods-ChatSecureTests.debug.xcconfig */, + 30CF60268F58900535B9B31A /* Pods-ChatSecureCorePods-ChatSecureTests.release.xcconfig */, + 4BD803A40662A0FD3DA93554 /* Pods-ChatSecureCorePods-ChatSecure.release (mac).xcconfig */, + 0F10D8D68EF9105245CE0D9F /* Pods-ChatSecureCorePods-ChatSecureCore.release (mac).xcconfig */, + 6A7EE4EA4252D079E2CD4C5B /* Pods-ChatSecureCorePods-ChatSecureTests.release (mac).xcconfig */, + 99AA03F8FC490C50FCDB3372 /* Pods-ChatSecureCorePods-ChatSecure.ios_debug.xcconfig */, + 1DF3B63791159A0338AFF0D0 /* Pods-ChatSecureCorePods-ChatSecure.macos_debug.xcconfig */, + C66839AD8A8A4F785B556BF5 /* Pods-ChatSecureCorePods-ChatSecure.ios_release.xcconfig */, + E3E9B8FEBB110591EF226AD3 /* Pods-ChatSecureCorePods-ChatSecure.macos_release.xcconfig */, + C77091A8CD45453CD4E09235 /* Pods-ChatSecureCorePods-ChatSecureCore.ios_debug.xcconfig */, + 6009355D15BA89BBBF7D3537 /* Pods-ChatSecureCorePods-ChatSecureCore.macos_debug.xcconfig */, + 1BB82A92ECB98785BADD286E /* Pods-ChatSecureCorePods-ChatSecureCore.ios_release.xcconfig */, + 0787C95583715C56D30272CC /* Pods-ChatSecureCorePods-ChatSecureCore.macos_release.xcconfig */, + F3ABC9C273758A049CBDA652 /* Pods-ChatSecureCorePods-ChatSecureTests.ios_debug.xcconfig */, + B1625F54938553179BDE1438 /* Pods-ChatSecureCorePods-ChatSecureTests.macos_debug.xcconfig */, + C49EB1E6D7F0D4F0A9FB232D /* Pods-ChatSecureCorePods-ChatSecureTests.ios_release.xcconfig */, + 9093D0A3DB37442CFB9718F8 /* Pods-ChatSecureCorePods-ChatSecureTests.macos_release.xcconfig */, + ); + path = Pods; sourceTree = ""; }; 6323C6FF1E396D1900D0FB42 /* TestImages */ = { @@ -714,8 +1188,8 @@ 633104D71A169EE600C17BAE /* Resources */ = { isa = PBXGroup; children = ( + D9ECD08E2344626800ECE5F9 /* LaunchScreen.storyboard */, D9DEC3491FABC9F900BF1F7C /* Settings.bundle */, - 633106661A16D1A300C17BAE /* LaunchScreen.xib */, D9227C231BA78E6B00B5E1D0 /* FontAwesome.ttf */, D95AD2281B684AE1007DEBC3 /* xmpp-server-list */, D973D7051A2D4094004D353E /* Pods-ChatSecureCorePods-ChatSecure-acknowledgements.plist */, @@ -726,812 +1200,923 @@ name = Resources; sourceTree = ""; }; - 633105001A16D1A300C17BAE /* Classes */ = { - isa = PBXGroup; - children = ( - D926C19A20FBDD9E0053C538 /* Compatibility.swift */, - D9FBDDC81FD74A93006F1C6C /* OTRAppDelegate.swift */, - 633105E51A16D1A300C17BAE /* OTRAppDelegate.h */, - 633105E61A16D1A300C17BAE /* OTRAppDelegate.m */, - 633105011A16D1A300C17BAE /* Categories */, - 6331050E1A16D1A300C17BAE /* Controllers */, - 633105401A16D1A300C17BAE /* Model */, - 633105E71A16D1A300C17BAE /* Utilities */, - 633105FE1A16D1A300C17BAE /* View Controllers */, - 6331064A1A16D1A300C17BAE /* Views */, - ); - name = Classes; - path = ../ChatSecure/Classes; - sourceTree = ""; - }; - 633105011A16D1A300C17BAE /* Categories */ = { + 6365CEFD1E2453F6009E213F /* ChatSecureUITests */ = { isa = PBXGroup; children = ( - D94D5A0E1F98132300AC23BF /* XMPPMessage+ChatSecure.swift */, - D997E3F21EAECD1400BF72EF /* UITableView+ChatSecure.h */, - D997E3F31EAECD1400BF72EF /* UITableView+ChatSecure.m */, - D97175511E60D59300675DDE /* YapDatabaseViewConnection+ChatSecure.h */, - D97175521E60D59300675DDE /* YapDatabaseViewConnection+ChatSecure.m */, - D9BD54141E567A20007077FB /* UIViewController+ChatSecure.swift */, - 633105021A16D1A300C17BAE /* NSURL+ChatSecure.h */, - 633105031A16D1A300C17BAE /* NSURL+ChatSecure.m */, - 633105061A16D1A300C17BAE /* UIActivity+ChatSecure.h */, - 633105071A16D1A300C17BAE /* UIActivity+ChatSecure.m */, - 633105081A16D1A300C17BAE /* UIActivityViewController+ChatSecure.h */, - 633105091A16D1A300C17BAE /* UIActivityViewController+ChatSecure.m */, - 6331050A1A16D1A300C17BAE /* UIImage+ChatSecure.h */, - 6331050B1A16D1A300C17BAE /* UIImage+ChatSecure.m */, - 6331050C1A16D1A300C17BAE /* UIViewController+ChatSecure.h */, - 6331050D1A16D1A300C17BAE /* UIViewController+ChatSecure.m */, - 63FABC8C1A410EBF009BF681 /* JSQMessagesCollectionViewCell+ChatSecure.h */, - 63FABC8D1A410EBF009BF681 /* JSQMessagesCollectionViewCell+ChatSecure.m */, - 63FABC8F1A41218E009BF681 /* NSString+ChatSecure.h */, - 63FABC901A41218E009BF681 /* NSString+ChatSecure.m */, - 638FC09B1B0BE46100B37454 /* NSFileManager+ChatSecure.h */, - 638FC09C1B0BE46100B37454 /* NSFileManager+ChatSecure.m */, - 63636D6D1C1F78A6009F5FCD /* UINavigationController+ChatSecure.swift */, - 63636D711C1F9D7C009F5FCD /* UIApplication+ChatSecure.swift */, - 631C79921E56846700B30CB4 /* NSData+ChatSecure.swift */, + 632157DC1E57D01A00738D4E /* SnapshotHelper.swift */, + 6365CEFE1E2453F6009E213F /* ChatSecureUITests.swift */, + 6365CF001E2453F6009E213F /* Info.plist */, ); - path = Categories; + path = ChatSecureUITests; sourceTree = ""; }; - 6331050E1A16D1A300C17BAE /* Controllers */ = { + 6396AF911A169D54009F3E6C = { isa = PBXGroup; children = ( - D9F5EC492016E94800010966 /* OTRProtocolManager.swift */, - D936D6C81E8B0F6C003B1343 /* FileTransferManager.swift */, - D93718511EC267F800766D49 /* OTRAccountMigrator.h */, - D93718521EC267F800766D49 /* OTRAccountMigrator.m */, - D917CCDD1E553007003636B7 /* ServerCheck.swift */, - 6370CCB81CF65A07005DA8D2 /* YapDatabase+ChatSecure.swift */, - 63363FAD1CCAE29B00B0C720 /* OTRYapExtensions.swift */, - 634364221CC192F1009E169F /* YapDatabaseConstants.swift */, - 63C0C4421BE010B00086B529 /* YapDatabaseTransaction+ChatSecure.swift */, - D9315CB11BB606890077D2EE /* ShareController.swift */, - 63E413A91CDA9E2400B17303 /* MessageQueueHandler.swift */, - 63F6E18F1A69B9BA0011E6F7 /* OTRAttachmentPicker.h */, - 63F6E1901A69B9BA0011E6F7 /* OTRAttachmentPicker.m */, - 6331050F1A16D1A300C17BAE /* OTRAccountsManager.h */, - 633105101A16D1A300C17BAE /* OTRAccountsManager.m */, - 633105131A16D1A300C17BAE /* OTRDatabaseManager.h */, - 633105141A16D1A300C17BAE /* OTRDatabaseManager.m */, - 633105151A16D1A300C17BAE /* OTRDatabaseView.h */, - 633105161A16D1A300C17BAE /* OTRDatabaseView.m */, - 633105171A16D1A300C17BAE /* OTREncryptionManager.h */, - 633105181A16D1A300C17BAE /* OTREncryptionManager.m */, - 6331051D1A16D1A300C17BAE /* OTROAuthRefresher.h */, - 6331051E1A16D1A300C17BAE /* OTROAuthRefresher.m */, - 633105211A16D1A300C17BAE /* OTRProtocol.h */, - 633105221A16D1A300C17BAE /* OTRProtocolManager.h */, - 633105231A16D1A300C17BAE /* OTRProtocolManager.m */, - 6331052E1A16D1A300C17BAE /* OTRSettingsManager.h */, - 6331052F1A16D1A300C17BAE /* OTRSettingsManager.m */, - 633105301A16D1A300C17BAE /* OTRTorManager.h */, - 633105311A16D1A300C17BAE /* OTRTorManager.m */, - 633AF2F81A7C3DBB0030A3FF /* OTRAudioSessionManager.h */, - 633AF2F91A7C3DBC0030A3FF /* OTRAudioSessionManager.m */, - 63C5B6681A82F3EE0011BEA8 /* OTRAudioPlaybackController.h */, - 63C5B6691A82F3EE0011BEA8 /* OTRAudioPlaybackController.m */, - 6354BBE21A96C67400E8EBAC /* OTRMediaFileManager.h */, - 6354BBE31A96C67400E8EBAC /* OTRMediaFileManager.m */, - 63DDD8AE1A9D3C0400C0A918 /* OTRMediaServer.h */, - 63DDD8AF1A9D3C0400C0A918 /* OTRMediaServer.m */, - 637645C81B98F9BF00B3402F /* PushController.swift */, - 63564E0F1BBB1C5200EB4CA6 /* PushStorage.swift */, - 638045671BB4BDEC002D8BAE /* PushSerializer.swift */, - 638045691BB4C832002D8BAE /* PushDeserializer.swift */, - 63DC417A1BB3767000D42857 /* Errors.swift */, - 63E353B51BB9D83B005C54C3 /* OTRPushTLVHandler.h */, - 63E353B61BB9D83B005C54C3 /* OTRPushTLVHandler.m */, - 63E353F51BB9E41D005C54C3 /* OTRPushTLVHandlerProtocols.h */, - 634905AF1BD05E3900347FE2 /* OTRYapViewHandler.swift */, - 63AB1A061C0D116A005FA351 /* OTRSplitViewCoordinator.swift */, - 63232AC61E37F13C00D84CDF /* OTRAccountDatabaseCount.swift */, - 632BF03F1E3817A400C2D0C2 /* OTRXMPPChangeAvatar.swift */, - 6309E4D41D493B2D002CF8FC /* Signal Controllers */, - 633105321A16D1A300C17BAE /* XMPP */, - 6358FDDF1CDC097A00C9D3B6 /* OTRXMPPMessageStatusModule.swift */, - 6381F35F1DFB7AD800563057 /* OTRXMPPChangePasswordManager.swift */, + D9B7EEEE235D477200AD1EEA /* OTRKit.xcodeproj */, + D9B7EEDF235D476700AD1EEA /* CPAProxy.xcodeproj */, + 6396AF9C1A169D54009F3E6C /* ChatSecure */, + 6396AFB61A169D54009F3E6C /* ChatSecureTests */, + 6365CEFD1E2453F6009E213F /* ChatSecureUITests */, + D9C5280C235CB57F002B213A /* ChatSecureCore */, + D93027571BAA381F000CC975 /* OTRResources */, + 6396AF9B1A169D54009F3E6C /* Products */, + DB9AACD6ED82090C7A6B0076 /* Frameworks */, + 1507F5BA78237F257C4590AD /* Pods */, ); - path = Controllers; sourceTree = ""; }; - 633105321A16D1A300C17BAE /* XMPP */ = { + 6396AF9B1A169D54009F3E6C /* Products */ = { isa = PBXGroup; children = ( - D97097A01FC4DA85008ED04B /* Storage */, - D9F8C3C11FBFD2CA00D4B857 /* RoomManager.swift */, - D98B8E301E4CF90400A713E1 /* OTRServerCapabilities.h */, - D98B8E311E4CF90400A713E1 /* OTRServerCapabilities.m */, - D9A7756D1E43F8A200027864 /* ProxyXMPPStream.h */, - D9A7756E1E43F8A200027864 /* ProxyXMPPStream.m */, - 63D639E11D12124F002B4175 /* OTRStreamManagementDelegate.swift */, - 633105351A16D1A300C17BAE /* OTRXMPPBuddyTimers.h */, - 633105361A16D1A300C17BAE /* OTRXMPPBuddyTimers.m */, - D9BEF8DF1DCE6E12009945D1 /* OTRXMPPManager_Private.h */, - 633105371A16D1A300C17BAE /* OTRXMPPManager.h */, - 633105381A16D1A300C17BAE /* OTRXMPPManager.m */, - D9AC94191FCD0DE50051B457 /* XMPPManager.swift */, - 636985581BC875110083FC53 /* OTRXMPPRoomManager.h */, - 636985591BC875110083FC53 /* OTRXMPPRoomManager.m */, - 6331053B1A16D1A300C17BAE /* OTRXMPPTorManager.h */, - 6331053C1A16D1A300C17BAE /* OTRXMPPTorManager.m */, - 639C35281C3DDDDE00132330 /* OTRXMPPBuddyManager.h */, - 639C35291C3DDDDE00132330 /* OTRXMPPBuddyManager.m */, + 6396AF9A1A169D54009F3E6C /* ChatSecure.app */, + 6396AFB31A169D54009F3E6C /* ChatSecureTests.xctest */, + 6365CEFC1E2453F6009E213F /* ChatSecureUITests.xctest */, + D9C52800235CB55C002B213A /* ChatSecureCore.framework */, ); - path = XMPP; + name = Products; sourceTree = ""; }; - 633105401A16D1A300C17BAE /* Model */ = { + 6396AF9C1A169D54009F3E6C /* ChatSecure */ = { isa = PBXGroup; children = ( - D91C86671E4E6DEE008BD763 /* ServerCapabilityInfo.swift */, - D94ACBA21DFA206500B8C0F5 /* OTRBuddyCache.h */, - D94ACBA31DFA206500B8C0F5 /* OTRBuddyCache.m */, - D9EEEDD11D27388600B8BC54 /* OTRvCard.h */, - 63C7E64C1B20F69F0085FA06 /* OTRXMPPServerInfo.h */, - 63C7E64D1B20F69F0085FA06 /* OTRXMPPServerInfo.m */, - 6331058D1A16D1A300C17BAE /* OTRActivityItemProvider.h */, - 6331058E1A16D1A300C17BAE /* OTRActivityItemProvider.m */, - 6331058F1A16D1A300C17BAE /* OTRDomainCellInfo.h */, - 633105901A16D1A300C17BAE /* OTRDomainCellInfo.m */, - 633105911A16D1A300C17BAE /* OTROpenInFacebookActivity.h */, - 633105921A16D1A300C17BAE /* OTROpenInFacebookActivity.m */, - 633105931A16D1A300C17BAE /* OTROpenInTwitterActivity.h */, - 633105941A16D1A300C17BAE /* OTROpenInTwitterActivity.m */, - 633105951A16D1A300C17BAE /* OTRQRCodeActivity.h */, - 633105961A16D1A300C17BAE /* OTRQRCodeActivity.m */, - 63D64D641A2FBA8C00E21F77 /* OTRToastOptions.h */, - 63D64D651A2FBA8C00E21F77 /* OTRToastOptions.m */, - 63929C951C7D32D9008DB2E3 /* MessagesViewControllerState.swift */, - 633105971A16D1A300C17BAE /* Settings */, - 633105B81A16D1A300C17BAE /* Yap Storage */, + D9403743236660D5001AF5C0 /* InfoPlist.h */, + D9B3EC211FA196CE00E63C7F /* AppDelegate.swift */, + D95553D71C4F16730019667A /* ChatSecure.entitlements */, + D9638A0223A331DF00C0CDF7 /* xcconfig */, + 633104D71A169EE600C17BAE /* Resources */, + 6396AF9D1A169D54009F3E6C /* Supporting Files */, ); - path = Model; + path = ChatSecure; sourceTree = ""; }; - 633105971A16D1A300C17BAE /* Settings */ = { + 6396AF9D1A169D54009F3E6C /* Supporting Files */ = { isa = PBXGroup; children = ( - 633105981A16D1A300C17BAE /* OTRBoolSetting.h */, - 633105991A16D1A300C17BAE /* OTRBoolSetting.m */, - 6331059A1A16D1A300C17BAE /* OTRCertificateSetting.h */, - 6331059B1A16D1A300C17BAE /* OTRCertificateSetting.m */, - 6331059C1A16D1A300C17BAE /* OTRDonateSetting.h */, - 6331059D1A16D1A300C17BAE /* OTRDonateSetting.m */, - 6331059E1A16D1A300C17BAE /* OTRDoubleSetting.h */, - 6331059F1A16D1A300C17BAE /* OTRDoubleSetting.m */, - 633105A01A16D1A300C17BAE /* OTRFeedbackSetting.h */, - 633105A11A16D1A300C17BAE /* OTRFeedbackSetting.m */, - 633105A41A16D1A300C17BAE /* OTRIntSetting.h */, - 633105A51A16D1A300C17BAE /* OTRIntSetting.m */, - 633105A61A16D1A300C17BAE /* OTRLanguageSetting.h */, - 633105A71A16D1A300C17BAE /* OTRLanguageSetting.m */, - 633105A81A16D1A300C17BAE /* OTRListSetting.h */, - 633105A91A16D1A300C17BAE /* OTRListSetting.m */, - 633105AA1A16D1A300C17BAE /* OTRListSettingValue.h */, - 633105AB1A16D1A300C17BAE /* OTRListSettingValue.m */, - 633105AE1A16D1A300C17BAE /* OTRSetting.h */, - 633105AF1A16D1A300C17BAE /* OTRSetting.m */, - 633105B01A16D1A300C17BAE /* OTRSettingsGroup.h */, - 633105B11A16D1A300C17BAE /* OTRSettingsGroup.m */, - 633105B21A16D1A300C17BAE /* OTRShareSetting.h */, - 633105B31A16D1A300C17BAE /* OTRShareSetting.m */, - 633105B41A16D1A300C17BAE /* OTRValueSetting.h */, - 633105B51A16D1A300C17BAE /* OTRValueSetting.m */, - 633105B61A16D1A300C17BAE /* OTRViewSetting.h */, - 633105B71A16D1A300C17BAE /* OTRViewSetting.m */, + 6396AF9E1A169D54009F3E6C /* Info.plist */, ); - path = Settings; + name = "Supporting Files"; sourceTree = ""; }; - 633105B81A16D1A300C17BAE /* Yap Storage */ = { + 6396AFB61A169D54009F3E6C /* ChatSecureTests */ = { isa = PBXGroup; children = ( - D9B3F9E620C6500F005000A9 /* RoomOccupantRole.h */, - D947C2FA1FB251410037DE84 /* SecondaryIndexes.swift */, - D9A1E6541F7309C100E42118 /* OTRDownloadMessage.swift */, - D91F9EF91ED6301500AEA62C /* OTRDownloadMessage.h */, - D91F9EFA1ED6301500AEA62C /* OTRDownloadMessage.m */, - 63D150F81D8A0B46006FB2E2 /* OMEMO-Storage */, - 63BA43DA1D417C34007FAF7F /* Signal-Storage */, - 63CBD68E1C642B8100AC6D1F /* YapActions */, - 633821C71BA8D46C0019C906 /* Push */, - 633105B91A16D1A300C17BAE /* Accounts */, - 633620961A76E854006E8739 /* Media Items */, - 63B916E31B7431C1003B778F /* OTRStreamManagementStorageObject.h */, - 63B916E41B7431C1003B778F /* OTRStreamManagementStorageObject.m */, - 633105CA1A16D1A300C17BAE /* OTRBuddy.h */, - 633105CB1A16D1A300C17BAE /* OTRBuddy.m */, - 633105CC1A16D1A300C17BAE /* OTRMessage+JSQMessageData.h */, - 633105CD1A16D1A300C17BAE /* OTRMessage+JSQMessageData.m */, - 63D65D2B1DD68A8D00D9E52E /* OTRMessage.h */, - 63D65D2C1DD68A8D00D9E52E /* OTRMessage.m */, - 633105CE1A16D1A300C17BAE /* OTRBaseMessage.h */, - 633105CF1A16D1A300C17BAE /* OTRBaseMessage.m */, - 637ABBC51DD530CD00B18DD2 /* OTRIncomingMessage.h */, - 637ABBC61DD530CD00B18DD2 /* OTRIncomingMessage.m */, - 637ABBC71DD5312200B18DD2 /* OTROutgoingMessage.h */, - 637ABBC81DD5312200B18DD2 /* OTROutgoingMessage.m */, - 637ABBC11DD5232800B18DD2 /* OTRMessageEncryptionInfo.h */, - 637ABBC21DD5232800B18DD2 /* OTRMessageEncryptionInfo.m */, - 633105D01A16D1A300C17BAE /* OTRXMPPBuddy.h */, - 633105D11A16D1A300C17BAE /* OTRXMPPBuddy.m */, - 929FCF6A2010AA4D004736AF /* BuddySubscriptions.swift */, - 633105D41A16D1A300C17BAE /* OTRYapDatabaseObject.h */, - 633105D51A16D1A300C17BAE /* OTRYapDatabaseObject.m */, - 63D14F341C0FC6A90029F36B /* OTRThreadOwner.h */, - 63BB66B31BC5D5F00004A619 /* OTRXMPPRoom.swift */, - 6340431A1BD5BCD800ECA95A /* OTRXMPPRoomMessage.swift */, - 6340431C1BD5BD0400ECA95A /* OTRXMPPRoomOccupant.swift */, - 63BAB26C1C863C60005185F3 /* PushMessage.swift */, - 92BE6C7D2010E34000A79C8B /* OTRXMPPPresenceSubscriptionRequest.h */, - 92BE6C7C2010E33F00A79C8B /* OTRXMPPPresenceSubscriptionRequest.m */, + 63DDD8B91A9E9BD900C0A918 /* samples */, + 636C63201B571B56008FEE69 /* OTRURLTests.m */, + 635FCC831D1B5116008F903C /* OTRStringTests.swift */, + 63DDD8B41A9E94B700C0A918 /* OTRMediaTests.m */, + 63F614DB1BB214660083A06A /* ChatSecureModelTest.swift */, + 63E353B11BB9D0CF005C54C3 /* PushSerializerTest.swift */, + 63B578631D51600300D80ED3 /* OTRSignalTest.swift */, + 636767E81D83562700432B48 /* TestXMPPAccount.swift */, + 639120921D8CA1E200F4100E /* OTROmemoStorageTest.swift */, + 63634CE81DA704AA00B0BAE8 /* OTROMEMOIntegrationTest.swift */, + 635E51A81DA82A4E002B70AB /* OTROMEMOTestModule.swift */, + 635E51AA1DA83AF0002B70AB /* OTRTestDatabase.swift */, + 63DF75F41E5FBE550032950B /* OTRYapViewTest.swift */, + 63917C3D1DFA20D900341D96 /* OTRModelTest.swift */, + 6323C6FD1E39547200D0FB42 /* OTRImageTest.swift */, + 63F0CAFA1E60C1B40045359C /* OTRYapViewTest.swift */, + D936D6CA1E8B1B34003B1343 /* FileTransferTests.swift */, + D91F9EFD1ED645F100AEA62C /* FileTransferIntegrationTests.swift */, + 6323C6FF1E396D1900D0FB42 /* TestImages */, + 6396AFB71A169D54009F3E6C /* Supporting Files */, + 63F614DA1BB214640083A06A /* ChatSecureTests-Bridging-Header.h */, ); - path = "Yap Storage"; + path = ChatSecureTests; sourceTree = ""; }; - 633105B91A16D1A300C17BAE /* Accounts */ = { + 6396AFB71A169D54009F3E6C /* Supporting Files */ = { isa = PBXGroup; children = ( - D9F3B1AE1FD48DDA00DFC5DA /* Account.swift */, - 929D6F1B1EC4EC9C00802941 /* OTRXMPPAccount+Migration.swift */, - D9B9B1361DC802480007F5A7 /* OTRUserInfoProfile.h */, - 63CFB1051ABA492B00A8D27E /* Removed */, - 633105BA1A16D1A300C17BAE /* OTRAccount.h */, - 633105BB1A16D1A300C17BAE /* OTRAccount.m */, - 633105BE1A16D1A300C17BAE /* OTRGoogleOAuthXMPPAccount.h */, - 633105BF1A16D1A300C17BAE /* OTRGoogleOAuthXMPPAccount.m */, - 633105C01A16D1A300C17BAE /* OTROAuthXMPPAccount.h */, - 633105C11A16D1A300C17BAE /* OTROAuthXMPPAccount.m */, - 633105C41A16D1A300C17BAE /* OTRXMPPAccount.h */, - 633105C51A16D1A300C17BAE /* OTRXMPPAccount.m */, - 633105C61A16D1A300C17BAE /* OTRXMPPTorAccount.h */, - 633105C71A16D1A300C17BAE /* OTRXMPPTorAccount.m */, + 6396AFB81A169D54009F3E6C /* Info.plist */, ); - path = Accounts; + name = "Supporting Files"; sourceTree = ""; }; - 633105E71A16D1A300C17BAE /* Utilities */ = { + D93027571BAA381F000CC975 /* OTRResources */ = { isa = PBXGroup; children = ( - D9FF60212040A9EF003207DC /* AppTheme.h */, - D9A429CF1F31169F00BD2545 /* UIAlertController+ChatSecure.swift */, - 9236F56A1F21FFA600C963D0 /* OTRGroupAvatarGenerator.swift */, - D9FF60232040B0E5003207DC /* DefaultTheme.swift */, - 633105E81A16D1A300C17BAE /* OTRCertificatePinning.h */, - 633105E91A16D1A300C17BAE /* OTRCertificatePinning.m */, - 633105EA1A16D1A300C17BAE /* OTRChatDemo.h */, - 633105EB1A16D1A300C17BAE /* OTRChatDemo.m */, - 633105EC1A16D1A300C17BAE /* OTRColors.h */, - 633105ED1A16D1A300C17BAE /* OTRColors.m */, - 633105F01A16D1A300C17BAE /* OTRImages.h */, - 633105F11A16D1A300C17BAE /* OTRImages.m */, - 633105F21A16D1A300C17BAE /* OTRLog.h */, - 633105F51A16D1A300C17BAE /* OTRPasswordGenerator.h */, - 633105F61A16D1A300C17BAE /* OTRPasswordGenerator.m */, - 633105EE1A16D1A300C17BAE /* OTRConstants.h */, - 633105EF1A16D1A300C17BAE /* OTRConstants.m */, - 633105FA1A16D1A300C17BAE /* OTRUtilities.h */, - 633105FB1A16D1A300C17BAE /* OTRUtilities.m */, - 633105FC1A16D1A300C17BAE /* OTRXMPPError.h */, - 633105FD1A16D1A300C17BAE /* OTRXMPPError.m */, - 924F68601EA8A00D00528FB6 /* OTRServerDeprecation.swift */, + D93EFA8D235971E2007474EC /* Purchase.storyboard */, + D93EFA7A23596BC9007474EC /* OMEMODeviceFingerprintCell.xib */, + D93EFA7723596BC9007474EC /* OTRComposeGroupBuddyCell.xib */, + D93EFA7F23596BCA007474EC /* OTRMessageNewDeviceCell.xib */, + D93EFA7923596BC9007474EC /* OTRMessageUnknownSenderCell.xib */, + D93EFA7B23596BC9007474EC /* PushAccountTableViewCell.xib */, + D93EFA7C23596BC9007474EC /* ServerCapabilityTableViewCell.xib */, + D93EFA8023596BCA007474EC /* SingleButtonTableViewCell.xib */, + D93EFA7D23596BCA007474EC /* TwoButtonTableViewCell.xib */, + D93EFA7E23596BCA007474EC /* UserInfoProfileCell.xib */, + D93EFA7823596BC9007474EC /* XMPPAccountCell.xib */, + 9251C34C1F35CC44003ACE4A /* ios-icon-font.ttf */, + 9251C34D1F35CC44003ACE4A /* MaterialIcons-Regular.ttf */, + D97070911EEF382D004FEBDE /* MediaDownloadView.xib */, + D98BA36B1EDE47BB004475B6 /* HTMLPreviewView.xib */, + D9BE65451B6A08ED002D4136 /* XMPPServerInfoCell.xib */, + D9C6E69D1B7148EF00572273 /* OTRUsernameCell.xib */, + D913A56C1B747B62006C5ACD /* Onboarding.storyboard */, + 633104D61A169EC800C17BAE /* Localizable.strings */, + D9AE3A221BA8D02800255537 /* OTRCountryImages.xcassets */, + D9AE3A231BA8D02800255537 /* OTRImages.xcassets */, + D93027581BAA381F000CC975 /* Info.plist */, + D99F17891BAB946800604558 /* Branding.plist */, + D99F178B1BAB947E00604558 /* Secrets.plist */, + D9315CAD1BB600450077D2EE /* AddFriendsView.xib */, + 924F67C41EA5541C00528FB6 /* MigrationInfoHeaderView.xib */, + 924F68581EA7A31A00528FB6 /* MigratedBuddyHeaderView.xib */, + 8F56C50436DA64774EBB16E3 /* OTRMessagesLoadingView.xib */, + 9251C3041F345DD5003ACE4A /* OTRRoomOccupants.storyboard */, + 92CC68BE1F42F0710006CDF8 /* OTRComposeGroup.storyboard */, + 9224A5F2207E3BD800A044BF /* JoinRoomView.xib */, ); - path = Utilities; + path = OTRResources; sourceTree = ""; }; - 633105FE1A16D1A300C17BAE /* View Controllers */ = { + D9638A0223A331DF00C0CDF7 /* xcconfig */ = { isa = PBXGroup; children = ( - D985BC751EBD307D00993D27 /* PurchaseViewController.swift */, - D937184F1EC1402B00766D49 /* MaybeLaterViewController.swift */, - D937184D1EC13D7B00766D49 /* Purchase.storyboard */, - D90E711B1E6CB4360008D83B /* AccountDetailViewController.swift */, - D92AC2081DB023D8007BD3E7 /* KeyManagementViewController.swift */, - 638D2DFD1AFAD3AE00F3C50C /* Onboarding */, - 633105FF1A16D1A300C17BAE /* Login View Controllers */, - 633106181A16D1A300C17BAE /* OTRCertificateDomainViewController.h */, - 633106191A16D1A300C17BAE /* OTRCertificateDomainViewController.m */, - 6331061A1A16D1A300C17BAE /* OTRCertificatesViewController.h */, - 6331061B1A16D1A300C17BAE /* OTRCertificatesViewController.m */, - 6331061E1A16D1A300C17BAE /* OTRChooseAccountViewController.h */, - 6331061F1A16D1A300C17BAE /* OTRChooseAccountViewController.m */, - 633106201A16D1A300C17BAE /* OTRComposeViewController.h */, - 633106211A16D1A300C17BAE /* OTRComposeViewController.m */, - 633106221A16D1A300C17BAE /* OTRConversationViewController.h */, - 633106231A16D1A300C17BAE /* OTRConversationViewController.m */, - 633106281A16D1A300C17BAE /* OTRDatabaseUnlockViewController.h */, - 633106291A16D1A300C17BAE /* OTRDatabaseUnlockViewController.m */, - 6331062A1A16D1A300C17BAE /* OTRDoubleSettingViewController.h */, - 6331062B1A16D1A300C17BAE /* OTRDoubleSettingViewController.m */, - 6331062E1A16D1A300C17BAE /* OTRIntSettingViewController.h */, - 6331062F1A16D1A300C17BAE /* OTRIntSettingViewController.m */, - 633106301A16D1A300C17BAE /* OTRLanguageListSettingViewController.h */, - 633106311A16D1A300C17BAE /* OTRLanguageListSettingViewController.m */, - 633106321A16D1A300C17BAE /* OTRListSettingViewController.h */, - 633106331A16D1A300C17BAE /* OTRListSettingViewController.m */, - 63EA4CFA1ACC931200B19E12 /* Messages View Controller */, - 633106381A16D1A300C17BAE /* OTRNewBuddyViewController.h */, - 633106391A16D1A300C17BAE /* OTRNewBuddyViewController.m */, - 6331063E1A16D1A300C17BAE /* OTRQRCodeViewController.h */, - 6331063F1A16D1A300C17BAE /* OTRQRCodeViewController.m */, - 633106421A16D1A300C17BAE /* OTRSettingDetailViewController.h */, - 633106431A16D1A300C17BAE /* OTRSettingDetailViewController.m */, - 633106441A16D1A300C17BAE /* OTRSettingsViewController.h */, - 633106451A16D1A300C17BAE /* OTRSettingsViewController.m */, - 63C0C4441BE184910086B529 /* OTRRoomOccupantsViewController.swift */, - 6325DD5F1E20390700C88944 /* OTRLogListViewController.swift */, - 92CC68C01F42F11D0006CDF8 /* OTRComposeGroupViewController.swift */, + D9638A0823A3320A00C0CDF7 /* macOS_Debug.xcconfig */, + D9638A0923A3320D00C0CDF7 /* macOS_Release.xcconfig */, + D9638A0A23A3320F00C0CDF7 /* iOS_Debug.xcconfig */, + D9638A0723A3320200C0CDF7 /* iOS_Release.xcconfig */, ); - path = "View Controllers"; + path = xcconfig; sourceTree = ""; }; - 633105FF1A16D1A300C17BAE /* Login View Controllers */ = { + D9B7EEE0235D476700AD1EEA /* Products */ = { isa = PBXGroup; children = ( - D9229D521EA960CF003D0D09 /* OTRAccountMigrationViewController.h */, - D9229D531EA960CF003D0D09 /* OTRAccountMigrationViewController.m */, - 638C7CF01B02BE4A004F8EC3 /* OTRBaseLoginViewController.h */, - 638C7CF11B02BE4A004F8EC3 /* OTRBaseLoginViewController.m */, - 638C7CF31B02BF0D004F8EC3 /* OTRXLFormCreator.h */, - 638C7CF41B02BF0D004F8EC3 /* OTRXLFormCreator.m */, - 63039E961B0D43FE007C9978 /* OTRXMPPServerListViewController.h */, - 63039E971B0D43FE007C9978 /* OTRXMPPServerListViewController.m */, - 634680871B041EE900D9A1C5 /* Login Handlers */, + D9B7EEE7235D476700AD1EEA /* CPAProxy.framework */, + D9B7EEE9235D476700AD1EEA /* CPAProxy.framework */, + D9B7EEEB235D476700AD1EEA /* CPAProxy.bundle */, + D9B7EEED235D476700AD1EEA /* CPAProxy.bundle */, ); - path = "Login View Controllers"; + name = Products; sourceTree = ""; }; - 6331064A1A16D1A300C17BAE /* Views */ = { + D9B7EEEF235D477200AD1EEA /* Products */ = { isa = PBXGroup; children = ( - 926509191F4CB45B003FCAD3 /* OTRVerticalStackView.swift */, - D9315CAF1BB604FA0077D2EE /* AddFriendsView.swift */, - D95AD2221B67FD6A007DEBC3 /* OTRCircleView.h */, - D95AD2231B67FD6A007DEBC3 /* OTRCircleView.m */, - D9ADE5B71B606642009471FF /* OTRCircleButtonView.h */, - D9ADE5B81B606642009471FF /* OTRCircleButtonView.m */, - 6331064B1A16D1A300C17BAE /* Cells */, - 633106671A16D1A300C17BAE /* OTRButtonView.h */, - 633106681A16D1A300C17BAE /* OTRButtonView.m */, - 63FA54921A7C127F00F2AEBB /* AudioBubble Views */, - 633106691A16D1A300C17BAE /* OTRColorFadingDotView.h */, - 6331066A1A16D1A300C17BAE /* OTRColorFadingDotView.m */, - 6331066B1A16D1A300C17BAE /* OTRComposingImageView.h */, - 6331066C1A16D1A300C17BAE /* OTRComposingImageView.m */, - 6331066D1A16D1A300C17BAE /* OTRLockButton.h */, - 6331066E1A16D1A300C17BAE /* OTRLockButton.m */, - 633106711A16D1A300C17BAE /* OTRRememberPasswordView.h */, - 633106721A16D1A300C17BAE /* OTRRememberPasswordView.m */, - 633106731A16D1A300C17BAE /* OTRSocialButtonsView.h */, - 633106741A16D1A300C17BAE /* OTRSocialButtonsView.m */, - 633106751A16D1A300C17BAE /* OTRTitleSubtitleView.h */, - 633106761A16D1A300C17BAE /* OTRTitleSubtitleView.m */, - 63EA4CFB1ACC96AB00B19E12 /* OTRHoldToTalkView.h */, - 63EA4CFC1ACC96AB00B19E12 /* OTRHoldToTalkView.m */, - 6353AC2B1AD5E32000753B83 /* OTRAudioTrashView.h */, - 6353AC2C1AD5E32000753B83 /* OTRAudioTrashView.m */, - 639CDD8F1AD74419009BAABC /* OTRTouchAndHoldGestureRecognizer.h */, - 639CDD901AD74419009BAABC /* OTRTouchAndHoldGestureRecognizer.m */, - 924F67C61EA55C6F00528FB6 /* MigrationInfoHeaderView.swift */, - 924F68561EA7A2FD00528FB6 /* MigratedBuddyHeaderView.swift */, - 9224A5F0207E3B6700A044BF /* JoinRoomView.swift */, + D9B7EEF4235D477200AD1EEA /* OTRKit.framework */, + D9B7EEF6235D477200AD1EEA /* OTRKit.framework */, ); - path = Views; + name = Products; sourceTree = ""; }; - 6331064B1A16D1A300C17BAE /* Cells */ = { + D9C5280C235CB57F002B213A /* ChatSecureCore */ = { isa = PBXGroup; children = ( - D97070A61EEF3909004FEBDE /* MediaDownloadView.swift */, - D98BA36D1EDE47F3004475B6 /* HTMLPreviewView.swift */, - D943AA401E6A0BA3007F3564 /* XMPPAccountCell.swift */, - D943AA411E6A0BA3007F3564 /* XMPPAccountCell.xib */, - D967CA881E516A95005FBB49 /* PushAccountTableViewCell.swift */, - D967CA8D1E516B8D005FBB49 /* PushAccountTableViewCell.xib */, - D9BC71D81E53B2BF007A3C4F /* SingleButtonTableViewCell.swift */, - D9BC71D91E53B2BF007A3C4F /* SingleButtonTableViewCell.xib */, - D9BC71DD1E53B465007A3C4F /* TwoButtonTableViewCell.swift */, - D9BC71DE1E53B465007A3C4F /* TwoButtonTableViewCell.xib */, - D91C86691E4E7EEA008BD763 /* ServerCapabilityTableViewCell.swift */, - D91C866A1E4E7EEA008BD763 /* ServerCapabilityTableViewCell.xib */, - D9B9B1311DC7F3AC0007F5A7 /* UserInfoProfileCell.swift */, - D9B9B1321DC7F3AC0007F5A7 /* UserInfoProfileCell.xib */, - D91E64181DB156E90074B2D4 /* OMEMODeviceFingerprintCell.swift */, - D91E64191DB156E90074B2D4 /* OMEMODeviceFingerprintCell.xib */, - D935EF091CFFA19A005A1AC8 /* OTRBuddyApprovalCell.h */, - D935EF0A1CFFA19A005A1AC8 /* OTRBuddyApprovalCell.m */, - D9BE65431B6A08ED002D4136 /* XMPPServerInfoCell.h */, - D9BE65441B6A08ED002D4136 /* XMPPServerInfoCell.m */, - 6331064C1A16D1A300C17BAE /* OTRAccountTableViewCell.h */, - 6331064D1A16D1A300C17BAE /* OTRAccountTableViewCell.m */, - 6331064E1A16D1A300C17BAE /* OTRBuddyImageCell.h */, - 6331064F1A16D1A300C17BAE /* OTRBuddyImageCell.m */, - 633106501A16D1A300C17BAE /* OTRBuddyInfoCell.h */, - 633106511A16D1A300C17BAE /* OTRBuddyInfoCell.m */, - 92DC0F751F442DBA00318E49 /* OTRBuddyInfoCheckableCell.swift */, - 633106521A16D1A300C17BAE /* OTRConversationCell.h */, - 633106531A16D1A300C17BAE /* OTRConversationCell.m */, - 633106541A16D1A300C17BAE /* OTRInLineTextEditTableViewCell.h */, - 633106551A16D1A300C17BAE /* OTRInLineTextEditTableViewCell.m */, - 6331065E1A16D1A300C17BAE /* OTRSettingTableViewCell.h */, - 6331065F1A16D1A300C17BAE /* OTRSettingTableViewCell.m */, - 633106601A16D1A300C17BAE /* OTRStatusMessageCell.h */, - 633106611A16D1A300C17BAE /* OTRStatusMessageCell.m */, - D9C6E6A01B71575300572273 /* OTRUsernameCell.swift */, - 92CC68F01F42FF8D0006CDF8 /* OTRComposeGroupBuddyCell.swift */, - 92CC68F21F43054E0006CDF8 /* OTRComposeGroupBuddyCell.xib */, - 9212364C1FCD779C009F97F0 /* OTRMessageUnknownSenderCell.swift */, - 9212364D1FCD779C009F97F0 /* OTRMessageUnknownSenderCell.xib */, - 926141FF2006566400E8216F /* OTRMessageNewDeviceCell.swift */, - 926141FD2006563D00E8216F /* OTRMessageNewDeviceCell.xib */, + D9C5280D235CB57F002B213A /* ChatSecureCore.h */, + D9C5280E235CB57F002B213A /* Classes */, + D9C52956235CB580002B213A /* Public */, + D9C529AF235CB580002B213A /* Private */, + D9C529B1235CB580002B213A /* Info.plist */, ); - path = Cells; + path = ChatSecureCore; sourceTree = ""; }; - 633620961A76E854006E8739 /* Media Items */ = { + D9C5280E235CB57F002B213A /* Classes */ = { isa = PBXGroup; children = ( - D9040CB01EF1EB050027A862 /* OTRMediaItem+Private.h */, - D9ABD71C1ED787EE00219A9C /* OTRHTMLItem.h */, - D9ABD71D1ED787EE00219A9C /* OTRHTMLItem.m */, - D9B79B931ECF951F00883963 /* OTRFileItem.h */, - D9B79B941ECF951F00883963 /* OTRFileItem.m */, - 63D27FC31A6DC51C00EC251A /* OTRMediaItem.h */, - 63D27FC41A6DC51C00EC251A /* OTRMediaItem.m */, - D9ABD7291ED7886100219A9C /* OTRTextItem.h */, - D9ABD72A1ED7886100219A9C /* OTRTextItem.m */, - 633620971A76E87B006E8739 /* OTRImageItem.h */, - 633620981A76E87B006E8739 /* OTRImageItem.m */, - 6336209A1A76E88C006E8739 /* OTRVideoItem.h */, - 6336209B1A76E88C006E8739 /* OTRVideoItem.m */, - 6336209D1A76E89A006E8739 /* OTRAudioItem.h */, - 6336209E1A76E89A006E8739 /* OTRAudioItem.m */, - ); - name = "Media Items"; + D9C5280F235CB57F002B213A /* OTRAppDelegate.m */, + D9C52810235CB57F002B213A /* Compatibility.swift */, + D9C52811235CB57F002B213A /* View Controllers */, + D9C52845235CB580002B213A /* OTRAppDelegate.swift */, + D9C52846235CB580002B213A /* Utilities */, + D9C52858235CB580002B213A /* Model */, + D9C528BA235CB580002B213A /* Controllers */, + D9C528FD235CB580002B213A /* Views */, + D9C52940235CB580002B213A /* Categories */, + ); + path = Classes; sourceTree = ""; }; - 633821C71BA8D46C0019C906 /* Push */ = { + D9C52811235CB57F002B213A /* View Controllers */ = { isa = PBXGroup; children = ( - 633821C81BA8D48D0019C906 /* PushContainers.swift */, + D9C52812235CB57F002B213A /* OTRDoubleSettingViewController.m */, + D9C52813235CB57F002B213A /* OTRNewBuddyViewController.m */, + D9C52814235CB57F002B213A /* OTRChooseAccountViewController.m */, + D9C52815235CB57F002B213A /* OTRMessagesViewController+RoomOperations.swift */, + D9C52816235CB57F002B213A /* AccountDetailViewController.swift */, + D9C52817235CB57F002B213A /* PurchaseViewController.swift */, + D9C52818235CB57F002B213A /* OTRInviteViewController.m */, + D9C52819235CB57F002B213A /* OTRConversationViewController.m */, + D9C5281A235CB57F002B213A /* OTRIntSettingViewController.h */, + D9C5281B235CB57F002B213A /* OTRRoomOccupantsViewController.swift */, + D9C5281C235CB57F002B213A /* MaybeLaterViewController.swift */, + D9C5281D235CB57F002B213A /* OTRQRCodeViewController.m */, + D9C5281E235CB57F002B213A /* OTRListSettingViewController.m */, + D9C5281F235CB57F002B213A /* OTRCertificateDomainViewController.m */, + D9C52820235CB57F002B213A /* OTRDatabaseUnlockViewController.m */, + D9C52821235CB57F002B213A /* OTRMessagesHoldTalkViewController.m */, + D9C52822235CB57F002B213A /* OTRCertificatesViewController.h */, + D9C52823235CB57F002B213A /* OTRSettingDetailViewController.m */, + D9C52824235CB57F002B213A /* Login View Controllers */, + D9C5282F235CB580002B213A /* OTRMessagesViewController+SupplementaryViews.swift */, + D9C52830235CB580002B213A /* OTRDoubleSettingViewController.h */, + D9C52831235CB580002B213A /* OTRMessagesViewController.m */, + D9C52832235CB580002B213A /* OTRMessagesCollectionViewFlowLayout.swift */, + D9C52833235CB580002B213A /* OTRSettingsViewController.m */, + D9C52834235CB580002B213A /* OTRIntSettingViewController.m */, + D9C52835235CB580002B213A /* OTRLanguageListSettingViewController.m */, + D9C52836235CB580002B213A /* KeyManagementViewController.swift */, + D9C52837235CB580002B213A /* OTRComposeGroupViewController.swift */, + D9C52838235CB580002B213A /* OTRQRCodeReaderDelegate.m */, + D9C52839235CB580002B213A /* OTRCertificatesViewController.m */, + D9C5283A235CB580002B213A /* Onboarding */, + D9C52842235CB580002B213A /* OTRCertificateDomainViewController.h */, + D9C52843235CB580002B213A /* OTRComposeViewController.m */, + D9C52844235CB580002B213A /* OTRLogListViewController.swift */, ); - name = Push; - sourceTree = ""; - }; - 634680871B041EE900D9A1C5 /* Login Handlers */ = { - isa = PBXGroup; - children = ( - 634680811B0404CE00D9A1C5 /* OTRXMPPLoginHandler.h */, - 634680821B0404CE00D9A1C5 /* OTRXMPPLoginHandler.m */, - 634680881B041F2F00D9A1C5 /* OTRGoolgeOAuthLoginHandler.h */, - 634680891B041F2F00D9A1C5 /* OTRGoolgeOAuthLoginHandler.m */, - 6346808B1B04206400D9A1C5 /* OTRXMPPCreateAccountHandler.h */, - 6346808C1B04206400D9A1C5 /* OTRXMPPCreateAccountHandler.m */, - 63BE425C1B320EE20017058C /* OTRLoginHandler.h */, - 63BE425D1B320EE20017058C /* OTRLoginHandler.m */, - ); - name = "Login Handlers"; + path = "View Controllers"; sourceTree = ""; }; - 6365CEFD1E2453F6009E213F /* ChatSecureUITests */ = { + D9C52824235CB57F002B213A /* Login View Controllers */ = { isa = PBXGroup; children = ( - 632157DC1E57D01A00738D4E /* SnapshotHelper.swift */, - 6365CEFE1E2453F6009E213F /* ChatSecureUITests.swift */, - 6365CF001E2453F6009E213F /* Info.plist */, + D9C52825235CB57F002B213A /* OTRBaseLoginViewController.m */, + D9C52826235CB580002B213A /* OTRAccountMigrationViewController.m */, + D9C52827235CB580002B213A /* OTRXMPPCreateAccountHandler.m */, + D9C52828235CB580002B213A /* OTRExistingAccountViewController.h */, + D9C52829235CB580002B213A /* OTRXMPPServerListViewController.h */, + D9C5282A235CB580002B213A /* OTRXLFormCreator.m */, + D9C5282B235CB580002B213A /* OTRXMPPLoginHandler.m */, + D9C5282C235CB580002B213A /* OTRXMPPServerListViewController.m */, + D9C5282D235CB580002B213A /* OTRExistingAccountViewController.m */, + D9C5282E235CB580002B213A /* OTRLoginHandler.m */, ); - path = ChatSecureUITests; + path = "Login View Controllers"; sourceTree = ""; }; - 638D2DFD1AFAD3AE00F3C50C /* Onboarding */ = { + D9C5283A235CB580002B213A /* Onboarding */ = { isa = PBXGroup; children = ( - D98B8E341E4D3DB600A713E1 /* ServerCapabilitiesViewController.swift */, - D9CBBC571C642BAA005CD715 /* EnablePushViewController.swift */, - D913A56E1B7481AD006C5ACD /* OTRWelcomeViewController.swift */, - D989A84D1B5DBD90000608A9 /* OTRExistingAccountViewController.h */, - D989A84E1B5DBD90000608A9 /* OTRExistingAccountViewController.m */, - 638D2E011AFBFE2200F3C50C /* OTRWelcomeAccountTableViewDelegate.h */, - 638D2E021AFBFE2200F3C50C /* OTRWelcomeAccountTableViewDelegate.m */, - 6331D3B51B4DBBEE00C85365 /* OTRInviteViewController.h */, - 6331D3B61B4DBBEE00C85365 /* OTRInviteViewController.m */, - 6331D3B81B4F3C6E00C85365 /* OTRAddBuddyQRCodeViewController.h */, - 6331D3B91B4F3C6E00C85365 /* OTRAddBuddyQRCodeViewController.m */, - 6331D3BB1B4F41AF00C85365 /* OTRQRCodeReaderDelegate.h */, - 6331D3BC1B4F41AF00C85365 /* OTRQRCodeReaderDelegate.m */, - ); - name = Onboarding; + D9C5283B235CB580002B213A /* OTRAddBuddyQRCodeViewController.h */, + D9C5283C235CB580002B213A /* OTRWelcomeViewController.swift */, + D9C5283D235CB580002B213A /* ServerCapabilitiesViewController.swift */, + D9C5283E235CB580002B213A /* OTRWelcomeAccountTableViewDelegate.h */, + D9C5283F235CB580002B213A /* OTRAddBuddyQRCodeViewController.m */, + D9C52840235CB580002B213A /* EnablePushViewController.swift */, + D9C52841235CB580002B213A /* OTRWelcomeAccountTableViewDelegate.m */, + ); + path = Onboarding; sourceTree = ""; }; - 6396AF911A169D54009F3E6C = { + D9C52846235CB580002B213A /* Utilities */ = { isa = PBXGroup; children = ( - 6396AF9C1A169D54009F3E6C /* ChatSecure */, - 6396AFB61A169D54009F3E6C /* ChatSecureTests */, - 6365CEFD1E2453F6009E213F /* ChatSecureUITests */, - D9227C2B1BA7952100B5E1D0 /* ChatSecureCore */, - D9AE3A0F1BA8CBFA00255537 /* OTRAssets */, - D93027571BAA381F000CC975 /* OTRResources */, - 6396AF9B1A169D54009F3E6C /* Products */, - C1E90FC219EFFEE2E8C7EECF /* Pods */, - DB9AACD6ED82090C7A6B0076 /* Frameworks */, + D9C52847235CB580002B213A /* OTRConstants.m */, + D9C52848235CB580002B213A /* OTRColors.m */, + D9C52849235CB580002B213A /* OTRUtilities.h */, + D9C5284A235CB580002B213A /* OTRChatDemo.m */, + D9C5284B235CB580002B213A /* DefaultTheme.swift */, + D9C5284C235CB580002B213A /* OTRPasswordGenerator.m */, + D9C5284D235CB580002B213A /* UIAlertController+ChatSecure.swift */, + D9C5284E235CB580002B213A /* OTRLog.h */, + D9C5284F235CB580002B213A /* OTRColors.h */, + D9C52850235CB580002B213A /* OTRServerDeprecation.swift */, + D9C52851235CB580002B213A /* OTRCertificatePinning.m */, + D9C52852235CB580002B213A /* OTRXMPPError.m */, + D9C52853235CB580002B213A /* OTRChatDemo.h */, + D9C52854235CB580002B213A /* OTRUtilities.m */, + D9C52855235CB580002B213A /* OTRSecrets.m */, + D9C52856235CB580002B213A /* OTRImages.m */, + D9C52857235CB580002B213A /* OTRGroupAvatarGenerator.swift */, ); + path = Utilities; sourceTree = ""; }; - 6396AF9B1A169D54009F3E6C /* Products */ = { + D9C52858235CB580002B213A /* Model */ = { isa = PBXGroup; children = ( - 6396AF9A1A169D54009F3E6C /* ChatSecure.app */, - 6396AFB31A169D54009F3E6C /* ChatSecureTests.xctest */, - D93027561BAA381F000CC975 /* OTRResources.bundle */, - 6365CEFC1E2453F6009E213F /* ChatSecureUITests.xctest */, + D9C52859235CB580002B213A /* Settings */, + D9C5286F235CB580002B213A /* Yap Storage */, + D9C528A7235CB580002B213A /* Core Data */, + D9C528AC235CB580002B213A /* OTRDomainCellInfo.m */, + D9C528AD235CB580002B213A /* MessagesViewControllerState.swift */, + D9C528AE235CB580002B213A /* OTRQRCodeActivity.m */, + D9C528AF235CB580002B213A /* ServerCapabilityInfo.swift */, + D9C528B0235CB580002B213A /* OTRXMPPServerInfo.m */, + D9C528B1235CB580002B213A /* OTRToastOptions.h */, + D9C528B2235CB580002B213A /* OTROpenInFacebookActivity.h */, + D9C528B3235CB580002B213A /* OTROpenInTwitterActivity.h */, + D9C528B4235CB580002B213A /* OTRActivityItemProvider.m */, + D9C528B5235CB580002B213A /* OTRBuddyCache.m */, + D9C528B6235CB580002B213A /* OTRDomainCellInfo.h */, + D9C528B7235CB580002B213A /* OTROpenInTwitterActivity.m */, + D9C528B8235CB580002B213A /* OTROpenInFacebookActivity.m */, + D9C528B9235CB580002B213A /* OTRToastOptions.m */, ); - name = Products; + path = Model; sourceTree = ""; }; - 6396AF9C1A169D54009F3E6C /* ChatSecure */ = { + D9C52859235CB580002B213A /* Settings */ = { isa = PBXGroup; children = ( - D9B3EC211FA196CE00E63C7F /* AppDelegate.swift */, - D95553D71C4F16730019667A /* ChatSecure.entitlements */, - 633104D71A169EE600C17BAE /* Resources */, - 6396AF9D1A169D54009F3E6C /* Supporting Files */, + D9C5285A235CB580002B213A /* OTRViewSetting.m */, + D9C5285B235CB580002B213A /* OTRIntSetting.m */, + D9C5285C235CB580002B213A /* OTRBoolSetting.h */, + D9C5285D235CB580002B213A /* OTRShareSetting.m */, + D9C5285E235CB580002B213A /* OTRSettingsGroup.m */, + D9C5285F235CB580002B213A /* OTRDonateSetting.m */, + D9C52860235CB580002B213A /* OTRCertificateSetting.m */, + D9C52861235CB580002B213A /* OTRListSetting.m */, + D9C52862235CB580002B213A /* OTRDoubleSetting.m */, + D9C52863235CB580002B213A /* OTRListSettingValue.h */, + D9C52864235CB580002B213A /* OTRFeedbackSetting.h */, + D9C52865235CB580002B213A /* OTRBoolSetting.m */, + D9C52866235CB580002B213A /* OTRIntSetting.h */, + D9C52867235CB580002B213A /* OTRValueSetting.m */, + D9C52868235CB580002B213A /* OTRDonateSetting.h */, + D9C52869235CB580002B213A /* OTRDoubleSetting.h */, + D9C5286A235CB580002B213A /* OTRSetting.m */, + D9C5286B235CB580002B213A /* OTRLanguageSetting.m */, + D9C5286C235CB580002B213A /* OTRCertificateSetting.h */, + D9C5286D235CB580002B213A /* OTRListSettingValue.m */, + D9C5286E235CB580002B213A /* OTRFeedbackSetting.m */, ); - path = ChatSecure; + path = Settings; sourceTree = ""; }; - 6396AF9D1A169D54009F3E6C /* Supporting Files */ = { + D9C5286F235CB580002B213A /* Yap Storage */ = { isa = PBXGroup; children = ( - 6396AF9E1A169D54009F3E6C /* Info.plist */, + D9C52870235CB580002B213A /* OTRHTMLItem.m */, + D9C52871235CB580002B213A /* OTRTextItem.h */, + D9C52872235CB580002B213A /* PushContainers.swift */, + D9C52873235CB580002B213A /* OTRXMPPPresenceSubscriptionRequest.m */, + D9C52874235CB580002B213A /* OTRStreamManagementStorageObject.h */, + D9C52875235CB580002B213A /* OTRMediaItem.m */, + D9C52876235CB580002B213A /* OMEMO-Storage */, + D9C52879235CB580002B213A /* OTRYapMessageSendAction.swift */, + D9C5287A235CB580002B213A /* OTRMessage+JSQMessageData.h */, + D9C5287B235CB580002B213A /* PushMessage.swift */, + D9C5287C235CB580002B213A /* OTRMessage.m */, + D9C5287D235CB580002B213A /* OTRYapMessageSendAction.m */, + D9C5287E235CB580002B213A /* OTRXMPPRoomOccupant.swift */, + D9C5287F235CB580002B213A /* OTRXMPPBuddy.m */, + D9C52880235CB580002B213A /* OTRDownloadMessage.swift */, + D9C52881235CB580002B213A /* OTRFileItem.h */, + D9C52882235CB580002B213A /* OTRAudioItem.m */, + D9C52883235CB580002B213A /* BuddySubscriptions.swift */, + D9C52884235CB580002B213A /* OTRVideoItem.m */, + D9C52885235CB580002B213A /* OTRXMPPRoomMessage.swift */, + D9C52886235CB580002B213A /* OTRTextItem.m */, + D9C52887235CB580002B213A /* OTRHTMLItem.h */, + D9C52888235CB580002B213A /* OTROutgoingMessage.m */, + D9C52889235CB580002B213A /* OTRBuddy.m */, + D9C5288A235CB580002B213A /* OTRMessageEncryptionInfo.m */, + D9C5288B235CB580002B213A /* Accounts */, + D9C52892235CB580002B213A /* OTRStreamManagementStorageObject.m */, + D9C52893235CB580002B213A /* OTRXMPPPresenceSubscriptionRequest.h */, + D9C52894235CB580002B213A /* YapActions */, + D9C52896235CB580002B213A /* OTRIncomingMessage.m */, + D9C52897235CB580002B213A /* OTRDownloadMessage.m */, + D9C52898235CB580002B213A /* OTRMessage+JSQMessageData.m */, + D9C52899235CB580002B213A /* OTRMediaItem+Private.h */, + D9C5289A235CB580002B213A /* OTRImageItem.m */, + D9C5289B235CB580002B213A /* OTRXMPPRoom.swift */, + D9C5289C235CB580002B213A /* OTRYapDatabaseObject.m */, + D9C5289D235CB580002B213A /* Signal-Storage */, + D9C528A4235CB580002B213A /* SecondaryIndexes.swift */, + D9C528A5235CB580002B213A /* OTRBaseMessage.m */, + D9C528A6235CB580002B213A /* OTRFileItem.m */, ); - name = "Supporting Files"; + path = "Yap Storage"; sourceTree = ""; }; - 6396AFB61A169D54009F3E6C /* ChatSecureTests */ = { + D9C52876235CB580002B213A /* OMEMO-Storage */ = { isa = PBXGroup; children = ( - 63DDD8B91A9E9BD900C0A918 /* samples */, - 636C63201B571B56008FEE69 /* OTRURLTests.m */, - 635FCC831D1B5116008F903C /* OTRStringTests.swift */, - 63DDD8B41A9E94B700C0A918 /* OTRMediaTests.m */, - 63F614DB1BB214660083A06A /* ChatSecureModelTest.swift */, - 63E353B11BB9D0CF005C54C3 /* PushSerializerTest.swift */, - 63B578631D51600300D80ED3 /* OTRSignalTest.swift */, - 636767E81D83562700432B48 /* TestXMPPAccount.swift */, - 639120921D8CA1E200F4100E /* OTROmemoStorageTest.swift */, - 63634CE81DA704AA00B0BAE8 /* OTROMEMOIntegrationTest.swift */, - 635E51A81DA82A4E002B70AB /* OTROMEMOTestModule.swift */, - 635E51AA1DA83AF0002B70AB /* OTRTestDatabase.swift */, - 63DF75F41E5FBE550032950B /* OTRYapViewTest.swift */, - 63917C3D1DFA20D900341D96 /* OTRModelTest.swift */, - 6323C6FD1E39547200D0FB42 /* OTRImageTest.swift */, - 63F0CAFA1E60C1B40045359C /* OTRYapViewTest.swift */, - D936D6CA1E8B1B34003B1343 /* FileTransferTests.swift */, - D91F9EFD1ED645F100AEA62C /* FileTransferIntegrationTests.swift */, - 6323C6FF1E396D1900D0FB42 /* TestImages */, - 6396AFB71A169D54009F3E6C /* Supporting Files */, - 63F614DA1BB214640083A06A /* ChatSecureTests-Bridging-Header.h */, + D9C52877235CB580002B213A /* OMEMODevice.m */, + D9C52878235CB580002B213A /* OMEMODevice.swift */, ); - path = ChatSecureTests; + path = "OMEMO-Storage"; sourceTree = ""; }; - 6396AFB71A169D54009F3E6C /* Supporting Files */ = { + D9C5288B235CB580002B213A /* Accounts */ = { isa = PBXGroup; children = ( - 6396AFB81A169D54009F3E6C /* Info.plist */, + D9C5288C235CB580002B213A /* OTRAccount.m */, + D9C5288D235CB580002B213A /* OTRXMPPAccount+Migration.swift */, + D9C5288E235CB580002B213A /* OTRXMPPTorAccount.h */, + D9C5288F235CB580002B213A /* OTRXMPPTorAccount.m */, + D9C52890235CB580002B213A /* OTRXMPPAccount.m */, + D9C52891235CB580002B213A /* Account.swift */, ); - name = "Supporting Files"; - sourceTree = ""; - }; - 63BA43DA1D417C34007FAF7F /* Signal-Storage */ = { - isa = PBXGroup; - children = ( - 632AA7341D481A6300F65733 /* OTRSignalObject.h */, - 632AA7351D481A6300F65733 /* OTRSignalObject.m */, - 63BA43DD1D418F14007FAF7F /* OTRAccountSignalIdentity.h */, - 63BA43DE1D418F14007FAF7F /* OTRAccountSignalIdentity.m */, - 632AA7281D480BFF00F65733 /* OTRSignalSenderKey.h */, - 632AA7291D480BFF00F65733 /* OTRSignalSenderKey.m */, - 632AA72C1D4819BD00F65733 /* OTRSignalPreKey.h */, - 632AA72D1D4819BD00F65733 /* OTRSignalPreKey.m */, - 632AA7301D4819E000F65733 /* OTRSignalSignedPreKey.h */, - 632AA7311D4819E000F65733 /* OTRSignalSignedPreKey.m */, - 632AA7381D482A1A00F65733 /* OTRSignalSession.h */, - 632AA7391D482A1A00F65733 /* OTRSignalSession.m */, - ); - name = "Signal-Storage"; + path = Accounts; sourceTree = ""; }; - 63CBD68E1C642B8100AC6D1F /* YapActions */ = { + D9C52894235CB580002B213A /* YapActions */ = { isa = PBXGroup; children = ( - D9DB2D131F37AEBB005D64E4 /* OTRYapMessageSendAction.swift */, - 63CBD68F1C642B9E00AC6D1F /* BuddyActions.swift */, - 6326D9AD1DC3D0F100D72403 /* OTRYapMessageSendAction.h */, - 6326D9AE1DC3D0F100D72403 /* OTRYapMessageSendAction.m */, + D9C52895235CB580002B213A /* BuddyActions.swift */, ); - name = YapActions; + path = YapActions; sourceTree = ""; }; - 63CFB1051ABA492B00A8D27E /* Removed */ = { + D9C5289D235CB580002B213A /* Signal-Storage */ = { isa = PBXGroup; children = ( - 63CFB1021ABA492600A8D27E /* OTRFacebookOAuthXMPPAccount.h */, - 63CFB1031ABA492600A8D27E /* OTRFacebookOAuthXMPPAccount.m */, - ); - name = Removed; + D9C5289E235CB580002B213A /* OTRSignalSession.m */, + D9C5289F235CB580002B213A /* OTRSignalObject.m */, + D9C528A0235CB580002B213A /* OTRSignalSignedPreKey.m */, + D9C528A1235CB580002B213A /* OTRAccountSignalIdentity.m */, + D9C528A2235CB580002B213A /* OTRSignalPreKey.m */, + D9C528A3235CB580002B213A /* OTRSignalSenderKey.m */, + ); + path = "Signal-Storage"; sourceTree = ""; }; - 63D150F81D8A0B46006FB2E2 /* OMEMO-Storage */ = { + D9C528A7235CB580002B213A /* Core Data */ = { isa = PBXGroup; children = ( - D98C850A203D133800F8DA6B /* OMEMODevice.swift */, - 63D150F91D8A0C9C006FB2E2 /* OMEMODevice.h */, - 63D150FA1D8A0C9C006FB2E2 /* OMEMODevice.m */, + D9C528A8235CB580002B213A /* ChatSecure.xcdatamodeld */, ); - name = "OMEMO-Storage"; + path = "Core Data"; sourceTree = ""; }; - 63DC0EB21A1ABC3E002C9598 /* Configurations */ = { + D9C528BA235CB580002B213A /* Controllers */ = { isa = PBXGroup; children = ( - 63DC0EB31A1ABC86002C9598 /* OTR_Codesigning.xcconfig */, - 63DC0EB41A1ABC86002C9598 /* OTR_Debug.xcconfig */, - 63DC0EB61A1ABC86002C9598 /* OTR_Release.xcconfig */, + D9C528BB235CB580002B213A /* PushStorage.swift */, + D9C528BC235CB580002B213A /* OTRDatabaseManager.m */, + D9C528BD235CB580002B213A /* FileTransferManager.swift */, + D9C528BE235CB580002B213A /* OTRXMPPChangeAvatar.swift */, + D9C528BF235CB580002B213A /* OTRAudioPlaybackController.h */, + D9C528C0235CB580002B213A /* OTROMEMOStorageManager.swift */, + D9C528C1235CB580002B213A /* PushDeserializer.swift */, + D9C528C2235CB580002B213A /* OTRAccountMigrator.m */, + D9C528C3235CB580002B213A /* PushController.swift */, + D9C528C5235CB580002B213A /* OTRAudioSessionManager.h */, + D9C528C6235CB580002B213A /* OTRDatabaseView.m */, + D9C528C7235CB580002B213A /* OTRProtocolManager.m */, + D9C528C8235CB580002B213A /* OTRAttachmentPicker.m */, + D9C528C9235CB580002B213A /* OTRXMPPChangePasswordManager.swift */, + D9C528CA235CB580002B213A /* OTRMediaFileManager.m */, + D9C528CB235CB580002B213A /* OTROMEMOSignalCoordinator.swift */, + D9C528CC235CB580002B213A /* YapDatabaseConstants.swift */, + D9C528CD235CB580002B213A /* OTRTorManager.m */, + D9C528CE235CB580002B213A /* OTRSplitViewCoordinator.swift */, + D9C528CF235CB580002B213A /* OTRXMPPMessageStatusModule.swift */, + D9C528D0235CB580002B213A /* ShareController.swift */, + D9C528D1235CB580002B213A /* MessageQueueHandler.swift */, + D9C528D2235CB580002B213A /* OTRYapViewHandler.swift */, + D9C528D3235CB580002B213A /* OTRProtocolManager.swift */, + D9C528D4235CB580002B213A /* OTRSignalEncryptionHelper.swift */, + D9C528D5235CB580002B213A /* XMPP */, + D9C528EC235CB580002B213A /* OTRMediaServer.m */, + D9C528ED235CB580002B213A /* OTRYapExtensions.swift */, + D9C528EE235CB580002B213A /* OTRSignalStorageManager.swift */, + D9C528EF235CB580002B213A /* OTRSettingsManager.m */, + D9C528F0235CB580002B213A /* OTRAudioPlaybackController.m */, + D9C528F1235CB580002B213A /* Errors.swift */, + D9C528F2235CB580002B213A /* OTRAudioSessionManager.m */, + D9C528F3235CB580002B213A /* OTREncryptionManager.m */, + D9C528F5235CB580002B213A /* PushSerializer.swift */, + D9C528F6235CB580002B213A /* YapDatabase+ChatSecure.swift */, + D9C528F7235CB580002B213A /* OTRAccountsManager.m */, + D9C528F8235CB580002B213A /* YapDatabaseTransaction+ChatSecure.swift */, + D9C528F9235CB580002B213A /* ServerCheck.swift */, + D9C528FA235CB580002B213A /* OTRTorManager.h */, + D9C528FB235CB580002B213A /* OTRAccountSignalEncryptionManager.swift */, + D9C528FC235CB580002B213A /* OTRAccountDatabaseCount.swift */, ); - name = Configurations; - sourceTree = ""; - }; - 63EA4CFA1ACC931200B19E12 /* Messages View Controller */ = { - isa = PBXGroup; - children = ( - 633106341A16D1A300C17BAE /* OTRMessagesViewController.h */, - 633106351A16D1A300C17BAE /* OTRMessagesViewController.m */, - 63EA4CF71ACC81C800B19E12 /* OTRMessagesHoldTalkViewController.h */, - 63EA4CF81ACC81C800B19E12 /* OTRMessagesHoldTalkViewController.m */, - 63FA130B1C8A4EB700AE33EF /* OTRMessagesCollectionViewFlowLayout.swift */, - 92ED91D520441B92002011FB /* OTRMessagesViewController+SupplementaryViews.swift */, - 9224A5EE207E39CF00A044BF /* OTRMessagesViewController+RoomOperations.swift */, - ); - name = "Messages View Controller"; - sourceTree = ""; - }; - 63FA54921A7C127F00F2AEBB /* AudioBubble Views */ = { - isa = PBXGroup; - children = ( - 63F0FF621A798D8E001F0C99 /* OTRAudioControlsView.h */, - 63F0FF631A798D8E001F0C99 /* OTRAudioControlsView.m */, - 63FA54891A7ACA2F00F2AEBB /* OTRPlayPauseProgressView.h */, - 63FA548A1A7ACA2F00F2AEBB /* OTRPlayPauseProgressView.m */, - 63FA548C1A7B29EB00F2AEBB /* OTRPlayView.h */, - 63FA548D1A7B29EB00F2AEBB /* OTRPlayView.m */, - 63FA548F1A7B2C2E00F2AEBB /* OTRPauseView.h */, - 63FA54901A7B2C2E00F2AEBB /* OTRPauseView.m */, - ); - name = "AudioBubble Views"; + path = Controllers; sourceTree = ""; }; - C1E90FC219EFFEE2E8C7EECF /* Pods */ = { + D9C528D5235CB580002B213A /* XMPP */ = { isa = PBXGroup; children = ( - 63DC0EB21A1ABC3E002C9598 /* Configurations */, - 6308D1441CA20762002F5F30 /* Pods-ChatSecureCorePods-ChatSecure-acknowledgements.plist */, - DE32B878BAC9A236855EAF6E /* Pods-ChatSecureCorePods-ChatSecure.debug.xcconfig */, - 7A62FCE8FEC1E7C9644F8C38 /* Pods-ChatSecureCorePods-ChatSecure.release.xcconfig */, - 962ED3D89B1F330A2A34928B /* Pods-ChatSecureCorePods-ChatSecureTests.debug.xcconfig */, - 702F03DE10003A33635A366F /* Pods-ChatSecureCorePods-ChatSecureTests.release.xcconfig */, - ); - name = Pods; + D9C528D6235CB580002B213A /* OTRXMPPManager_Private.h */, + D9C528D7235CB580002B213A /* OTRXMPPRoomManager.m */, + D9C528D8235CB580002B213A /* OTRXMPPTorManager.h */, + D9C528D9235CB580002B213A /* OTRXMPPBuddyTimers.m */, + D9C528DA235CB580002B213A /* OTRXMPPBuddyManager.h */, + D9C528DB235CB580002B213A /* ProxyXMPPStream.m */, + D9C528DC235CB580002B213A /* Storage */, + D9C528E3235CB580002B213A /* OTRServerCapabilities.m */, + D9C528E4235CB580002B213A /* OTRXMPPBuddyTimers.h */, + D9C528E5235CB580002B213A /* OTRXMPPTorManager.m */, + D9C528E6235CB580002B213A /* OTRXMPPManager.m */, + D9C528E7235CB580002B213A /* RoomManager.swift */, + D9C528E8235CB580002B213A /* XMPPManager.swift */, + D9C528E9235CB580002B213A /* OTRXMPPBuddyManager.m */, + D9C528EA235CB580002B213A /* OTRStreamManagementDelegate.swift */, + D9C528EB235CB580002B213A /* ProxyXMPPStream.h */, + ); + path = XMPP; sourceTree = ""; }; - D9227C2B1BA7952100B5E1D0 /* ChatSecureCore */ = { + D9C528DC235CB580002B213A /* Storage */ = { isa = PBXGroup; children = ( - 633105001A16D1A300C17BAE /* Classes */, - D9227C2C1BA7952100B5E1D0 /* ChatSecureCore.h */, - D9227C2E1BA7952100B5E1D0 /* Info.plist */, + D9C528DD235CB580002B213A /* OTRStreamManagementYapStorage.m */, + D9C528DE235CB580002B213A /* VCardStorage.swift */, + D9C528DF235CB580002B213A /* MessageStorage.swift */, + D9C528E0235CB580002B213A /* OTRStreamManagementYapStorage.h */, + D9C528E1235CB580002B213A /* RosterStorage.swift */, + D9C528E2235CB580002B213A /* RoomStorage.swift */, ); - path = ChatSecureCore; + path = Storage; sourceTree = ""; }; - D93027571BAA381F000CC975 /* OTRResources */ = { + D9C528FD235CB580002B213A /* Views */ = { isa = PBXGroup; children = ( - 9251C34C1F35CC44003ACE4A /* ios-icon-font.ttf */, - 9251C34D1F35CC44003ACE4A /* MaterialIcons-Regular.ttf */, - D97070911EEF382D004FEBDE /* MediaDownloadView.xib */, - D98BA36B1EDE47BB004475B6 /* HTMLPreviewView.xib */, - D9BE65451B6A08ED002D4136 /* XMPPServerInfoCell.xib */, - D9C6E69D1B7148EF00572273 /* OTRUsernameCell.xib */, - D913A56C1B747B62006C5ACD /* Onboarding.storyboard */, - 633104D61A169EC800C17BAE /* Localizable.strings */, - D9AE3A221BA8D02800255537 /* OTRCountryImages.xcassets */, - D9AE3A231BA8D02800255537 /* OTRImages.xcassets */, - D93027581BAA381F000CC975 /* Info.plist */, - D99F17891BAB946800604558 /* Branding.plist */, - D99F178B1BAB947E00604558 /* Secrets.plist */, - D9315CAD1BB600450077D2EE /* AddFriendsView.xib */, - 924F67C41EA5541C00528FB6 /* MigrationInfoHeaderView.xib */, - 924F68581EA7A31A00528FB6 /* MigratedBuddyHeaderView.xib */, - 8F56C50436DA64774EBB16E3 /* OTRMessagesLoadingView.xib */, - 9251C3041F345DD5003ACE4A /* OTRRoomOccupants.storyboard */, - 92CC68BE1F42F0710006CDF8 /* OTRComposeGroup.storyboard */, - 9224A5F2207E3BD800A044BF /* JoinRoomView.xib */, + D9C528FE235CB580002B213A /* OTRCircleButtonView.m */, + D9C528FF235CB580002B213A /* Cells */, + D9C5291D235CB580002B213A /* OTRComposingImageView.m */, + D9C5291E235CB580002B213A /* OTRLockButton.m */, + D9C5291F235CB580002B213A /* OTRButtonView.h */, + D9C52920235CB580002B213A /* OTRCircleView.h */, + D9C52921235CB580002B213A /* OTRSocialButtonsView.m */, + D9C52922235CB580002B213A /* OTRPlayView.m */, + D9C52923235CB580002B213A /* OTRHoldToTalkView.m */, + D9C52924235CB580002B213A /* OTRTouchAndHoldGestureRecognizer.m */, + D9C52925235CB580002B213A /* MigrationInfoHeaderView.swift */, + D9C52926235CB580002B213A /* OTRRememberPasswordView.m */, + D9C52927235CB580002B213A /* OTRColorFadingDotView.m */, + D9C52928235CB580002B213A /* OTRPlayPauseProgressView.h */, + D9C52929235CB580002B213A /* OTRAudioTrashView.h */, + D9C5292A235CB580002B213A /* JoinRoomView.swift */, + D9C5292B235CB580002B213A /* OTRPauseView.h */, + D9C5292C235CB580002B213A /* OTRAudioControlsView.h */, + D9C5292D235CB580002B213A /* OTRLockButton.h */, + D9C5292E235CB580002B213A /* OTRButtonView.m */, + D9C5292F235CB580002B213A /* OTRComposingImageView.h */, + D9C52930235CB580002B213A /* OTRCircleButtonView.h */, + D9C52931235CB580002B213A /* OTRTitleSubtitleView.m */, + D9C52932235CB580002B213A /* OTRCircleView.m */, + D9C52933235CB580002B213A /* OTRColorFadingDotView.h */, + D9C52934235CB580002B213A /* OTRRememberPasswordView.h */, + D9C52935235CB580002B213A /* OTRTouchAndHoldGestureRecognizer.h */, + D9C52936235CB580002B213A /* OTRHoldToTalkView.h */, + D9C52937235CB580002B213A /* OTRPlayView.h */, + D9C52938235CB580002B213A /* OTRSocialButtonsView.h */, + D9C52939235CB580002B213A /* AddFriendsView.swift */, + D9C5293A235CB580002B213A /* OTRPauseView.m */, + D9C5293B235CB580002B213A /* OTRAudioControlsView.m */, + D9C5293C235CB580002B213A /* OTRAudioTrashView.m */, + D9C5293D235CB580002B213A /* OTRVerticalStackView.swift */, + D9C5293E235CB580002B213A /* OTRPlayPauseProgressView.m */, + D9C5293F235CB580002B213A /* MigratedBuddyHeaderView.swift */, ); - path = OTRResources; + path = Views; sourceTree = ""; }; - D97097A01FC4DA85008ED04B /* Storage */ = { + D9C528FF235CB580002B213A /* Cells */ = { isa = PBXGroup; children = ( - D9A2C4DB204B1D2900C5DF8B /* VCardStorage.swift */, - D97097A11FC4DB3D008ED04B /* MessageStorage.swift */, - D945D6FC1FDA08DD00C7502C /* RoomStorage.swift */, - 92BE6C842014DBB400A79C8B /* RosterStorage.swift */, - 63B916E01B743198003B778F /* OTRStreamManagementYapStorage.h */, - 63B916E11B743198003B778F /* OTRStreamManagementYapStorage.m */, + D9C52900235CB580002B213A /* OTRAccountTableViewCell.m */, + D9C52901235CB580002B213A /* XMPPAccountCell.swift */, + D9C52902235CB580002B213A /* SingleButtonTableViewCell.swift */, + D9C52903235CB580002B213A /* MediaDownloadView.swift */, + D9C52904235CB580002B213A /* HTMLPreviewView.swift */, + D9C52905235CB580002B213A /* OTRConversationCell.h */, + D9C52906235CB580002B213A /* OTRBuddyImageCell.m */, + D9C52907235CB580002B213A /* OTRSettingTableViewCell.h */, + D9C52908235CB580002B213A /* XMPPServerInfoCell.m */, + D9C52909235CB580002B213A /* OTRStatusMessageCell.h */, + D9C5290A235CB580002B213A /* OTRInLineTextEditTableViewCell.m */, + D9C5290B235CB580002B213A /* OTRAccountTableViewCell.h */, + D9C5290C235CB580002B213A /* UserInfoProfileCell.swift */, + D9C5290D235CB580002B213A /* OTRUsernameCell.swift */, + D9C5290E235CB580002B213A /* OTRBuddyInfoCell.m */, + D9C5290F235CB580002B213A /* OTRComposeGroupBuddyCell.swift */, + D9C52910235CB580002B213A /* OTRConversationCell.m */, + D9C52911235CB580002B213A /* OTRMessageNewDeviceCell.swift */, + D9C52912235CB580002B213A /* TwoButtonTableViewCell.swift */, + D9C52913235CB580002B213A /* ServerCapabilityTableViewCell.swift */, + D9C52914235CB580002B213A /* OMEMODeviceFingerprintCell.swift */, + D9C52915235CB580002B213A /* OTRStatusMessageCell.m */, + D9C52916235CB580002B213A /* OTRSettingTableViewCell.m */, + D9C52917235CB580002B213A /* XMPPServerInfoCell.h */, + D9C52918235CB580002B213A /* OTRMessageUnknownSenderCell.swift */, + D9C52919235CB580002B213A /* PushAccountTableViewCell.swift */, + D9C5291A235CB580002B213A /* OTRInLineTextEditTableViewCell.h */, + D9C5291B235CB580002B213A /* OTRBuddyInfoCheckableCell.swift */, + D9C5291C235CB580002B213A /* OTRBuddyApprovalCell.m */, ); - path = Storage; + path = Cells; sourceTree = ""; }; - D9AE3A0F1BA8CBFA00255537 /* OTRAssets */ = { + D9C52940235CB580002B213A /* Categories */ = { isa = PBXGroup; children = ( - D9AE3A2B1BA8D2AD00255537 /* Resources */, - D9AE3A1D1BA8CCAA00255537 /* Classes */, - D9AE3A121BA8CBFA00255537 /* Info.plist */, + D9C52941235CB580002B213A /* UIViewController+ChatSecure.swift */, + D9C52942235CB580002B213A /* UIViewController+ChatSecure.h */, + D9C52943235CB580002B213A /* NSFileManager+ChatSecure.h */, + D9C52944235CB580002B213A /* NSData+ChatSecure.swift */, + D9C52945235CB580002B213A /* YapDatabaseViewConnection+ChatSecure.m */, + D9C52946235CB580002B213A /* UIApplication+ChatSecure.swift */, + D9C52947235CB580002B213A /* UITableView+ChatSecure.h */, + D9C52948235CB580002B213A /* JSQMessagesCollectionViewCell+ChatSecure.m */, + D9C52949235CB580002B213A /* UIActivityViewController+ChatSecure.m */, + D9C5294A235CB580002B213A /* UIActivity+ChatSecure.m */, + D9C5294B235CB580002B213A /* NSFileManager+ChatSecure.m */, + D9C5294C235CB580002B213A /* UIViewController+ChatSecure.m */, + D9C5294D235CB580002B213A /* UINavigationController+ChatSecure.swift */, + D9C5294E235CB580002B213A /* XMPPMessage+ChatSecure.swift */, + D9C5294F235CB580002B213A /* NSURL+ChatSecure.m */, + D9C52950235CB580002B213A /* UIImage+ChatSecure.m */, + D9C52951235CB580002B213A /* UIActivity+ChatSecure.h */, + D9C52952235CB580002B213A /* NSString+ChatSecure.m */, + D9C52953235CB580002B213A /* JSQMessagesCollectionViewCell+ChatSecure.h */, + D9C52954235CB580002B213A /* UIActivityViewController+ChatSecure.h */, + D9C52955235CB580002B213A /* UITableView+ChatSecure.m */, ); - path = OTRAssets; + path = Categories; sourceTree = ""; }; - D9AE3A1D1BA8CCAA00255537 /* Classes */ = { + D9C52956235CB580002B213A /* Public */ = { isa = PBXGroup; children = ( - D927C9761EF0C5AF00B72026 /* UIView+OTRAssets.swift */, - D9599BBD1E285EC3006A4450 /* OTRLanguageManager_Private.h */, - 6331051B1A16D1A300C17BAE /* OTRLanguageManager.h */, - 6331051C1A16D1A300C17BAE /* OTRLanguageManager.m */, - D9AE3A2E1BA8D84500255537 /* OTRBranding.h */, - D9AE3A2F1BA8D84500255537 /* OTRBranding.m */, - D9AE3A101BA8CBFA00255537 /* OTRAssets.h */, - 633104FF1A16AEA800C17BAE /* OTRStrings.h */, - D9599BBB1E28578D006A4450 /* OTRStrings.m */, - 633105F81A16D1A300C17BAE /* OTRSecrets.h */, - 633105F91A16D1A300C17BAE /* OTRSecrets.m */, - ); - name = Classes; + D9C52957235CB580002B213A /* OTRSignalPreKey.h */, + D9C52958235CB580002B213A /* OTRBuddyInfoCell.h */, + D9C52959235CB580002B213A /* OTRMessageEncryptionInfo.h */, + D9C5295A235CB580002B213A /* OTRBuddyCache.h */, + D9C5295B235CB580002B213A /* OTRBuddy.h */, + D9C5295C235CB580002B213A /* OTROutgoingMessage.h */, + D9C5295D235CB580002B213A /* RoomOccupantRole.h */, + D9C5295E235CB580002B213A /* OTRServerCapabilities.h */, + D9C5295F235CB580002B213A /* OTRActivityItemProvider.h */, + D9C52960235CB580002B213A /* OTRSettingDetailViewController.h */, + D9C52961235CB580002B213A /* OTRSettingsViewController.h */, + D9C52962235CB580002B213A /* OTRIncomingMessage.h */, + D9C52963235CB580002B213A /* NSURL+ChatSecure.h */, + D9C52964235CB580002B213A /* OTRMessagesViewController.h */, + D9C52965235CB580002B213A /* OTRSettingsManager.h */, + D9C52966235CB580002B213A /* OTRTitleSubtitleView.h */, + D9C52967235CB580002B213A /* OTRMediaServer.h */, + D9C52968235CB580002B213A /* OTRCertificatePinning.h */, + D9C52969235CB580002B213A /* OTRXMPPLoginHandler.h */, + D9C5296A235CB580002B213A /* OTRValueSetting.h */, + D9C5296B235CB580002B213A /* OTRXMPPManager.h */, + D9C5296C235CB580002B213A /* OTRSignalSenderKey.h */, + D9C5296D235CB580002B213A /* OTRQRCodeReaderDelegate.h */, + D9C5296E235CB580002B213A /* OTRLanguageSetting.h */, + D9C5296F235CB580002B213A /* OTRXMPPAccount.h */, + D9C52970235CB580002B213A /* OTRSetting.h */, + D9C52971235CB580002B213A /* OTRYapDatabaseObject.h */, + D9C52972235CB580002B213A /* OTREncryptionManager.h */, + D9C52973235CB580002B213A /* OTRImageItem.h */, + D9C52974235CB580002B213A /* OTRLanguageListSettingViewController.h */, + D9C52975235CB580002B213A /* OTRDownloadMessage.h */, + D9C52976235CB580002B213A /* OTRXMPPError.h */, + D9C52977235CB580002B213A /* OTRComposeViewController.h */, + D9C52978235CB580002B213A /* OTRLoginHandler.h */, + D9C52979235CB580002B213A /* NSString+ChatSecure.h */, + D9C5297A235CB580002B213A /* OTRUserInfoProfile.h */, + D9C5297B235CB580002B213A /* OTRImages.h */, + D9C5297D235CB580002B213A /* OTRBuddyApprovalCell.h */, + D9C5297E235CB580002B213A /* OTRBaseMessage.h */, + D9C5297F235CB580002B213A /* OTRAccountsManager.h */, + D9C52980235CB580002B213A /* UIImage+ChatSecure.h */, + D9C52981235CB580002B213A /* AppTheme.h */, + D9C52982235CB580002B213A /* OTRDatabaseManager.h */, + D9C52983235CB580002B213A /* OTRXMPPRoomManager.h */, + D9C52984235CB580002B213A /* OTRViewSetting.h */, + D9C52985235CB580002B213A /* OMEMODevice.h */, + D9C52986235CB580002B213A /* OTRConstants.h */, + D9C52987235CB580002B213A /* OTRAccount.h */, + D9C52988235CB580002B213A /* OTRBaseLoginViewController.h */, + D9C52989235CB580002B213A /* OTRAppDelegate.h */, + D9C5298A235CB580002B213A /* OTRMediaItem.h */, + D9C5298B235CB580002B213A /* OTRXMPPCreateAccountHandler.h */, + D9C5298C235CB580002B213A /* OTRAccountMigrationViewController.h */, + D9C5298D235CB580002B213A /* OTRChooseAccountViewController.h */, + D9C5298E235CB580002B213A /* OTRNewBuddyViewController.h */, + D9C5298F235CB580002B213A /* OTRSettingsGroup.h */, + D9C52990235CB580002B213A /* OTRShareSetting.h */, + D9C52991235CB580002B213A /* OTRProtocolManager.h */, + D9C52992235CB580002B213A /* OTRYapMessageSendAction.h */, + D9C52993235CB580002B213A /* OTRMessage.h */, + D9C52994235CB580002B213A /* OTRDatabaseView.h */, + D9C52995235CB580002B213A /* OTRQRCodeActivity.h */, + D9C52996235CB580002B213A /* OTRListSetting.h */, + D9C52997235CB580002B213A /* OTRSignalSignedPreKey.h */, + D9C52998235CB580002B213A /* OTRProtocol.h */, + D9C52999235CB580002B213A /* OTRBuddyImageCell.h */, + D9C5299A235CB580002B213A /* OTRConversationViewController.h */, + D9C5299B235CB580002B213A /* OTRAccountMigrator.h */, + D9C5299C235CB580002B213A /* YapDatabaseViewConnection+ChatSecure.h */, + D9C5299D235CB580002B213A /* OTRInviteViewController.h */, + D9C5299E235CB580002B213A /* OTRSignalObject.h */, + D9C5299F235CB580002B213A /* OTRSignalSession.h */, + D9C529A0235CB580002B213A /* OTRvCard.h */, + D9C529A1235CB580002B213A /* OTRVideoItem.h */, + D9C529A2235CB580002B213A /* OTRXLFormCreator.h */, + D9C529A3235CB580002B213A /* OTRMessagesHoldTalkViewController.h */, + D9C529A4235CB580002B213A /* OTRAudioItem.h */, + D9C529A5235CB580002B213A /* OTRDatabaseUnlockViewController.h */, + D9C529A6235CB580002B213A /* OTRPasswordGenerator.h */, + D9C529A7235CB580002B213A /* OTRThreadOwner.h */, + D9C529A8235CB580002B213A /* OTRListSettingViewController.h */, + D9C529A9235CB580002B213A /* OTRQRCodeViewController.h */, + D9C529AA235CB580002B213A /* OTRXMPPBuddy.h */, + D9C529AB235CB580002B213A /* OTRAccountSignalIdentity.h */, + D9C529AC235CB580002B213A /* OTRMediaFileManager.h */, + D9C529AD235CB580002B213A /* OTRAttachmentPicker.h */, + D9C529AE235CB580002B213A /* OTRXMPPServerInfo.h */, + ); + path = Public; sourceTree = ""; }; - D9AE3A2B1BA8D2AD00255537 /* Resources */ = { + D9C529AF235CB580002B213A /* Private */ = { isa = PBXGroup; children = ( - D9599BB91E284BCA006A4450 /* StringsConverter.py */, - D9599BBA1E284BCA006A4450 /* StringsUnused.py */, - D9E8277D1E2819F20071F40D /* strings.json */, + D9C529B0235CB580002B213A /* ChatSecureCoreCompat-Swift.h */, ); - name = Resources; + path = Private; sourceTree = ""; }; DB9AACD6ED82090C7A6B0076 /* Frameworks */ = { isa = PBXGroup; children = ( - D9BF84201EFA036A00EF7A0B /* AFNetworking.framework */, + D90DA4F2236F3C6800C585B7 /* Appirater.bundle */, + D90DA4F3236F3C6800C585B7 /* CPAProxy.bundle */, + D90DA4F4236F3C6800C585B7 /* TUSafariActivity.bundle */, D985BC791EBD32F700993D27 /* StoreKit.framework */, CCD1F8E85C658C8D3865B584 /* Pods.framework */, 46AAC6968EC686E61C8E8EA4 /* Pods_ChatSecureCore.framework */, C492FFACC855CE12E882968E /* Pods_ChatSecureCorePods_ChatSecureUITests.framework */, - B9F54C7203BBEF36D2A9CAE7 /* libPods-ChatSecureCorePods-ChatSecure.a */, - 825F80066EC1363ED873BFC5 /* libPods-ChatSecureCorePods-ChatSecureTests.a */, + 2BA701560D538F2F5771BBCB /* libPods-ChatSecureCorePods-ChatSecure.a */, + 83C35A70D105953D80691D31 /* libPods-ChatSecureCorePods-ChatSecureCore.a */, + 5179DA87B83F57EEA9589733 /* libPods-ChatSecureCorePods-ChatSecureTests.a */, ); name = Frameworks; sourceTree = ""; }; /* End PBXGroup section */ +/* Begin PBXHeadersBuildPhase section */ + D9C527FB235CB55C002B213A /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + D9C52AAA235CB581002B213A /* OTRInLineTextEditTableViewCell.h in Headers */, + D9C52AE9235CB581002B213A /* OTRBuddy.h in Headers */, + D9C52AEC235CB581002B213A /* OTRServerCapabilities.h in Headers */, + D9C52A95235CB581002B213A /* OTRConversationCell.h in Headers */, + D9C52B0F235CB582002B213A /* AppTheme.h in Headers */, + D9C52B02235CB581002B213A /* OTRLanguageListSettingViewController.h in Headers */, + D9C52A11235CB580002B213A /* OTRStreamManagementStorageObject.h in Headers */, + D9C52B1D235CB582002B213A /* OTRSettingsGroup.h in Headers */, + D9C52AFC235CB581002B213A /* OTRLanguageSetting.h in Headers */, + D9C52A46235CB581002B213A /* OTRToastOptions.h in Headers */, + D9C52A4B235CB581002B213A /* OTRDomainCellInfo.h in Headers */, + D9C52AE6235CB581002B213A /* OTRBuddyInfoCell.h in Headers */, + D9C52B0C235CB582002B213A /* OTRBaseMessage.h in Headers */, + D9C52B36235CB582002B213A /* OTRListSettingViewController.h in Headers */, + D9C52B1B235CB582002B213A /* OTRChooseAccountViewController.h in Headers */, + D9C52ABB235CB581002B213A /* OTRPauseView.h in Headers */, + D9C52B12235CB582002B213A /* OTRViewSetting.h in Headers */, + D9C52A47235CB581002B213A /* OTROpenInFacebookActivity.h in Headers */, + D9C52B10235CB582002B213A /* OTRDatabaseManager.h in Headers */, + D9C52B3C235CB582002B213A /* OTRXMPPServerInfo.h in Headers */, + D9C52B22235CB582002B213A /* OTRDatabaseView.h in Headers */, + D9C52AFA235CB581002B213A /* OTRSignalSenderKey.h in Headers */, + D9C52B25235CB582002B213A /* OTRSignalSignedPreKey.h in Headers */, + D9C52B1E235CB582002B213A /* OTRShareSetting.h in Headers */, + D9C52B07235CB581002B213A /* NSString+ChatSecure.h in Headers */, + D9C52B19235CB582002B213A /* OTRXMPPCreateAccountHandler.h in Headers */, + D9C52B0B235CB582002B213A /* OTRBuddyApprovalCell.h in Headers */, + D9C52AAF235CB581002B213A /* OTRButtonView.h in Headers */, + D9C52A59235CB581002B213A /* OTRAudioSessionManager.h in Headers */, + D9C52B29235CB582002B213A /* OTRAccountMigrator.h in Headers */, + D9C52B26235CB582002B213A /* OTRProtocol.h in Headers */, + D9C52AEE235CB581002B213A /* OTRSettingDetailViewController.h in Headers */, + D9C52B38235CB582002B213A /* OTRXMPPBuddy.h in Headers */, + D9C52B2E235CB582002B213A /* OTRvCard.h in Headers */, + D9C529EF235CB580002B213A /* OTRColors.h in Headers */, + D9C52AB9235CB581002B213A /* OTRAudioTrashView.h in Headers */, + D9C52B23235CB582002B213A /* OTRQRCodeActivity.h in Headers */, + D9C52B06235CB581002B213A /* OTRLoginHandler.h in Headers */, + D9C52AEA235CB581002B213A /* OTROutgoingMessage.h in Headers */, + D9C52B0E235CB582002B213A /* UIImage+ChatSecure.h in Headers */, + D9C52A53235CB581002B213A /* OTRAudioPlaybackController.h in Headers */, + D9C52B13235CB582002B213A /* OMEMODevice.h in Headers */, + D9C52B0D235CB582002B213A /* OTRAccountsManager.h in Headers */, + D9C52A23235CB581002B213A /* OTRHTMLItem.h in Headers */, + D9C52A04235CB580002B213A /* OTRIntSetting.h in Headers */, + D9C52AE5235CB581002B213A /* OTRSignalPreKey.h in Headers */, + D9C52AED235CB581002B213A /* OTRActivityItemProvider.h in Headers */, + D9C52B18235CB582002B213A /* OTRMediaItem.h in Headers */, + D9C52B04235CB581002B213A /* OTRXMPPError.h in Headers */, + D9C52B35235CB582002B213A /* OTRThreadOwner.h in Headers */, + D9C52B2D235CB582002B213A /* OTRSignalSession.h in Headers */, + D9C529F3235CB580002B213A /* OTRChatDemo.h in Headers */, + D9C52B33235CB582002B213A /* OTRDatabaseUnlockViewController.h in Headers */, + D9C52B1C235CB582002B213A /* OTRNewBuddyViewController.h in Headers */, + D9C52AC7235CB581002B213A /* OTRPlayView.h in Headers */, + D9C52A0A235CB580002B213A /* OTRCertificateSetting.h in Headers */, + D9C52B1F235CB582002B213A /* OTRProtocolManager.h in Headers */, + D9C52B39235CB582002B213A /* OTRAccountSignalIdentity.h in Headers */, + D9C52B27235CB582002B213A /* OTRBuddyImageCell.h in Headers */, + D9C52B28235CB582002B213A /* OTRConversationViewController.h in Headers */, + D9C52A99235CB581002B213A /* OTRStatusMessageCell.h in Headers */, + D9C52B20235CB582002B213A /* OTRYapMessageSendAction.h in Headers */, + D9C52B2B235CB582002B213A /* OTRInviteViewController.h in Headers */, + D9C52AF4235CB581002B213A /* OTRTitleSubtitleView.h in Headers */, + D9C52A2E235CB581002B213A /* OTRXMPPPresenceSubscriptionRequest.h in Headers */, + D9C52ABC235CB581002B213A /* OTRAudioControlsView.h in Headers */, + D9C52AF6235CB581002B213A /* OTRCertificatePinning.h in Headers */, + D9C52B1A235CB582002B213A /* OTRAccountMigrationViewController.h in Headers */, + D9C52AE8235CB581002B213A /* OTRBuddyCache.h in Headers */, + D9C52A48235CB581002B213A /* OTROpenInTwitterActivity.h in Headers */, + D9C52B16235CB582002B213A /* OTRBaseLoginViewController.h in Headers */, + D9C52AF0235CB581002B213A /* OTRIncomingMessage.h in Headers */, + D9C52A02235CB580002B213A /* OTRFeedbackSetting.h in Headers */, + D9C52B01235CB581002B213A /* OTRImageItem.h in Headers */, + D9C52B08235CB581002B213A /* OTRUserInfoProfile.h in Headers */, + D9C52A06235CB580002B213A /* OTRDonateSetting.h in Headers */, + D9C529DC235CB580002B213A /* OTRAddBuddyQRCodeViewController.h in Headers */, + D9C52B30235CB582002B213A /* OTRXLFormCreator.h in Headers */, + D9C52ABF235CB581002B213A /* OTRComposingImageView.h in Headers */, + D9C52B24235CB582002B213A /* OTRListSetting.h in Headers */, + D9C52AE0235CB581002B213A /* UIActivity+ChatSecure.h in Headers */, + D9C529E3235CB580002B213A /* OTRCertificateDomainViewController.h in Headers */, + D9C52AE2235CB581002B213A /* JSQMessagesCollectionViewCell+ChatSecure.h in Headers */, + D9C52A76235CB581002B213A /* OTRXMPPBuddyTimers.h in Headers */, + D9C52AD6235CB581002B213A /* UITableView+ChatSecure.h in Headers */, + D9C52ABD235CB581002B213A /* OTRLockButton.h in Headers */, + D9C52AE7235CB581002B213A /* OTRMessageEncryptionInfo.h in Headers */, + D9C52AFD235CB581002B213A /* OTRXMPPAccount.h in Headers */, + D9C52A0E235CB580002B213A /* OTRTextItem.h in Headers */, + D9C52B2A235CB582002B213A /* YapDatabaseViewConnection+ChatSecure.h in Headers */, + D9C52AF7235CB581002B213A /* OTRXMPPLoginHandler.h in Headers */, + D9C52A69235CB581002B213A /* OTRXMPPManager_Private.h in Headers */, + D9C52AB8235CB581002B213A /* OTRPlayPauseProgressView.h in Headers */, + D9C52B03235CB581002B213A /* OTRDownloadMessage.h in Headers */, + D9C52B31235CB582002B213A /* OTRMessagesHoldTalkViewController.h in Headers */, + D9C52A07235CB580002B213A /* OTRDoubleSetting.h in Headers */, + D9C52B00235CB581002B213A /* OTREncryptionManager.h in Headers */, + D9C52A16235CB580002B213A /* OTRMessage+JSQMessageData.h in Headers */, + D9C52AA7235CB581002B213A /* XMPPServerInfoCell.h in Headers */, + D9C52AD1235CB581002B213A /* UIViewController+ChatSecure.h in Headers */, + D9C52B11235CB582002B213A /* OTRXMPPRoomManager.h in Headers */, + D9C52AEB235CB581002B213A /* RoomOccupantRole.h in Headers */, + D9C52AF5235CB581002B213A /* OTRMediaServer.h in Headers */, + D9C52B2F235CB582002B213A /* OTRVideoItem.h in Headers */, + D9C52B3B235CB582002B213A /* OTRAttachmentPicker.h in Headers */, + D9C52AB0235CB581002B213A /* OTRCircleView.h in Headers */, + D9C52AD2235CB581002B213A /* NSFileManager+ChatSecure.h in Headers */, + D9C52A33235CB581002B213A /* OTRMediaItem+Private.h in Headers */, + D9C52AC4235CB581002B213A /* OTRRememberPasswordView.h in Headers */, + D9C52AE3235CB581002B213A /* UIActivityViewController+ChatSecure.h in Headers */, + D9C52B15235CB582002B213A /* OTRAccount.h in Headers */, + D9C52AF2235CB581002B213A /* OTRMessagesViewController.h in Headers */, + D9C52AC0235CB581002B213A /* OTRCircleButtonView.h in Headers */, + D9C52AFE235CB581002B213A /* OTRSetting.h in Headers */, + D9C52AEF235CB581002B213A /* OTRSettingsViewController.h in Headers */, + D9C529D2235CB580002B213A /* OTRDoubleSettingViewController.h in Headers */, + D9C52A01235CB580002B213A /* OTRListSettingValue.h in Headers */, + D9C52A29235CB581002B213A /* OTRXMPPTorAccount.h in Headers */, + D9C529CA235CB580002B213A /* OTRExistingAccountViewController.h in Headers */, + D9C52B2C235CB582002B213A /* OTRSignalObject.h in Headers */, + D9C52A72235CB581002B213A /* OTRStreamManagementYapStorage.h in Headers */, + D9C52AF9235CB581002B213A /* OTRXMPPManager.h in Headers */, + D9C529C5235CB580002B213A /* OTRCertificatesViewController.h in Headers */, + D9C52A9B235CB581002B213A /* OTRAccountTableViewCell.h in Headers */, + D9C52B37235CB582002B213A /* OTRQRCodeViewController.h in Headers */, + D9C52A8C235CB581002B213A /* OTRTorManager.h in Headers */, + D9C52B34235CB582002B213A /* OTRPasswordGenerator.h in Headers */, + D9C52B17235CB582002B213A /* OTRAppDelegate.h in Headers */, + D9C52A6B235CB581002B213A /* OTRXMPPTorManager.h in Headers */, + D9C52B09235CB581002B213A /* OTRImages.h in Headers */, + D9C52AC8235CB581002B213A /* OTRSocialButtonsView.h in Headers */, + D9C529FA235CB580002B213A /* OTRBoolSetting.h in Headers */, + D9C529BD235CB580002B213A /* OTRIntSettingViewController.h in Headers */, + D9C529EE235CB580002B213A /* OTRLog.h in Headers */, + D9C52AF3235CB581002B213A /* OTRSettingsManager.h in Headers */, + D9C52AC6235CB581002B213A /* OTRHoldToTalkView.h in Headers */, + D9C52A6D235CB581002B213A /* OTRXMPPBuddyManager.h in Headers */, + D9C52B3A235CB582002B213A /* OTRMediaFileManager.h in Headers */, + D9C52B32235CB582002B213A /* OTRAudioItem.h in Headers */, + D9C52AFB235CB581002B213A /* OTRQRCodeReaderDelegate.h in Headers */, + D9C52AC3235CB581002B213A /* OTRColorFadingDotView.h in Headers */, + D9C52B21235CB582002B213A /* OTRMessage.h in Headers */, + D9C52B3D235CB582002B213A /* ChatSecureCoreCompat-Swift.h in Headers */, + D9C52A97235CB581002B213A /* OTRSettingTableViewCell.h in Headers */, + D9C52AF8235CB581002B213A /* OTRValueSetting.h in Headers */, + D9C52B14235CB582002B213A /* OTRConstants.h in Headers */, + D9C52AFF235CB581002B213A /* OTRYapDatabaseObject.h in Headers */, + D9C52AF1235CB581002B213A /* NSURL+ChatSecure.h in Headers */, + D9C52A7D235CB581002B213A /* ProxyXMPPStream.h in Headers */, + D9C529B2235CB580002B213A /* ChatSecureCore.h in Headers */, + D9C529E9235CB580002B213A /* OTRUtilities.h in Headers */, + D9C529DF235CB580002B213A /* OTRWelcomeAccountTableViewDelegate.h in Headers */, + D9C52B05235CB581002B213A /* OTRComposeViewController.h in Headers */, + D9C52AC5235CB581002B213A /* OTRTouchAndHoldGestureRecognizer.h in Headers */, + D9C529CB235CB580002B213A /* OTRXMPPServerListViewController.h in Headers */, + D9C52A1D235CB580002B213A /* OTRFileItem.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + /* Begin PBXNativeTarget section */ 6365CEFB1E2453F6009E213F /* ChatSecureUITests */ = { isa = PBXNativeTarget; @@ -1555,18 +2140,17 @@ isa = PBXNativeTarget; buildConfigurationList = 6396AFBD1A169D54009F3E6C /* Build configuration list for PBXNativeTarget "ChatSecure" */; buildPhases = ( - 26A8ED395C5418B361347335 /* [CP] Check Pods Manifest.lock */, + 53C42C07E51B94BF0C1600E0 /* [CP] Check Pods Manifest.lock */, 6396AF961A169D54009F3E6C /* Sources */, 6396AF971A169D54009F3E6C /* Frameworks */, 6396AF981A169D54009F3E6C /* Resources */, - D9227C481BA7952100B5E1D0 /* Embed Frameworks */, D92F96D821BA1E7A0056EA35 /* LicensePlist */, - 42829843B1DFA068A70F83E8 /* [CP] Copy Pods Resources */, + 7252D7AF431B6401569E9D58 /* [CP] Copy Pods Resources */, ); buildRules = ( ); dependencies = ( - D99F17901BAB9CD400604558 /* PBXTargetDependency */, + D9C52806235CB55C002B213A /* PBXTargetDependency */, ); name = ChatSecure; productName = ChatSecure; @@ -1577,38 +2161,43 @@ isa = PBXNativeTarget; buildConfigurationList = 6396AFC01A169D54009F3E6C /* Build configuration list for PBXNativeTarget "ChatSecureTests" */; buildPhases = ( - 77A00DC28BB2926A0668095F /* [CP] Check Pods Manifest.lock */, + 44332C40E9BF0F0A77A58005 /* [CP] Check Pods Manifest.lock */, 6396AFAF1A169D54009F3E6C /* Sources */, 6396AFB01A169D54009F3E6C /* Frameworks */, 6396AFB11A169D54009F3E6C /* Resources */, - 3CDE4234E348F4E767DA1980 /* [CP] Copy Pods Resources */, + A271AD86CC706034F6E7B4BB /* [CP] Copy Pods Resources */, ); buildRules = ( ); dependencies = ( - 6396AFB51A169D54009F3E6C /* PBXTargetDependency */, + D9C52B41235CBC3A002B213A /* PBXTargetDependency */, ); name = ChatSecureTests; productName = ChatSecureTests; productReference = 6396AFB31A169D54009F3E6C /* ChatSecureTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; - D93027551BAA381F000CC975 /* OTRResources */ = { + D9C527FF235CB55C002B213A /* ChatSecureCore */ = { isa = PBXNativeTarget; - buildConfigurationList = D930275C1BAA381F000CC975 /* Build configuration list for PBXNativeTarget "OTRResources" */; + buildConfigurationList = D9C5280B235CB55C002B213A /* Build configuration list for PBXNativeTarget "ChatSecureCore" */; buildPhases = ( - D93027521BAA381F000CC975 /* Sources */, - D93027531BAA381F000CC975 /* Frameworks */, - D93027541BAA381F000CC975 /* Resources */, + A738FF05AE19F32CD94A8F60 /* [CP] Check Pods Manifest.lock */, + D9C527FB235CB55C002B213A /* Headers */, + D9C527FC235CB55C002B213A /* Sources */, + D9C527FD235CB55C002B213A /* Frameworks */, + D9C527FE235CB55C002B213A /* Resources */, + 6ABD22ADD0EF367EA1C8B1A6 /* [CP] Copy Pods Resources */, ); buildRules = ( ); dependencies = ( + D9B7EEFA235D47B100AD1EEA /* PBXTargetDependency */, + D9B7EEF8235D47A000AD1EEA /* PBXTargetDependency */, ); - name = OTRResources; - productName = OTRResources; - productReference = D93027561BAA381F000CC975 /* OTRResources.bundle */; - productType = "com.apple.product-type.bundle"; + name = ChatSecureCore; + productName = ChatSecureCore; + productReference = D9C52800235CB55C002B213A /* ChatSecureCore.framework */; + productType = "com.apple.product-type.framework"; }; /* End PBXNativeTarget section */ @@ -1619,7 +2208,7 @@ CLASSPREFIX = OTR; LastSwiftMigration = 0700; LastSwiftUpdateCheck = 0820; - LastUpgradeCheck = 0930; + LastUpgradeCheck = 1110; ORGANIZATIONNAME = "Chris Ballinger"; TargetAttributes = { 6365CEFB1E2453F6009E213F = { @@ -1658,15 +2247,13 @@ LastSwiftMigration = 1010; ProvisioningStyle = Automatic; }; - D93027551BAA381F000CC975 = { - CreatedOnToolsVersion = 7.0; - DevelopmentTeam = 4T8JLQR6GR; - ProvisioningStyle = Automatic; + D9C527FF235CB55C002B213A = { + CreatedOnToolsVersion = 11.1; }; }; }; buildConfigurationList = 6396AF951A169D54009F3E6C /* Build configuration list for PBXProject "ChatSecure" */; - compatibilityVersion = "Xcode 3.2"; + compatibilityVersion = "Xcode 11.0"; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( @@ -1706,22 +2293,76 @@ mainGroup = 6396AF911A169D54009F3E6C; productRefGroup = 6396AF9B1A169D54009F3E6C /* Products */; projectDirPath = ""; + projectReferences = ( + { + ProductGroup = D9B7EEE0235D476700AD1EEA /* Products */; + ProjectRef = D9B7EEDF235D476700AD1EEA /* CPAProxy.xcodeproj */; + }, + { + ProductGroup = D9B7EEEF235D477200AD1EEA /* Products */; + ProjectRef = D9B7EEEE235D477200AD1EEA /* OTRKit.xcodeproj */; + }, + ); projectRoot = ""; targets = ( 6396AF991A169D54009F3E6C /* ChatSecure */, 6396AFB21A169D54009F3E6C /* ChatSecureTests */, 6365CEFB1E2453F6009E213F /* ChatSecureUITests */, - D93027551BAA381F000CC975 /* OTRResources */, + D9C527FF235CB55C002B213A /* ChatSecureCore */, ); }; /* End PBXProject section */ +/* Begin PBXReferenceProxy section */ + D9B7EEE7235D476700AD1EEA /* CPAProxy.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = CPAProxy.framework; + remoteRef = D9B7EEE6235D476700AD1EEA /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + D9B7EEE9235D476700AD1EEA /* CPAProxy.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = CPAProxy.framework; + remoteRef = D9B7EEE8235D476700AD1EEA /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + D9B7EEEB235D476700AD1EEA /* CPAProxy.bundle */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = CPAProxy.bundle; + remoteRef = D9B7EEEA235D476700AD1EEA /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + D9B7EEED235D476700AD1EEA /* CPAProxy.bundle */ = { + isa = PBXReferenceProxy; + fileType = wrapper.cfbundle; + path = CPAProxy.bundle; + remoteRef = D9B7EEEC235D476700AD1EEA /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + D9B7EEF4235D477200AD1EEA /* OTRKit.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = OTRKit.framework; + remoteRef = D9B7EEF3235D477200AD1EEA /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + D9B7EEF6235D477200AD1EEA /* OTRKit.framework */ = { + isa = PBXReferenceProxy; + fileType = wrapper.framework; + path = OTRKit.framework; + remoteRef = D9B7EEF5235D477200AD1EEA /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; +/* End PBXReferenceProxy section */ + /* Begin PBXResourcesBuildPhase section */ 6365CEFA1E2453F6009E213F /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 632A2D341E2728B8000D3192 /* Localizable.strings in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1729,15 +2370,42 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - D93E50671FC3E9B400E0E624 /* OTRResources.bundle in Resources */, + D9F5C2A9236F7F8200F14A16 /* OMEMODeviceFingerprintCell.xib in Resources */, + D9F5C2C3236F7FA700F14A16 /* OTRComposeGroup.storyboard in Resources */, 635EF2021E276C410087BD72 /* Localizable.strings in Resources */, + D9F5C2BA236F7FA200F14A16 /* OTRCountryImages.xcassets in Resources */, + D9F5C2B7236F7F8200F14A16 /* XMPPServerInfoCell.xib in Resources */, + D9F5C2C1236F7FA700F14A16 /* OTRMessagesLoadingView.xib in Resources */, + D9F5C2BB236F7FA200F14A16 /* OTRImages.xcassets in Resources */, D9DEC34A1FABC9F900BF1F7C /* Settings.bundle in Resources */, + D9F5C2B4236F7F8200F14A16 /* MaterialIcons-Regular.ttf in Resources */, + D9F5C2AC236F7F8200F14A16 /* OTRMessageUnknownSenderCell.xib in Resources */, + D9F5C2B0236F7F8200F14A16 /* TwoButtonTableViewCell.xib in Resources */, + D9F5C2B6236F7F8200F14A16 /* HTMLPreviewView.xib in Resources */, + D9F5C2AE236F7F8200F14A16 /* ServerCapabilityTableViewCell.xib in Resources */, + D9F5C2B8236F7F8200F14A16 /* OTRUsernameCell.xib in Resources */, + D9F5C2AA236F7F8200F14A16 /* OTRComposeGroupBuddyCell.xib in Resources */, + D9F5C2BC236F7FA700F14A16 /* Branding.plist in Resources */, + D9ECD08F2344626800ECE5F9 /* LaunchScreen.storyboard in Resources */, 6331072C1A16D1F200C17BAE /* Images.xcassets in Resources */, - 6308D1451CA20762002F5F30 /* Pods-ChatSecureCorePods-ChatSecure-acknowledgements.plist in Resources */, D9365E7A1A1EB0050006434A /* torrc in Resources */, + D9F5C2A8236F7F8200F14A16 /* Purchase.storyboard in Resources */, + D9F5C2AF236F7F8200F14A16 /* SingleButtonTableViewCell.xib in Resources */, + D9F5C2B9236F7F8200F14A16 /* Onboarding.storyboard in Resources */, + D9F5C2BE236F7FA700F14A16 /* AddFriendsView.xib in Resources */, + D9F5C2C0236F7FA700F14A16 /* MigratedBuddyHeaderView.xib in Resources */, + D9F5C2AB236F7F8200F14A16 /* OTRMessageNewDeviceCell.xib in Resources */, + D9F5C2BD236F7FA700F14A16 /* Secrets.plist in Resources */, + D9F5C2B1236F7F8200F14A16 /* UserInfoProfileCell.xib in Resources */, 6331072B1A16D1F200C17BAE /* DemoImages.xcassets in Resources */, - 633107201A16D1A300C17BAE /* LaunchScreen.xib in Resources */, + D9F5C2B3236F7F8200F14A16 /* ios-icon-font.ttf in Resources */, + D9F5C2AD236F7F8200F14A16 /* PushAccountTableViewCell.xib in Resources */, + D9F5C2B2236F7F8200F14A16 /* XMPPAccountCell.xib in Resources */, + D9F5C2B5236F7F8200F14A16 /* MediaDownloadView.xib in Resources */, D95AD2291B684AE1007DEBC3 /* xmpp-server-list in Resources */, + D9F5C2C4236F7FA700F14A16 /* JoinRoomView.xib in Resources */, + D9F5C2C2236F7FA700F14A16 /* OTRRoomOccupants.storyboard in Resources */, + D9F5C2BF236F7FA700F14A16 /* MigrationInfoHeaderView.xib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1753,240 +2421,127 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - D93027541BAA381F000CC975 /* Resources */ = { + D9C527FE235CB55C002B213A /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 92CC68F41F4309B50006CDF8 /* OTRComposeGroupBuddyCell.xib in Resources */, - 924F67C51EA5541C00528FB6 /* MigrationInfoHeaderView.xib in Resources */, - D99F17871BAB932C00604558 /* OTRCountryImages.xcassets in Resources */, - D98BA36C1EDE47BB004475B6 /* HTMLPreviewView.xib in Resources */, - 9251C34F1F35CC44003ACE4A /* MaterialIcons-Regular.ttf in Resources */, - D9B9B1351DC7F3BF0007F5A7 /* UserInfoProfileCell.xib in Resources */, - D99F178C1BAB947E00604558 /* Secrets.plist in Resources */, - D9BC71E11E53B4A3007A3C4F /* TwoButtonTableViewCell.xib in Resources */, - D99F178A1BAB946800604558 /* Branding.plist in Resources */, - D99F17881BAB936100604558 /* Localizable.strings in Resources */, - 92CC68BF1F42F0710006CDF8 /* OTRComposeGroup.storyboard in Resources */, - 9224A5F3207E3BD800A044BF /* JoinRoomView.xib in Resources */, - D943AA441E6A0BB9007F3564 /* XMPPAccountCell.xib in Resources */, - D9BC71DC1E53B31C007A3C4F /* SingleButtonTableViewCell.xib in Resources */, - 9251C34E1F35CC44003ACE4A /* ios-icon-font.ttf in Resources */, - D99F17861BAB932800604558 /* OTRImages.xcassets in Resources */, - D91C866D1E4E7F07008BD763 /* ServerCapabilityTableViewCell.xib in Resources */, - D937184E1EC13D7B00766D49 /* Purchase.storyboard in Resources */, - D99F17921BABA84600604558 /* OTRUsernameCell.xib in Resources */, - D91E641C1DB179A00074B2D4 /* OMEMODeviceFingerprintCell.xib in Resources */, - D99F17911BABA84600604558 /* XMPPServerInfoCell.xib in Resources */, - D99F17931BABA85D00604558 /* Onboarding.storyboard in Resources */, - D967CA8E1E516B8D005FBB49 /* PushAccountTableViewCell.xib in Resources */, - 9251C3051F345DD5003ACE4A /* OTRRoomOccupants.storyboard in Resources */, - D9315CAE1BB600450077D2EE /* AddFriendsView.xib in Resources */, - 92614201200656CB00E8216F /* OTRMessageNewDeviceCell.xib in Resources */, - D97070921EEF382D004FEBDE /* MediaDownloadView.xib in Resources */, - 924F68591EA7A31A00528FB6 /* MigratedBuddyHeaderView.xib in Resources */, - 8F56C3272EBE7F45BC8F925A /* OTRMessagesLoadingView.xib in Resources */, - 921236501FCD77B7009F97F0 /* OTRMessageUnknownSenderCell.xib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 26A8ED395C5418B361347335 /* [CP] Check Pods Manifest.lock */ = { + 44332C40E9BF0F0A77A58005 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); + inputFileListPaths = ( + ); inputPaths = ( "${PODS_PODFILE_DIR_PATH}/Podfile.lock", "${PODS_ROOT}/Manifest.lock", ); name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-ChatSecureCorePods-ChatSecure-checkManifestLockResult.txt", + "$(DERIVED_FILE_DIR)/Pods-ChatSecureCorePods-ChatSecureTests-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 3CDE4234E348F4E767DA1980 /* [CP] Copy Pods Resources */ = { + 53C42C07E51B94BF0C1600E0 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); + inputFileListPaths = ( + ); inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-ChatSecureCorePods-ChatSecureTests/Pods-ChatSecureCorePods-ChatSecureTests-resources.sh", - "${PODS_ROOT}/ARChromeActivity/ARChromeActivity/ARChromeActivity.png", - "${PODS_ROOT}/ARChromeActivity/ARChromeActivity/ARChromeActivity@2x.png", - "${PODS_ROOT}/ARChromeActivity/ARChromeActivity/ARChromeActivity@2x~ipad.png", - "${PODS_ROOT}/ARChromeActivity/ARChromeActivity/ARChromeActivity@3x.png", - "${PODS_ROOT}/ARChromeActivity/ARChromeActivity/ARChromeActivity@3x~ipad.png", - "${PODS_ROOT}/ARChromeActivity/ARChromeActivity/ARChromeActivity~ipad.png", - "${PODS_CONFIGURATION_BUILD_DIR}/Appirater/Appirater.bundle", - "${PODS_ROOT}/BButton/BButton/resources/FontAwesome.ttf", - "${PODS_CONFIGURATION_BUILD_DIR}/CPAProxy/CPAProxy.bundle", - "${PODS_ROOT}/FormatterKit/FormatterKit/FormatterKit.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/HockeySDK-Source/HockeySDKResources.bundle", - "${PODS_ROOT}/../Submodules/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle", - "${PODS_ROOT}/../Submodules/JSQMessagesViewController/JSQMessagesViewController/Controllers/JSQMessagesViewController.xib", - "${PODS_ROOT}/../Submodules/JSQMessagesViewController/JSQMessagesViewController/Views/JSQMessagesCollectionViewCellIncoming.xib", - "${PODS_ROOT}/../Submodules/JSQMessagesViewController/JSQMessagesViewController/Views/JSQMessagesCollectionViewCellOutgoing.xib", - "${PODS_ROOT}/../Submodules/JSQMessagesViewController/JSQMessagesViewController/Views/JSQMessagesLoadEarlierHeaderView.xib", - "${PODS_ROOT}/../Submodules/JSQMessagesViewController/JSQMessagesViewController/Views/JSQMessagesToolbarContentView.xib", - "${PODS_ROOT}/../Submodules/JSQMessagesViewController/JSQMessagesViewController/Views/JSQMessagesTypingIndicatorFooterView.xib", - "${PODS_ROOT}/../Submodules/LumberjackConsole/Source/LumberjackConsole.storyboard", - "${PODS_ROOT}/SAMKeychain/Support/SAMKeychain.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/TUSafariActivity/TUSafariActivity.bundle", - "${PODS_ROOT}/XLForm/XLForm/XLForm.bundle", - "${PODS_ROOT}/../Submodules/XMPPFramework/Extensions/Roster/CoreDataStorage/XMPPRoster.xcdatamodel", - "${PODS_ROOT}/../Submodules/XMPPFramework/Extensions/XEP-0045/CoreDataStorage/XMPPRoom.xcdatamodeld", - "${PODS_ROOT}/../Submodules/XMPPFramework/Extensions/XEP-0045/CoreDataStorage/XMPPRoom.xcdatamodeld/XMPPRoom.xcdatamodel", - "${PODS_ROOT}/../Submodules/XMPPFramework/Extensions/XEP-0045/HybridStorage/XMPPRoomHybrid.xcdatamodeld", - "${PODS_ROOT}/../Submodules/XMPPFramework/Extensions/XEP-0045/HybridStorage/XMPPRoomHybrid.xcdatamodeld/XMPPRoomHybrid.xcdatamodel", - "${PODS_ROOT}/../Submodules/XMPPFramework/Extensions/XEP-0054/CoreDataStorage/XMPPvCard.xcdatamodeld", - "${PODS_ROOT}/../Submodules/XMPPFramework/Extensions/XEP-0054/CoreDataStorage/XMPPvCard.xcdatamodeld/XMPPvCard.xcdatamodel", - "${PODS_ROOT}/../Submodules/XMPPFramework/Extensions/XEP-0115/CoreDataStorage/XMPPCapabilities.xcdatamodel", - "${PODS_ROOT}/../Submodules/XMPPFramework/Extensions/XEP-0136/CoreDataStorage/XMPPMessageArchiving.xcdatamodeld", - "${PODS_ROOT}/../Submodules/XMPPFramework/Extensions/XEP-0136/CoreDataStorage/XMPPMessageArchiving.xcdatamodeld/XMPPMessageArchiving.xcdatamodel", - "${PODS_ROOT}/../Submodules/XMPPFramework/Extensions/XMPPMUCLight/CoreDataStorage/XMPPRoomLight.xcdatamodel", + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( ); - name = "[CP] Copy Pods Resources"; outputPaths = ( - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ARChromeActivity.png", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ARChromeActivity@2x.png", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ARChromeActivity@2x~ipad.png", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ARChromeActivity@3x.png", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ARChromeActivity@3x~ipad.png", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ARChromeActivity~ipad.png", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Appirater.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome.ttf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/CPAProxy.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FormatterKit.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/HockeySDKResources.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/JSQMessagesAssets.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/JSQMessagesViewController.nib", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/JSQMessagesCollectionViewCellIncoming.nib", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/JSQMessagesCollectionViewCellOutgoing.nib", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/JSQMessagesLoadEarlierHeaderView.nib", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/JSQMessagesToolbarContentView.nib", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/JSQMessagesTypingIndicatorFooterView.nib", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/LumberjackConsole.storyboardc", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/SAMKeychain.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/TUSafariActivity.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/XLForm.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/XMPPRoster.mom", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/XMPPRoom.momd", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/XMPPRoom.mom", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/XMPPRoomHybrid.momd", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/XMPPRoomHybrid.mom", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/XMPPvCard.momd", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/XMPPvCard.mom", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/XMPPCapabilities.mom", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/XMPPMessageArchiving.momd", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/XMPPMessageArchiving.mom", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/XMPPRoomLight.mom", + "$(DERIVED_FILE_DIR)/Pods-ChatSecureCorePods-ChatSecure-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ChatSecureCorePods-ChatSecureTests/Pods-ChatSecureCorePods-ChatSecureTests-resources.sh\"\n"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 42829843B1DFA068A70F83E8 /* [CP] Copy Pods Resources */ = { + 6ABD22ADD0EF367EA1C8B1A6 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-ChatSecureCorePods-ChatSecure/Pods-ChatSecureCorePods-ChatSecure-resources.sh", - "${PODS_ROOT}/ARChromeActivity/ARChromeActivity/ARChromeActivity.png", - "${PODS_ROOT}/ARChromeActivity/ARChromeActivity/ARChromeActivity@2x.png", - "${PODS_ROOT}/ARChromeActivity/ARChromeActivity/ARChromeActivity@2x~ipad.png", - "${PODS_ROOT}/ARChromeActivity/ARChromeActivity/ARChromeActivity@3x.png", - "${PODS_ROOT}/ARChromeActivity/ARChromeActivity/ARChromeActivity@3x~ipad.png", - "${PODS_ROOT}/ARChromeActivity/ARChromeActivity/ARChromeActivity~ipad.png", - "${PODS_CONFIGURATION_BUILD_DIR}/Appirater/Appirater.bundle", - "${PODS_ROOT}/BButton/BButton/resources/FontAwesome.ttf", - "${PODS_CONFIGURATION_BUILD_DIR}/CPAProxy/CPAProxy.bundle", - "${PODS_ROOT}/FormatterKit/FormatterKit/FormatterKit.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/HockeySDK-Source/HockeySDKResources.bundle", - "${PODS_ROOT}/../Submodules/JSQMessagesViewController/JSQMessagesViewController/Assets/JSQMessagesAssets.bundle", - "${PODS_ROOT}/../Submodules/JSQMessagesViewController/JSQMessagesViewController/Controllers/JSQMessagesViewController.xib", - "${PODS_ROOT}/../Submodules/JSQMessagesViewController/JSQMessagesViewController/Views/JSQMessagesCollectionViewCellIncoming.xib", - "${PODS_ROOT}/../Submodules/JSQMessagesViewController/JSQMessagesViewController/Views/JSQMessagesCollectionViewCellOutgoing.xib", - "${PODS_ROOT}/../Submodules/JSQMessagesViewController/JSQMessagesViewController/Views/JSQMessagesLoadEarlierHeaderView.xib", - "${PODS_ROOT}/../Submodules/JSQMessagesViewController/JSQMessagesViewController/Views/JSQMessagesToolbarContentView.xib", - "${PODS_ROOT}/../Submodules/JSQMessagesViewController/JSQMessagesViewController/Views/JSQMessagesTypingIndicatorFooterView.xib", - "${PODS_ROOT}/../Submodules/LumberjackConsole/Source/LumberjackConsole.storyboard", - "${PODS_ROOT}/SAMKeychain/Support/SAMKeychain.bundle", - "${PODS_CONFIGURATION_BUILD_DIR}/TUSafariActivity/TUSafariActivity.bundle", - "${PODS_ROOT}/XLForm/XLForm/XLForm.bundle", - "${PODS_ROOT}/../Submodules/XMPPFramework/Extensions/Roster/CoreDataStorage/XMPPRoster.xcdatamodel", - "${PODS_ROOT}/../Submodules/XMPPFramework/Extensions/XEP-0045/CoreDataStorage/XMPPRoom.xcdatamodeld", - "${PODS_ROOT}/../Submodules/XMPPFramework/Extensions/XEP-0045/CoreDataStorage/XMPPRoom.xcdatamodeld/XMPPRoom.xcdatamodel", - "${PODS_ROOT}/../Submodules/XMPPFramework/Extensions/XEP-0045/HybridStorage/XMPPRoomHybrid.xcdatamodeld", - "${PODS_ROOT}/../Submodules/XMPPFramework/Extensions/XEP-0045/HybridStorage/XMPPRoomHybrid.xcdatamodeld/XMPPRoomHybrid.xcdatamodel", - "${PODS_ROOT}/../Submodules/XMPPFramework/Extensions/XEP-0054/CoreDataStorage/XMPPvCard.xcdatamodeld", - "${PODS_ROOT}/../Submodules/XMPPFramework/Extensions/XEP-0054/CoreDataStorage/XMPPvCard.xcdatamodeld/XMPPvCard.xcdatamodel", - "${PODS_ROOT}/../Submodules/XMPPFramework/Extensions/XEP-0115/CoreDataStorage/XMPPCapabilities.xcdatamodel", - "${PODS_ROOT}/../Submodules/XMPPFramework/Extensions/XEP-0136/CoreDataStorage/XMPPMessageArchiving.xcdatamodeld", - "${PODS_ROOT}/../Submodules/XMPPFramework/Extensions/XEP-0136/CoreDataStorage/XMPPMessageArchiving.xcdatamodeld/XMPPMessageArchiving.xcdatamodel", - "${PODS_ROOT}/../Submodules/XMPPFramework/Extensions/XMPPMUCLight/CoreDataStorage/XMPPRoomLight.xcdatamodel", + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-ChatSecureCorePods-ChatSecureCore/Pods-ChatSecureCorePods-ChatSecureCore-resources-${CONFIGURATION}-input-files.xcfilelist", ); name = "[CP] Copy Pods Resources"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ARChromeActivity.png", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ARChromeActivity@2x.png", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ARChromeActivity@2x~ipad.png", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ARChromeActivity@3x.png", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ARChromeActivity@3x~ipad.png", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ARChromeActivity~ipad.png", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Appirater.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FontAwesome.ttf", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/CPAProxy.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/FormatterKit.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/HockeySDKResources.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/JSQMessagesAssets.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/JSQMessagesViewController.nib", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/JSQMessagesCollectionViewCellIncoming.nib", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/JSQMessagesCollectionViewCellOutgoing.nib", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/JSQMessagesLoadEarlierHeaderView.nib", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/JSQMessagesToolbarContentView.nib", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/JSQMessagesTypingIndicatorFooterView.nib", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/LumberjackConsole.storyboardc", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/SAMKeychain.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/TUSafariActivity.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/XLForm.bundle", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/XMPPRoster.mom", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/XMPPRoom.momd", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/XMPPRoom.mom", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/XMPPRoomHybrid.momd", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/XMPPRoomHybrid.mom", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/XMPPvCard.momd", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/XMPPvCard.mom", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/XMPPCapabilities.mom", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/XMPPMessageArchiving.momd", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/XMPPMessageArchiving.mom", - "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/XMPPRoomLight.mom", + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-ChatSecureCorePods-ChatSecureCore/Pods-ChatSecureCorePods-ChatSecureCore-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ChatSecureCorePods-ChatSecureCore/Pods-ChatSecureCorePods-ChatSecureCore-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + 7252D7AF431B6401569E9D58 /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-ChatSecureCorePods-ChatSecure/Pods-ChatSecureCorePods-ChatSecure-resources-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Copy Pods Resources"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-ChatSecureCorePods-ChatSecure/Pods-ChatSecureCorePods-ChatSecure-resources-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ChatSecureCorePods-ChatSecure/Pods-ChatSecureCorePods-ChatSecure-resources.sh\"\n"; showEnvVarsInLog = 0; }; - 77A00DC28BB2926A0668095F /* [CP] Check Pods Manifest.lock */ = { + A271AD86CC706034F6E7B4BB /* [CP] Copy Pods Resources */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-ChatSecureCorePods-ChatSecureTests/Pods-ChatSecureCorePods-ChatSecureTests-resources-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Copy Pods Resources"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-ChatSecureCorePods-ChatSecureTests/Pods-ChatSecureCorePods-ChatSecureTests-resources-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-ChatSecureCorePods-ChatSecureTests/Pods-ChatSecureCorePods-ChatSecureTests-resources.sh\"\n"; + showEnvVarsInLog = 0; + }; + A738FF05AE19F32CD94A8F60 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); + inputFileListPaths = ( + ); inputPaths = ( "${PODS_PODFILE_DIR_PATH}/Podfile.lock", "${PODS_ROOT}/Manifest.lock", ); name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-ChatSecureCorePods-ChatSecureTests-checkManifestLockResult.txt", + "$(DERIVED_FILE_DIR)/Pods-ChatSecureCorePods-ChatSecureCore-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; @@ -2054,10 +2609,247 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - D93027521BAA381F000CC975 /* Sources */ = { + D9C527FC235CB55C002B213A /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + D9C52A5A235CB581002B213A /* OTRDatabaseView.m in Sources */, + D9C52A87235CB581002B213A /* PushSerializer.swift in Sources */, + D9C52ACF235CB581002B213A /* MigratedBuddyHeaderView.swift in Sources */, + D9C52A8F235CB581002B213A /* OTRCircleButtonView.m in Sources */, + D9C52A5B235CB581002B213A /* OTRProtocolManager.m in Sources */, + D9C52A10235CB580002B213A /* OTRXMPPPresenceSubscriptionRequest.m in Sources */, + D9C52AD5235CB581002B213A /* UIApplication+ChatSecure.swift in Sources */, + D9C52A8B235CB581002B213A /* ServerCheck.swift in Sources */, + D9C52A55235CB581002B213A /* PushDeserializer.swift in Sources */, + D9C52AA5235CB581002B213A /* OTRStatusMessageCell.m in Sources */, + D9C52A57235CB581002B213A /* PushController.swift in Sources */, + D9C52A18235CB580002B213A /* OTRMessage.m in Sources */, + D9C52A3F235CB581002B213A /* OTRFileItem.m in Sources */, + D9C529B9235CB580002B213A /* AccountDetailViewController.swift in Sources */, + D9C52A8A235CB581002B213A /* YapDatabaseTransaction+ChatSecure.swift in Sources */, + D9C52A9C235CB581002B213A /* UserInfoProfileCell.swift in Sources */, + D9C52A8E235CB581002B213A /* OTRAccountDatabaseCount.swift in Sources */, + D9C529F6235CB580002B213A /* OTRImages.m in Sources */, + D9C529C8235CB580002B213A /* OTRAccountMigrationViewController.m in Sources */, + D9C52A75235CB581002B213A /* OTRServerCapabilities.m in Sources */, + D9C529BA235CB580002B213A /* PurchaseViewController.swift in Sources */, + D9C52A4A235CB581002B213A /* OTRBuddyCache.m in Sources */, + D9C52AB3235CB581002B213A /* OTRHoldToTalkView.m in Sources */, + D9C52ADB235CB581002B213A /* UIViewController+ChatSecure.m in Sources */, + D9C52AAE235CB581002B213A /* OTRLockButton.m in Sources */, + D9C52ACE235CB581002B213A /* OTRPlayPauseProgressView.m in Sources */, + D9C52A38235CB581002B213A /* OTRSignalObject.m in Sources */, + D9C529E8235CB580002B213A /* OTRColors.m in Sources */, + D9C52A5F235CB581002B213A /* OTROMEMOSignalCoordinator.swift in Sources */, + D9C52A21235CB581002B213A /* OTRXMPPRoomMessage.swift in Sources */, + D9C52ABA235CB581002B213A /* JoinRoomView.swift in Sources */, + D9C52A3A235CB581002B213A /* OTRAccountSignalIdentity.m in Sources */, + D9C52A19235CB580002B213A /* OTRYapMessageSendAction.m in Sources */, + D9C529E0235CB580002B213A /* OTRAddBuddyQRCodeViewController.m in Sources */, + D9C529ED235CB580002B213A /* UIAlertController+ChatSecure.swift in Sources */, + D9C52A12235CB580002B213A /* OTRMediaItem.m in Sources */, + D9C529DA235CB580002B213A /* OTRQRCodeReaderDelegate.m in Sources */, + D9C52A40235CB581002B213A /* ChatSecure.xcdatamodeld in Sources */, + D9C529E7235CB580002B213A /* OTRConstants.m in Sources */, + D9C52A9D235CB581002B213A /* OTRUsernameCell.swift in Sources */, + D9C52A5C235CB581002B213A /* OTRAttachmentPicker.m in Sources */, + D9C529C0235CB580002B213A /* OTRQRCodeViewController.m in Sources */, + D9C529CC235CB580002B213A /* OTRXLFormCreator.m in Sources */, + D9C529C3235CB580002B213A /* OTRDatabaseUnlockViewController.m in Sources */, + D9C52A05235CB580002B213A /* OTRValueSetting.m in Sources */, + D9C529D0235CB580002B213A /* OTRLoginHandler.m in Sources */, + D9C52AE1235CB581002B213A /* NSString+ChatSecure.m in Sources */, + D9C52AA3235CB581002B213A /* ServerCapabilityTableViewCell.swift in Sources */, + D9C52A88235CB581002B213A /* YapDatabase+ChatSecure.swift in Sources */, + D9C52A1A235CB580002B213A /* OTRXMPPRoomOccupant.swift in Sources */, + D9C52A78235CB581002B213A /* OTRXMPPManager.m in Sources */, + D9C52A7E235CB581002B213A /* OTRMediaServer.m in Sources */, + D9C529D6235CB580002B213A /* OTRIntSettingViewController.m in Sources */, + D9C52A74235CB581002B213A /* RoomStorage.swift in Sources */, + D9C52A3E235CB581002B213A /* OTRBaseMessage.m in Sources */, + D9C52A03235CB580002B213A /* OTRBoolSetting.m in Sources */, + D9C52AAD235CB581002B213A /* OTRComposingImageView.m in Sources */, + D9C52A45235CB581002B213A /* OTRXMPPServerInfo.m in Sources */, + D9C52AA9235CB581002B213A /* PushAccountTableViewCell.swift in Sources */, + D9C52A31235CB581002B213A /* OTRDownloadMessage.m in Sources */, + D9C529F9235CB580002B213A /* OTRIntSetting.m in Sources */, + D9C529FE235CB580002B213A /* OTRCertificateSetting.m in Sources */, + D9C52A89235CB581002B213A /* OTRAccountsManager.m in Sources */, + D9C529E2235CB580002B213A /* OTRWelcomeAccountTableViewDelegate.m in Sources */, + D9C52AA0235CB581002B213A /* OTRConversationCell.m in Sources */, + D9C52A7B235CB581002B213A /* OTRXMPPBuddyManager.m in Sources */, + D9C52A56235CB581002B213A /* OTRAccountMigrator.m in Sources */, + D9C52AAC235CB581002B213A /* OTRBuddyApprovalCell.m in Sources */, + D9C529C1235CB580002B213A /* OTRListSettingViewController.m in Sources */, + D9C52A00235CB580002B213A /* OTRDoubleSetting.m in Sources */, + D9C52A73235CB581002B213A /* RosterStorage.swift in Sources */, + D9C52A85235CB581002B213A /* OTREncryptionManager.m in Sources */, + D9C52ACB235CB581002B213A /* OTRAudioControlsView.m in Sources */, + D9C529DD235CB580002B213A /* OTRWelcomeViewController.swift in Sources */, + D9C52A25235CB581002B213A /* OTRBuddy.m in Sources */, + D9C529BF235CB580002B213A /* MaybeLaterViewController.swift in Sources */, + D9C52A13235CB580002B213A /* OMEMODevice.m in Sources */, + D9C52A71235CB581002B213A /* MessageStorage.swift in Sources */, + D9C529F1235CB580002B213A /* OTRCertificatePinning.m in Sources */, + D9C52AA4235CB581002B213A /* OMEMODeviceFingerprintCell.swift in Sources */, + D9C52A61235CB581002B213A /* OTRTorManager.m in Sources */, + D9C52AA6235CB581002B213A /* OTRSettingTableViewCell.m in Sources */, + D9C52A50235CB581002B213A /* OTRDatabaseManager.m in Sources */, + D9C529C2235CB580002B213A /* OTRCertificateDomainViewController.m in Sources */, + D9C52A66235CB581002B213A /* OTRYapViewHandler.swift in Sources */, + D9C52AC9235CB581002B213A /* AddFriendsView.swift in Sources */, + D9C52A68235CB581002B213A /* OTRSignalEncryptionHelper.swift in Sources */, + D9C529DB235CB580002B213A /* OTRCertificatesViewController.m in Sources */, + D9C52A62235CB581002B213A /* OTRSplitViewCoordinator.swift in Sources */, + D9C52A93235CB581002B213A /* MediaDownloadView.swift in Sources */, + D9C52A2A235CB581002B213A /* OTRXMPPTorAccount.m in Sources */, + D9C52A9F235CB581002B213A /* OTRComposeGroupBuddyCell.swift in Sources */, + D9C529B6235CB580002B213A /* OTRNewBuddyViewController.m in Sources */, + D9C52ADE235CB581002B213A /* NSURL+ChatSecure.m in Sources */, + D9C529FC235CB580002B213A /* OTRSettingsGroup.m in Sources */, + D9C529BC235CB580002B213A /* OTRConversationViewController.m in Sources */, + D9C529FF235CB580002B213A /* OTRListSetting.m in Sources */, + D9C52A91235CB581002B213A /* XMPPAccountCell.swift in Sources */, + D9C529F8235CB580002B213A /* OTRViewSetting.m in Sources */, + D9C52AB6235CB581002B213A /* OTRRememberPasswordView.m in Sources */, + D9C52AB5235CB581002B213A /* MigrationInfoHeaderView.swift in Sources */, + D9C529B4235CB580002B213A /* Compatibility.swift in Sources */, + D9C52A41235CB581002B213A /* OTRDomainCellInfo.m in Sources */, + D9C52AC1235CB581002B213A /* OTRTitleSubtitleView.m in Sources */, + D9C52ACC235CB581002B213A /* OTRAudioTrashView.m in Sources */, + D9C529EB235CB580002B213A /* DefaultTheme.swift in Sources */, + D9C52A28235CB581002B213A /* OTRXMPPAccount+Migration.swift in Sources */, + D9C529F4235CB580002B213A /* OTRUtilities.m in Sources */, + D9C52A64235CB581002B213A /* ShareController.swift in Sources */, + D9C529DE235CB580002B213A /* ServerCapabilitiesViewController.swift in Sources */, + D9C52A7F235CB581002B213A /* OTRYapExtensions.swift in Sources */, + D9C52A1C235CB580002B213A /* OTRDownloadMessage.swift in Sources */, + D9C529B5235CB580002B213A /* OTRDoubleSettingViewController.m in Sources */, + D9C52A2C235CB581002B213A /* Account.swift in Sources */, + D9C529BE235CB580002B213A /* OTRRoomOccupantsViewController.swift in Sources */, + D9C52AD4235CB581002B213A /* YapDatabaseViewConnection+ChatSecure.m in Sources */, + D9C52A44235CB581002B213A /* ServerCapabilityInfo.swift in Sources */, + D9C52AB7235CB581002B213A /* OTRColorFadingDotView.m in Sources */, + D9C529D1235CB580002B213A /* OTRMessagesViewController+SupplementaryViews.swift in Sources */, + D9C529FD235CB580002B213A /* OTRDonateSetting.m in Sources */, + D9C52A67235CB581002B213A /* OTRProtocolManager.swift in Sources */, + D9C52A36235CB581002B213A /* OTRYapDatabaseObject.m in Sources */, + D9C52A09235CB580002B213A /* OTRLanguageSetting.m in Sources */, + D9C52A0B235CB580002B213A /* OTRListSettingValue.m in Sources */, + D9C52A8D235CB581002B213A /* OTRAccountSignalEncryptionManager.swift in Sources */, + D9C52A70235CB581002B213A /* VCardStorage.swift in Sources */, + D9C52A42235CB581002B213A /* MessagesViewControllerState.swift in Sources */, + D9C52A4F235CB581002B213A /* PushStorage.swift in Sources */, + D9C52A90235CB581002B213A /* OTRAccountTableViewCell.m in Sources */, + D9C52A0D235CB580002B213A /* OTRHTMLItem.m in Sources */, + D9C529C9235CB580002B213A /* OTRXMPPCreateAccountHandler.m in Sources */, + D9C52A27235CB581002B213A /* OTRAccount.m in Sources */, + D9C52A52235CB581002B213A /* OTRXMPPChangeAvatar.swift in Sources */, + D9C529E6235CB580002B213A /* OTRAppDelegate.swift in Sources */, + D9C52A34235CB581002B213A /* OTRImageItem.m in Sources */, + D9C52A20235CB581002B213A /* OTRVideoItem.m in Sources */, + D9C52A81235CB581002B213A /* OTRSettingsManager.m in Sources */, + D9C52A24235CB581002B213A /* OTROutgoingMessage.m in Sources */, + D9C52A94235CB581002B213A /* HTMLPreviewView.swift in Sources */, + D9C52AD7235CB581002B213A /* JSQMessagesCollectionViewCell+ChatSecure.m in Sources */, + D9C529E1235CB580002B213A /* EnablePushViewController.swift in Sources */, + D9C529C7235CB580002B213A /* OTRBaseLoginViewController.m in Sources */, + D9C529D7235CB580002B213A /* OTRLanguageListSettingViewController.m in Sources */, + D9C52ADF235CB581002B213A /* UIImage+ChatSecure.m in Sources */, + D9C52AA2235CB581002B213A /* TwoButtonTableViewCell.swift in Sources */, + D9C52AB4235CB581002B213A /* OTRTouchAndHoldGestureRecognizer.m in Sources */, + D9C52AE4235CB581002B213A /* UITableView+ChatSecure.m in Sources */, + D9C52A15235CB580002B213A /* OTRYapMessageSendAction.swift in Sources */, + D9C529CE235CB580002B213A /* OTRXMPPServerListViewController.m in Sources */, + D9C52A6F235CB581002B213A /* OTRStreamManagementYapStorage.m in Sources */, + D9C529E5235CB580002B213A /* OTRLogListViewController.swift in Sources */, + D9C52A35235CB581002B213A /* OTRXMPPRoom.swift in Sources */, + D9C52ADA235CB581002B213A /* NSFileManager+ChatSecure.m in Sources */, + D9C52ABE235CB581002B213A /* OTRButtonView.m in Sources */, + D9C52A3C235CB581002B213A /* OTRSignalSenderKey.m in Sources */, + D9C529B8235CB580002B213A /* OTRMessagesViewController+RoomOperations.swift in Sources */, + D9C52A3D235CB581002B213A /* SecondaryIndexes.swift in Sources */, + D9C52A98235CB581002B213A /* XMPPServerInfoCell.m in Sources */, + D9C52A5D235CB581002B213A /* OTRXMPPChangePasswordManager.swift in Sources */, + D9C52A6A235CB581002B213A /* OTRXMPPRoomManager.m in Sources */, + D9C52A9E235CB581002B213A /* OTRBuddyInfoCell.m in Sources */, + D9C52ACD235CB581002B213A /* OTRVerticalStackView.swift in Sources */, + D9C529CD235CB580002B213A /* OTRXMPPLoginHandler.m in Sources */, + D9C52A4D235CB581002B213A /* OTROpenInFacebookActivity.m in Sources */, + D9C52AB2235CB581002B213A /* OTRPlayView.m in Sources */, + D9C52AA1235CB581002B213A /* OTRMessageNewDeviceCell.swift in Sources */, + D9C52A0F235CB580002B213A /* PushContainers.swift in Sources */, + D9C52ACA235CB581002B213A /* OTRPauseView.m in Sources */, + D9C529EC235CB580002B213A /* OTRPasswordGenerator.m in Sources */, + D9C529C4235CB580002B213A /* OTRMessagesHoldTalkViewController.m in Sources */, + D9C52A9A235CB581002B213A /* OTRInLineTextEditTableViewCell.m in Sources */, + D9C529F5235CB580002B213A /* OTRSecrets.m in Sources */, + D9C52A79235CB581002B213A /* RoomManager.swift in Sources */, + D9C529D4235CB580002B213A /* OTRMessagesCollectionViewFlowLayout.swift in Sources */, + D9C529D3235CB580002B213A /* OTRMessagesViewController.m in Sources */, + D9C52A7A235CB581002B213A /* XMPPManager.swift in Sources */, + D9C52A14235CB580002B213A /* OMEMODevice.swift in Sources */, + D9C52A63235CB581002B213A /* OTRXMPPMessageStatusModule.swift in Sources */, + D9C52AD3235CB581002B213A /* NSData+ChatSecure.swift in Sources */, + D9C529EA235CB580002B213A /* OTRChatDemo.m in Sources */, + D9C529E4235CB580002B213A /* OTRComposeViewController.m in Sources */, + D9C529B3235CB580002B213A /* OTRAppDelegate.m in Sources */, + D9C529CF235CB580002B213A /* OTRExistingAccountViewController.m in Sources */, + D9C52A37235CB581002B213A /* OTRSignalSession.m in Sources */, + D9C52A26235CB581002B213A /* OTRMessageEncryptionInfo.m in Sources */, + D9C52AD9235CB581002B213A /* UIActivity+ChatSecure.m in Sources */, + D9C52A60235CB581002B213A /* YapDatabaseConstants.swift in Sources */, + D9C52A80235CB581002B213A /* OTRSignalStorageManager.swift in Sources */, + D9C529F7235CB580002B213A /* OTRGroupAvatarGenerator.swift in Sources */, + D9C52AAB235CB581002B213A /* OTRBuddyInfoCheckableCell.swift in Sources */, + D9C52A92235CB581002B213A /* SingleButtonTableViewCell.swift in Sources */, + D9C52A82235CB581002B213A /* OTRAudioPlaybackController.m in Sources */, + D9C52A4C235CB581002B213A /* OTROpenInTwitterActivity.m in Sources */, + D9C52A2F235CB581002B213A /* BuddyActions.swift in Sources */, + D9C52A49235CB581002B213A /* OTRActivityItemProvider.m in Sources */, + D9C52A30235CB581002B213A /* OTRIncomingMessage.m in Sources */, + D9C52A96235CB581002B213A /* OTRBuddyImageCell.m in Sources */, + D9C52A1B235CB580002B213A /* OTRXMPPBuddy.m in Sources */, + D9C52A08235CB580002B213A /* OTRSetting.m in Sources */, + D9C52A7C235CB581002B213A /* OTRStreamManagementDelegate.swift in Sources */, + D9C52A43235CB581002B213A /* OTRQRCodeActivity.m in Sources */, + D9C529D8235CB580002B213A /* KeyManagementViewController.swift in Sources */, + D9C52A54235CB581002B213A /* OTROMEMOStorageManager.swift in Sources */, + D9C52AD0235CB581002B213A /* UIViewController+ChatSecure.swift in Sources */, + D9C52ADC235CB581002B213A /* UINavigationController+ChatSecure.swift in Sources */, + D9C52A2B235CB581002B213A /* OTRXMPPAccount.m in Sources */, + D9C529D9235CB580002B213A /* OTRComposeGroupViewController.swift in Sources */, + D9C52A22235CB581002B213A /* OTRTextItem.m in Sources */, + D9C529BB235CB580002B213A /* OTRInviteViewController.m in Sources */, + D9C52A1E235CB580002B213A /* OTRAudioItem.m in Sources */, + D9C529FB235CB580002B213A /* OTRShareSetting.m in Sources */, + D9C52A65235CB581002B213A /* MessageQueueHandler.swift in Sources */, + D9C52A77235CB581002B213A /* OTRXMPPTorManager.m in Sources */, + D9C52A6E235CB581002B213A /* ProxyXMPPStream.m in Sources */, + D9C52A0C235CB580002B213A /* OTRFeedbackSetting.m in Sources */, + D9C52AC2235CB581002B213A /* OTRCircleView.m in Sources */, + D9C52ADD235CB581002B213A /* XMPPMessage+ChatSecure.swift in Sources */, + D9C52A3B235CB581002B213A /* OTRSignalPreKey.m in Sources */, + D9C52A51235CB581002B213A /* FileTransferManager.swift in Sources */, + D9C529C6235CB580002B213A /* OTRSettingDetailViewController.m in Sources */, + D9C52A4E235CB581002B213A /* OTRToastOptions.m in Sources */, + D9C52A39235CB581002B213A /* OTRSignalSignedPreKey.m in Sources */, + D9C529F2235CB580002B213A /* OTRXMPPError.m in Sources */, + D9C529F0235CB580002B213A /* OTRServerDeprecation.swift in Sources */, + D9C52AA8235CB581002B213A /* OTRMessageUnknownSenderCell.swift in Sources */, + D9C52A84235CB581002B213A /* OTRAudioSessionManager.m in Sources */, + D9C52A5E235CB581002B213A /* OTRMediaFileManager.m in Sources */, + D9C52AD8235CB581002B213A /* UIActivityViewController+ChatSecure.m in Sources */, + D9C52A6C235CB581002B213A /* OTRXMPPBuddyTimers.m in Sources */, + D9C52A32235CB581002B213A /* OTRMessage+JSQMessageData.m in Sources */, + D9C52A2D235CB581002B213A /* OTRStreamManagementStorageObject.m in Sources */, + D9C529B7235CB580002B213A /* OTRChooseAccountViewController.m in Sources */, + D9C52AB1235CB581002B213A /* OTRSocialButtonsView.m in Sources */, + D9C52A83235CB581002B213A /* Errors.swift in Sources */, + D9C52A17235CB580002B213A /* PushMessage.swift in Sources */, + D9C529D5235CB580002B213A /* OTRSettingsViewController.m in Sources */, + D9C52A1F235CB581002B213A /* BuddySubscriptions.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2069,15 +2861,25 @@ target = 6396AF991A169D54009F3E6C /* ChatSecure */; targetProxy = 6365CF011E2453F6009E213F /* PBXContainerItemProxy */; }; - 6396AFB51A169D54009F3E6C /* PBXTargetDependency */ = { + D9B7EEF8235D47A000AD1EEA /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = 6396AF991A169D54009F3E6C /* ChatSecure */; - targetProxy = 6396AFB41A169D54009F3E6C /* PBXContainerItemProxy */; + name = "OTRKit (iOS)"; + targetProxy = D9B7EEF7235D47A000AD1EEA /* PBXContainerItemProxy */; }; - D99F17901BAB9CD400604558 /* PBXTargetDependency */ = { + D9B7EEFA235D47B100AD1EEA /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = D93027551BAA381F000CC975 /* OTRResources */; - targetProxy = D99F178F1BAB9CD400604558 /* PBXContainerItemProxy */; + name = "CPAProxy (iOS)"; + targetProxy = D9B7EEF9235D47B100AD1EEA /* PBXContainerItemProxy */; + }; + D9C52806235CB55C002B213A /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = D9C527FF235CB55C002B213A /* ChatSecureCore */; + targetProxy = D9C52805235CB55C002B213A /* PBXContainerItemProxy */; + }; + D9C52B41235CBC3A002B213A /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = D9C527FF235CB55C002B213A /* ChatSecureCore */; + targetProxy = D9C52B40235CBC3A002B213A /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ @@ -2124,7 +2926,7 @@ /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ - 6365CF041E2453F6009E213F /* Debug */ = { + 6365CF041E2453F6009E213F /* iOS_Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; @@ -2139,16 +2941,19 @@ "SQLITE_HAS_CODEC=1", ); INFOPLIST_FILE = ChatSecureUITests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.2; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); PRODUCT_BUNDLE_IDENTIFIER = com.chrisballinger.ChatSecure.ChatSecureUITests; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; TEST_TARGET_NAME = ChatSecure; }; - name = Debug; + name = iOS_Debug; }; - 6365CF051E2453F6009E213F /* Release */ = { + 6365CF051E2453F6009E213F /* iOS_Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; @@ -2158,16 +2963,20 @@ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = SF3NXKQQ64; INFOPLIST_FILE = ChatSecureUITests/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 10.2; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); PRODUCT_BUNDLE_IDENTIFIER = com.chrisballinger.ChatSecure.ChatSecureUITests; PRODUCT_NAME = "$(TARGET_NAME)"; TEST_TARGET_NAME = ChatSecure; }; - name = Release; + name = iOS_Release; }; - 6396AFBB1A169D54009F3E6C /* Debug */ = { + 6396AFBB1A169D54009F3E6C /* iOS_Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = D9638A0A23A3320F00C0CDF7 /* iOS_Debug.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; @@ -2214,7 +3023,9 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + INFOPLIST_PREFIX_HEADER = ChatSecure/InfoPlist.h; + INFOPLIST_PREPROCESS = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; OTHER_SWIFT_FLAGS = "-D DEBUG"; @@ -2226,10 +3037,11 @@ SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; - name = Debug; + name = iOS_Debug; }; - 6396AFBC1A169D54009F3E6C /* Release */ = { + 6396AFBC1A169D54009F3E6C /* iOS_Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = D9638A0723A3320200C0CDF7 /* iOS_Release.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; @@ -2268,35 +3080,38 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + INFOPLIST_PREFIX_HEADER = ChatSecure/InfoPlist.h; + INFOPLIST_PREPROCESS = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; MTL_ENABLE_DEBUG_INFO = NO; PROVISIONING_PROFILE = ""; SDKROOT = iphoneos; STRIP_INSTALLED_PRODUCT = YES; STRIP_STYLE = debugging; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; VALIDATE_PRODUCT = YES; }; - name = Release; + name = iOS_Release; }; - 6396AFBE1A169D54009F3E6C /* Debug */ = { + 6396AFBE1A169D54009F3E6C /* iOS_Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = DE32B878BAC9A236855EAF6E /* Pods-ChatSecureCorePods-ChatSecure.debug.xcconfig */; + baseConfigurationReference = 99AA03F8FC490C50FCDB3372 /* Pods-ChatSecureCorePods-ChatSecure.ios_debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; BUNDLE_DISPLAY_NAME_SUFFIX = ""; BUNDLE_ID_SUFFIX = ""; - CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES; - CLANG_ENABLE_MODULES = YES; COCOAPODS_PARALLEL_CODE_SIGN = true; CODE_SIGN_ENTITLEMENTS = ChatSecure/ChatSecure.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 159; + DERIVE_MACCATALYST_PRODUCT_BUNDLE_IDENTIFIER = YES; DEVELOPMENT_TEAM = ""; + ENABLE_HARDENED_RUNTIME = NO; FRAMEWORK_SEARCH_PATHS = "$(inherited)"; GCC_PREPROCESSOR_DEFINITIONS = ( "$(inherited)", @@ -2305,32 +3120,36 @@ "SQLITE_HAS_CODEC=1", ); INFOPLIST_FILE = ChatSecure/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 5.0; PRODUCT_BUNDLE_IDENTIFIER = com.chrisballinger.ChatSecure; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE = ""; PROVISIONING_PROFILE_SPECIFIER = ""; + SUPPORTS_MACCATALYST = YES; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; }; - name = Debug; + name = iOS_Debug; }; - 6396AFBF1A169D54009F3E6C /* Release */ = { + 6396AFBF1A169D54009F3E6C /* iOS_Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 7A62FCE8FEC1E7C9644F8C38 /* Pods-ChatSecureCorePods-ChatSecure.release.xcconfig */; + baseConfigurationReference = C66839AD8A8A4F785B556BF5 /* Pods-ChatSecureCorePods-ChatSecure.ios_release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; BUNDLE_DISPLAY_NAME_SUFFIX = ""; BUNDLE_ID_SUFFIX = ""; - CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES; - CLANG_ENABLE_MODULES = YES; COCOAPODS_PARALLEL_CODE_SIGN = true; CODE_SIGN_ENTITLEMENTS = ChatSecure/ChatSecure.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 159; + DERIVE_MACCATALYST_PRODUCT_BUNDLE_IDENTIFIER = YES; DEVELOPMENT_TEAM = ""; + ENABLE_HARDENED_RUNTIME = YES; FRAMEWORK_SEARCH_PATHS = "$(inherited)"; GCC_PREPROCESSOR_DEFINITIONS = ( "$(inherited)", @@ -2339,95 +3158,521 @@ "SQLITE_HAS_CODEC=1", ); INFOPLIST_FILE = ChatSecure/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 5.0; PRODUCT_BUNDLE_IDENTIFIER = com.chrisballinger.ChatSecure; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE = ""; PROVISIONING_PROFILE_SPECIFIER = ""; + SUPPORTS_MACCATALYST = YES; }; - name = Release; + name = iOS_Release; }; - 6396AFC11A169D54009F3E6C /* Debug */ = { + 6396AFC11A169D54009F3E6C /* iOS_Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 962ED3D89B1F330A2A34928B /* Pods-ChatSecureCorePods-ChatSecureTests.debug.xcconfig */; + baseConfigurationReference = F3ABC9C273758A049CBDA652 /* Pods-ChatSecureCorePods-ChatSecureTests.ios_debug.xcconfig */; buildSettings = { CLANG_ENABLE_MODULES = YES; CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; DEVELOPMENT_TEAM = 4T8JLQR6GR; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", - ); GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", "$(inherited)", ); INFOPLIST_FILE = ChatSecureTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); PRODUCT_BUNDLE_IDENTIFIER = "com.chrisballinger.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE = ""; SWIFT_OBJC_BRIDGING_HEADER = "ChatSecureTests/ChatSecureTests-Bridging-Header.h"; }; - name = Debug; + name = iOS_Debug; }; - 6396AFC21A169D54009F3E6C /* Release */ = { + 6396AFC21A169D54009F3E6C /* iOS_Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 702F03DE10003A33635A366F /* Pods-ChatSecureCorePods-ChatSecureTests.release.xcconfig */; + baseConfigurationReference = C49EB1E6D7F0D4F0A9FB232D /* Pods-ChatSecureCorePods-ChatSecureTests.ios_release.xcconfig */; buildSettings = { CLANG_ENABLE_MODULES = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; DEVELOPMENT_TEAM = 4T8JLQR6GR; - FRAMEWORK_SEARCH_PATHS = ( + INFOPLIST_FILE = ChatSecureTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", - "$(PROJECT_DIR)/Carthage/Build/iOS", + "@executable_path/Frameworks", + "@loader_path/Frameworks", ); - INFOPLIST_FILE = ChatSecureTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = "com.chrisballinger.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OBJC_BRIDGING_HEADER = "ChatSecureTests/ChatSecureTests-Bridging-Header.h"; }; - name = Release; + name = iOS_Release; }; - D93027591BAA381F000CC975 /* Debug */ = { + D9638A0B23A332AC00C0CDF7 /* macOS_Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = D9638A0823A3320A00C0CDF7 /* macOS_Debug.xcconfig */; buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = 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_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 = NO; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COMBINE_HIDPI_IMAGES = YES; - DEVELOPMENT_TEAM = 4T8JLQR6GR; + COPY_PHASE_STRIP = NO; + ENABLE_BITCODE = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = OTRResources/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - PRODUCT_BUNDLE_IDENTIFIER = org.chatsecure.OTRResources; - PRODUCT_NAME = "$(TARGET_NAME)"; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + INFOPLIST_PREFIX_HEADER = ChatSecure/InfoPlist.h; + INFOPLIST_PREPROCESS = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + OTHER_SWIFT_FLAGS = "-D DEBUG"; + PROVISIONING_PROFILE = ""; SDKROOT = iphoneos; - SKIP_INSTALL = YES; - WRAPPER_EXTENSION = bundle; + STRIP_INSTALLED_PRODUCT = NO; + STRIP_STYLE = debugging; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; }; - name = Debug; + name = macOS_Debug; }; - D930275A1BAA381F000CC975 /* Release */ = { + D9638A0C23A332AC00C0CDF7 /* macOS_Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 1DF3B63791159A0338AFF0D0 /* Pods-ChatSecureCorePods-ChatSecure.macos_debug.xcconfig */; buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + BUNDLE_DISPLAY_NAME_SUFFIX = ""; + BUNDLE_ID_SUFFIX = ""; + COCOAPODS_PARALLEL_CODE_SIGN = true; + CODE_SIGN_ENTITLEMENTS = ChatSecure/ChatSecure.entitlements; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 159; + DERIVE_MACCATALYST_PRODUCT_BUNDLE_IDENTIFIER = YES; + DEVELOPMENT_TEAM = ""; + ENABLE_HARDENED_RUNTIME = NO; + FRAMEWORK_SEARCH_PATHS = "$(inherited)"; + GCC_PREPROCESSOR_DEFINITIONS = ( + "$(inherited)", + "COCOAPODS=1", + "$(inherited)", + "SQLITE_HAS_CODEC=1", + ); + INFOPLIST_FILE = ChatSecure/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 5.0; + PRODUCT_BUNDLE_IDENTIFIER = com.chrisballinger.ChatSecure; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + PROVISIONING_PROFILE_SPECIFIER = ""; + SUPPORTS_MACCATALYST = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = macOS_Debug; + }; + D9638A0D23A332AC00C0CDF7 /* macOS_Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = B1625F54938553179BDE1438 /* Pods-ChatSecureCorePods-ChatSecureTests.macos_debug.xcconfig */; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COMBINE_HIDPI_IMAGES = YES; - COPY_PHASE_STRIP = NO; DEVELOPMENT_TEAM = 4T8JLQR6GR; - GCC_NO_COMMON_BLOCKS = YES; - INFOPLIST_FILE = OTRResources/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Bundles"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - PRODUCT_BUNDLE_IDENTIFIER = org.chatsecure.OTRResources; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + INFOPLIST_FILE = ChatSecureTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.chrisballinger.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + SWIFT_OBJC_BRIDGING_HEADER = "ChatSecureTests/ChatSecureTests-Bridging-Header.h"; + }; + name = macOS_Debug; + }; + D9638A0E23A332AC00C0CDF7 /* macOS_Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = SF3NXKQQ64; + GCC_PREPROCESSOR_DEFINITIONS = ( + "$(inherited)", + "COCOAPODS=1", + "$(inherited)", + "SQLITE_HAS_CODEC=1", + ); + INFOPLIST_FILE = ChatSecureUITests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.chrisballinger.ChatSecure.ChatSecureUITests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + TEST_TARGET_NAME = ChatSecure; + }; + name = macOS_Debug; + }; + D9638A0F23A332AC00C0CDF7 /* macOS_Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 6009355D15BA89BBBF7D3537 /* Pods-ChatSecureCorePods-ChatSecureCore.macos_debug.xcconfig */; + 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 = NO; + CLANG_WARN_STRICT_PROTOTYPES = NO; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = ChatSecureCore/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = org.chatsecure.ChatSecureCore; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = macOS_Debug; + }; + D9638A1023A332B900C0CDF7 /* macOS_Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = D9638A0923A3320D00C0CDF7 /* macOS_Release.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = 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_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 = NO; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + ENABLE_BITCODE = NO; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + 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; + INFOPLIST_PREFIX_HEADER = ChatSecure/InfoPlist.h; + INFOPLIST_PREPROCESS = YES; + IPHONEOS_DEPLOYMENT_TARGET = 12.0; + MTL_ENABLE_DEBUG_INFO = NO; + PROVISIONING_PROFILE = ""; SDKROOT = iphoneos; + STRIP_INSTALLED_PRODUCT = YES; + STRIP_STYLE = debugging; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = macOS_Release; + }; + D9638A1123A332B900C0CDF7 /* macOS_Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = E3E9B8FEBB110591EF226AD3 /* Pods-ChatSecureCorePods-ChatSecure.macos_release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + BUNDLE_DISPLAY_NAME_SUFFIX = ""; + BUNDLE_ID_SUFFIX = ""; + COCOAPODS_PARALLEL_CODE_SIGN = true; + CODE_SIGN_ENTITLEMENTS = ChatSecure/ChatSecure.entitlements; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 159; + DERIVE_MACCATALYST_PRODUCT_BUNDLE_IDENTIFIER = YES; + DEVELOPMENT_TEAM = ""; + ENABLE_HARDENED_RUNTIME = YES; + FRAMEWORK_SEARCH_PATHS = "$(inherited)"; + GCC_PREPROCESSOR_DEFINITIONS = ( + "$(inherited)", + "COCOAPODS=1", + "$(inherited)", + "SQLITE_HAS_CODEC=1", + ); + INFOPLIST_FILE = ChatSecure/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 5.0; + PRODUCT_BUNDLE_IDENTIFIER = com.chrisballinger.ChatSecure; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE = ""; + PROVISIONING_PROFILE_SPECIFIER = ""; + SUPPORTS_MACCATALYST = YES; + }; + name = macOS_Release; + }; + D9638A1223A332B900C0CDF7 /* macOS_Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 9093D0A3DB37442CFB9718F8 /* Pods-ChatSecureCorePods-ChatSecureTests.macos_release.xcconfig */; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + DEVELOPMENT_TEAM = 4T8JLQR6GR; + INFOPLIST_FILE = ChatSecureTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.chrisballinger.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_OBJC_BRIDGING_HEADER = "ChatSecureTests/ChatSecureTests-Bridging-Header.h"; + }; + name = macOS_Release; + }; + D9638A1323A332B900C0CDF7 /* macOS_Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CLANG_ANALYZER_NONNULL = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = SF3NXKQQ64; + INFOPLIST_FILE = ChatSecureUITests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.chrisballinger.ChatSecure.ChatSecureUITests; + PRODUCT_NAME = "$(TARGET_NAME)"; + TEST_TARGET_NAME = ChatSecure; + }; + name = macOS_Release; + }; + D9638A1423A332B900C0CDF7 /* macOS_Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 0787C95583715C56D30272CC /* Pods-ChatSecureCorePods-ChatSecureCore.macos_release.xcconfig */; + 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 = NO; + CLANG_WARN_STRICT_PROTOTYPES = NO; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = ChatSecureCore/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = org.chatsecure.ChatSecureCore; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = macOS_Release; + }; + D9C52809235CB55C002B213A /* iOS_Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = C77091A8CD45453CD4E09235 /* Pods-ChatSecureCorePods-ChatSecureCore.ios_debug.xcconfig */; + 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 = NO; + CLANG_WARN_STRICT_PROTOTYPES = NO; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = ChatSecureCore/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = org.chatsecure.ChatSecureCore; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SKIP_INSTALL = YES; - WRAPPER_EXTENSION = bundle; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; }; - name = Release; + name = iOS_Debug; + }; + D9C5280A235CB55C002B213A /* iOS_Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1BB82A92ECB98785BADD286E /* Pods-ChatSecureCorePods-ChatSecureCore.ios_release.xcconfig */; + 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 = NO; + CLANG_WARN_STRICT_PROTOTYPES = NO; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = ""; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = ChatSecureCore/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = org.chatsecure.ChatSecureCore; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = iOS_Release; }; /* End XCBuildConfiguration section */ @@ -2435,49 +3680,74 @@ 6365CF031E2453F6009E213F /* Build configuration list for PBXNativeTarget "ChatSecureUITests" */ = { isa = XCConfigurationList; buildConfigurations = ( - 6365CF041E2453F6009E213F /* Debug */, - 6365CF051E2453F6009E213F /* Release */, + 6365CF041E2453F6009E213F /* iOS_Debug */, + D9638A0E23A332AC00C0CDF7 /* macOS_Debug */, + 6365CF051E2453F6009E213F /* iOS_Release */, + D9638A1323A332B900C0CDF7 /* macOS_Release */, ); defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; + defaultConfigurationName = iOS_Release; }; 6396AF951A169D54009F3E6C /* Build configuration list for PBXProject "ChatSecure" */ = { isa = XCConfigurationList; buildConfigurations = ( - 6396AFBB1A169D54009F3E6C /* Debug */, - 6396AFBC1A169D54009F3E6C /* Release */, + 6396AFBB1A169D54009F3E6C /* iOS_Debug */, + D9638A0B23A332AC00C0CDF7 /* macOS_Debug */, + 6396AFBC1A169D54009F3E6C /* iOS_Release */, + D9638A1023A332B900C0CDF7 /* macOS_Release */, ); defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; + defaultConfigurationName = iOS_Release; }; 6396AFBD1A169D54009F3E6C /* Build configuration list for PBXNativeTarget "ChatSecure" */ = { isa = XCConfigurationList; buildConfigurations = ( - 6396AFBE1A169D54009F3E6C /* Debug */, - 6396AFBF1A169D54009F3E6C /* Release */, + 6396AFBE1A169D54009F3E6C /* iOS_Debug */, + D9638A0C23A332AC00C0CDF7 /* macOS_Debug */, + 6396AFBF1A169D54009F3E6C /* iOS_Release */, + D9638A1123A332B900C0CDF7 /* macOS_Release */, ); defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; + defaultConfigurationName = iOS_Release; }; 6396AFC01A169D54009F3E6C /* Build configuration list for PBXNativeTarget "ChatSecureTests" */ = { isa = XCConfigurationList; buildConfigurations = ( - 6396AFC11A169D54009F3E6C /* Debug */, - 6396AFC21A169D54009F3E6C /* Release */, + 6396AFC11A169D54009F3E6C /* iOS_Debug */, + D9638A0D23A332AC00C0CDF7 /* macOS_Debug */, + 6396AFC21A169D54009F3E6C /* iOS_Release */, + D9638A1223A332B900C0CDF7 /* macOS_Release */, ); defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; + defaultConfigurationName = iOS_Release; }; - D930275C1BAA381F000CC975 /* Build configuration list for PBXNativeTarget "OTRResources" */ = { + D9C5280B235CB55C002B213A /* Build configuration list for PBXNativeTarget "ChatSecureCore" */ = { isa = XCConfigurationList; buildConfigurations = ( - D93027591BAA381F000CC975 /* Debug */, - D930275A1BAA381F000CC975 /* Release */, + D9C52809235CB55C002B213A /* iOS_Debug */, + D9638A0F23A332AC00C0CDF7 /* macOS_Debug */, + D9C5280A235CB55C002B213A /* iOS_Release */, + D9638A1423A332B900C0CDF7 /* macOS_Release */, ); defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; + defaultConfigurationName = iOS_Release; }; /* End XCConfigurationList section */ + +/* Begin XCVersionGroup section */ + D9C528A8235CB580002B213A /* ChatSecure.xcdatamodeld */ = { + isa = XCVersionGroup; + children = ( + D9C528A9235CB580002B213A /* ChatSecure.xcdatamodel */, + D9C528AA235CB580002B213A /* ChatSecure 3.xcdatamodel */, + D9C528AB235CB580002B213A /* ChatSecure 2.xcdatamodel */, + ); + currentVersion = D9C528A9235CB580002B213A /* ChatSecure.xcdatamodel */; + path = ChatSecure.xcdatamodeld; + sourceTree = ""; + versionGroupType = wrapper.xcdatamodel; + }; +/* End XCVersionGroup section */ }; rootObject = 6396AF921A169D54009F3E6C /* Project object */; } diff --git a/ChatSecure.xcodeproj/xcshareddata/xcschemes/ChatSecure (Mac).xcscheme b/ChatSecure.xcodeproj/xcshareddata/xcschemes/ChatSecure (Mac).xcscheme new file mode 100644 index 000000000..5c767151e --- /dev/null +++ b/ChatSecure.xcodeproj/xcshareddata/xcschemes/ChatSecure (Mac).xcscheme @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ChatSecure.xcodeproj/xcshareddata/xcschemes/ChatSecure.xcscheme b/ChatSecure.xcodeproj/xcshareddata/xcschemes/ChatSecure.xcscheme index 026c18c31..32ca07e1c 100644 --- a/ChatSecure.xcodeproj/xcshareddata/xcschemes/ChatSecure.xcscheme +++ b/ChatSecure.xcodeproj/xcshareddata/xcschemes/ChatSecure.xcscheme @@ -1,6 +1,6 @@ + shouldUseLaunchSchemeArgsEnv = "YES" + disableMainThreadChecker = "YES"> + + + + @@ -54,7 +63,7 @@ + skipped = "YES"> - - - - - - + isEnabled = "NO"> - - + buildConfiguration = "iOS_Debug"> diff --git a/ChatSecure.xcodeproj/xcshareddata/xcschemes/ChatSecureCore.xcscheme b/ChatSecure.xcodeproj/xcshareddata/xcschemes/ChatSecureCore.xcscheme new file mode 100644 index 000000000..e07bf0d2e --- /dev/null +++ b/ChatSecure.xcodeproj/xcshareddata/xcschemes/ChatSecureCore.xcscheme @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ChatSecure.xcodeproj/xcshareddata/xcschemes/ChatSecureTests.xcscheme b/ChatSecure.xcodeproj/xcshareddata/xcschemes/ChatSecureTests.xcscheme index a0a521288..279586f92 100644 --- a/ChatSecure.xcodeproj/xcshareddata/xcschemes/ChatSecureTests.xcscheme +++ b/ChatSecure.xcodeproj/xcshareddata/xcschemes/ChatSecureTests.xcscheme @@ -1,6 +1,6 @@ + + + + @@ -39,20 +48,9 @@ - - - - - - - - + buildConfiguration = "iOS_Debug"> diff --git a/ChatSecure.xcodeproj/xcshareddata/xcschemes/ChatSecureUITests.xcscheme b/ChatSecure.xcodeproj/xcshareddata/xcschemes/ChatSecureUITests.xcscheme index d301ae129..b73f896ba 100644 --- a/ChatSecure.xcodeproj/xcshareddata/xcschemes/ChatSecureUITests.xcscheme +++ b/ChatSecure.xcodeproj/xcshareddata/xcschemes/ChatSecureUITests.xcscheme @@ -1,6 +1,6 @@ + shouldUseLaunchSchemeArgsEnv = "YES" + disableMainThreadChecker = "YES"> + + + + @@ -24,17 +33,6 @@ - - - - - - - - applinks:chatsecure.org - com.apple.developer.default-data-protection - NSFileProtectionComplete + com.apple.security.app-sandbox + + com.apple.security.device.audio-input + + com.apple.security.device.camera + + com.apple.security.network.client + + com.apple.security.network.server + + com.apple.security.personal-information.photos-library + diff --git a/ChatSecure/Classes/Controllers/OTRPushTLVHandler.h b/ChatSecure/Classes/Controllers/OTRPushTLVHandler.h deleted file mode 100644 index ad5e5a329..000000000 --- a/ChatSecure/Classes/Controllers/OTRPushTLVHandler.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// OTRPushTLVHandler.h -// ChatSecure -// -// Created by David Chiles on 9/28/15. -// Copyright © 2015 Chris Ballinger. All rights reserved. -// - -@import Foundation; -@import OTRKit; -#import "OTRPushTLVHandlerProtocols.h" - -@interface OTRPushTLVHandler : NSObject - -@property (nonatomic, weak, readwrite) id delegate; -@property (nonatomic, weak, readwrite) OTRKit *otrKit; - -- (instancetype)initWithOTRKit:(OTRKit *)otrKit delegate:(id)delegate; - -@end diff --git a/ChatSecure/Classes/Controllers/OTRPushTLVHandler.m b/ChatSecure/Classes/Controllers/OTRPushTLVHandler.m deleted file mode 100644 index fbac3ce59..000000000 --- a/ChatSecure/Classes/Controllers/OTRPushTLVHandler.m +++ /dev/null @@ -1,43 +0,0 @@ -// -// OTRPushTLVHandler.m -// ChatSecure -// -// Created by David Chiles on 9/28/15. -// Copyright © 2015 Chris Ballinger. All rights reserved. -// - -#import "OTRPushTLVHandler.h" -@import OTRKit; - -static const uint16_t OTRPushTLVType = 0x01A4; - -@implementation OTRPushTLVHandler - -- (instancetype)initWithOTRKit:(OTRKit *)otrKit delegate:(id)delegate; -{ - if (self = [self init]) { - self.otrKit = otrKit; - self.delegate = delegate; - [self.otrKit registerTLVHandler:self]; - } - return self; - -} - -- (NSArray *)handledTLVTypes -{ - return @[@(OTRPushTLVType)]; -} - -- (void)receiveTLV:(OTRTLV *)tlv username:(NSString *)username accountName:(NSString *)accountName protocol:(NSString *)protocol fingerprint:(OTRFingerprint *)fingerprint tag:(id)tag -{ - [self.delegate receivePushData:tlv.data username:username accountName:accountName protocolString:protocol fingerprint:fingerprint]; -} - -- (void)sendPushData:(NSData *)data username:(NSString *)username accountName:(NSString *)accountName protocol:(NSString *)protocol -{ - OTRTLV *tlv = [[OTRTLV alloc] initWithType:OTRPushTLVType data:data]; - [self.otrKit encodeMessage:nil tlvs:@[tlv] username:username accountName:accountName protocol:protocol tag:nil]; -} - -@end diff --git a/ChatSecure/Info.plist b/ChatSecure/Info.plist index 9f5aaf6e6..fdc955de3 100644 --- a/ChatSecure/Info.plist +++ b/ChatSecure/Info.plist @@ -2,6 +2,10 @@ + BGTaskSchedulerPermittedIdentifiers + + $(PRODUCT_BUNDLE_IDENTIFIER).refresh + CFBundleDevelopmentRegion en CFBundleExecutable @@ -15,7 +19,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 4.3.9 + $(MARKETING_VERSION) CFBundleSignature ???? CFBundleURLTypes @@ -35,7 +39,7 @@ CFBundleVersion - 143 + $(CURRENT_PROJECT_VERSION) FacebookAppID 447241325394334 FacebookDisplayName @@ -43,7 +47,9 @@ ITSAppUsesNonExemptEncryption ITSEncryptionExportComplianceCode - 51d17d3e-5e07-49ad-a308-9625d81e411f + $(EXPORT_COMPLIANCE_CODE) + LSApplicationCategoryType + public.app-category.social-networking LSApplicationQueriesSchemes twitter @@ -74,19 +80,20 @@ UIAppFonts FontAwesome.ttf - OTRResources.bundle/MaterialIcons-Regular.ttf - OTRResources.bundle/ios-icon-font.ttf + MaterialIcons-Regular.ttf + ios-icon-font.ttf UIBackgroundModes fetch + processing remote-notification UILaunchStoryboardName LaunchScreen UIRequiredDeviceCapabilities - armv7 + arm64 UISupportedInterfaceOrientations diff --git a/ChatSecure/InfoPlist.h b/ChatSecure/InfoPlist.h new file mode 100644 index 000000000..50b4f6bef --- /dev/null +++ b/ChatSecure/InfoPlist.h @@ -0,0 +1,7 @@ +// +// InfoPlist.h +// ChatSecure +// +// Created by Chris Ballinger on 10/27/19. +// Copyright © 2019 Chris Ballinger. All rights reserved. +// diff --git a/ChatSecure/LaunchScreen.storyboard b/ChatSecure/LaunchScreen.storyboard new file mode 100644 index 000000000..5942cb620 --- /dev/null +++ b/ChatSecure/LaunchScreen.storyboard @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ChatSecure/Resources/Images.xcassets/LaunchImage.launchimage/Contents.json b/ChatSecure/Resources/Images.xcassets/LaunchImage.launchimage/Contents.json deleted file mode 100644 index 93cbbfe6d..000000000 --- a/ChatSecure/Resources/Images.xcassets/LaunchImage.launchimage/Contents.json +++ /dev/null @@ -1,124 +0,0 @@ -{ - "images" : [ - { - "orientation" : "portrait", - "idiom" : "iphone", - "extent" : "full-screen", - "minimum-system-version" : "7.0", - "filename" : "iPhoneLaunch480h@2x.png", - "scale" : "2x" - }, - { - "extent" : "full-screen", - "idiom" : "iphone", - "subtype" : "retina4", - "filename" : "iPhoneLaunch568h@2x.png", - "minimum-system-version" : "7.0", - "orientation" : "portrait", - "scale" : "2x" - }, - { - "orientation" : "portrait", - "idiom" : "ipad", - "extent" : "full-screen", - "minimum-system-version" : "7.0", - "filename" : "iPadLaunchPortrait.png", - "scale" : "1x" - }, - { - "orientation" : "landscape", - "idiom" : "ipad", - "extent" : "full-screen", - "minimum-system-version" : "7.0", - "filename" : "iPadLaunchLandscape.png", - "scale" : "1x" - }, - { - "orientation" : "portrait", - "idiom" : "ipad", - "extent" : "full-screen", - "minimum-system-version" : "7.0", - "filename" : "iPadLaunchPortrait@2x.png", - "scale" : "2x" - }, - { - "orientation" : "landscape", - "idiom" : "ipad", - "extent" : "full-screen", - "minimum-system-version" : "7.0", - "filename" : "iPadLaunchLandscape@2x.png", - "scale" : "2x" - }, - { - "orientation" : "portrait", - "idiom" : "iphone", - "extent" : "full-screen", - "scale" : "1x" - }, - { - "orientation" : "portrait", - "idiom" : "iphone", - "extent" : "full-screen", - "scale" : "2x" - }, - { - "orientation" : "portrait", - "idiom" : "iphone", - "extent" : "full-screen", - "subtype" : "retina4", - "scale" : "2x" - }, - { - "orientation" : "portrait", - "idiom" : "ipad", - "extent" : "to-status-bar", - "scale" : "1x" - }, - { - "orientation" : "portrait", - "idiom" : "ipad", - "extent" : "full-screen", - "scale" : "1x" - }, - { - "orientation" : "landscape", - "idiom" : "ipad", - "extent" : "to-status-bar", - "scale" : "1x" - }, - { - "orientation" : "landscape", - "idiom" : "ipad", - "extent" : "full-screen", - "scale" : "1x" - }, - { - "orientation" : "portrait", - "idiom" : "ipad", - "extent" : "to-status-bar", - "scale" : "2x" - }, - { - "orientation" : "portrait", - "idiom" : "ipad", - "extent" : "full-screen", - "scale" : "2x" - }, - { - "orientation" : "landscape", - "idiom" : "ipad", - "extent" : "to-status-bar", - "scale" : "2x" - }, - { - "orientation" : "landscape", - "idiom" : "ipad", - "extent" : "full-screen", - "scale" : "2x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/ChatSecure/Resources/Images.xcassets/LaunchImage.launchimage/iPadLaunchLandscape.png b/ChatSecure/Resources/Images.xcassets/LaunchImage.launchimage/iPadLaunchLandscape.png deleted file mode 100644 index 91cd9bb3b..000000000 Binary files a/ChatSecure/Resources/Images.xcassets/LaunchImage.launchimage/iPadLaunchLandscape.png and /dev/null differ diff --git a/ChatSecure/Resources/Images.xcassets/LaunchImage.launchimage/iPadLaunchLandscape@2x.png b/ChatSecure/Resources/Images.xcassets/LaunchImage.launchimage/iPadLaunchLandscape@2x.png deleted file mode 100644 index f512f4972..000000000 Binary files a/ChatSecure/Resources/Images.xcassets/LaunchImage.launchimage/iPadLaunchLandscape@2x.png and /dev/null differ diff --git a/ChatSecure/Resources/Images.xcassets/LaunchImage.launchimage/iPadLaunchPortrait.png b/ChatSecure/Resources/Images.xcassets/LaunchImage.launchimage/iPadLaunchPortrait.png deleted file mode 100644 index 7a7141566..000000000 Binary files a/ChatSecure/Resources/Images.xcassets/LaunchImage.launchimage/iPadLaunchPortrait.png and /dev/null differ diff --git a/ChatSecure/Resources/Images.xcassets/LaunchImage.launchimage/iPadLaunchPortrait@2x.png b/ChatSecure/Resources/Images.xcassets/LaunchImage.launchimage/iPadLaunchPortrait@2x.png deleted file mode 100644 index 3bba6ed6f..000000000 Binary files a/ChatSecure/Resources/Images.xcassets/LaunchImage.launchimage/iPadLaunchPortrait@2x.png and /dev/null differ diff --git a/ChatSecure/Resources/Images.xcassets/LaunchImage.launchimage/iPhoneLaunch480h@2x.png b/ChatSecure/Resources/Images.xcassets/LaunchImage.launchimage/iPhoneLaunch480h@2x.png deleted file mode 100644 index 302f76539..000000000 Binary files a/ChatSecure/Resources/Images.xcassets/LaunchImage.launchimage/iPhoneLaunch480h@2x.png and /dev/null differ diff --git a/ChatSecure/Resources/Images.xcassets/LaunchImage.launchimage/iPhoneLaunch568h@2x.png b/ChatSecure/Resources/Images.xcassets/LaunchImage.launchimage/iPhoneLaunch568h@2x.png deleted file mode 100644 index cc65a4f11..000000000 Binary files a/ChatSecure/Resources/Images.xcassets/LaunchImage.launchimage/iPhoneLaunch568h@2x.png and /dev/null differ diff --git a/ChatSecure/Resources/LaunchScreen.xib b/ChatSecure/Resources/LaunchScreen.xib deleted file mode 100644 index 7270625d4..000000000 --- a/ChatSecure/Resources/LaunchScreen.xib +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ChatSecure/Settings.bundle/com.mono0926.LicensePlist.latest_result.txt b/ChatSecure/Settings.bundle/com.mono0926.LicensePlist.latest_result.txt index b559be73b..b214459dd 100644 --- a/ChatSecure/Settings.bundle/com.mono0926.LicensePlist.latest_result.txt +++ b/ChatSecure/Settings.bundle/com.mono0926.LicensePlist.latest_result.txt @@ -6,21 +6,26 @@ name: AFNetworking, nameSpecified: body: Copyright (c) 2011-2… version: 3.2.1 +name: AFNetworking, nameSpecified: +body: Copyright (c) 2011-2… +version: 3.2.1 + name: Alamofire, nameSpecified: body: Copyright (c) 2014 A… -version: 4.8.2 +version: 4.9.0 name: Alamofire, nameSpecified: body: Copyright (c) 2014 A… -version: 4.8.2 +version: 4.9.0 -name: Appirater, nameSpecified: -body: Copyright 2017. Aras… -version: 2.3.1 +name: Alamofire, nameSpecified: +body: Copyright (c) 2014 A… +version: 4.9.0 -name: Appirater, nameSpecified: -body: Copyright 2017. Aras… -version: 2.3.1 +name: ARChromeActivity, nameSpecified: +body: ARChromeActivity +Cop… +version: 1.0.6 name: ARChromeActivity, nameSpecified: body: ARChromeActivity @@ -40,6 +45,14 @@ name: BBlock, nameSpecified: body: Copyright (c) 2012 D… version: 1.2.1 +name: BBlock, nameSpecified: +body: Copyright (c) 2012 D… +version: 1.2.1 + +name: BButton, nameSpecified: +body: BButton - copyright … +version: 4.0.2 + name: BButton, nameSpecified: body: BButton - copyright … version: 4.0.2 @@ -56,6 +69,14 @@ name: ChatSecure-Push-iOS, nameSpecified: body: … version: 1.1 +name: ChatSecure-Push-iOS, nameSpecified: +body: … +version: 1.1 + +name: ChatSecureCore, nameSpecified: +body: ChatSecure, an OTR-c… +version: 0.1.0 + name: ChatSecureCore, nameSpecified: body: ChatSecure, an OTR-c… version: 0.1.0 @@ -72,29 +93,49 @@ name: CocoaAsyncSocket, nameSpecified: body: Public Domain Licens… version: 7.6.3 +name: CocoaAsyncSocket, nameSpecified: +body: Public Domain Licens… +version: 7.6.3 + name: CocoaLumberjack, nameSpecified: body: BSD 3-Clause License… -version: 3.5.3 +version: 3.6.0 name: CocoaLumberjack, nameSpecified: body: BSD 3-Clause License… -version: 3.5.3 +version: 3.6.0 + +name: CocoaLumberjack, nameSpecified: +body: BSD 3-Clause License… +version: 3.6.0 name: CPAProxy, nameSpecified: body: Copyright (c) 2013 C… -version: 1.2.0 +version: 2.0.0 name: CPAProxy, nameSpecified: body: Copyright (c) 2013 C… -version: 1.2.0 +version: 2.0.0 + +name: CPAProxy, nameSpecified: +body: Copyright (c) 2013 C… +version: 2.0.0 + +name: DTFoundation, nameSpecified: +body: Copyright (c) 2011, … +version: 1.7.14 name: DTFoundation, nameSpecified: body: Copyright (c) 2011, … -version: 1.7.13 +version: 1.7.14 name: DTFoundation, nameSpecified: body: Copyright (c) 2011, … -version: 1.7.13 +version: 1.7.14 + +name: FormatterKit, nameSpecified: +body: Copyright (c) 2011–2… +version: 1.9.0 name: FormatterKit, nameSpecified: body: Copyright (c) 2011–2… @@ -106,23 +147,19 @@ version: 1.9.0 name: GCDWebServer, nameSpecified: body: Copyright (c) 2012-2… -version: 3.5.2 +version: 3.5.3 name: GCDWebServer, nameSpecified: body: Copyright (c) 2012-2… -version: 3.5.2 - -name: HockeySDK-Source, nameSpecified: -body: ## Licenses - -The Hoc… -version: 5.1.4 +version: 3.5.3 -name: HockeySDK-Source, nameSpecified: -body: ## Licenses +name: GCDWebServer, nameSpecified: +body: Copyright (c) 2012-2… +version: 3.5.3 -The Hoc… -version: 5.1.4 +name: HTMLReader, nameSpecified: +body: HTMLReader is in the… +version: 2.1.4 name: HTMLReader, nameSpecified: body: HTMLReader is in the… @@ -140,6 +177,16 @@ name: IOCipher, nameSpecified: body: GNU LESSER GENER… version: 0.1.0 +name: IOCipher, nameSpecified: +body: GNU LESSER GENER… +version: 0.1.0 + +name: JSQMessagesViewController, nameSpecified: +body: +MIT License +Copyrig… +version: 7.3.4 + name: JSQMessagesViewController, nameSpecified: body: MIT License @@ -160,6 +207,14 @@ name: JTSImageViewController, nameSpecified: body: The MIT License (MIT… version: 1.5.1 +name: JTSImageViewController, nameSpecified: +body: The MIT License (MIT… +version: 1.5.1 + +name: KissXML, nameSpecified: +body: Copyright (c) 2012, … +version: 5.2.3 + name: KissXML, nameSpecified: body: Copyright (c) 2012, … version: 5.2.3 @@ -176,6 +231,16 @@ name: Kvitto, nameSpecified: body: Copyright (c) 2015, … version: 1.0.3 +name: Kvitto, nameSpecified: +body: Copyright (c) 2015, … +version: 1.0.3 + +name: KVOController, nameSpecified: +body: BSD License + +For KVO… +version: 1.2.0 + name: KVOController, nameSpecified: body: BSD License @@ -200,6 +265,12 @@ body: libidn-podspec The … version: 1.35 +name: libidn, nameSpecified: +body: libidn-podspec + +The … +version: 1.35 + name: libsqlfs, nameSpecified: body: GNU LESSER GENER… version: 1.3.2 @@ -208,17 +279,32 @@ name: libsqlfs, nameSpecified: body: GNU LESSER GENER… version: 1.3.2 +name: libsqlfs, nameSpecified: +body: GNU LESSER GENER… +version: 1.3.2 + +name: LicensePlist, nameSpecified: +body: MIT License + +Copyrig… +version: 2.8.1 + name: LicensePlist, nameSpecified: body: MIT License Copyrig… -version: 2.5.0 +version: 2.8.1 name: LicensePlist, nameSpecified: body: MIT License Copyrig… -version: 2.5.0 +version: 2.8.1 + +name: LumberjackConsole, nameSpecified: +body: Apache License + … +version: 3.3.1 name: LumberjackConsole, nameSpecified: body: Apache License @@ -238,6 +324,14 @@ name: Mantle, nameSpecified: body: **Copyright (c) GitH… version: 2.1.0 +name: Mantle, nameSpecified: +body: **Copyright (c) GitH… +version: 2.1.0 + +name: MBProgressHUD, nameSpecified: +body: Copyright © 2009-201… +version: 1.1.0 + name: MBProgressHUD, nameSpecified: body: Copyright © 2009-201… version: 1.1.0 @@ -254,6 +348,15 @@ name: MWFeedParser, nameSpecified: body: Copyright (c) 2010 M… version: 1.0.1 +name: MWFeedParser, nameSpecified: +body: Copyright (c) 2010 M… +version: 1.0.1 + +name: NBUCore, nameSpecified: +body: + … +version: 2.1.0 + name: NBUCore, nameSpecified: body: … @@ -272,13 +375,21 @@ name: OTRAssets, nameSpecified: body: ChatSecure, an OTR-c… version: 0.1.0 +name: OTRAssets, nameSpecified: +body: ChatSecure, an OTR-c… +version: 0.1.0 + name: OTRKit, nameSpecified: body: Software License Agr… -version: 2.0.0 +version: 3.0.0 name: OTRKit, nameSpecified: body: Software License Agr… -version: 2.0.0 +version: 3.0.0 + +name: OTRKit, nameSpecified: +body: Software License Agr… +version: 3.0.0 name: ParkedTextField, nameSpecified: body: The MIT License (MIT… @@ -288,6 +399,14 @@ name: ParkedTextField, nameSpecified: body: The MIT License (MIT… version: 0.5.0 +name: ParkedTextField, nameSpecified: +body: The MIT License (MIT… +version: 0.5.0 + +name: ProxyKit, nameSpecified: +body: The MIT License (MIT… +version: 1.2.0 + name: ProxyKit, nameSpecified: body: The MIT License (MIT… version: 1.2.0 @@ -298,11 +417,19 @@ version: 1.2.0 name: PureLayout, nameSpecified: body: This code is distrib… -version: 3.1.4 +version: 3.1.5 name: PureLayout, nameSpecified: body: This code is distrib… -version: 3.1.4 +version: 3.1.5 + +name: PureLayout, nameSpecified: +body: This code is distrib… +version: 3.1.5 + +name: QRCodeReaderViewController, nameSpecified: +body: The MIT License (MIT… +version: 4.0.2 name: QRCodeReaderViewController, nameSpecified: body: The MIT License (MIT… @@ -320,6 +447,14 @@ name: SAMKeychain, nameSpecified: body: Copyright (c) 2010-2… version: 1.5.3 +name: SAMKeychain, nameSpecified: +body: Copyright (c) 2010-2… +version: 1.5.3 + +name: SignalProtocolC, nameSpecified: +body: Copyright 20… +version: 2.3.2 + name: SignalProtocolC, nameSpecified: body: Copyright 20… version: 2.3.2 @@ -336,6 +471,14 @@ name: SignalProtocolObjC, nameSpecified: body: Copyright 2016-2017 … version: 1.1.0 +name: SignalProtocolObjC, nameSpecified: +body: Copyright 2016-2017 … +version: 1.1.0 + +name: SQLCipher, nameSpecified: +body: Copyright (c) 2008, … +version: 4.2.0 + name: SQLCipher, nameSpecified: body: Copyright (c) 2008, … version: 4.2.0 @@ -352,37 +495,45 @@ name: TTTAttributedLabel, nameSpecified: body: Copyright (c) 2011 M… version: 2.0.0 -name: TUSafariActivity, nameSpecified: -body: Copyright (c) 2012 T… -version: 1.0.4 +name: TTTAttributedLabel, nameSpecified: +body: Copyright (c) 2011 M… +version: 2.0.0 -name: TUSafariActivity, nameSpecified: -body: Copyright (c) 2012 T… -version: 1.0.4 +name: XLForm, nameSpecified: +body: The MIT License (MIT… +version: 4.1.0 name: XLForm, nameSpecified: body: The MIT License (MIT… -version: 4.0.1 +version: 4.1.0 name: XLForm, nameSpecified: body: The MIT License (MIT… -version: 4.0.1 +version: 4.1.0 name: XMPPFramework, nameSpecified: body: GCDAsyncSocket: (Pub… -version: 4.0.0 +version: 4.1.0 name: XMPPFramework, nameSpecified: body: GCDAsyncSocket: (Pub… -version: 4.0.0 +version: 4.1.0 + +name: XMPPFramework, nameSpecified: +body: GCDAsyncSocket: (Pub… +version: 4.1.0 name: YapDatabase, nameSpecified: body: Software License Agr… -version: 3.1.3 +version: 3.1.4 name: YapDatabase, nameSpecified: body: Software License Agr… -version: 3.1.3 +version: 3.1.4 + +name: YapDatabase, nameSpecified: +body: Software License Agr… +version: 3.1.4 name: YapTaskQueue, nameSpecified: body: This is free and une… @@ -392,6 +543,14 @@ name: YapTaskQueue, nameSpecified: body: This is free and une… version: 0.3.0 +name: YapTaskQueue, nameSpecified: +body: This is free and une… +version: 0.3.0 + +name: ZXingObjC, nameSpecified: +body: … +version: 3.6.5 + name: ZXingObjC, nameSpecified: body: … version: 3.6.5 @@ -424,4 +583,4 @@ body: This file contains t… add-version-numbers: true -LicensePlist Version: 1.8.3 \ No newline at end of file +LicensePlist Version: 2.8.0 \ No newline at end of file diff --git a/ChatSecure/Settings.bundle/com.mono0926.LicensePlist.plist b/ChatSecure/Settings.bundle/com.mono0926.LicensePlist.plist index a387a480f..baef9a35a 100644 --- a/ChatSecure/Settings.bundle/com.mono0926.LicensePlist.plist +++ b/ChatSecure/Settings.bundle/com.mono0926.LicensePlist.plist @@ -5,26 +5,24 @@ PreferenceSpecifiers - File - com.mono0926.LicensePlist/AFNetworking Title - AFNetworking (3.2.1) + Licenses Type - PSChildPaneSpecifier + PSGroupSpecifier File - com.mono0926.LicensePlist/Alamofire + com.mono0926.LicensePlist/AFNetworking Title - Alamofire (4.8.2) + AFNetworking (3.2.1) Type PSChildPaneSpecifier File - com.mono0926.LicensePlist/Appirater + com.mono0926.LicensePlist/Alamofire Title - Appirater (2.3.1) + Alamofire (4.9.0) Type PSChildPaneSpecifier @@ -80,7 +78,7 @@ File com.mono0926.LicensePlist/CocoaLumberjack Title - CocoaLumberjack (3.5.3) + CocoaLumberjack (3.6.0) Type PSChildPaneSpecifier @@ -88,7 +86,7 @@ File com.mono0926.LicensePlist/CPAProxy Title - CPAProxy (1.2.0) + CPAProxy (2.0.0) Type PSChildPaneSpecifier @@ -96,7 +94,7 @@ File com.mono0926.LicensePlist/DTFoundation Title - DTFoundation (1.7.13) + DTFoundation (1.7.14) Type PSChildPaneSpecifier @@ -112,15 +110,7 @@ File com.mono0926.LicensePlist/GCDWebServer Title - GCDWebServer (3.5.2) - Type - PSChildPaneSpecifier - - - File - com.mono0926.LicensePlist/HockeySDK-Source - Title - HockeySDK-Source (5.1.4) + GCDWebServer (3.5.3) Type PSChildPaneSpecifier @@ -240,7 +230,7 @@ File com.mono0926.LicensePlist/LicensePlist Title - LicensePlist (2.5.0) + LicensePlist (2.8.1) Type PSChildPaneSpecifier @@ -304,7 +294,7 @@ File com.mono0926.LicensePlist/OTRKit Title - OTRKit (2.0.0) + OTRKit (3.0.0) Type PSChildPaneSpecifier @@ -328,7 +318,7 @@ File com.mono0926.LicensePlist/PureLayout Title - PureLayout (3.1.4) + PureLayout (3.1.5) Type PSChildPaneSpecifier @@ -388,19 +378,11 @@ Type PSChildPaneSpecifier - - File - com.mono0926.LicensePlist/TUSafariActivity - Title - TUSafariActivity (1.0.4) - Type - PSChildPaneSpecifier - File com.mono0926.LicensePlist/XLForm Title - XLForm (4.0.1) + XLForm (4.1.0) Type PSChildPaneSpecifier @@ -408,7 +390,7 @@ File com.mono0926.LicensePlist/XMPPFramework Title - XMPPFramework (4.0.0) + XMPPFramework (4.1.0) Type PSChildPaneSpecifier @@ -416,7 +398,7 @@ File com.mono0926.LicensePlist/YapDatabase Title - YapDatabase (3.1.3) + YapDatabase (3.1.4) Type PSChildPaneSpecifier diff --git a/ChatSecure/Settings.bundle/com.mono0926.LicensePlist/Appirater.plist b/ChatSecure/Settings.bundle/com.mono0926.LicensePlist/Appirater.plist deleted file mode 100644 index 1cd6dff29..000000000 --- a/ChatSecure/Settings.bundle/com.mono0926.LicensePlist/Appirater.plist +++ /dev/null @@ -1,15 +0,0 @@ - - - - - PreferenceSpecifiers - - - FooterText - Copyright 2017. Arash Payan. This library is distributed under the terms of the MIT/X11. - Type - PSGroupSpecifier - - - - diff --git a/ChatSecure/Settings.bundle/com.mono0926.LicensePlist/HockeySDK-Source.plist b/ChatSecure/Settings.bundle/com.mono0926.LicensePlist/HockeySDK-Source.plist deleted file mode 100644 index 129dbe36e..000000000 --- a/ChatSecure/Settings.bundle/com.mono0926.LicensePlist/HockeySDK-Source.plist +++ /dev/null @@ -1,166 +0,0 @@ - - - - - PreferenceSpecifiers - - - FooterText - ## Licenses - -The Hockey SDK is provided under the following license: - - The MIT License - Copyright (c) Microsoft Corporation. - All rights reserved. - - 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. - -Except as noted below, PLCrashReporter -is provided under the following license: - - Copyright (c) 2008 - 2015 Plausible Labs Cooperative, Inc. - Copyright (c) 2012 - 2015 HockeyApp, Bit Stadium GmbH. - All rights reserved. - - 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. - -The protobuf-c library, as well as the PLCrashLogWriterEncoding.c -file are licensed as follows: - - Copyright 2008, Dave Benson. - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with - the License. You may obtain a copy of the License - at http://www.apache.org/licenses/LICENSE-2.0 Unless - required by applicable law or agreed to in writing, - software distributed under the License is distributed on - an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, either express or implied. See the License for the - specific language governing permissions and limitations - under the License. - -TTTAttributedLabel is licensed as follows: - - Copyright (c) 2011 Mattt Thompson (http://mattt.me/) - - 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. - -SFHFKeychainUtils is licensed as follows: - - Created by Buzz Andersen on 10/20/08. - Based partly on code by Jonathan Wight, Jon Crosby, and Mike Malone. - Copyright 2008 Sci-Fi Hi-Fi. All rights reserved. - - 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. - -GZIP is licensed as follow: - - Created by Nick Lockwood on 03/06/2012. - Copyright (C) 2012 Charcoal Design - - Distributed under the permissive zlib License - Get the latest version from here: - - https://github.com/nicklockwood/GZIP - - This software is provided 'as-is', without any express or implied - warranty. In no event will the authors be held liable for any damages - arising from the use of this software. - - Permission is granted to anyone to use this software for any purpose, - including commercial applications, and to alter it and redistribute it - freely, subject to the following restrictions: - - 1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. - - 2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. - - 3. This notice may not be removed or altered from any source distribution. - Type - PSGroupSpecifier - - - - diff --git a/ChatSecure/Settings.bundle/com.mono0926.LicensePlist/TUSafariActivity.plist b/ChatSecure/Settings.bundle/com.mono0926.LicensePlist/TUSafariActivity.plist deleted file mode 100644 index e27093b8c..000000000 --- a/ChatSecure/Settings.bundle/com.mono0926.LicensePlist/TUSafariActivity.plist +++ /dev/null @@ -1,38 +0,0 @@ - - - - - PreferenceSpecifiers - - - FooterText - Copyright (c) 2012 ThinkUltimate (http://thinkultimate.com). - -http://github.com/davbeck/TUSafariActivity - -Redistribution and use in source and binary forms, with or without modification, -are permitted provided that the following conditions are met: - -- Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -- Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. -IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF -LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE -OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED -OF THE POSSIBILITY OF SUCH DAMAGE. - - Type - PSGroupSpecifier - - - - diff --git a/ChatSecure/xcconfig/iOS_Debug.xcconfig b/ChatSecure/xcconfig/iOS_Debug.xcconfig new file mode 100644 index 000000000..5b97efa66 --- /dev/null +++ b/ChatSecure/xcconfig/iOS_Debug.xcconfig @@ -0,0 +1 @@ +EXPORT_COMPLIANCE_CODE=51d17d3e-5e07-49ad-a308-9625d81e411f diff --git a/ChatSecure/xcconfig/iOS_Release.xcconfig b/ChatSecure/xcconfig/iOS_Release.xcconfig new file mode 100644 index 000000000..5b97efa66 --- /dev/null +++ b/ChatSecure/xcconfig/iOS_Release.xcconfig @@ -0,0 +1 @@ +EXPORT_COMPLIANCE_CODE=51d17d3e-5e07-49ad-a308-9625d81e411f diff --git a/ChatSecure/xcconfig/macOS_Debug.xcconfig b/ChatSecure/xcconfig/macOS_Debug.xcconfig new file mode 100644 index 000000000..e5c651a4f --- /dev/null +++ b/ChatSecure/xcconfig/macOS_Debug.xcconfig @@ -0,0 +1 @@ +EXPORT_COMPLIANCE_CODE=240f0a63-ba8b-40ff-bfce-20848ef174d0 diff --git a/ChatSecure/xcconfig/macOS_Release.xcconfig b/ChatSecure/xcconfig/macOS_Release.xcconfig new file mode 100644 index 000000000..e5c651a4f --- /dev/null +++ b/ChatSecure/xcconfig/macOS_Release.xcconfig @@ -0,0 +1 @@ +EXPORT_COMPLIANCE_CODE=240f0a63-ba8b-40ff-bfce-20848ef174d0 diff --git a/ChatSecureCore.podspec b/ChatSecureCore.podspec index 5ba98807e..53f0f8e3e 100644 --- a/ChatSecureCore.podspec +++ b/ChatSecureCore.podspec @@ -15,35 +15,34 @@ TODO: Add long description of the pod here. s.ios.deployment_target = '9.0' - s.source_files = ['ChatSecure/Classes/**/*.{h,m,swift}', 'ChatSecureCore/**/*.h'] - s.public_header_files = ['ChatSecureCore/ChatSecureCore.h', - 'ChatSecureCore/Public/*.h',] - s.private_header_files = ['ChatSecureCore/Private/*.h'] + # s.subspec 'Source' do |ss| + # ss.source_files = ['ChatSecure/Classes/**/*.{h,m,swift}', 'ChatSecureCore/**/*.h'] + # ss.public_header_files = ['ChatSecureCore/ChatSecureCore.h', + # 'ChatSecureCore/Public/*.h',] + # ss.private_header_files = ['ChatSecureCore/Private/*.h'] - s.xcconfig = { 'OTHER_CFLAGS' => '$(inherited) -DSQLITE_HAS_CODEC' } - - s.frameworks = ['UIKit', 'StoreKit'] + # ss.xcconfig = { 'OTHER_CFLAGS' => '$(inherited) -DSQLITE_HAS_CODEC' } + + # ss.frameworks = ['UIKit', 'StoreKit'] + # end + + s.module_name = 'ChatSecureCorePod' # User Interface - s.dependency "Appirater", '~> 2.0' s.dependency 'OpenInChrome', '~> 0.0' s.dependency 'JTSImageViewController', '~> 1.4' s.dependency 'BButton', '~> 4.0' - s.dependency 'TUSafariActivity', '~> 1.0' s.dependency 'ARChromeActivity', '~> 1.0' s.dependency 'QRCodeReaderViewController', '~> 4.0' s.dependency 'ParkedTextField' - s.dependency 'JSQMessagesViewController' s.dependency 'LumberjackConsole' - # Utility - s.dependency 'CocoaLumberjack/Swift', '~> 3.5.0' + s.dependency 'CocoaLumberjack/Swift', '~> 3.6.0' s.dependency 'MWFeedParser', '~> 1.0' s.dependency 'BBlock', '~> 1.2' - s.dependency 'HockeySDK-Source' s.dependency 'LicensePlist' # Network @@ -55,13 +54,9 @@ TODO: Add long description of the pod here. s.dependency 'ChatSecure-Push-iOS' - # Storage - # We are blocked on SQLCipher 4.0.0 migration https://github.com/ChatSecure/ChatSecure-iOS/issues/1078 s.dependency 'SQLCipher', '~> 4.2.0' - # Version 3.1.2 breaks YapTaskQueue 0.3.0 s.dependency 'YapDatabase/SQLCipher', '~> 3.1.3' - # The upstream 1.3.2 has a regression https://github.com/ChatSecure/ChatSecure-iOS/issues/1075 s.dependency 'libsqlfs/SQLCipher' s.dependency 'IOCipher/GCDWebServer' s.dependency 'YapTaskQueue/SQLCipher' @@ -75,15 +70,16 @@ TODO: Add long description of the pod here. s.dependency "Mantle" s.dependency "HTMLReader", '~> 2.1.1' - s.dependency "AFNetworking", '~> 3.1' - s.dependency "ZXingObjC", '~> 3.6' + s.dependency "AFNetworking/Security", '~> 3.1' + s.dependency "ZXingObjC/QRCode", '~> 3.6' s.dependency "SAMKeychain", '~> 1.5' s.dependency "MBProgressHUD", '~> 1.1' s.dependency "TTTAttributedLabel", '~> 2.0' s.dependency "PureLayout", '~> 3.0' s.dependency "KVOController", '~> 1.2' - s.dependency "XLForm", '~> 4.0.0' - s.dependency "FormatterKit", '~> 1.8' + s.dependency "XLForm", '~> 4.1' + s.dependency "FormatterKit/TimeIntervalFormatter", '~> 1.8' + s.dependency "FormatterKit/UnitOfInformationFormatter", '~> 1.8' s.dependency "OTRAssets" end diff --git a/ChatSecureCore/ChatSecureCore.h b/ChatSecureCore/ChatSecureCore.h index c9a55f289..4610f9679 100644 --- a/ChatSecureCore/ChatSecureCore.h +++ b/ChatSecureCore/ChatSecureCore.h @@ -34,7 +34,6 @@ FOUNDATION_EXPORT const unsigned char ChatSecureCoreVersionString[]; #import "OTRDatabaseManager.h" #import "OTRAppDelegate.h" #import "AppTheme.h" -#import "OTRPushTLVHandlerProtocols.h" #import "OTREncryptionManager.h" #import "OTRQRCodeActivity.h" #import "OTRIncomingMessage.h" diff --git a/ChatSecure/Classes/Categories/JSQMessagesCollectionViewCell+ChatSecure.h b/ChatSecureCore/Classes/Categories/JSQMessagesCollectionViewCell+ChatSecure.h similarity index 100% rename from ChatSecure/Classes/Categories/JSQMessagesCollectionViewCell+ChatSecure.h rename to ChatSecureCore/Classes/Categories/JSQMessagesCollectionViewCell+ChatSecure.h diff --git a/ChatSecure/Classes/Categories/JSQMessagesCollectionViewCell+ChatSecure.m b/ChatSecureCore/Classes/Categories/JSQMessagesCollectionViewCell+ChatSecure.m similarity index 100% rename from ChatSecure/Classes/Categories/JSQMessagesCollectionViewCell+ChatSecure.m rename to ChatSecureCore/Classes/Categories/JSQMessagesCollectionViewCell+ChatSecure.m diff --git a/ChatSecure/Classes/Categories/NSData+ChatSecure.swift b/ChatSecureCore/Classes/Categories/NSData+ChatSecure.swift similarity index 100% rename from ChatSecure/Classes/Categories/NSData+ChatSecure.swift rename to ChatSecureCore/Classes/Categories/NSData+ChatSecure.swift diff --git a/ChatSecure/Classes/Categories/NSFileManager+ChatSecure.h b/ChatSecureCore/Classes/Categories/NSFileManager+ChatSecure.h similarity index 100% rename from ChatSecure/Classes/Categories/NSFileManager+ChatSecure.h rename to ChatSecureCore/Classes/Categories/NSFileManager+ChatSecure.h diff --git a/ChatSecure/Classes/Categories/NSFileManager+ChatSecure.m b/ChatSecureCore/Classes/Categories/NSFileManager+ChatSecure.m similarity index 100% rename from ChatSecure/Classes/Categories/NSFileManager+ChatSecure.m rename to ChatSecureCore/Classes/Categories/NSFileManager+ChatSecure.m diff --git a/ChatSecure/Classes/Categories/NSString+ChatSecure.m b/ChatSecureCore/Classes/Categories/NSString+ChatSecure.m similarity index 100% rename from ChatSecure/Classes/Categories/NSString+ChatSecure.m rename to ChatSecureCore/Classes/Categories/NSString+ChatSecure.m diff --git a/ChatSecure/Classes/Categories/NSURL+ChatSecure.m b/ChatSecureCore/Classes/Categories/NSURL+ChatSecure.m similarity index 98% rename from ChatSecure/Classes/Categories/NSURL+ChatSecure.m rename to ChatSecureCore/Classes/Categories/NSURL+ChatSecure.m index c1c8f0fbc..1c0f87dab 100644 --- a/ChatSecure/Classes/Categories/NSURL+ChatSecure.m +++ b/ChatSecureCore/Classes/Categories/NSURL+ChatSecure.m @@ -10,6 +10,7 @@ #import "OTRConstants.h" @import XMPPFramework; @import OTRAssets; +#import "ChatSecureCoreCompat-Swift.h" @implementation NSURL (ChatSecure) @@ -197,7 +198,7 @@ - (void) promptToShowURLFromViewController:(UIViewController*)viewController sen view = sender; } UIAlertAction *visitURL = [UIAlertAction actionWithTitle:OPEN_IN_SAFARI() style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { - [[UIApplication sharedApplication] openURL:self]; + [[UIApplication sharedApplication] open:self]; }]; UIAlertAction *cancel = [UIAlertAction actionWithTitle:CANCEL_STRING() style:UIAlertActionStyleCancel handler:nil]; UIAlertController *alert = [UIAlertController alertControllerWithTitle:self.absoluteString message:nil preferredStyle:UIAlertControllerStyleActionSheet]; diff --git a/ChatSecure/Classes/Categories/UIActivity+ChatSecure.h b/ChatSecureCore/Classes/Categories/UIActivity+ChatSecure.h similarity index 100% rename from ChatSecure/Classes/Categories/UIActivity+ChatSecure.h rename to ChatSecureCore/Classes/Categories/UIActivity+ChatSecure.h diff --git a/ChatSecure/Classes/Categories/UIActivity+ChatSecure.m b/ChatSecureCore/Classes/Categories/UIActivity+ChatSecure.m similarity index 79% rename from ChatSecure/Classes/Categories/UIActivity+ChatSecure.m rename to ChatSecureCore/Classes/Categories/UIActivity+ChatSecure.m index 40605082f..f7a46de26 100644 --- a/ChatSecure/Classes/Categories/UIActivity+ChatSecure.m +++ b/ChatSecureCore/Classes/Categories/UIActivity+ChatSecure.m @@ -8,7 +8,6 @@ #import "UIActivity+ChatSecure.h" @import ARChromeActivity; -@import TUSafariActivity; #import "OTROpenInFacebookActivity.h" #import "OTROpenInTwitterActivity.h" @import OTRAssets; @@ -16,22 +15,21 @@ @implementation UIActivity (ChatSecure) + (NSArray*) otr_linkActivities { - TUSafariActivity *safariActivity = [TUSafariActivity new]; ARChromeActivity *chromeActivity = [ARChromeActivity new]; chromeActivity.activityTitle = OPEN_IN_CHROME(); chromeActivity.callbackURL = [NSURL URLWithString:@"chatsecure://"]; OTROpenInTwitterActivity *twitterActivity = [OTROpenInTwitterActivity new]; OTROpenInFacebookActivity *facebookActivity = [OTROpenInFacebookActivity new]; - NSArray *applicationActivites = @[twitterActivity,facebookActivity,safariActivity,chromeActivity]; + NSArray *applicationActivites = @[twitterActivity,facebookActivity,chromeActivity]; return applicationActivites; } + (CGSize)otr_defaultImageSize { CGSize size = CGSizeZero; - if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) { + if (UIDevice.currentDevice.userInterfaceIdiom == UIUserInterfaceIdiomPhone) { size = CGSizeMake(43, 43); - } else if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { + } else if (UIDevice.currentDevice.userInterfaceIdiom == UIUserInterfaceIdiomPad) { size = CGSizeMake(55, 55); } return size; diff --git a/ChatSecure/Classes/Categories/UIActivityViewController+ChatSecure.h b/ChatSecureCore/Classes/Categories/UIActivityViewController+ChatSecure.h similarity index 100% rename from ChatSecure/Classes/Categories/UIActivityViewController+ChatSecure.h rename to ChatSecureCore/Classes/Categories/UIActivityViewController+ChatSecure.h diff --git a/ChatSecure/Classes/Categories/UIActivityViewController+ChatSecure.m b/ChatSecureCore/Classes/Categories/UIActivityViewController+ChatSecure.m similarity index 96% rename from ChatSecure/Classes/Categories/UIActivityViewController+ChatSecure.m rename to ChatSecureCore/Classes/Categories/UIActivityViewController+ChatSecure.m index 2072098ca..b51f17d04 100644 --- a/ChatSecure/Classes/Categories/UIActivityViewController+ChatSecure.m +++ b/ChatSecureCore/Classes/Categories/UIActivityViewController+ChatSecure.m @@ -8,7 +8,6 @@ #import "UIActivityViewController+ChatSecure.h" @import ARChromeActivity; -@import TUSafariActivity; #import "OTROpenInFacebookActivity.h" #import "OTROpenInTwitterActivity.h" @import OTRAssets; diff --git a/ChatSecure/Classes/Categories/UIApplication+ChatSecure.swift b/ChatSecureCore/Classes/Categories/UIApplication+ChatSecure.swift similarity index 99% rename from ChatSecure/Classes/Categories/UIApplication+ChatSecure.swift rename to ChatSecureCore/Classes/Categories/UIApplication+ChatSecure.swift index 0560988cc..e5fc8e136 100644 --- a/ChatSecure/Classes/Categories/UIApplication+ChatSecure.swift +++ b/ChatSecureCore/Classes/Categories/UIApplication+ChatSecure.swift @@ -328,3 +328,9 @@ extension UIApplication { self.showLocalNotificationWith(groupingIdentifier: accountKey, body: body, badge: badge, userInfo: userInfo, recurring: false) } } + +extension UIApplication { + @objc public func open(_ url: URL) { + open(url, options: [:], completionHandler: nil) + } +} diff --git a/ChatSecure/Classes/Categories/UIImage+ChatSecure.m b/ChatSecureCore/Classes/Categories/UIImage+ChatSecure.m similarity index 100% rename from ChatSecure/Classes/Categories/UIImage+ChatSecure.m rename to ChatSecureCore/Classes/Categories/UIImage+ChatSecure.m diff --git a/ChatSecure/Classes/Categories/UINavigationController+ChatSecure.swift b/ChatSecureCore/Classes/Categories/UINavigationController+ChatSecure.swift similarity index 100% rename from ChatSecure/Classes/Categories/UINavigationController+ChatSecure.swift rename to ChatSecureCore/Classes/Categories/UINavigationController+ChatSecure.swift diff --git a/ChatSecure/Classes/Categories/UITableView+ChatSecure.h b/ChatSecureCore/Classes/Categories/UITableView+ChatSecure.h similarity index 66% rename from ChatSecure/Classes/Categories/UITableView+ChatSecure.h rename to ChatSecureCore/Classes/Categories/UITableView+ChatSecure.h index 201831fd9..eab53a451 100644 --- a/ChatSecure/Classes/Categories/UITableView+ChatSecure.h +++ b/ChatSecureCore/Classes/Categories/UITableView+ChatSecure.h @@ -14,7 +14,7 @@ NS_ASSUME_NONNULL_BEGIN @interface UITableView (ChatSecure) /** deleteActionAlsoRemovesFromRoster is YES for the ChooseBuddy view, otherwise NO. Connection must be read-write */ -+ (nullable NSArray *)editActionsForThread:(id)thread deleteActionAlsoRemovesFromRoster:(BOOL)deleteActionAlsoRemovesFromRoster connection:(YapDatabaseConnection*)connection; ++ (nullable UISwipeActionsConfiguration *)editActionsForThread:(id)thread deleteActionAlsoRemovesFromRoster:(BOOL)deleteActionAlsoRemovesFromRoster connection:(YapDatabaseConnection*)connection; @end NS_ASSUME_NONNULL_END diff --git a/ChatSecure/Classes/Categories/UITableView+ChatSecure.m b/ChatSecureCore/Classes/Categories/UITableView+ChatSecure.m similarity index 75% rename from ChatSecure/Classes/Categories/UITableView+ChatSecure.m rename to ChatSecureCore/Classes/Categories/UITableView+ChatSecure.m index 4d5097084..b9a22f862 100644 --- a/ChatSecure/Classes/Categories/UITableView+ChatSecure.m +++ b/ChatSecureCore/Classes/Categories/UITableView+ChatSecure.m @@ -15,7 +15,7 @@ @implementation UITableView (ChatSecure) /** Connection must be read-write */ -+ (nullable NSArray *)editActionsForThread:(id)thread deleteActionAlsoRemovesFromRoster:(BOOL)deleteActionAlsoRemovesFromRoster connection:(YapDatabaseConnection*)connection { ++ (nullable UISwipeActionsConfiguration *)editActionsForThread:(id)thread deleteActionAlsoRemovesFromRoster:(BOOL)deleteActionAlsoRemovesFromRoster connection:(YapDatabaseConnection*)connection { NSParameterAssert(thread); NSParameterAssert(connection); if (!thread || !connection) { @@ -33,22 +33,23 @@ @implementation UITableView (ChatSecure) archiveTitle = UNARCHIVE_ACTION_STRING(); } - UITableViewRowAction *archiveAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleNormal title:archiveTitle handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) { + UIContextualAction *archiveAction = [UIContextualAction contextualActionWithStyle:UIContextualActionStyleNormal title:archiveTitle handler:^(UIContextualAction * _Nonnull action, __kindof UIView * _Nonnull sourceView, void (^ _Nonnull completionHandler)(BOOL)) { [connection asyncReadWriteWithBlock:^(YapDatabaseReadWriteTransaction * _Nonnull transaction) { NSString *key = [thread threadIdentifier]; NSString *collection = [thread threadCollection]; id object = [transaction objectForKey:key inCollection:collection]; if (![object conformsToProtocol:@protocol(OTRThreadOwner)]) { + completionHandler(NO); return; } id thread = object; thread.isArchived = !thread.isArchived; [thread saveWithTransaction:transaction]; + completionHandler(YES); }]; }]; - UITableViewRowAction *deleteAction = [UITableViewRowAction rowActionWithStyle:UITableViewRowActionStyleDestructive title:DELETE_STRING() handler:^(UITableViewRowAction * _Nonnull action, NSIndexPath * _Nonnull indexPath) { - + UIContextualAction *deleteAction = [UIContextualAction contextualActionWithStyle:UIContextualActionStyleDestructive title:DELETE_STRING() handler:^(UIContextualAction * _Nonnull action, __kindof UIView * _Nonnull sourceView, void (^ _Nonnull completionHandler)(BOOL)) { [connection asyncReadWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) { [OTRBaseMessage deleteAllMessagesForBuddyId:[thread threadIdentifier] transaction:transaction]; }]; @@ -70,6 +71,7 @@ @implementation UITableView (ChatSecure) //Delete database items [connection asyncReadWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) { [((OTRXMPPRoom *)thread) removeWithTransaction:transaction]; + completionHandler(YES); }]; } else if ([thread isKindOfClass:[OTRBuddy class]] && deleteActionAlsoRemovesFromRoster) { OTRBuddy *dbBuddy = (OTRBuddy*)thread; @@ -80,11 +82,14 @@ @implementation UITableView (ChatSecure) [connection asyncReadWriteWithBlock:^(YapDatabaseReadWriteTransaction *transaction) { [action saveWithTransaction:transaction]; [dbBuddy removeWithTransaction:transaction]; + completionHandler(YES); }]; + } else { + completionHandler(NO); } }]; - return @[deleteAction, archiveAction]; + return [UISwipeActionsConfiguration configurationWithActions:@[deleteAction, archiveAction]]; } @end diff --git a/ChatSecure/Classes/Categories/UIViewController+ChatSecure.h b/ChatSecureCore/Classes/Categories/UIViewController+ChatSecure.h similarity index 100% rename from ChatSecure/Classes/Categories/UIViewController+ChatSecure.h rename to ChatSecureCore/Classes/Categories/UIViewController+ChatSecure.h diff --git a/ChatSecure/Classes/Categories/UIViewController+ChatSecure.m b/ChatSecureCore/Classes/Categories/UIViewController+ChatSecure.m similarity index 100% rename from ChatSecure/Classes/Categories/UIViewController+ChatSecure.m rename to ChatSecureCore/Classes/Categories/UIViewController+ChatSecure.m diff --git a/ChatSecure/Classes/Categories/UIViewController+ChatSecure.swift b/ChatSecureCore/Classes/Categories/UIViewController+ChatSecure.swift similarity index 68% rename from ChatSecure/Classes/Categories/UIViewController+ChatSecure.swift rename to ChatSecureCore/Classes/Categories/UIViewController+ChatSecure.swift index bb3a6cac8..c5951f467 100644 --- a/ChatSecure/Classes/Categories/UIViewController+ChatSecure.swift +++ b/ChatSecureCore/Classes/Categories/UIViewController+ChatSecure.swift @@ -11,24 +11,32 @@ import OTRAssets extension UIViewController { /// Will show a prompt to bring user into system settings - public func showPromptForSystemSettings() { + public func showPromptForSystemSettings(sender: Any) { let alert = UIAlertController(title: ENABLE_PUSH_IN_SETTINGS_STRING(), message: nil, preferredStyle: .alert) let settingsAction = UIAlertAction(title: SETTINGS_STRING(), style: .default, handler: { (action: UIAlertAction) -> Void in let appSettings = URL(string: UIApplication.openSettingsURLString) - UIApplication.shared.openURL(appSettings!) + UIApplication.shared.open(appSettings!) }) let cancelAction = UIAlertAction(title: CANCEL_STRING(), style: .cancel, handler: nil) alert.addAction(settingsAction) alert.addAction(cancelAction) + if let sourceView = sender as? UIView { + alert.popoverPresentationController?.sourceView = sourceView; + alert.popoverPresentationController?.sourceRect = sourceView.bounds; + } present(alert, animated: true, completion: nil) } - public func showDestructivePrompt(title: String?, buttonTitle: String, handler: @escaping ((_ action: UIAlertAction) -> ())) { + public func showDestructivePrompt(title: String?, buttonTitle: String, sender: Any, handler: @escaping ((_ action: UIAlertAction) -> ())) { let alert = UIAlertController(title: title, message: nil, preferredStyle: .actionSheet) let destroyAction = UIAlertAction(title: buttonTitle, style: .destructive, handler: handler) let cancelAction = UIAlertAction(title: CANCEL_STRING(), style: .cancel, handler: nil) alert.addAction(destroyAction) alert.addAction(cancelAction) + if let sourceView = sender as? UIView { + alert.popoverPresentationController?.sourceView = sourceView; + alert.popoverPresentationController?.sourceRect = sourceView.bounds; + } present(alert, animated: true, completion: nil) } } diff --git a/ChatSecure/Classes/Categories/XMPPMessage+ChatSecure.swift b/ChatSecureCore/Classes/Categories/XMPPMessage+ChatSecure.swift similarity index 100% rename from ChatSecure/Classes/Categories/XMPPMessage+ChatSecure.swift rename to ChatSecureCore/Classes/Categories/XMPPMessage+ChatSecure.swift diff --git a/ChatSecure/Classes/Categories/YapDatabaseViewConnection+ChatSecure.m b/ChatSecureCore/Classes/Categories/YapDatabaseViewConnection+ChatSecure.m similarity index 100% rename from ChatSecure/Classes/Categories/YapDatabaseViewConnection+ChatSecure.m rename to ChatSecureCore/Classes/Categories/YapDatabaseViewConnection+ChatSecure.m diff --git a/ChatSecure/Classes/Compatibility.swift b/ChatSecureCore/Classes/Compatibility.swift similarity index 100% rename from ChatSecure/Classes/Compatibility.swift rename to ChatSecureCore/Classes/Compatibility.swift diff --git a/ChatSecure/Classes/Controllers/Errors.swift b/ChatSecureCore/Classes/Controllers/Errors.swift similarity index 100% rename from ChatSecure/Classes/Controllers/Errors.swift rename to ChatSecureCore/Classes/Controllers/Errors.swift diff --git a/ChatSecure/Classes/Controllers/FileTransferManager.swift b/ChatSecureCore/Classes/Controllers/FileTransferManager.swift similarity index 100% rename from ChatSecure/Classes/Controllers/FileTransferManager.swift rename to ChatSecureCore/Classes/Controllers/FileTransferManager.swift diff --git a/ChatSecure/Classes/Controllers/MessageQueueHandler.swift b/ChatSecureCore/Classes/Controllers/MessageQueueHandler.swift similarity index 100% rename from ChatSecure/Classes/Controllers/MessageQueueHandler.swift rename to ChatSecureCore/Classes/Controllers/MessageQueueHandler.swift diff --git a/ChatSecure/Classes/Controllers/OTRAccountDatabaseCount.swift b/ChatSecureCore/Classes/Controllers/OTRAccountDatabaseCount.swift similarity index 100% rename from ChatSecure/Classes/Controllers/OTRAccountDatabaseCount.swift rename to ChatSecureCore/Classes/Controllers/OTRAccountDatabaseCount.swift diff --git a/ChatSecure/Classes/Controllers/OTRAccountMigrator.m b/ChatSecureCore/Classes/Controllers/OTRAccountMigrator.m similarity index 100% rename from ChatSecure/Classes/Controllers/OTRAccountMigrator.m rename to ChatSecureCore/Classes/Controllers/OTRAccountMigrator.m diff --git a/ChatSecure/Classes/Controllers/OTRAccountSignalEncryptionManager.swift b/ChatSecureCore/Classes/Controllers/OTRAccountSignalEncryptionManager.swift similarity index 100% rename from ChatSecure/Classes/Controllers/OTRAccountSignalEncryptionManager.swift rename to ChatSecureCore/Classes/Controllers/OTRAccountSignalEncryptionManager.swift diff --git a/ChatSecure/Classes/Controllers/OTRAccountsManager.m b/ChatSecureCore/Classes/Controllers/OTRAccountsManager.m similarity index 100% rename from ChatSecure/Classes/Controllers/OTRAccountsManager.m rename to ChatSecureCore/Classes/Controllers/OTRAccountsManager.m diff --git a/ChatSecure/Classes/Controllers/OTRAttachmentPicker.m b/ChatSecureCore/Classes/Controllers/OTRAttachmentPicker.m similarity index 100% rename from ChatSecure/Classes/Controllers/OTRAttachmentPicker.m rename to ChatSecureCore/Classes/Controllers/OTRAttachmentPicker.m diff --git a/ChatSecure/Classes/Controllers/OTRAudioPlaybackController.h b/ChatSecureCore/Classes/Controllers/OTRAudioPlaybackController.h similarity index 100% rename from ChatSecure/Classes/Controllers/OTRAudioPlaybackController.h rename to ChatSecureCore/Classes/Controllers/OTRAudioPlaybackController.h diff --git a/ChatSecure/Classes/Controllers/OTRAudioPlaybackController.m b/ChatSecureCore/Classes/Controllers/OTRAudioPlaybackController.m similarity index 100% rename from ChatSecure/Classes/Controllers/OTRAudioPlaybackController.m rename to ChatSecureCore/Classes/Controllers/OTRAudioPlaybackController.m diff --git a/ChatSecure/Classes/Controllers/OTRAudioSessionManager.h b/ChatSecureCore/Classes/Controllers/OTRAudioSessionManager.h similarity index 100% rename from ChatSecure/Classes/Controllers/OTRAudioSessionManager.h rename to ChatSecureCore/Classes/Controllers/OTRAudioSessionManager.h diff --git a/ChatSecure/Classes/Controllers/OTRAudioSessionManager.m b/ChatSecureCore/Classes/Controllers/OTRAudioSessionManager.m similarity index 100% rename from ChatSecure/Classes/Controllers/OTRAudioSessionManager.m rename to ChatSecureCore/Classes/Controllers/OTRAudioSessionManager.m diff --git a/ChatSecure/Classes/Controllers/OTRDatabaseManager.m b/ChatSecureCore/Classes/Controllers/OTRDatabaseManager.m similarity index 100% rename from ChatSecure/Classes/Controllers/OTRDatabaseManager.m rename to ChatSecureCore/Classes/Controllers/OTRDatabaseManager.m diff --git a/ChatSecure/Classes/Controllers/OTRDatabaseView.m b/ChatSecureCore/Classes/Controllers/OTRDatabaseView.m similarity index 100% rename from ChatSecure/Classes/Controllers/OTRDatabaseView.m rename to ChatSecureCore/Classes/Controllers/OTRDatabaseView.m diff --git a/ChatSecure/Classes/Controllers/OTREncryptionManager.m b/ChatSecureCore/Classes/Controllers/OTREncryptionManager.m similarity index 100% rename from ChatSecure/Classes/Controllers/OTREncryptionManager.m rename to ChatSecureCore/Classes/Controllers/OTREncryptionManager.m diff --git a/ChatSecure/Classes/Controllers/OTRMediaFileManager.m b/ChatSecureCore/Classes/Controllers/OTRMediaFileManager.m similarity index 100% rename from ChatSecure/Classes/Controllers/OTRMediaFileManager.m rename to ChatSecureCore/Classes/Controllers/OTRMediaFileManager.m diff --git a/ChatSecure/Classes/Controllers/OTRMediaServer.m b/ChatSecureCore/Classes/Controllers/OTRMediaServer.m similarity index 100% rename from ChatSecure/Classes/Controllers/OTRMediaServer.m rename to ChatSecureCore/Classes/Controllers/OTRMediaServer.m diff --git a/ChatSecure/Classes/Controllers/OTROMEMOSignalCoordinator.swift b/ChatSecureCore/Classes/Controllers/OTROMEMOSignalCoordinator.swift similarity index 100% rename from ChatSecure/Classes/Controllers/OTROMEMOSignalCoordinator.swift rename to ChatSecureCore/Classes/Controllers/OTROMEMOSignalCoordinator.swift diff --git a/ChatSecure/Classes/Controllers/OTROMEMOStorageManager.swift b/ChatSecureCore/Classes/Controllers/OTROMEMOStorageManager.swift similarity index 100% rename from ChatSecure/Classes/Controllers/OTROMEMOStorageManager.swift rename to ChatSecureCore/Classes/Controllers/OTROMEMOStorageManager.swift diff --git a/ChatSecure/Classes/Controllers/OTRProtocolManager.m b/ChatSecureCore/Classes/Controllers/OTRProtocolManager.m similarity index 98% rename from ChatSecure/Classes/Controllers/OTRProtocolManager.m rename to ChatSecureCore/Classes/Controllers/OTRProtocolManager.m index 117617de6..4ea6ab392 100644 --- a/ChatSecure/Classes/Controllers/OTRProtocolManager.m +++ b/ChatSecureCore/Classes/Controllers/OTRProtocolManager.m @@ -27,7 +27,6 @@ #import "OTROutgoingMessage.h" #import "OTRConstants.h" #import "OTRDatabaseManager.h" -#import "OTRPushTLVHandler.h" #import @import YapDatabase; @@ -265,7 +264,7 @@ + (void)handleInviteForJID:(XMPPJID *)jid otrFingerprint:(nullable NSString *)ot if (otrFingerprint.length == 40) { message = [message stringByAppendingFormat:@"\n%@", otrFingerprint]; } - UIAlertController *alert = [UIAlertController alertControllerWithTitle:ADD_BUDDY_STRING() message:message preferredStyle:(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) ? UIAlertControllerStyleActionSheet : UIAlertControllerStyleAlert]; + UIAlertController *alert = [UIAlertController alertControllerWithTitle:ADD_BUDDY_STRING() message:message preferredStyle:(UIDevice.currentDevice.userInterfaceIdiom == UIUserInterfaceIdiomPhone) ? UIAlertControllerStyleActionSheet : UIAlertControllerStyleAlert]; NSMutableArray *accounts = [NSMutableArray array]; [OTRDatabaseManager.shared.readConnection readWithBlock:^(YapDatabaseReadTransaction *transaction) { NSArray *allAccounts = [OTRAccount allAccountsWithTransaction:transaction]; diff --git a/ChatSecure/Classes/Controllers/OTRProtocolManager.swift b/ChatSecureCore/Classes/Controllers/OTRProtocolManager.swift similarity index 100% rename from ChatSecure/Classes/Controllers/OTRProtocolManager.swift rename to ChatSecureCore/Classes/Controllers/OTRProtocolManager.swift diff --git a/ChatSecure/Classes/Controllers/OTRSettingsManager.m b/ChatSecureCore/Classes/Controllers/OTRSettingsManager.m similarity index 98% rename from ChatSecure/Classes/Controllers/OTRSettingsManager.m rename to ChatSecureCore/Classes/Controllers/OTRSettingsManager.m index 1934b204c..603be3676 100644 --- a/ChatSecure/Classes/Controllers/OTRSettingsManager.m +++ b/ChatSecureCore/Classes/Controllers/OTRSettingsManager.m @@ -101,8 +101,7 @@ - (void) populateSettings description:ALLOW_DB_PASSPHRASE_BACKUP_DESCRIPTION_STRING() settingsKey:kOTRSettingKeyAllowDBPassphraseBackup]; - if (![PushController canReceivePushNotifications] || - [PushController getPushPreference] != PushPreferenceEnabled) { + if ([PushController getPushPreference] != PushPreferenceEnabled) { OTRViewSetting *pushViewSetting = [[OTRViewSetting alloc] initWithTitle:CHATSECURE_PUSH_STRING() description:nil viewControllerClass:[EnablePushViewController class]]; pushViewSetting.accessoryType = UITableViewCellAccessoryDisclosureIndicator; OTRSettingsGroup *pushGroup = [[OTRSettingsGroup alloc] initWithTitle:PUSH_TITLE_STRING() settings:@[pushViewSetting]]; diff --git a/ChatSecure/Classes/Controllers/OTRSignalEncryptionHelper.swift b/ChatSecureCore/Classes/Controllers/OTRSignalEncryptionHelper.swift similarity index 100% rename from ChatSecure/Classes/Controllers/OTRSignalEncryptionHelper.swift rename to ChatSecureCore/Classes/Controllers/OTRSignalEncryptionHelper.swift diff --git a/ChatSecure/Classes/Controllers/OTRSignalStorageManager.swift b/ChatSecureCore/Classes/Controllers/OTRSignalStorageManager.swift similarity index 100% rename from ChatSecure/Classes/Controllers/OTRSignalStorageManager.swift rename to ChatSecureCore/Classes/Controllers/OTRSignalStorageManager.swift diff --git a/ChatSecure/Classes/Controllers/OTRSplitViewCoordinator.swift b/ChatSecureCore/Classes/Controllers/OTRSplitViewCoordinator.swift similarity index 100% rename from ChatSecure/Classes/Controllers/OTRSplitViewCoordinator.swift rename to ChatSecureCore/Classes/Controllers/OTRSplitViewCoordinator.swift diff --git a/ChatSecure/Classes/Controllers/OTRTorManager.h b/ChatSecureCore/Classes/Controllers/OTRTorManager.h similarity index 92% rename from ChatSecure/Classes/Controllers/OTRTorManager.h rename to ChatSecureCore/Classes/Controllers/OTRTorManager.h index 402db1df2..c30f422a4 100644 --- a/ChatSecure/Classes/Controllers/OTRTorManager.h +++ b/ChatSecureCore/Classes/Controllers/OTRTorManager.h @@ -7,7 +7,7 @@ // @import Foundation; -@import CPAProxy; +@class CPAProxyManager; @interface OTRTorManager : NSObject diff --git a/ChatSecure/Classes/Controllers/OTRTorManager.m b/ChatSecureCore/Classes/Controllers/OTRTorManager.m similarity index 100% rename from ChatSecure/Classes/Controllers/OTRTorManager.m rename to ChatSecureCore/Classes/Controllers/OTRTorManager.m diff --git a/ChatSecure/Classes/Controllers/OTRXMPPChangeAvatar.swift b/ChatSecureCore/Classes/Controllers/OTRXMPPChangeAvatar.swift similarity index 100% rename from ChatSecure/Classes/Controllers/OTRXMPPChangeAvatar.swift rename to ChatSecureCore/Classes/Controllers/OTRXMPPChangeAvatar.swift diff --git a/ChatSecure/Classes/Controllers/OTRXMPPChangePasswordManager.swift b/ChatSecureCore/Classes/Controllers/OTRXMPPChangePasswordManager.swift similarity index 100% rename from ChatSecure/Classes/Controllers/OTRXMPPChangePasswordManager.swift rename to ChatSecureCore/Classes/Controllers/OTRXMPPChangePasswordManager.swift diff --git a/ChatSecure/Classes/Controllers/OTRXMPPMessageStatusModule.swift b/ChatSecureCore/Classes/Controllers/OTRXMPPMessageStatusModule.swift similarity index 100% rename from ChatSecure/Classes/Controllers/OTRXMPPMessageStatusModule.swift rename to ChatSecureCore/Classes/Controllers/OTRXMPPMessageStatusModule.swift diff --git a/ChatSecure/Classes/Controllers/OTRYapExtensions.swift b/ChatSecureCore/Classes/Controllers/OTRYapExtensions.swift similarity index 100% rename from ChatSecure/Classes/Controllers/OTRYapExtensions.swift rename to ChatSecureCore/Classes/Controllers/OTRYapExtensions.swift diff --git a/ChatSecure/Classes/Controllers/OTRYapViewHandler.swift b/ChatSecureCore/Classes/Controllers/OTRYapViewHandler.swift similarity index 100% rename from ChatSecure/Classes/Controllers/OTRYapViewHandler.swift rename to ChatSecureCore/Classes/Controllers/OTRYapViewHandler.swift diff --git a/ChatSecure/Classes/Controllers/PushController.swift b/ChatSecureCore/Classes/Controllers/PushController.swift similarity index 91% rename from ChatSecure/Classes/Controllers/PushController.swift rename to ChatSecureCore/Classes/Controllers/PushController.swift index 482eeeea5..dee9b2cc8 100644 --- a/ChatSecure/Classes/Controllers/PushController.swift +++ b/ChatSecureCore/Classes/Controllers/PushController.swift @@ -10,6 +10,7 @@ import Foundation import ChatSecure_Push_iOS import YapDatabase import UserNotifications +import OTRKit @objc public protocol PushControllerProtocol { @@ -617,14 +618,18 @@ open class PushController: NSObject, PushControllerProtocol { var pushPermitted = false let group = DispatchGroup() group.enter() - pushPermitted = PushController.canReceivePushNotifications() // This will be async in a later version when we do iOS 10 refactor + DispatchQueue.main.async { + PushController.canReceivePushNotifications(completion: { (enabled) in + pushPermitted = enabled + group.leave() + }) + } group.enter() - group.leave() getPubsubEndpoint { (endpoint, error) in pubsubEndpoint = endpoint group.leave() } - group.notify(queue: DispatchQueue.global(qos: .default)) { + group.notify(queue: .main) { let device = storage.thisDevice() let newPushInfo = PushInfo( pushAPIURL: self.apiClient.baseUrl, @@ -641,49 +646,40 @@ open class PushController: NSObject, PushControllerProtocol { } @objc public static func registerForPushNotifications() { - if #available(iOS 10.0, *) { - let center = UNUserNotificationCenter.current() - center.requestAuthorization(options: [.badge, .alert, .sound], completionHandler: { (granted, error) in - DispatchQueue.main.async(execute: { - // TODO: Handle push registration error - let app = UIApplication.shared - NotificationCenter.default.post(name: Notification.Name(rawValue: OTRUserNotificationsChanged), object: app.delegate, userInfo:nil) - if (granted) { - app.registerForRemoteNotifications() - } - }) + let center = UNUserNotificationCenter.current() + center.requestAuthorization(options: [.badge, .alert, .sound], completionHandler: { (granted, error) in + DispatchQueue.main.async(execute: { + // TODO: Handle push registration error + let app = UIApplication.shared + NotificationCenter.default.post(name: Notification.Name(rawValue: OTRUserNotificationsChanged), object: app.delegate, userInfo:nil) }) - } else { - let notificationSettings = UIUserNotificationSettings(types: [.badge, .alert, .sound], categories: nil) - UIApplication.shared.registerUserNotificationSettings(notificationSettings) - } + }) + UIApplication.shared.registerForRemoteNotifications() } - @objc public static func canReceivePushNotifications() -> Bool { - var isEnabled = false - if let settings = UIApplication.shared.currentUserNotificationSettings { - isEnabled = settings.types != UIUserNotificationType() + @objc public static func canReceivePushNotifications(completion: @escaping (Bool)->Void) { + UNUserNotificationCenter.current?.getNotificationSettings { (settings) in + DispatchQueue.main.async { + completion(settings.authorizationStatus == .authorized) + } } - return isEnabled - // Making this function async to satisfy the iOS 10 way is extremely difficult due to how OTRSettingsManager.populateSettings works - /* - if #available(iOS 10.0, *) { - let center = UNUserNotificationCenter.currentNotificationCenter() - center.getNotificationSettingsWithCompletionHandler({ (settings: UNNotificationSettings) in - let isEnabled = settings.authorizationStatus != .Authorized - dispatch_async(dispatch_get_main_queue(), { - completion(canReceive: isEnabled) - }) - }) + } + + @objc public static func openAppSettings() { + guard let appSettings = URL(string: UIApplication.openSettingsURLString) else { return } + UIApplication.shared.open(appSettings) + } +} + +extension UNUserNotificationCenter { + /// XCTest & UNUserNotificationCenter: requires bundle identifier, crashes when accessed + /// http://www.openradar.me/27768556 + static var current: UNUserNotificationCenter? { + // Return if this is a unit test + if let _ = NSClassFromString("XCTest") { + return nil } else { - var isEnabled = false - if let settings = UIApplication.sharedApplication().currentUserNotificationSettings() { - isEnabled = settings.types != .None - } - dispatch_async(dispatch_get_main_queue(), { - completion(canReceive: isEnabled) - }) + return .current() } - */ } } diff --git a/ChatSecure/Classes/Controllers/PushDeserializer.swift b/ChatSecureCore/Classes/Controllers/PushDeserializer.swift similarity index 100% rename from ChatSecure/Classes/Controllers/PushDeserializer.swift rename to ChatSecureCore/Classes/Controllers/PushDeserializer.swift diff --git a/ChatSecure/Classes/Controllers/PushSerializer.swift b/ChatSecureCore/Classes/Controllers/PushSerializer.swift similarity index 100% rename from ChatSecure/Classes/Controllers/PushSerializer.swift rename to ChatSecureCore/Classes/Controllers/PushSerializer.swift diff --git a/ChatSecure/Classes/Controllers/PushStorage.swift b/ChatSecureCore/Classes/Controllers/PushStorage.swift similarity index 100% rename from ChatSecure/Classes/Controllers/PushStorage.swift rename to ChatSecureCore/Classes/Controllers/PushStorage.swift diff --git a/ChatSecure/Classes/Controllers/ServerCheck.swift b/ChatSecureCore/Classes/Controllers/ServerCheck.swift similarity index 99% rename from ChatSecure/Classes/Controllers/ServerCheck.swift rename to ChatSecureCore/Classes/Controllers/ServerCheck.swift index 7bba6b423..cc2204fd1 100644 --- a/ChatSecure/Classes/Controllers/ServerCheck.swift +++ b/ChatSecureCore/Classes/Controllers/ServerCheck.swift @@ -177,7 +177,7 @@ extension ServerCheck: XMPPPushDelegate { public func pushModule(_ module: XMPPPushModule, readyWithCapabilities caps: XMLElement, jid: XMPPJID) { // This _should_ be handled elsewhere in OTRServerCapabilities // Not sure why it's not working properly - if var caps = result.capabilities { + if let caps = result.capabilities { caps[.XEP0357]?.status = .Available } checkReady() diff --git a/ChatSecure/Classes/Controllers/ShareController.swift b/ChatSecureCore/Classes/Controllers/ShareController.swift similarity index 100% rename from ChatSecure/Classes/Controllers/ShareController.swift rename to ChatSecureCore/Classes/Controllers/ShareController.swift diff --git a/ChatSecure/Classes/Controllers/XMPP/OTRServerCapabilities.m b/ChatSecureCore/Classes/Controllers/XMPP/OTRServerCapabilities.m similarity index 100% rename from ChatSecure/Classes/Controllers/XMPP/OTRServerCapabilities.m rename to ChatSecureCore/Classes/Controllers/XMPP/OTRServerCapabilities.m diff --git a/ChatSecure/Classes/Controllers/XMPP/OTRStreamManagementDelegate.swift b/ChatSecureCore/Classes/Controllers/XMPP/OTRStreamManagementDelegate.swift similarity index 100% rename from ChatSecure/Classes/Controllers/XMPP/OTRStreamManagementDelegate.swift rename to ChatSecureCore/Classes/Controllers/XMPP/OTRStreamManagementDelegate.swift diff --git a/ChatSecure/Classes/Controllers/XMPP/OTRXMPPBuddyManager.h b/ChatSecureCore/Classes/Controllers/XMPP/OTRXMPPBuddyManager.h similarity index 100% rename from ChatSecure/Classes/Controllers/XMPP/OTRXMPPBuddyManager.h rename to ChatSecureCore/Classes/Controllers/XMPP/OTRXMPPBuddyManager.h diff --git a/ChatSecure/Classes/Controllers/XMPP/OTRXMPPBuddyManager.m b/ChatSecureCore/Classes/Controllers/XMPP/OTRXMPPBuddyManager.m similarity index 100% rename from ChatSecure/Classes/Controllers/XMPP/OTRXMPPBuddyManager.m rename to ChatSecureCore/Classes/Controllers/XMPP/OTRXMPPBuddyManager.m diff --git a/ChatSecure/Classes/Controllers/XMPP/OTRXMPPBuddyTimers.h b/ChatSecureCore/Classes/Controllers/XMPP/OTRXMPPBuddyTimers.h similarity index 100% rename from ChatSecure/Classes/Controllers/XMPP/OTRXMPPBuddyTimers.h rename to ChatSecureCore/Classes/Controllers/XMPP/OTRXMPPBuddyTimers.h diff --git a/ChatSecure/Classes/Controllers/XMPP/OTRXMPPBuddyTimers.m b/ChatSecureCore/Classes/Controllers/XMPP/OTRXMPPBuddyTimers.m similarity index 100% rename from ChatSecure/Classes/Controllers/XMPP/OTRXMPPBuddyTimers.m rename to ChatSecureCore/Classes/Controllers/XMPP/OTRXMPPBuddyTimers.m diff --git a/ChatSecure/Classes/Controllers/XMPP/OTRXMPPManager.m b/ChatSecureCore/Classes/Controllers/XMPP/OTRXMPPManager.m similarity index 99% rename from ChatSecure/Classes/Controllers/XMPP/OTRXMPPManager.m rename to ChatSecureCore/Classes/Controllers/XMPP/OTRXMPPManager.m index 93f57d33c..3e55c9892 100644 --- a/ChatSecure/Classes/Controllers/XMPP/OTRXMPPManager.m +++ b/ChatSecureCore/Classes/Controllers/XMPP/OTRXMPPManager.m @@ -45,6 +45,7 @@ #import "OTRAccount.h" #import "OTRStreamManagementYapStorage.h" @import OTRKit; +@import CPAProxy; #import "OTRXMPPRoomManager.h" #import "OTRXMPPBuddyTimers.h" #import "OTRXMPPError.h" diff --git a/ChatSecure/Classes/Controllers/XMPP/OTRXMPPManager_Private.h b/ChatSecureCore/Classes/Controllers/XMPP/OTRXMPPManager_Private.h similarity index 100% rename from ChatSecure/Classes/Controllers/XMPP/OTRXMPPManager_Private.h rename to ChatSecureCore/Classes/Controllers/XMPP/OTRXMPPManager_Private.h diff --git a/ChatSecure/Classes/Controllers/XMPP/OTRXMPPRoomManager.m b/ChatSecureCore/Classes/Controllers/XMPP/OTRXMPPRoomManager.m similarity index 100% rename from ChatSecure/Classes/Controllers/XMPP/OTRXMPPRoomManager.m rename to ChatSecureCore/Classes/Controllers/XMPP/OTRXMPPRoomManager.m diff --git a/ChatSecure/Classes/Controllers/XMPP/OTRXMPPTorManager.h b/ChatSecureCore/Classes/Controllers/XMPP/OTRXMPPTorManager.h similarity index 100% rename from ChatSecure/Classes/Controllers/XMPP/OTRXMPPTorManager.h rename to ChatSecureCore/Classes/Controllers/XMPP/OTRXMPPTorManager.h diff --git a/ChatSecure/Classes/Controllers/XMPP/OTRXMPPTorManager.m b/ChatSecureCore/Classes/Controllers/XMPP/OTRXMPPTorManager.m similarity index 99% rename from ChatSecure/Classes/Controllers/XMPP/OTRXMPPTorManager.m rename to ChatSecureCore/Classes/Controllers/XMPP/OTRXMPPTorManager.m index 1952c4d04..144b9aed7 100644 --- a/ChatSecure/Classes/Controllers/XMPP/OTRXMPPTorManager.m +++ b/ChatSecureCore/Classes/Controllers/XMPP/OTRXMPPTorManager.m @@ -9,6 +9,7 @@ #import "OTRXMPPTorManager.h" #import "OTRTorManager.h" @import XMPPFramework; +@import CPAProxy; #import "OTRXMPPTorAccount.h" #import "OTRXMPPError.h" #import "OTRProtocol.h" diff --git a/ChatSecure/Classes/Controllers/XMPP/ProxyXMPPStream.h b/ChatSecureCore/Classes/Controllers/XMPP/ProxyXMPPStream.h similarity index 100% rename from ChatSecure/Classes/Controllers/XMPP/ProxyXMPPStream.h rename to ChatSecureCore/Classes/Controllers/XMPP/ProxyXMPPStream.h diff --git a/ChatSecure/Classes/Controllers/XMPP/ProxyXMPPStream.m b/ChatSecureCore/Classes/Controllers/XMPP/ProxyXMPPStream.m similarity index 100% rename from ChatSecure/Classes/Controllers/XMPP/ProxyXMPPStream.m rename to ChatSecureCore/Classes/Controllers/XMPP/ProxyXMPPStream.m diff --git a/ChatSecure/Classes/Controllers/XMPP/RoomManager.swift b/ChatSecureCore/Classes/Controllers/XMPP/RoomManager.swift similarity index 100% rename from ChatSecure/Classes/Controllers/XMPP/RoomManager.swift rename to ChatSecureCore/Classes/Controllers/XMPP/RoomManager.swift diff --git a/ChatSecure/Classes/Controllers/XMPP/Storage/MessageStorage.swift b/ChatSecureCore/Classes/Controllers/XMPP/Storage/MessageStorage.swift similarity index 100% rename from ChatSecure/Classes/Controllers/XMPP/Storage/MessageStorage.swift rename to ChatSecureCore/Classes/Controllers/XMPP/Storage/MessageStorage.swift diff --git a/ChatSecure/Classes/Controllers/XMPP/Storage/OTRStreamManagementYapStorage.h b/ChatSecureCore/Classes/Controllers/XMPP/Storage/OTRStreamManagementYapStorage.h similarity index 100% rename from ChatSecure/Classes/Controllers/XMPP/Storage/OTRStreamManagementYapStorage.h rename to ChatSecureCore/Classes/Controllers/XMPP/Storage/OTRStreamManagementYapStorage.h diff --git a/ChatSecure/Classes/Controllers/XMPP/Storage/OTRStreamManagementYapStorage.m b/ChatSecureCore/Classes/Controllers/XMPP/Storage/OTRStreamManagementYapStorage.m similarity index 100% rename from ChatSecure/Classes/Controllers/XMPP/Storage/OTRStreamManagementYapStorage.m rename to ChatSecureCore/Classes/Controllers/XMPP/Storage/OTRStreamManagementYapStorage.m diff --git a/ChatSecure/Classes/Controllers/XMPP/Storage/RoomStorage.swift b/ChatSecureCore/Classes/Controllers/XMPP/Storage/RoomStorage.swift similarity index 100% rename from ChatSecure/Classes/Controllers/XMPP/Storage/RoomStorage.swift rename to ChatSecureCore/Classes/Controllers/XMPP/Storage/RoomStorage.swift diff --git a/ChatSecure/Classes/Controllers/XMPP/Storage/RosterStorage.swift b/ChatSecureCore/Classes/Controllers/XMPP/Storage/RosterStorage.swift similarity index 100% rename from ChatSecure/Classes/Controllers/XMPP/Storage/RosterStorage.swift rename to ChatSecureCore/Classes/Controllers/XMPP/Storage/RosterStorage.swift diff --git a/ChatSecure/Classes/Controllers/XMPP/Storage/VCardStorage.swift b/ChatSecureCore/Classes/Controllers/XMPP/Storage/VCardStorage.swift similarity index 100% rename from ChatSecure/Classes/Controllers/XMPP/Storage/VCardStorage.swift rename to ChatSecureCore/Classes/Controllers/XMPP/Storage/VCardStorage.swift diff --git a/ChatSecure/Classes/Controllers/XMPP/XMPPManager.swift b/ChatSecureCore/Classes/Controllers/XMPP/XMPPManager.swift similarity index 100% rename from ChatSecure/Classes/Controllers/XMPP/XMPPManager.swift rename to ChatSecureCore/Classes/Controllers/XMPP/XMPPManager.swift diff --git a/ChatSecure/Classes/Controllers/YapDatabase+ChatSecure.swift b/ChatSecureCore/Classes/Controllers/YapDatabase+ChatSecure.swift similarity index 100% rename from ChatSecure/Classes/Controllers/YapDatabase+ChatSecure.swift rename to ChatSecureCore/Classes/Controllers/YapDatabase+ChatSecure.swift diff --git a/ChatSecure/Classes/Controllers/YapDatabaseConstants.swift b/ChatSecureCore/Classes/Controllers/YapDatabaseConstants.swift similarity index 100% rename from ChatSecure/Classes/Controllers/YapDatabaseConstants.swift rename to ChatSecureCore/Classes/Controllers/YapDatabaseConstants.swift diff --git a/ChatSecure/Classes/Controllers/YapDatabaseTransaction+ChatSecure.swift b/ChatSecureCore/Classes/Controllers/YapDatabaseTransaction+ChatSecure.swift similarity index 100% rename from ChatSecure/Classes/Controllers/YapDatabaseTransaction+ChatSecure.swift rename to ChatSecureCore/Classes/Controllers/YapDatabaseTransaction+ChatSecure.swift diff --git a/ChatSecure/Classes/Model/Core Data/ChatSecure.xcdatamodeld/.xccurrentversion b/ChatSecureCore/Classes/Model/Core Data/ChatSecure.xcdatamodeld/.xccurrentversion similarity index 65% rename from ChatSecure/Classes/Model/Core Data/ChatSecure.xcdatamodeld/.xccurrentversion rename to ChatSecureCore/Classes/Model/Core Data/ChatSecure.xcdatamodeld/.xccurrentversion index 0c67376eb..a18b3b169 100644 --- a/ChatSecure/Classes/Model/Core Data/ChatSecure.xcdatamodeld/.xccurrentversion +++ b/ChatSecureCore/Classes/Model/Core Data/ChatSecure.xcdatamodeld/.xccurrentversion @@ -1,5 +1,8 @@ - + + _XCCurrentVersionName + ChatSecure.xcdatamodel + diff --git a/ChatSecure/Classes/Model/Core Data/ChatSecure.xcdatamodeld/ChatSecure 2.xcdatamodel/contents b/ChatSecureCore/Classes/Model/Core Data/ChatSecure.xcdatamodeld/ChatSecure 2.xcdatamodel/contents similarity index 100% rename from ChatSecure/Classes/Model/Core Data/ChatSecure.xcdatamodeld/ChatSecure 2.xcdatamodel/contents rename to ChatSecureCore/Classes/Model/Core Data/ChatSecure.xcdatamodeld/ChatSecure 2.xcdatamodel/contents diff --git a/ChatSecure/Classes/Model/Core Data/ChatSecure.xcdatamodeld/ChatSecure 3.xcdatamodel/contents b/ChatSecureCore/Classes/Model/Core Data/ChatSecure.xcdatamodeld/ChatSecure 3.xcdatamodel/contents similarity index 100% rename from ChatSecure/Classes/Model/Core Data/ChatSecure.xcdatamodeld/ChatSecure 3.xcdatamodel/contents rename to ChatSecureCore/Classes/Model/Core Data/ChatSecure.xcdatamodeld/ChatSecure 3.xcdatamodel/contents diff --git a/ChatSecure/Classes/Model/Core Data/ChatSecure.xcdatamodeld/ChatSecure.xcdatamodel/contents b/ChatSecureCore/Classes/Model/Core Data/ChatSecure.xcdatamodeld/ChatSecure.xcdatamodel/contents similarity index 100% rename from ChatSecure/Classes/Model/Core Data/ChatSecure.xcdatamodeld/ChatSecure.xcdatamodel/contents rename to ChatSecureCore/Classes/Model/Core Data/ChatSecure.xcdatamodeld/ChatSecure.xcdatamodel/contents diff --git a/ChatSecure/Classes/Model/MessagesViewControllerState.swift b/ChatSecureCore/Classes/Model/MessagesViewControllerState.swift similarity index 100% rename from ChatSecure/Classes/Model/MessagesViewControllerState.swift rename to ChatSecureCore/Classes/Model/MessagesViewControllerState.swift diff --git a/ChatSecure/Classes/Model/OTRActivityItemProvider.m b/ChatSecureCore/Classes/Model/OTRActivityItemProvider.m similarity index 100% rename from ChatSecure/Classes/Model/OTRActivityItemProvider.m rename to ChatSecureCore/Classes/Model/OTRActivityItemProvider.m diff --git a/ChatSecure/Classes/Model/OTRBuddyCache.m b/ChatSecureCore/Classes/Model/OTRBuddyCache.m similarity index 100% rename from ChatSecure/Classes/Model/OTRBuddyCache.m rename to ChatSecureCore/Classes/Model/OTRBuddyCache.m diff --git a/ChatSecure/Classes/Model/OTRDomainCellInfo.h b/ChatSecureCore/Classes/Model/OTRDomainCellInfo.h similarity index 100% rename from ChatSecure/Classes/Model/OTRDomainCellInfo.h rename to ChatSecureCore/Classes/Model/OTRDomainCellInfo.h diff --git a/ChatSecure/Classes/Model/OTRDomainCellInfo.m b/ChatSecureCore/Classes/Model/OTRDomainCellInfo.m similarity index 100% rename from ChatSecure/Classes/Model/OTRDomainCellInfo.m rename to ChatSecureCore/Classes/Model/OTRDomainCellInfo.m diff --git a/ChatSecure/Classes/Model/OTROpenInFacebookActivity.h b/ChatSecureCore/Classes/Model/OTROpenInFacebookActivity.h similarity index 100% rename from ChatSecure/Classes/Model/OTROpenInFacebookActivity.h rename to ChatSecureCore/Classes/Model/OTROpenInFacebookActivity.h diff --git a/ChatSecure/Classes/Model/OTROpenInFacebookActivity.m b/ChatSecureCore/Classes/Model/OTROpenInFacebookActivity.m similarity index 94% rename from ChatSecure/Classes/Model/OTROpenInFacebookActivity.m rename to ChatSecureCore/Classes/Model/OTROpenInFacebookActivity.m index 9485652fc..b3fd15651 100644 --- a/ChatSecure/Classes/Model/OTROpenInFacebookActivity.m +++ b/ChatSecureCore/Classes/Model/OTROpenInFacebookActivity.m @@ -11,7 +11,7 @@ #import "UIImage+ChatSecure.h" #import "UIActivity+ChatSecure.h" @import OTRAssets; - +#import "ChatSecureCoreCompat-Swift.h" @interface OTROpenInFacebookActivity () @@ -74,7 +74,7 @@ - (void)prepareWithActivityItems:(NSArray *)activityItems - (void)performActivity { - [[UIApplication sharedApplication] openURL:self.url]; + [[UIApplication sharedApplication] open:self.url]; [self activityDidFinish:YES]; } diff --git a/ChatSecure/Classes/Model/OTROpenInTwitterActivity.h b/ChatSecureCore/Classes/Model/OTROpenInTwitterActivity.h similarity index 100% rename from ChatSecure/Classes/Model/OTROpenInTwitterActivity.h rename to ChatSecureCore/Classes/Model/OTROpenInTwitterActivity.h diff --git a/ChatSecure/Classes/Model/OTROpenInTwitterActivity.m b/ChatSecureCore/Classes/Model/OTROpenInTwitterActivity.m similarity index 94% rename from ChatSecure/Classes/Model/OTROpenInTwitterActivity.m rename to ChatSecureCore/Classes/Model/OTROpenInTwitterActivity.m index a7b2badb0..a67a1d431 100644 --- a/ChatSecure/Classes/Model/OTROpenInTwitterActivity.m +++ b/ChatSecureCore/Classes/Model/OTROpenInTwitterActivity.m @@ -10,6 +10,7 @@ #import "OTRImages.h" #import "UIImage+ChatSecure.h" #import "UIActivity+ChatSecure.h" +#import "ChatSecureCoreCompat-Swift.h" @import OTRAssets; @@ -73,7 +74,7 @@ - (void)prepareWithActivityItems:(NSArray *)activityItems - (void)performActivity { - [[UIApplication sharedApplication] openURL:self.url]; + [[UIApplication sharedApplication] open:self.url]; [self activityDidFinish:YES]; } diff --git a/ChatSecure/Classes/Model/OTRQRCodeActivity.m b/ChatSecureCore/Classes/Model/OTRQRCodeActivity.m similarity index 96% rename from ChatSecure/Classes/Model/OTRQRCodeActivity.m rename to ChatSecureCore/Classes/Model/OTRQRCodeActivity.m index bf097c45a..d4e85c43a 100644 --- a/ChatSecure/Classes/Model/OTRQRCodeActivity.m +++ b/ChatSecureCore/Classes/Model/OTRQRCodeActivity.m @@ -63,7 +63,7 @@ -(UIViewController *)activityViewController OTRQRCodeViewController * QRCodeViewController = [[OTRQRCodeViewController alloc] initWithQRString:self.qrString]; QRCodeViewController.delegate = self; UINavigationController * navController = [[UINavigationController alloc] initWithRootViewController:QRCodeViewController]; - if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) { + if (UIDevice.currentDevice.userInterfaceIdiom == UIUserInterfaceIdiomPad) { navController.modalPresentationStyle = UIModalPresentationFormSheet; } diff --git a/ChatSecure/Classes/Model/OTRToastOptions.h b/ChatSecureCore/Classes/Model/OTRToastOptions.h similarity index 100% rename from ChatSecure/Classes/Model/OTRToastOptions.h rename to ChatSecureCore/Classes/Model/OTRToastOptions.h diff --git a/ChatSecure/Classes/Model/OTRToastOptions.m b/ChatSecureCore/Classes/Model/OTRToastOptions.m similarity index 100% rename from ChatSecure/Classes/Model/OTRToastOptions.m rename to ChatSecureCore/Classes/Model/OTRToastOptions.m diff --git a/ChatSecure/Classes/Model/OTRXMPPServerInfo.m b/ChatSecureCore/Classes/Model/OTRXMPPServerInfo.m similarity index 100% rename from ChatSecure/Classes/Model/OTRXMPPServerInfo.m rename to ChatSecureCore/Classes/Model/OTRXMPPServerInfo.m diff --git a/ChatSecure/Classes/Model/ServerCapabilityInfo.swift b/ChatSecureCore/Classes/Model/ServerCapabilityInfo.swift similarity index 100% rename from ChatSecure/Classes/Model/ServerCapabilityInfo.swift rename to ChatSecureCore/Classes/Model/ServerCapabilityInfo.swift diff --git a/ChatSecure/Classes/Model/Settings/OTRBoolSetting.h b/ChatSecureCore/Classes/Model/Settings/OTRBoolSetting.h similarity index 100% rename from ChatSecure/Classes/Model/Settings/OTRBoolSetting.h rename to ChatSecureCore/Classes/Model/Settings/OTRBoolSetting.h diff --git a/ChatSecure/Classes/Model/Settings/OTRBoolSetting.m b/ChatSecureCore/Classes/Model/Settings/OTRBoolSetting.m similarity index 100% rename from ChatSecure/Classes/Model/Settings/OTRBoolSetting.m rename to ChatSecureCore/Classes/Model/Settings/OTRBoolSetting.m diff --git a/ChatSecure/Classes/Model/Settings/OTRCertificateSetting.h b/ChatSecureCore/Classes/Model/Settings/OTRCertificateSetting.h similarity index 100% rename from ChatSecure/Classes/Model/Settings/OTRCertificateSetting.h rename to ChatSecureCore/Classes/Model/Settings/OTRCertificateSetting.h diff --git a/ChatSecure/Classes/Model/Settings/OTRCertificateSetting.m b/ChatSecureCore/Classes/Model/Settings/OTRCertificateSetting.m similarity index 100% rename from ChatSecure/Classes/Model/Settings/OTRCertificateSetting.m rename to ChatSecureCore/Classes/Model/Settings/OTRCertificateSetting.m diff --git a/ChatSecure/Classes/Model/Settings/OTRDonateSetting.h b/ChatSecureCore/Classes/Model/Settings/OTRDonateSetting.h similarity index 100% rename from ChatSecure/Classes/Model/Settings/OTRDonateSetting.h rename to ChatSecureCore/Classes/Model/Settings/OTRDonateSetting.h diff --git a/ChatSecure/Classes/Model/Settings/OTRDonateSetting.m b/ChatSecureCore/Classes/Model/Settings/OTRDonateSetting.m similarity index 100% rename from ChatSecure/Classes/Model/Settings/OTRDonateSetting.m rename to ChatSecureCore/Classes/Model/Settings/OTRDonateSetting.m diff --git a/ChatSecure/Classes/Model/Settings/OTRDoubleSetting.h b/ChatSecureCore/Classes/Model/Settings/OTRDoubleSetting.h similarity index 100% rename from ChatSecure/Classes/Model/Settings/OTRDoubleSetting.h rename to ChatSecureCore/Classes/Model/Settings/OTRDoubleSetting.h diff --git a/ChatSecure/Classes/Model/Settings/OTRDoubleSetting.m b/ChatSecureCore/Classes/Model/Settings/OTRDoubleSetting.m similarity index 100% rename from ChatSecure/Classes/Model/Settings/OTRDoubleSetting.m rename to ChatSecureCore/Classes/Model/Settings/OTRDoubleSetting.m diff --git a/ChatSecure/Classes/Model/Settings/OTRFeedbackSetting.h b/ChatSecureCore/Classes/Model/Settings/OTRFeedbackSetting.h similarity index 100% rename from ChatSecure/Classes/Model/Settings/OTRFeedbackSetting.h rename to ChatSecureCore/Classes/Model/Settings/OTRFeedbackSetting.h diff --git a/ChatSecure/Classes/Model/Settings/OTRFeedbackSetting.m b/ChatSecureCore/Classes/Model/Settings/OTRFeedbackSetting.m similarity index 100% rename from ChatSecure/Classes/Model/Settings/OTRFeedbackSetting.m rename to ChatSecureCore/Classes/Model/Settings/OTRFeedbackSetting.m diff --git a/ChatSecure/Classes/Model/Settings/OTRIntSetting.h b/ChatSecureCore/Classes/Model/Settings/OTRIntSetting.h similarity index 100% rename from ChatSecure/Classes/Model/Settings/OTRIntSetting.h rename to ChatSecureCore/Classes/Model/Settings/OTRIntSetting.h diff --git a/ChatSecure/Classes/Model/Settings/OTRIntSetting.m b/ChatSecureCore/Classes/Model/Settings/OTRIntSetting.m similarity index 100% rename from ChatSecure/Classes/Model/Settings/OTRIntSetting.m rename to ChatSecureCore/Classes/Model/Settings/OTRIntSetting.m diff --git a/ChatSecure/Classes/Model/Settings/OTRLanguageSetting.m b/ChatSecureCore/Classes/Model/Settings/OTRLanguageSetting.m similarity index 100% rename from ChatSecure/Classes/Model/Settings/OTRLanguageSetting.m rename to ChatSecureCore/Classes/Model/Settings/OTRLanguageSetting.m diff --git a/ChatSecure/Classes/Model/Settings/OTRListSetting.m b/ChatSecureCore/Classes/Model/Settings/OTRListSetting.m similarity index 100% rename from ChatSecure/Classes/Model/Settings/OTRListSetting.m rename to ChatSecureCore/Classes/Model/Settings/OTRListSetting.m diff --git a/ChatSecure/Classes/Model/Settings/OTRListSettingValue.h b/ChatSecureCore/Classes/Model/Settings/OTRListSettingValue.h similarity index 100% rename from ChatSecure/Classes/Model/Settings/OTRListSettingValue.h rename to ChatSecureCore/Classes/Model/Settings/OTRListSettingValue.h diff --git a/ChatSecure/Classes/Model/Settings/OTRListSettingValue.m b/ChatSecureCore/Classes/Model/Settings/OTRListSettingValue.m similarity index 100% rename from ChatSecure/Classes/Model/Settings/OTRListSettingValue.m rename to ChatSecureCore/Classes/Model/Settings/OTRListSettingValue.m diff --git a/ChatSecure/Classes/Model/Settings/OTRSetting.m b/ChatSecureCore/Classes/Model/Settings/OTRSetting.m similarity index 100% rename from ChatSecure/Classes/Model/Settings/OTRSetting.m rename to ChatSecureCore/Classes/Model/Settings/OTRSetting.m diff --git a/ChatSecure/Classes/Model/Settings/OTRSettingsGroup.m b/ChatSecureCore/Classes/Model/Settings/OTRSettingsGroup.m similarity index 100% rename from ChatSecure/Classes/Model/Settings/OTRSettingsGroup.m rename to ChatSecureCore/Classes/Model/Settings/OTRSettingsGroup.m diff --git a/ChatSecure/Classes/Model/Settings/OTRShareSetting.m b/ChatSecureCore/Classes/Model/Settings/OTRShareSetting.m similarity index 100% rename from ChatSecure/Classes/Model/Settings/OTRShareSetting.m rename to ChatSecureCore/Classes/Model/Settings/OTRShareSetting.m diff --git a/ChatSecure/Classes/Model/Settings/OTRValueSetting.m b/ChatSecureCore/Classes/Model/Settings/OTRValueSetting.m similarity index 100% rename from ChatSecure/Classes/Model/Settings/OTRValueSetting.m rename to ChatSecureCore/Classes/Model/Settings/OTRValueSetting.m diff --git a/ChatSecure/Classes/Model/Settings/OTRViewSetting.m b/ChatSecureCore/Classes/Model/Settings/OTRViewSetting.m similarity index 100% rename from ChatSecure/Classes/Model/Settings/OTRViewSetting.m rename to ChatSecureCore/Classes/Model/Settings/OTRViewSetting.m diff --git a/ChatSecure/Classes/Model/Yap Storage/Accounts/Account.swift b/ChatSecureCore/Classes/Model/Yap Storage/Accounts/Account.swift similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/Accounts/Account.swift rename to ChatSecureCore/Classes/Model/Yap Storage/Accounts/Account.swift diff --git a/ChatSecure/Classes/Model/Yap Storage/Accounts/OTRAccount.m b/ChatSecureCore/Classes/Model/Yap Storage/Accounts/OTRAccount.m similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/Accounts/OTRAccount.m rename to ChatSecureCore/Classes/Model/Yap Storage/Accounts/OTRAccount.m diff --git a/ChatSecure/Classes/Model/Yap Storage/Accounts/OTRXMPPAccount+Migration.swift b/ChatSecureCore/Classes/Model/Yap Storage/Accounts/OTRXMPPAccount+Migration.swift similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/Accounts/OTRXMPPAccount+Migration.swift rename to ChatSecureCore/Classes/Model/Yap Storage/Accounts/OTRXMPPAccount+Migration.swift diff --git a/ChatSecure/Classes/Model/Yap Storage/Accounts/OTRXMPPAccount.m b/ChatSecureCore/Classes/Model/Yap Storage/Accounts/OTRXMPPAccount.m similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/Accounts/OTRXMPPAccount.m rename to ChatSecureCore/Classes/Model/Yap Storage/Accounts/OTRXMPPAccount.m diff --git a/ChatSecure/Classes/Model/Yap Storage/Accounts/OTRXMPPTorAccount.h b/ChatSecureCore/Classes/Model/Yap Storage/Accounts/OTRXMPPTorAccount.h similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/Accounts/OTRXMPPTorAccount.h rename to ChatSecureCore/Classes/Model/Yap Storage/Accounts/OTRXMPPTorAccount.h diff --git a/ChatSecure/Classes/Model/Yap Storage/Accounts/OTRXMPPTorAccount.m b/ChatSecureCore/Classes/Model/Yap Storage/Accounts/OTRXMPPTorAccount.m similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/Accounts/OTRXMPPTorAccount.m rename to ChatSecureCore/Classes/Model/Yap Storage/Accounts/OTRXMPPTorAccount.m diff --git a/ChatSecure/Classes/Model/Yap Storage/BuddySubscriptions.swift b/ChatSecureCore/Classes/Model/Yap Storage/BuddySubscriptions.swift similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/BuddySubscriptions.swift rename to ChatSecureCore/Classes/Model/Yap Storage/BuddySubscriptions.swift diff --git a/ChatSecure/Classes/Model/Yap Storage/OMEMO-Storage/OMEMODevice.m b/ChatSecureCore/Classes/Model/Yap Storage/OMEMO-Storage/OMEMODevice.m similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/OMEMO-Storage/OMEMODevice.m rename to ChatSecureCore/Classes/Model/Yap Storage/OMEMO-Storage/OMEMODevice.m diff --git a/ChatSecure/Classes/Model/Yap Storage/OMEMO-Storage/OMEMODevice.swift b/ChatSecureCore/Classes/Model/Yap Storage/OMEMO-Storage/OMEMODevice.swift similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/OMEMO-Storage/OMEMODevice.swift rename to ChatSecureCore/Classes/Model/Yap Storage/OMEMO-Storage/OMEMODevice.swift diff --git a/ChatSecure/Classes/Model/Yap Storage/OTRAudioItem.m b/ChatSecureCore/Classes/Model/Yap Storage/OTRAudioItem.m similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/OTRAudioItem.m rename to ChatSecureCore/Classes/Model/Yap Storage/OTRAudioItem.m diff --git a/ChatSecure/Classes/Model/Yap Storage/OTRBaseMessage.m b/ChatSecureCore/Classes/Model/Yap Storage/OTRBaseMessage.m similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/OTRBaseMessage.m rename to ChatSecureCore/Classes/Model/Yap Storage/OTRBaseMessage.m diff --git a/ChatSecure/Classes/Model/Yap Storage/OTRBuddy.m b/ChatSecureCore/Classes/Model/Yap Storage/OTRBuddy.m similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/OTRBuddy.m rename to ChatSecureCore/Classes/Model/Yap Storage/OTRBuddy.m diff --git a/ChatSecure/Classes/Model/Yap Storage/OTRDownloadMessage.m b/ChatSecureCore/Classes/Model/Yap Storage/OTRDownloadMessage.m similarity index 98% rename from ChatSecure/Classes/Model/Yap Storage/OTRDownloadMessage.m rename to ChatSecureCore/Classes/Model/Yap Storage/OTRDownloadMessage.m index 33edc60be..9ccf722ed 100644 --- a/ChatSecure/Classes/Model/Yap Storage/OTRDownloadMessage.m +++ b/ChatSecureCore/Classes/Model/Yap Storage/OTRDownloadMessage.m @@ -163,11 +163,10 @@ @implementation UIAlertAction (OTRDownloadMessage) if (url) { UIAlertAction *copyLinkAction = [UIAlertAction actionWithTitle:COPY_LINK_STRING() style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { - UIPasteboard.generalPasteboard.persistent = YES; UIPasteboard.generalPasteboard.URL = url; }]; UIAlertAction *openInSafari = [UIAlertAction actionWithTitle:OPEN_IN_SAFARI() style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { - [UIApplication.sharedApplication openURL:url]; + [UIApplication.sharedApplication open:url]; }]; [actions addObject:copyLinkAction]; [actions addObject:openInSafari]; diff --git a/ChatSecure/Classes/Model/Yap Storage/OTRDownloadMessage.swift b/ChatSecureCore/Classes/Model/Yap Storage/OTRDownloadMessage.swift similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/OTRDownloadMessage.swift rename to ChatSecureCore/Classes/Model/Yap Storage/OTRDownloadMessage.swift diff --git a/ChatSecure/Classes/Model/Yap Storage/OTRFileItem.h b/ChatSecureCore/Classes/Model/Yap Storage/OTRFileItem.h similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/OTRFileItem.h rename to ChatSecureCore/Classes/Model/Yap Storage/OTRFileItem.h diff --git a/ChatSecure/Classes/Model/Yap Storage/OTRFileItem.m b/ChatSecureCore/Classes/Model/Yap Storage/OTRFileItem.m similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/OTRFileItem.m rename to ChatSecureCore/Classes/Model/Yap Storage/OTRFileItem.m diff --git a/ChatSecure/Classes/Model/Yap Storage/OTRHTMLItem.h b/ChatSecureCore/Classes/Model/Yap Storage/OTRHTMLItem.h similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/OTRHTMLItem.h rename to ChatSecureCore/Classes/Model/Yap Storage/OTRHTMLItem.h diff --git a/ChatSecure/Classes/Model/Yap Storage/OTRHTMLItem.m b/ChatSecureCore/Classes/Model/Yap Storage/OTRHTMLItem.m similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/OTRHTMLItem.m rename to ChatSecureCore/Classes/Model/Yap Storage/OTRHTMLItem.m diff --git a/ChatSecure/Classes/Model/Yap Storage/OTRImageItem.m b/ChatSecureCore/Classes/Model/Yap Storage/OTRImageItem.m similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/OTRImageItem.m rename to ChatSecureCore/Classes/Model/Yap Storage/OTRImageItem.m diff --git a/ChatSecure/Classes/Model/Yap Storage/OTRIncomingMessage.m b/ChatSecureCore/Classes/Model/Yap Storage/OTRIncomingMessage.m similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/OTRIncomingMessage.m rename to ChatSecureCore/Classes/Model/Yap Storage/OTRIncomingMessage.m diff --git a/ChatSecure/Classes/Model/Yap Storage/OTRMediaItem+Private.h b/ChatSecureCore/Classes/Model/Yap Storage/OTRMediaItem+Private.h similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/OTRMediaItem+Private.h rename to ChatSecureCore/Classes/Model/Yap Storage/OTRMediaItem+Private.h diff --git a/ChatSecure/Classes/Model/Yap Storage/OTRMediaItem.m b/ChatSecureCore/Classes/Model/Yap Storage/OTRMediaItem.m similarity index 99% rename from ChatSecure/Classes/Model/Yap Storage/OTRMediaItem.m rename to ChatSecureCore/Classes/Model/Yap Storage/OTRMediaItem.m index 9774ab837..cf407297b 100644 --- a/ChatSecure/Classes/Model/Yap Storage/OTRMediaItem.m +++ b/ChatSecureCore/Classes/Model/Yap Storage/OTRMediaItem.m @@ -14,7 +14,6 @@ #import "OTRHTMLItem.h" @import JSQMessagesViewController; @import YapDatabase; -@import OTRKit; @import MobileCoreServices; @import OTRAssets; #import "OTRDatabaseManager.h" diff --git a/ChatSecure/Classes/Model/Yap Storage/OTRMessage+JSQMessageData.h b/ChatSecureCore/Classes/Model/Yap Storage/OTRMessage+JSQMessageData.h similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/OTRMessage+JSQMessageData.h rename to ChatSecureCore/Classes/Model/Yap Storage/OTRMessage+JSQMessageData.h diff --git a/ChatSecure/Classes/Model/Yap Storage/OTRMessage+JSQMessageData.m b/ChatSecureCore/Classes/Model/Yap Storage/OTRMessage+JSQMessageData.m similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/OTRMessage+JSQMessageData.m rename to ChatSecureCore/Classes/Model/Yap Storage/OTRMessage+JSQMessageData.m diff --git a/ChatSecure/Classes/Model/Yap Storage/OTRMessage.m b/ChatSecureCore/Classes/Model/Yap Storage/OTRMessage.m similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/OTRMessage.m rename to ChatSecureCore/Classes/Model/Yap Storage/OTRMessage.m diff --git a/ChatSecure/Classes/Model/Yap Storage/OTRMessageEncryptionInfo.m b/ChatSecureCore/Classes/Model/Yap Storage/OTRMessageEncryptionInfo.m similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/OTRMessageEncryptionInfo.m rename to ChatSecureCore/Classes/Model/Yap Storage/OTRMessageEncryptionInfo.m diff --git a/ChatSecure/Classes/Model/Yap Storage/OTROutgoingMessage.m b/ChatSecureCore/Classes/Model/Yap Storage/OTROutgoingMessage.m similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/OTROutgoingMessage.m rename to ChatSecureCore/Classes/Model/Yap Storage/OTROutgoingMessage.m diff --git a/ChatSecure/Classes/Model/Yap Storage/OTRStreamManagementStorageObject.h b/ChatSecureCore/Classes/Model/Yap Storage/OTRStreamManagementStorageObject.h similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/OTRStreamManagementStorageObject.h rename to ChatSecureCore/Classes/Model/Yap Storage/OTRStreamManagementStorageObject.h diff --git a/ChatSecure/Classes/Model/Yap Storage/OTRStreamManagementStorageObject.m b/ChatSecureCore/Classes/Model/Yap Storage/OTRStreamManagementStorageObject.m similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/OTRStreamManagementStorageObject.m rename to ChatSecureCore/Classes/Model/Yap Storage/OTRStreamManagementStorageObject.m diff --git a/ChatSecure/Classes/Model/Yap Storage/OTRTextItem.h b/ChatSecureCore/Classes/Model/Yap Storage/OTRTextItem.h similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/OTRTextItem.h rename to ChatSecureCore/Classes/Model/Yap Storage/OTRTextItem.h diff --git a/ChatSecure/Classes/Model/Yap Storage/OTRTextItem.m b/ChatSecureCore/Classes/Model/Yap Storage/OTRTextItem.m similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/OTRTextItem.m rename to ChatSecureCore/Classes/Model/Yap Storage/OTRTextItem.m diff --git a/ChatSecure/Classes/Model/Yap Storage/OTRVideoItem.m b/ChatSecureCore/Classes/Model/Yap Storage/OTRVideoItem.m similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/OTRVideoItem.m rename to ChatSecureCore/Classes/Model/Yap Storage/OTRVideoItem.m diff --git a/ChatSecure/Classes/Model/Yap Storage/OTRXMPPBuddy.m b/ChatSecureCore/Classes/Model/Yap Storage/OTRXMPPBuddy.m similarity index 95% rename from ChatSecure/Classes/Model/Yap Storage/OTRXMPPBuddy.m rename to ChatSecureCore/Classes/Model/Yap Storage/OTRXMPPBuddy.m index 3dd6ee61f..b9908da58 100644 --- a/ChatSecure/Classes/Model/Yap Storage/OTRXMPPBuddy.m +++ b/ChatSecureCore/Classes/Model/Yap Storage/OTRXMPPBuddy.m @@ -25,7 +25,7 @@ - (id)decodeValueForKey:(NSString *)key withCoder:(NSCoder *)coder modelVersion: // Migrate from version 0 of model, where we had "hasIncomingSubscriptionRequest" and "pendingApproval" flags. if ([key isEqualToString:@"subscription"]) { SubscriptionAttribute subscription = SubscriptionAttributeNone; - return [NSNumber numberWithInt:subscription]; + return [NSNumber numberWithInt:(int)subscription]; } else if ([key isEqualToString:@"pending"]) { SubscriptionPendingAttribute pending = SubscriptionPendingAttributePendingNone; BOOL hasIncomingSubscriptionRequest = [[coder decodeObjectForKey:@"hasIncomingSubscriptionRequest"] boolValue]; @@ -34,7 +34,7 @@ - (id)decodeValueForKey:(NSString *)key withCoder:(NSCoder *)coder modelVersion: pending = [SubscriptionPendingAttributeBridge setPendingIn:pending pending:YES]; } pending = [SubscriptionPendingAttributeBridge setPendingOut:pending pending:pendingApproval]; - return [NSNumber numberWithInt:pending]; + return [NSNumber numberWithInt:(int)pending]; } else if ([key isEqualToString:@"trustLevel"]) { BuddyTrustLevel trustLevel = BuddyTrustLevelUntrusted; @@ -42,7 +42,7 @@ - (id)decodeValueForKey:(NSString *)key withCoder:(NSCoder *)coder modelVersion: if (hasIncomingSubscriptionRequest == NO) { trustLevel = BuddyTrustLevelRoster; } - return [NSNumber numberWithInt:trustLevel]; + return [NSNumber numberWithInt:(int)trustLevel]; } } return [super decodeValueForKey:key withCoder:coder modelVersion:modelVersion]; diff --git a/ChatSecure/Classes/Model/Yap Storage/OTRXMPPPresenceSubscriptionRequest.h b/ChatSecureCore/Classes/Model/Yap Storage/OTRXMPPPresenceSubscriptionRequest.h similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/OTRXMPPPresenceSubscriptionRequest.h rename to ChatSecureCore/Classes/Model/Yap Storage/OTRXMPPPresenceSubscriptionRequest.h diff --git a/ChatSecure/Classes/Model/Yap Storage/OTRXMPPPresenceSubscriptionRequest.m b/ChatSecureCore/Classes/Model/Yap Storage/OTRXMPPPresenceSubscriptionRequest.m similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/OTRXMPPPresenceSubscriptionRequest.m rename to ChatSecureCore/Classes/Model/Yap Storage/OTRXMPPPresenceSubscriptionRequest.m diff --git a/ChatSecure/Classes/Model/Yap Storage/OTRXMPPRoom.swift b/ChatSecureCore/Classes/Model/Yap Storage/OTRXMPPRoom.swift similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/OTRXMPPRoom.swift rename to ChatSecureCore/Classes/Model/Yap Storage/OTRXMPPRoom.swift diff --git a/ChatSecure/Classes/Model/Yap Storage/OTRXMPPRoomMessage.swift b/ChatSecureCore/Classes/Model/Yap Storage/OTRXMPPRoomMessage.swift similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/OTRXMPPRoomMessage.swift rename to ChatSecureCore/Classes/Model/Yap Storage/OTRXMPPRoomMessage.swift diff --git a/ChatSecure/Classes/Model/Yap Storage/OTRXMPPRoomOccupant.swift b/ChatSecureCore/Classes/Model/Yap Storage/OTRXMPPRoomOccupant.swift similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/OTRXMPPRoomOccupant.swift rename to ChatSecureCore/Classes/Model/Yap Storage/OTRXMPPRoomOccupant.swift diff --git a/ChatSecure/Classes/Model/Yap Storage/OTRYapDatabaseObject.m b/ChatSecureCore/Classes/Model/Yap Storage/OTRYapDatabaseObject.m similarity index 97% rename from ChatSecure/Classes/Model/Yap Storage/OTRYapDatabaseObject.m rename to ChatSecureCore/Classes/Model/Yap Storage/OTRYapDatabaseObject.m index 2340d6954..d7e010f7e 100644 --- a/ChatSecure/Classes/Model/Yap Storage/OTRYapDatabaseObject.m +++ b/ChatSecureCore/Classes/Model/Yap Storage/OTRYapDatabaseObject.m @@ -74,4 +74,8 @@ + (nullable instancetype) fetchObjectWithUniqueID:(NSString *)uniqueID transacti return object; } ++ (BOOL) supportsSecureCoding { + return YES; +} + @end diff --git a/ChatSecure/Classes/Model/Yap Storage/OTRYapMessageSendAction.m b/ChatSecureCore/Classes/Model/Yap Storage/OTRYapMessageSendAction.m similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/OTRYapMessageSendAction.m rename to ChatSecureCore/Classes/Model/Yap Storage/OTRYapMessageSendAction.m diff --git a/ChatSecure/Classes/Model/Yap Storage/OTRYapMessageSendAction.swift b/ChatSecureCore/Classes/Model/Yap Storage/OTRYapMessageSendAction.swift similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/OTRYapMessageSendAction.swift rename to ChatSecureCore/Classes/Model/Yap Storage/OTRYapMessageSendAction.swift diff --git a/ChatSecure/Classes/Model/Yap Storage/PushContainers.swift b/ChatSecureCore/Classes/Model/Yap Storage/PushContainers.swift similarity index 93% rename from ChatSecure/Classes/Model/Yap Storage/PushContainers.swift rename to ChatSecureCore/Classes/Model/Yap Storage/PushContainers.swift index d48c1d098..ecd090da0 100644 --- a/ChatSecure/Classes/Model/Yap Storage/PushContainers.swift +++ b/ChatSecureCore/Classes/Model/Yap Storage/PushContainers.swift @@ -37,6 +37,10 @@ open class DeviceContainer: OTRYapDatabaseObject, YapDatabaseRelationshipNode { } return nil } + + open override class var supportsSecureCoding: Bool { + return true + } } open class TokenContainer: OTRYapDatabaseObject, YapDatabaseRelationshipNode { @@ -72,4 +76,7 @@ open class TokenContainer: OTRYapDatabaseObject, YapDatabaseRelationshipNode { return edges } + open override class var supportsSecureCoding: Bool { + return true + } } diff --git a/ChatSecure/Classes/Model/Yap Storage/PushMessage.swift b/ChatSecureCore/Classes/Model/Yap Storage/PushMessage.swift similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/PushMessage.swift rename to ChatSecureCore/Classes/Model/Yap Storage/PushMessage.swift diff --git a/ChatSecure/Classes/Model/Yap Storage/SecondaryIndexes.swift b/ChatSecureCore/Classes/Model/Yap Storage/SecondaryIndexes.swift similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/SecondaryIndexes.swift rename to ChatSecureCore/Classes/Model/Yap Storage/SecondaryIndexes.swift diff --git a/ChatSecure/Classes/Model/Yap Storage/Signal-Storage/OTRAccountSignalIdentity.m b/ChatSecureCore/Classes/Model/Yap Storage/Signal-Storage/OTRAccountSignalIdentity.m similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/Signal-Storage/OTRAccountSignalIdentity.m rename to ChatSecureCore/Classes/Model/Yap Storage/Signal-Storage/OTRAccountSignalIdentity.m diff --git a/ChatSecure/Classes/Model/Yap Storage/Signal-Storage/OTRSignalObject.m b/ChatSecureCore/Classes/Model/Yap Storage/Signal-Storage/OTRSignalObject.m similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/Signal-Storage/OTRSignalObject.m rename to ChatSecureCore/Classes/Model/Yap Storage/Signal-Storage/OTRSignalObject.m diff --git a/ChatSecure/Classes/Model/Yap Storage/Signal-Storage/OTRSignalPreKey.m b/ChatSecureCore/Classes/Model/Yap Storage/Signal-Storage/OTRSignalPreKey.m similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/Signal-Storage/OTRSignalPreKey.m rename to ChatSecureCore/Classes/Model/Yap Storage/Signal-Storage/OTRSignalPreKey.m diff --git a/ChatSecure/Classes/Model/Yap Storage/Signal-Storage/OTRSignalSenderKey.m b/ChatSecureCore/Classes/Model/Yap Storage/Signal-Storage/OTRSignalSenderKey.m similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/Signal-Storage/OTRSignalSenderKey.m rename to ChatSecureCore/Classes/Model/Yap Storage/Signal-Storage/OTRSignalSenderKey.m diff --git a/ChatSecure/Classes/Model/Yap Storage/Signal-Storage/OTRSignalSession.m b/ChatSecureCore/Classes/Model/Yap Storage/Signal-Storage/OTRSignalSession.m similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/Signal-Storage/OTRSignalSession.m rename to ChatSecureCore/Classes/Model/Yap Storage/Signal-Storage/OTRSignalSession.m diff --git a/ChatSecure/Classes/Model/Yap Storage/Signal-Storage/OTRSignalSignedPreKey.m b/ChatSecureCore/Classes/Model/Yap Storage/Signal-Storage/OTRSignalSignedPreKey.m similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/Signal-Storage/OTRSignalSignedPreKey.m rename to ChatSecureCore/Classes/Model/Yap Storage/Signal-Storage/OTRSignalSignedPreKey.m diff --git a/ChatSecure/Classes/Model/Yap Storage/YapActions/BuddyActions.swift b/ChatSecureCore/Classes/Model/Yap Storage/YapActions/BuddyActions.swift similarity index 100% rename from ChatSecure/Classes/Model/Yap Storage/YapActions/BuddyActions.swift rename to ChatSecureCore/Classes/Model/Yap Storage/YapActions/BuddyActions.swift diff --git a/ChatSecure/Classes/OTRAppDelegate.m b/ChatSecureCore/Classes/OTRAppDelegate.m similarity index 91% rename from ChatSecure/Classes/OTRAppDelegate.m rename to ChatSecureCore/Classes/OTRAppDelegate.m index 603fe9978..8aaf75f6f 100644 --- a/ChatSecure/Classes/OTRAppDelegate.m +++ b/ChatSecureCore/Classes/OTRAppDelegate.m @@ -28,7 +28,6 @@ #import "OTRSettingsViewController.h" #import "OTRSettingsManager.h" -@import Appirater; #import "OTRConstants.h" #import "OTRUtilities.h" @@ -60,13 +59,11 @@ #import "OTRXMPPTorAccount.h" @import OTRAssets; @import OTRKit; -#import "OTRPushTLVHandlerProtocols.h" #if KSCRASH #import #import #import #endif -@import HockeySDK_Source; @import UserNotifications; #import "OTRChatDemo.h" @@ -144,34 +141,29 @@ - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:( if ([PushController getPushPreference] == PushPreferenceEnabled) { [PushController registerForPushNotifications]; } - - [Appirater setAppId:@"464200063"]; - [Appirater setOpenInAppStore:NO]; - [Appirater appLaunched:YES]; [self autoLoginFromBackground:NO]; - [application setMinimumBackgroundFetchInterval:UIApplicationBackgroundFetchIntervalMinimum]; - + [self configureBackgroundTasksWithApplication:application]; + // For disabling screen dimming while plugged in [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(batteryStateDidChange:) name:UIDeviceBatteryStateDidChangeNotification object:nil]; [UIDevice currentDevice].batteryMonitoringEnabled = YES; [self batteryStateDidChange:nil]; // Setup iOS 10+ in-app notifications - NSOperatingSystemVersion ios10version = {.majorVersion = 10, .minorVersion = 0, .patchVersion = 0}; - if ([[NSProcessInfo processInfo] isOperatingSystemAtLeastVersion:ios10version]) { + if (@available(iOS 10.0, *)) { [UNUserNotificationCenter currentNotificationCenter].delegate = self; } - - + [application registerForRemoteNotifications]; + return YES; } - (void) setupCrashReporting { - [[BITHockeyManager sharedHockeyManager] configureWithIdentifier:[OTRSecrets hockeyLiveIdentifier]]; - [[BITHockeyManager sharedHockeyManager].crashManager setCrashManagerStatus: BITCrashManagerStatusAlwaysAsk]; - [[BITHockeyManager sharedHockeyManager] startManager]; +// [[BITHockeyManager sharedHockeyManager] configureWithIdentifier:[OTRSecrets hockeyLiveIdentifier]]; +// [[BITHockeyManager sharedHockeyManager].crashManager setCrashManagerStatus: BITCrashManagerStatusAlwaysAsk]; +// [[BITHockeyManager sharedHockeyManager] startManager]; #if KSCRASH KSCrash *crash = [KSCrash sharedInstance]; @@ -266,6 +258,8 @@ - (void)applicationDidEnterBackground:(UIApplication *)application DDLogInfo(@"Application entered background state."); NSAssert(self.backgroundTask == UIBackgroundTaskInvalid, nil); + [self scheduleBackgroundTasksWithApplication:application completionHandler:nil]; + __block NSUInteger unread = 0; [[OTRDatabaseManager sharedInstance].readConnection asyncReadWithBlock:^(YapDatabaseReadTransaction *transaction) { unread = [transaction numberOfUnreadMessages]; @@ -315,11 +309,6 @@ - (void)autoLoginFromBackground:(BOOL)fromBackground }); } -- (void)applicationWillEnterForeground:(UIApplication *)application -{ - [Appirater appEnteredForeground:YES]; -} - - (void)applicationDidBecomeActive:(UIApplication *)application { [OTRAppDelegate setLastInteractionDate:NSDate.date]; @@ -411,14 +400,7 @@ - (void) fetchTimerUpdate:(NSTimer*)timer { - (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler { - [self application:application performFetchWithCompletionHandler:completionHandler]; - - [OTRProtocolManager.pushController receiveRemoteNotification:userInfo completion:^(OTRBuddy * _Nullable buddy, NSError * _Nullable error) { - // Only show notification if buddy lookup succeeds - if (buddy) { - [application showLocalNotificationForKnockFrom:buddy]; - } - }]; + [self scheduleBackgroundTasksWithApplication:application completionHandler:completionHandler]; } - (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray> *restorableObjects))restorationHandler { @@ -470,16 +452,6 @@ - (void) showSubscriptionRequestForBuddy:(NSDictionary*)userInfo { [self.splitViewCoordinator showConversationsViewController]; } -- (void)application:(UIApplication *)application didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings -{ - [[NSNotificationCenter defaultCenter] postNotificationName:OTRUserNotificationsChanged object:self userInfo:@{@"settings": notificationSettings}]; - if (notificationSettings.types == UIUserNotificationTypeNone) { - NSLog(@"Push notifications disabled by user."); - } else { - [application registerForRemoteNotifications]; - } -} - - (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(nonnull NSData *)deviceToken { [OTRProtocolManager.pushController didRegisterForRemoteNotificationsWithDeviceToken:deviceToken]; diff --git a/ChatSecure/Classes/OTRAppDelegate.swift b/ChatSecureCore/Classes/OTRAppDelegate.swift similarity index 74% rename from ChatSecure/Classes/OTRAppDelegate.swift rename to ChatSecureCore/Classes/OTRAppDelegate.swift index 824f2bf3c..5cee17eb6 100644 --- a/ChatSecure/Classes/OTRAppDelegate.swift +++ b/ChatSecureCore/Classes/OTRAppDelegate.swift @@ -10,8 +10,85 @@ import Foundation import YapDatabase import UserNotifications import CocoaLumberjack +import UIKit +import BackgroundTasks + +@available(iOS 13.0, *) +extension BGAppRefreshTaskRequest { + static var refreshIdentifier: String { + guard let bundleId = Bundle.main.bundleIdentifier else { + fatalError("No bundle identifier!") + } + return "\(bundleId).refresh" + } +} + + +protocol BackgroundTaskProtocol { + func setTaskCompleted(success: Bool) +} + +@available(iOS 13.0, *) +extension BGTask: BackgroundTaskProtocol {} + +enum FetchType { + case fetch((UIBackgroundFetchResult)->Void) + case task(BackgroundTaskProtocol) +} extension OTRAppDelegate { + @objc public func scheduleBackgroundTasks(application: UIApplication, completionHandler: ((UIBackgroundFetchResult)->Void)? = nil) { + if let completionHandler = completionHandler { + performBackgroundFetch(type: .fetch(completionHandler)) + } + if #available(iOS 13.0, *) { + BGTaskScheduler.shared.cancelAllTaskRequests() + let request = BGAppRefreshTaskRequest(identifier: BGAppRefreshTaskRequest.refreshIdentifier) + request.earliestBeginDate = nil + do { + try BGTaskScheduler.shared.submit(request) + } catch { + DDLogError("BGTaskScheduler Error \(error)") + } + completionHandler?(.newData) + } else if let completionHandler = completionHandler { + self.application(application, performFetchWithCompletionHandler: completionHandler) + } + } + + private func performBackgroundFetch(type: FetchType) { + OTRProtocolManager.shared.loginAccounts(OTRAccountsManager.allAutoLoginAccounts()) + DispatchQueue.main.asyncAfter(deadline: .now() + 8, execute: { + let timeout = 1.0 + OTRProtocolManager.shared.disconnectAllAccountsSocketOnly(true, timeout: timeout) { + DispatchQueue.main.async { + UIApplication.shared.removeExtraForegroundNotifications() + switch type { + case .fetch(let completion): + completion(.newData) + case .task(let task): + task.setTaskCompleted(success: true) + } + } + } + }) + } + + @objc public func configureBackgroundTasks(application: UIApplication) { + if #available(iOS 13.0, *) { + BGTaskScheduler.shared.register(forTaskWithIdentifier: BGAppRefreshTaskRequest.refreshIdentifier, using: nil) { (task) in + guard let appRefreshTask = task as? BGAppRefreshTask else { + task.setTaskCompleted(success: false) + return + } + self.performBackgroundFetch(type: .task(appRefreshTask)) + } + } else { + application.setMinimumBackgroundFetchInterval(UIApplication.backgroundFetchIntervalMinimum) + } + } + + /// gets the last user interaction date, or current date if app is activate @objc public static func getLastInteractionDate(_ block: @escaping (_ lastInteractionDate: Date?)->(), completionQueue: DispatchQueue? = nil) { DispatchQueue.main.async { diff --git a/ChatSecure/Classes/Utilities/DefaultTheme.swift b/ChatSecureCore/Classes/Utilities/DefaultTheme.swift similarity index 100% rename from ChatSecure/Classes/Utilities/DefaultTheme.swift rename to ChatSecureCore/Classes/Utilities/DefaultTheme.swift diff --git a/ChatSecure/Classes/Utilities/OTRCertificatePinning.m b/ChatSecureCore/Classes/Utilities/OTRCertificatePinning.m similarity index 100% rename from ChatSecure/Classes/Utilities/OTRCertificatePinning.m rename to ChatSecureCore/Classes/Utilities/OTRCertificatePinning.m diff --git a/ChatSecure/Classes/Utilities/OTRChatDemo.h b/ChatSecureCore/Classes/Utilities/OTRChatDemo.h similarity index 100% rename from ChatSecure/Classes/Utilities/OTRChatDemo.h rename to ChatSecureCore/Classes/Utilities/OTRChatDemo.h diff --git a/ChatSecure/Classes/Utilities/OTRChatDemo.m b/ChatSecureCore/Classes/Utilities/OTRChatDemo.m similarity index 100% rename from ChatSecure/Classes/Utilities/OTRChatDemo.m rename to ChatSecureCore/Classes/Utilities/OTRChatDemo.m diff --git a/ChatSecure/Classes/Utilities/OTRColors.h b/ChatSecureCore/Classes/Utilities/OTRColors.h similarity index 100% rename from ChatSecure/Classes/Utilities/OTRColors.h rename to ChatSecureCore/Classes/Utilities/OTRColors.h diff --git a/ChatSecure/Classes/Utilities/OTRColors.m b/ChatSecureCore/Classes/Utilities/OTRColors.m similarity index 100% rename from ChatSecure/Classes/Utilities/OTRColors.m rename to ChatSecureCore/Classes/Utilities/OTRColors.m diff --git a/ChatSecure/Classes/Utilities/OTRConstants.m b/ChatSecureCore/Classes/Utilities/OTRConstants.m similarity index 100% rename from ChatSecure/Classes/Utilities/OTRConstants.m rename to ChatSecureCore/Classes/Utilities/OTRConstants.m diff --git a/ChatSecure/Classes/Utilities/OTRGroupAvatarGenerator.swift b/ChatSecureCore/Classes/Utilities/OTRGroupAvatarGenerator.swift similarity index 77% rename from ChatSecure/Classes/Utilities/OTRGroupAvatarGenerator.swift rename to ChatSecureCore/Classes/Utilities/OTRGroupAvatarGenerator.swift index 309e88f30..150cc015d 100644 --- a/ChatSecure/Classes/Utilities/OTRGroupAvatarGenerator.swift +++ b/ChatSecureCore/Classes/Utilities/OTRGroupAvatarGenerator.swift @@ -11,13 +11,13 @@ import Foundation open class OTRGroupAvatarGenerator { static let arrayOfColors:[CGColor] = [ - colorWithHexString(hexColorString: "#fff73d54").cgColor, - colorWithHexString(hexColorString: "#fffff74f").cgColor, - colorWithHexString(hexColorString: "#ffb2142f").cgColor, - colorWithHexString(hexColorString: "#ff4fcaff").cgColor, - colorWithHexString(hexColorString: "#ff86ff76").cgColor, - colorWithHexString(hexColorString: "#ffcc4317").cgColor, - colorWithHexString(hexColorString: "#ff8376ff").cgColor + colorWithHexString(hexColorString: "#f73d54").cgColor, + colorWithHexString(hexColorString: "#fff74f").cgColor, + colorWithHexString(hexColorString: "#b2142f").cgColor, + colorWithHexString(hexColorString: "#4fcaff").cgColor, + colorWithHexString(hexColorString: "#86ff76").cgColor, + colorWithHexString(hexColorString: "#cc4317").cgColor, + colorWithHexString(hexColorString: "#8376ff").cgColor ] public static func avatarImage(withSeed seed: String, width: Int, height: Int) -> UIImage? { @@ -75,16 +75,8 @@ open class OTRGroupAvatarGenerator { } static func colorWithHexString(hexColorString:String) -> UIColor { - let scanner = Scanner(string: hexColorString) - scanner.scanLocation = 1 - var rgb: UInt32 = 0 - guard scanner.scanHexInt32(&rgb) else { return UIColor.white } - let a:CGFloat = CGFloat((rgb & 0xFF000000) >> 24) / 255.0 - let r:CGFloat = CGFloat((rgb & 0x00FF0000) >> 16) / 255.0 - let g:CGFloat = CGFloat((rgb & 0x0000FF00) >> 8) / 255.0 - let b:CGFloat = CGFloat(rgb & 0x000000FF) / 255.0 - return UIColor(red: r, green: g, blue: b, alpha: a) - } + UIColor(hexString: hexColorString) + } // A LCG to create pseudo-random numbers (using a seed) // @@ -128,3 +120,26 @@ extension String { return Int(hash) } } + +extension UIColor { + + // https://stackoverflow.com/a/38909348 + convenience init(hexString: String, alpha: Double = 1.0) { + let hex = hexString.trimmingCharacters(in: CharacterSet.alphanumerics.inverted) + var int = UInt64() + Scanner(string: hex).scanHexInt64(&int) + + let r, g, b: UInt64 + switch hex.count { + case 3: // RGB (12-bit) + (r, g, b) = ((int >> 8) * 17, (int >> 4 & 0xF) * 17, (int & 0xF) * 17) + case 6: // RGB (24-bit) + (r, g, b) = (int >> 16, int >> 8 & 0xFF, int & 0xFF) + default: + (r, g, b) = (1, 1, 0) + } + + self.init(red: CGFloat(r) / 255, green: CGFloat(g) / 255, blue: CGFloat(b) / 255, alpha: CGFloat(255 * alpha) / 255) + } + +} diff --git a/ChatSecure/Classes/Utilities/OTRImages.m b/ChatSecureCore/Classes/Utilities/OTRImages.m similarity index 100% rename from ChatSecure/Classes/Utilities/OTRImages.m rename to ChatSecureCore/Classes/Utilities/OTRImages.m diff --git a/ChatSecure/Classes/Utilities/OTRLog.h b/ChatSecureCore/Classes/Utilities/OTRLog.h similarity index 100% rename from ChatSecure/Classes/Utilities/OTRLog.h rename to ChatSecureCore/Classes/Utilities/OTRLog.h diff --git a/ChatSecure/Classes/Utilities/OTRPasswordGenerator.m b/ChatSecureCore/Classes/Utilities/OTRPasswordGenerator.m similarity index 100% rename from ChatSecure/Classes/Utilities/OTRPasswordGenerator.m rename to ChatSecureCore/Classes/Utilities/OTRPasswordGenerator.m diff --git a/ChatSecure/Classes/Utilities/OTRSecrets.m b/ChatSecureCore/Classes/Utilities/OTRSecrets.m similarity index 100% rename from ChatSecure/Classes/Utilities/OTRSecrets.m rename to ChatSecureCore/Classes/Utilities/OTRSecrets.m diff --git a/ChatSecure/Classes/Utilities/OTRServerDeprecation.swift b/ChatSecureCore/Classes/Utilities/OTRServerDeprecation.swift similarity index 100% rename from ChatSecure/Classes/Utilities/OTRServerDeprecation.swift rename to ChatSecureCore/Classes/Utilities/OTRServerDeprecation.swift diff --git a/ChatSecure/Classes/Utilities/OTRUtilities.h b/ChatSecureCore/Classes/Utilities/OTRUtilities.h similarity index 100% rename from ChatSecure/Classes/Utilities/OTRUtilities.h rename to ChatSecureCore/Classes/Utilities/OTRUtilities.h diff --git a/ChatSecure/Classes/Utilities/OTRUtilities.m b/ChatSecureCore/Classes/Utilities/OTRUtilities.m similarity index 100% rename from ChatSecure/Classes/Utilities/OTRUtilities.m rename to ChatSecureCore/Classes/Utilities/OTRUtilities.m diff --git a/ChatSecure/Classes/Utilities/OTRXMPPError.m b/ChatSecureCore/Classes/Utilities/OTRXMPPError.m similarity index 100% rename from ChatSecure/Classes/Utilities/OTRXMPPError.m rename to ChatSecureCore/Classes/Utilities/OTRXMPPError.m diff --git a/ChatSecure/Classes/Utilities/UIAlertController+ChatSecure.swift b/ChatSecureCore/Classes/Utilities/UIAlertController+ChatSecure.swift similarity index 100% rename from ChatSecure/Classes/Utilities/UIAlertController+ChatSecure.swift rename to ChatSecureCore/Classes/Utilities/UIAlertController+ChatSecure.swift diff --git a/ChatSecure/Classes/View Controllers/AccountDetailViewController.swift b/ChatSecureCore/Classes/View Controllers/AccountDetailViewController.swift similarity index 100% rename from ChatSecure/Classes/View Controllers/AccountDetailViewController.swift rename to ChatSecureCore/Classes/View Controllers/AccountDetailViewController.swift diff --git a/ChatSecure/Classes/View Controllers/KeyManagementViewController.swift b/ChatSecureCore/Classes/View Controllers/KeyManagementViewController.swift similarity index 99% rename from ChatSecure/Classes/View Controllers/KeyManagementViewController.swift rename to ChatSecureCore/Classes/View Controllers/KeyManagementViewController.swift index 8a7768935..95df07526 100644 --- a/ChatSecure/Classes/View Controllers/KeyManagementViewController.swift +++ b/ChatSecureCore/Classes/View Controllers/KeyManagementViewController.swift @@ -10,7 +10,7 @@ import UIKit import XLForm import YapDatabase import OTRAssets - +import OTRKit /** Crypto Chooser row tags */ private struct RowTags { diff --git a/ChatSecure/Classes/View Controllers/Login View Controllers/OTRAccountMigrationViewController.m b/ChatSecureCore/Classes/View Controllers/Login View Controllers/OTRAccountMigrationViewController.m similarity index 100% rename from ChatSecure/Classes/View Controllers/Login View Controllers/OTRAccountMigrationViewController.m rename to ChatSecureCore/Classes/View Controllers/Login View Controllers/OTRAccountMigrationViewController.m diff --git a/ChatSecure/Classes/View Controllers/Login View Controllers/OTRBaseLoginViewController.m b/ChatSecureCore/Classes/View Controllers/Login View Controllers/OTRBaseLoginViewController.m similarity index 100% rename from ChatSecure/Classes/View Controllers/Login View Controllers/OTRBaseLoginViewController.m rename to ChatSecureCore/Classes/View Controllers/Login View Controllers/OTRBaseLoginViewController.m diff --git a/ChatSecure/Classes/View Controllers/Login View Controllers/OTRExistingAccountViewController.h b/ChatSecureCore/Classes/View Controllers/Login View Controllers/OTRExistingAccountViewController.h similarity index 100% rename from ChatSecure/Classes/View Controllers/Login View Controllers/OTRExistingAccountViewController.h rename to ChatSecureCore/Classes/View Controllers/Login View Controllers/OTRExistingAccountViewController.h diff --git a/ChatSecure/Classes/View Controllers/Login View Controllers/OTRExistingAccountViewController.m b/ChatSecureCore/Classes/View Controllers/Login View Controllers/OTRExistingAccountViewController.m similarity index 100% rename from ChatSecure/Classes/View Controllers/Login View Controllers/OTRExistingAccountViewController.m rename to ChatSecureCore/Classes/View Controllers/Login View Controllers/OTRExistingAccountViewController.m diff --git a/ChatSecure/Classes/View Controllers/Login View Controllers/OTRLoginHandler.m b/ChatSecureCore/Classes/View Controllers/Login View Controllers/OTRLoginHandler.m similarity index 100% rename from ChatSecure/Classes/View Controllers/Login View Controllers/OTRLoginHandler.m rename to ChatSecureCore/Classes/View Controllers/Login View Controllers/OTRLoginHandler.m diff --git a/ChatSecure/Classes/View Controllers/Login View Controllers/OTRXLFormCreator.m b/ChatSecureCore/Classes/View Controllers/Login View Controllers/OTRXLFormCreator.m similarity index 100% rename from ChatSecure/Classes/View Controllers/Login View Controllers/OTRXLFormCreator.m rename to ChatSecureCore/Classes/View Controllers/Login View Controllers/OTRXLFormCreator.m diff --git a/ChatSecure/Classes/View Controllers/Login View Controllers/OTRXMPPCreateAccountHandler.m b/ChatSecureCore/Classes/View Controllers/Login View Controllers/OTRXMPPCreateAccountHandler.m similarity index 99% rename from ChatSecure/Classes/View Controllers/Login View Controllers/OTRXMPPCreateAccountHandler.m rename to ChatSecureCore/Classes/View Controllers/Login View Controllers/OTRXMPPCreateAccountHandler.m index 2434e9403..f0cddc5a3 100644 --- a/ChatSecure/Classes/View Controllers/Login View Controllers/OTRXMPPCreateAccountHandler.m +++ b/ChatSecureCore/Classes/View Controllers/Login View Controllers/OTRXMPPCreateAccountHandler.m @@ -9,6 +9,7 @@ #import "OTRXMPPCreateAccountHandler.h" #import "OTRXMPPManager.h" @import XLForm; +@import CPAProxy; #import "OTRXLFormCreator.h" #import "OTRProtocolManager.h" #import "OTRDatabaseManager.h" diff --git a/ChatSecure/Classes/View Controllers/Login View Controllers/OTRXMPPLoginHandler.m b/ChatSecureCore/Classes/View Controllers/Login View Controllers/OTRXMPPLoginHandler.m similarity index 98% rename from ChatSecure/Classes/View Controllers/Login View Controllers/OTRXMPPLoginHandler.m rename to ChatSecureCore/Classes/View Controllers/Login View Controllers/OTRXMPPLoginHandler.m index 34cf27f95..4a8367e17 100644 --- a/ChatSecure/Classes/View Controllers/Login View Controllers/OTRXMPPLoginHandler.m +++ b/ChatSecureCore/Classes/View Controllers/Login View Controllers/OTRXMPPLoginHandler.m @@ -15,6 +15,7 @@ #import "OTRPasswordGenerator.h" #import "ChatSecureCoreCompat-Swift.h" @import XMPPFramework; +@import CPAProxy; #import "OTRXMPPServerInfo.h" #import "OTRXMPPTorAccount.h" #import "OTRTorManager.h" @@ -93,7 +94,7 @@ - (OTRXMPPAccount *)moveValues:(XLFormDescriptor *)form intoAccount:(OTRXMPPAcco } NSNumber *rememberPassword = [[form formRowWithTag:kOTRXLFormRememberPasswordSwitchTag] value]; - if (rememberPassword) { + if (rememberPassword != nil) { account.rememberPassword = [rememberPassword boolValue]; } else { account.rememberPassword = YES; @@ -109,7 +110,7 @@ - (OTRXMPPAccount *)moveValues:(XLFormDescriptor *)form intoAccount:(OTRXMPPAcco } NSNumber *autologin = [[form formRowWithTag:kOTRXLFormLoginAutomaticallySwitchTag] value]; - if (autologin) { + if (autologin != nil) { account.autologin = [autologin boolValue]; } else { account.autologin = YES; @@ -133,7 +134,7 @@ - (OTRXMPPAccount *)moveValues:(XLFormDescriptor *)form intoAccount:(OTRXMPPAcco account.domain = hostname; - if (port) { + if (port != nil) { account.port = [port intValue]; } @@ -141,7 +142,7 @@ - (OTRXMPPAccount *)moveValues:(XLFormDescriptor *)form intoAccount:(OTRXMPPAcco account.resource = resource; } NSNumber *autofetch = [form formRowWithTag:kOTRXLFormAutomaticURLFetchTag].value; - if (autofetch) { + if (autofetch != nil) { account.disableAutomaticURLFetching = !autofetch.boolValue; } diff --git a/ChatSecure/Classes/View Controllers/Login View Controllers/OTRXMPPServerListViewController.h b/ChatSecureCore/Classes/View Controllers/Login View Controllers/OTRXMPPServerListViewController.h similarity index 100% rename from ChatSecure/Classes/View Controllers/Login View Controllers/OTRXMPPServerListViewController.h rename to ChatSecureCore/Classes/View Controllers/Login View Controllers/OTRXMPPServerListViewController.h diff --git a/ChatSecure/Classes/View Controllers/Login View Controllers/OTRXMPPServerListViewController.m b/ChatSecureCore/Classes/View Controllers/Login View Controllers/OTRXMPPServerListViewController.m similarity index 100% rename from ChatSecure/Classes/View Controllers/Login View Controllers/OTRXMPPServerListViewController.m rename to ChatSecureCore/Classes/View Controllers/Login View Controllers/OTRXMPPServerListViewController.m diff --git a/ChatSecure/Classes/View Controllers/MaybeLaterViewController.swift b/ChatSecureCore/Classes/View Controllers/MaybeLaterViewController.swift similarity index 90% rename from ChatSecure/Classes/View Controllers/MaybeLaterViewController.swift rename to ChatSecureCore/Classes/View Controllers/MaybeLaterViewController.swift index 7c7ecce7e..48eb1b7ca 100644 --- a/ChatSecure/Classes/View Controllers/MaybeLaterViewController.swift +++ b/ChatSecureCore/Classes/View Controllers/MaybeLaterViewController.swift @@ -8,7 +8,6 @@ import UIKit import OTRAssets -import Appirater public class MaybeLaterViewController: UIViewController { @@ -56,7 +55,10 @@ public class MaybeLaterViewController: UIViewController { } @IBAction func reviewButtonPressed(_ sender: Any) { - Appirater.rateApp() + guard let appStoreId = OTRBranding.appStoreID, + let writeReviewURL = URL(string: "https://itunes.apple.com/app/id\(appStoreId)?action=write-review") + else { return } + UIApplication.shared.open(writeReviewURL, options: [:], completionHandler: nil) } @IBAction func fileBugPressed(_ sender: Any) { diff --git a/ChatSecure/Classes/View Controllers/OTRCertificateDomainViewController.h b/ChatSecureCore/Classes/View Controllers/OTRCertificateDomainViewController.h similarity index 100% rename from ChatSecure/Classes/View Controllers/OTRCertificateDomainViewController.h rename to ChatSecureCore/Classes/View Controllers/OTRCertificateDomainViewController.h diff --git a/ChatSecure/Classes/View Controllers/OTRCertificateDomainViewController.m b/ChatSecureCore/Classes/View Controllers/OTRCertificateDomainViewController.m similarity index 100% rename from ChatSecure/Classes/View Controllers/OTRCertificateDomainViewController.m rename to ChatSecureCore/Classes/View Controllers/OTRCertificateDomainViewController.m diff --git a/ChatSecure/Classes/View Controllers/OTRCertificatesViewController.h b/ChatSecureCore/Classes/View Controllers/OTRCertificatesViewController.h similarity index 100% rename from ChatSecure/Classes/View Controllers/OTRCertificatesViewController.h rename to ChatSecureCore/Classes/View Controllers/OTRCertificatesViewController.h diff --git a/ChatSecure/Classes/View Controllers/OTRCertificatesViewController.m b/ChatSecureCore/Classes/View Controllers/OTRCertificatesViewController.m similarity index 98% rename from ChatSecure/Classes/View Controllers/OTRCertificatesViewController.m rename to ChatSecureCore/Classes/View Controllers/OTRCertificatesViewController.m index 1aab5bc81..4681bcfc6 100644 --- a/ChatSecure/Classes/View Controllers/OTRCertificatesViewController.m +++ b/ChatSecureCore/Classes/View Controllers/OTRCertificatesViewController.m @@ -101,7 +101,7 @@ - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(N cell.textLabel.text = [certificateHashes[indexPath.row] stringByReplacingOccurrencesOfString:@" " withString:@":"]; cell.textLabel.font = [UIFont systemFontOfSize:10.0]; - cell.detailTextLabel.text = @"SHA256"; + cell.detailTextLabel.text = NSLocalizedString(@"SHA256", @""); cell.selectionStyle = UITableViewCellSelectionStyleNone; diff --git a/ChatSecure/Classes/View Controllers/OTRChooseAccountViewController.m b/ChatSecureCore/Classes/View Controllers/OTRChooseAccountViewController.m similarity index 100% rename from ChatSecure/Classes/View Controllers/OTRChooseAccountViewController.m rename to ChatSecureCore/Classes/View Controllers/OTRChooseAccountViewController.m diff --git a/ChatSecure/Classes/View Controllers/OTRComposeGroupViewController.swift b/ChatSecureCore/Classes/View Controllers/OTRComposeGroupViewController.swift similarity index 99% rename from ChatSecure/Classes/View Controllers/OTRComposeGroupViewController.swift rename to ChatSecureCore/Classes/View Controllers/OTRComposeGroupViewController.swift index fccbee3ed..52c246c19 100644 --- a/ChatSecure/Classes/View Controllers/OTRComposeGroupViewController.swift +++ b/ChatSecureCore/Classes/View Controllers/OTRComposeGroupViewController.swift @@ -35,8 +35,6 @@ open class OTRComposeGroupViewController: UIViewController, UICollectionViewDele override open func viewDidLoad() { super.viewDidLoad() - self.automaticallyAdjustsScrollViewInsets = false - let flowLayout = LeftAlignedCollectionViewFlowLayout() flowLayout.sectionInset = UIEdgeInsets(top: 10, left: 10, bottom: 10, right: 10) collectionView.collectionViewLayout = flowLayout diff --git a/ChatSecure/Classes/View Controllers/OTRComposeViewController.m b/ChatSecureCore/Classes/View Controllers/OTRComposeViewController.m similarity index 98% rename from ChatSecure/Classes/View Controllers/OTRComposeViewController.m rename to ChatSecureCore/Classes/View Controllers/OTRComposeViewController.m index 1bd1ba148..9315093fd 100644 --- a/ChatSecure/Classes/View Controllers/OTRComposeViewController.m +++ b/ChatSecureCore/Classes/View Controllers/OTRComposeViewController.m @@ -97,7 +97,11 @@ - (void)viewDidLoad [self.view addSubview:self.tableView]; self.tableViewHeader = [[OTRVerticalStackView alloc] init]; - [self.tableViewHeader setBackgroundColor:UIColor.groupTableViewBackgroundColor]; + if (@available(iOS 13.0, *)) { + [self.tableViewHeader setBackgroundColor:UIColor.systemGroupedBackgroundColor]; + } else { + [self.tableViewHeader setBackgroundColor:UIColor.groupTableViewBackgroundColor]; + } self.tableView.tableHeaderView = self.tableViewHeader; // Add the "Add friends" button @@ -229,7 +233,7 @@ - (void)setupSearchController { self.searchController = [[UISearchController alloc] initWithSearchResultsController:searchResultsController]; self.searchController.searchResultsUpdater = self; - self.searchController.dimsBackgroundDuringPresentation = NO; + self.searchController.obscuresBackgroundDuringPresentation = NO; self.searchController.hidesNavigationBarDuringPresentation = NO; self.searchController.delegate = self; @@ -504,7 +508,7 @@ - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath } } -- (nullable NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath { +- (UISwipeActionsConfiguration *)tableView:(UITableView *)tableView trailingSwipeActionsConfigurationForRowAtIndexPath:(NSIndexPath *)indexPath { NSIndexPath *databaseIndexPath = [NSIndexPath indexPathForRow:indexPath.row inSection:0]; id thread = [self threadOwnerAtIndexPath:databaseIndexPath withTableView:tableView]; if (!thread) { return nil; } @@ -538,7 +542,7 @@ - (void)addBuddy:(NSArray *)accountsAbleToAddBuddies - (void) joinGroup:(id)sender { UIAlertController *alertController = [UIAlertController alertControllerWithTitle:JOIN_GROUP_STRING() message:nil preferredStyle:UIAlertControllerStyleAlert]; [alertController addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) { - textField.placeholder = @"room@conference.example.com"; + textField.placeholder = NSLocalizedString(@"room@conference.example.com", @"conference room JID"); }]; [alertController addTextFieldWithConfigurationHandler:^(UITextField * _Nonnull textField) { textField.placeholder = [NSString stringWithFormat:@"%@ (%@)", PASSWORD_STRING(), OPTIONAL_STRING()]; diff --git a/ChatSecure/Classes/View Controllers/OTRConversationViewController.m b/ChatSecureCore/Classes/View Controllers/OTRConversationViewController.m similarity index 99% rename from ChatSecure/Classes/View Controllers/OTRConversationViewController.m rename to ChatSecureCore/Classes/View Controllers/OTRConversationViewController.m index fdc440506..896264a3a 100644 --- a/ChatSecure/Classes/View Controllers/OTRConversationViewController.m +++ b/ChatSecureCore/Classes/View Controllers/OTRConversationViewController.m @@ -457,7 +457,7 @@ - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPa // return UITableViewCellEditingStyleDelete; //} -- (nullable NSArray *)tableView:(UITableView *)tableView editActionsForRowAtIndexPath:(NSIndexPath *)indexPath { +- (UISwipeActionsConfiguration *)tableView:(UITableView *)tableView trailingSwipeActionsConfigurationForRowAtIndexPath:(NSIndexPath *)indexPath { id thread = [self threadForIndexPath:indexPath]; return [UITableView editActionsForThread:thread deleteActionAlsoRemovesFromRoster:NO connection:OTRDatabaseManager.shared.writeConnection]; } diff --git a/ChatSecure/Classes/View Controllers/OTRDatabaseUnlockViewController.m b/ChatSecureCore/Classes/View Controllers/OTRDatabaseUnlockViewController.m similarity index 100% rename from ChatSecure/Classes/View Controllers/OTRDatabaseUnlockViewController.m rename to ChatSecureCore/Classes/View Controllers/OTRDatabaseUnlockViewController.m diff --git a/ChatSecure/Classes/View Controllers/OTRDoubleSettingViewController.h b/ChatSecureCore/Classes/View Controllers/OTRDoubleSettingViewController.h similarity index 100% rename from ChatSecure/Classes/View Controllers/OTRDoubleSettingViewController.h rename to ChatSecureCore/Classes/View Controllers/OTRDoubleSettingViewController.h diff --git a/ChatSecure/Classes/View Controllers/OTRDoubleSettingViewController.m b/ChatSecureCore/Classes/View Controllers/OTRDoubleSettingViewController.m similarity index 100% rename from ChatSecure/Classes/View Controllers/OTRDoubleSettingViewController.m rename to ChatSecureCore/Classes/View Controllers/OTRDoubleSettingViewController.m diff --git a/ChatSecure/Classes/View Controllers/OTRIntSettingViewController.h b/ChatSecureCore/Classes/View Controllers/OTRIntSettingViewController.h similarity index 100% rename from ChatSecure/Classes/View Controllers/OTRIntSettingViewController.h rename to ChatSecureCore/Classes/View Controllers/OTRIntSettingViewController.h diff --git a/ChatSecure/Classes/View Controllers/OTRIntSettingViewController.m b/ChatSecureCore/Classes/View Controllers/OTRIntSettingViewController.m similarity index 100% rename from ChatSecure/Classes/View Controllers/OTRIntSettingViewController.m rename to ChatSecureCore/Classes/View Controllers/OTRIntSettingViewController.m diff --git a/ChatSecure/Classes/View Controllers/OTRInviteViewController.m b/ChatSecureCore/Classes/View Controllers/OTRInviteViewController.m similarity index 99% rename from ChatSecure/Classes/View Controllers/OTRInviteViewController.m rename to ChatSecureCore/Classes/View Controllers/OTRInviteViewController.m index a3724a537..56b6e6340 100644 --- a/ChatSecure/Classes/View Controllers/OTRInviteViewController.m +++ b/ChatSecureCore/Classes/View Controllers/OTRInviteViewController.m @@ -140,7 +140,7 @@ - (void)updateViewConstraints [super updateViewConstraints]; if (!self.addedConstraints) { - [self.titleImageView autoPinToTopLayoutGuideOfViewController:self withInset:kOTRInvitePadding]; + [self.titleImageView autoPinEdgeToSuperviewEdge:ALEdgeTop withInset:kOTRInvitePadding]; [self.titleImageView autoMatchDimension:ALDimensionHeight toDimension:ALDimensionHeight ofView:self.view withMultiplier:0.4]; [self.titleImageView autoAlignAxisToSuperviewAxis:ALAxisVertical]; diff --git a/ChatSecure/Classes/View Controllers/OTRLanguageListSettingViewController.m b/ChatSecureCore/Classes/View Controllers/OTRLanguageListSettingViewController.m similarity index 100% rename from ChatSecure/Classes/View Controllers/OTRLanguageListSettingViewController.m rename to ChatSecureCore/Classes/View Controllers/OTRLanguageListSettingViewController.m diff --git a/ChatSecure/Classes/View Controllers/OTRListSettingViewController.m b/ChatSecureCore/Classes/View Controllers/OTRListSettingViewController.m similarity index 100% rename from ChatSecure/Classes/View Controllers/OTRListSettingViewController.m rename to ChatSecureCore/Classes/View Controllers/OTRListSettingViewController.m diff --git a/ChatSecure/Classes/View Controllers/OTRLogListViewController.swift b/ChatSecureCore/Classes/View Controllers/OTRLogListViewController.swift similarity index 94% rename from ChatSecure/Classes/View Controllers/OTRLogListViewController.swift rename to ChatSecureCore/Classes/View Controllers/OTRLogListViewController.swift index a7e79ed3c..bbbd3d402 100644 --- a/ChatSecure/Classes/View Controllers/OTRLogListViewController.swift +++ b/ChatSecureCore/Classes/View Controllers/OTRLogListViewController.swift @@ -36,9 +36,9 @@ import LumberjackConsole // only allow console log output for debug builds #if DEBUG - debugPrint("Enabling TTY logger...") - DDLog.add(DDTTYLogger.sharedInstance) - DDLogVerbose("TTY logger enabled.") + debugPrint("Enabling os_log logger...") + DDLog.add(DDOSLogger.sharedInstance) + DDLogVerbose("os_log logger enabled.") #endif // allow file-based debug logging if user has enabled it @@ -248,20 +248,24 @@ extension OTRLogListViewController: UITableViewDelegate { } } - public func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? { - let action = UITableViewRowAction(style: .destructive, title: DELETE_STRING()) { (action, indexPath) in + public func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? { + let action = UIContextualAction(style: .destructive, title: DELETE_STRING()) { (action, view, completion) in guard let file = self.file(at: indexPath) else { + completion(false) return } let url = file.fileURL - do { try FileManager.default.removeItem(at: url) self.removeFile(at: indexPath) tableView.deleteRows(at: [indexPath], with: .automatic) - } catch { } + completion(true) + } catch { + completion(false) + } } - return [action] + let configuration = UISwipeActionsConfiguration(actions: [action]) + return configuration } } diff --git a/ChatSecure/Classes/View Controllers/OTRMessagesCollectionViewFlowLayout.swift b/ChatSecureCore/Classes/View Controllers/OTRMessagesCollectionViewFlowLayout.swift similarity index 100% rename from ChatSecure/Classes/View Controllers/OTRMessagesCollectionViewFlowLayout.swift rename to ChatSecureCore/Classes/View Controllers/OTRMessagesCollectionViewFlowLayout.swift diff --git a/ChatSecure/Classes/View Controllers/OTRMessagesHoldTalkViewController.m b/ChatSecureCore/Classes/View Controllers/OTRMessagesHoldTalkViewController.m similarity index 98% rename from ChatSecure/Classes/View Controllers/OTRMessagesHoldTalkViewController.m rename to ChatSecureCore/Classes/View Controllers/OTRMessagesHoldTalkViewController.m index 4d73f55f3..7d1e8504a 100644 --- a/ChatSecure/Classes/View Controllers/OTRMessagesHoldTalkViewController.m +++ b/ChatSecureCore/Classes/View Controllers/OTRMessagesHoldTalkViewController.m @@ -269,7 +269,7 @@ - (void)didBeginTouch:(OTRHoldToTalkView *)view UIAlertController *alert = [UIAlertController alertControllerWithTitle:Microphone_Disabled() message:Microphone_Reenable_Please() preferredStyle:UIAlertControllerStyleAlert]; UIAlertAction *fix = [UIAlertAction actionWithTitle:Enable_String() style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) { NSURL *settings = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; - [[UIApplication sharedApplication] openURL:settings]; + [[UIApplication sharedApplication] open:settings]; }]; UIAlertAction *cancel = [UIAlertAction actionWithTitle:CANCEL_STRING() style:UIAlertActionStyleCancel handler:nil]; [alert addAction:fix]; @@ -283,8 +283,7 @@ - (void)didBeginTouch:(OTRHoldToTalkView *)view - (void)view:(OTRHoldToTalkView *)view touchDidMoveToPointInWindow:(CGPoint)point { - UIWindow *mainWindow = [[UIApplication sharedApplication] keyWindow]; - CGPoint poinInView = [self.view convertPoint:point fromView:mainWindow]; + CGPoint poinInView = [self.view convertPoint:point fromView:self.view.window]; CGPoint trashButtonCenter = [self centerOfview:self.trashView.trashButton inView:self.view]; CGPoint holdToTalkCenter = [self centerOfview:self.hold2TalkButton inView:self.view]; diff --git a/ChatSecure/Classes/View Controllers/OTRMessagesViewController+RoomOperations.swift b/ChatSecureCore/Classes/View Controllers/OTRMessagesViewController+RoomOperations.swift similarity index 100% rename from ChatSecure/Classes/View Controllers/OTRMessagesViewController+RoomOperations.swift rename to ChatSecureCore/Classes/View Controllers/OTRMessagesViewController+RoomOperations.swift diff --git a/ChatSecure/Classes/View Controllers/OTRMessagesViewController+SupplementaryViews.swift b/ChatSecureCore/Classes/View Controllers/OTRMessagesViewController+SupplementaryViews.swift similarity index 100% rename from ChatSecure/Classes/View Controllers/OTRMessagesViewController+SupplementaryViews.swift rename to ChatSecureCore/Classes/View Controllers/OTRMessagesViewController+SupplementaryViews.swift diff --git a/ChatSecure/Classes/View Controllers/OTRMessagesViewController.m b/ChatSecureCore/Classes/View Controllers/OTRMessagesViewController.m similarity index 97% rename from ChatSecure/Classes/View Controllers/OTRMessagesViewController.m rename to ChatSecureCore/Classes/View Controllers/OTRMessagesViewController.m index 5c2b66bd5..4cb1b7218 100644 --- a/ChatSecure/Classes/View Controllers/OTRMessagesViewController.m +++ b/ChatSecureCore/Classes/View Controllers/OTRMessagesViewController.m @@ -70,6 +70,11 @@ typedef NS_ENUM(int, OTRDropDownType) { OTRDropDownTypePush = 2 }; +@interface JSQMessagesViewController () // JSQMessagesInputToolbarDelegate +- (void)messagesInputToolbar:(JSQMessagesInputToolbar *)toolbar didPressLeftBarButton:(UIButton *)sender; +- (void)messagesInputToolbar:(JSQMessagesInputToolbar *)toolbar didPressRightBarButton:(UIButton *)sender; +@end + @interface OTRMessagesViewController () { JSQMessagesAvatarImage *_warningAvatarImage; JSQMessagesAvatarImage *_accountAvatarImage; @@ -436,7 +441,8 @@ - (void)setThreadKey:(NSString *)key collection:(NSString *)collection // This is set to nil so the refreshTitleView: method knows to reset username instead of last seen time [self titleView].subtitleLabel.text = nil; - if (![oldKey isEqualToString:key] || ![oldCollection isEqualToString:collection]) { + if (key && collection && + (![oldKey isEqualToString:key] || ![oldCollection isEqualToString:collection])) { [self saveCurrentMessageText:self.inputToolbar.contentView.textView.text threadKey:oldKey colleciton:oldCollection]; self.inputToolbar.contentView.textView.text = nil; [self receivedTextViewChanged:self.inputToolbar.contentView.textView]; @@ -444,7 +450,9 @@ - (void)setThreadKey:(NSString *)key collection:(NSString *)collection [self.supplementaryViewHandler removeAllSupplementaryViews]; - [self.viewHandler.keyCollectionObserver stopObserving:oldKey collection:oldCollection]; + if (oldKey && oldCollection) { + [self.viewHandler.keyCollectionObserver stopObserving:oldKey collection:oldCollection]; + } if (self.threadKey && self.threadCollection) { [self.viewHandler.keyCollectionObserver observe:self.threadKey collection:self.threadCollection]; [self updateViewWithKey:self.threadKey collection:self.threadCollection]; @@ -1094,7 +1102,7 @@ - (void)showDropdownWithTitle:(NSString *)title buttons:(NSArray *)buttons anima [self.buttonDropdownView autoSetDimension:ALDimensionHeight toSize:height]; [self.buttonDropdownView autoPinEdgeToSuperviewEdge:ALEdgeLeading]; [self.buttonDropdownView autoPinEdgeToSuperviewEdge:ALEdgeTrailing]; - self.buttonDropdownView.topLayoutConstraint = [self.buttonDropdownView autoPinToTopLayoutGuideOfViewController:self withInset:height*-1]; + self.buttonDropdownView.topLayoutConstraint = [self.buttonDropdownView autoPinEdgeToSuperviewEdge:ALEdgeTop withInset:height*-1]; [self.buttonDropdownView layoutIfNeeded]; @@ -1473,6 +1481,16 @@ - (UICollectionViewCell *)collectionView:(JSQMessagesCollectionView *)collection return cell; } +- (UIContextMenuConfiguration *)collectionView:(UICollectionView *)collectionView contextMenuConfigurationForItemAtIndexPath:(NSIndexPath *)indexPath point:(CGPoint)point API_AVAILABLE(ios(13.0)) { + return [UIContextMenuConfiguration configurationWithIdentifier:nil previewProvider:nil actionProvider:^UIMenu * _Nullable(NSArray * _Nonnull suggestedActions) { + UIAction *delete = [UIAction actionWithTitle:DELETE_STRING() image:nil identifier:nil handler:^(__kindof UIAction * _Nonnull action) { + [self deleteMessageAtIndexPath:indexPath]; + }]; + UIMenu *menu = [UIMenu menuWithTitle:@"" children:@[delete]]; + return menu; + }]; +} + - (BOOL)collectionView:(UICollectionView *)collectionView canPerformAction:(SEL)action forItemAtIndexPath:(NSIndexPath *)indexPath withSender:(id)sender { if (action == @selector(delete:)) { @@ -2174,7 +2192,7 @@ - (void)didReceiveChanges:(OTRYapViewHandler *)handler sectionChanges:(NSArray { Set(allCases.map { $0.rawValue }) } var emoji: String { switch self { case .small: @@ -181,21 +188,25 @@ public class PurchaseViewController: UIViewController { extension PurchaseViewController: SKProductsRequestDelegate { public func productsRequest(_ request: SKProductsRequest, didReceive response: SKProductsResponse) { - response.products.forEach { - guard let product = $0.product else { - DDLogWarn("Unrecognized product: \($0)") - return + DispatchQueue.main.async { + response.products.forEach { + guard let product = $0.product else { + DDLogWarn("Unrecognized product: \($0)") + return + } + self.products[product] = $0 + DDLogInfo("Product \"\($0.localizedTitle)\" (\($0.productIdentifier)): \($0.price.floatValue)") } - products[product] = $0 - DDLogInfo("Product \"\($0.localizedTitle)\" (\($0.productIdentifier)): \($0.price.floatValue)") + self.refreshMoneyButtons() + MBProgressHUD.hide(for: self.view, animated: true) } - refreshMoneyButtons() - MBProgressHUD.hide(for: self.view, animated: true) } public func request(_ request: SKRequest, didFailWithError error: Error) { - DDLogError("Error loading products: \(error.localizedDescription)") - MBProgressHUD.hide(for: self.view, animated: true) + DispatchQueue.main.async { + DDLogError("Error loading products: \(error.localizedDescription)") + MBProgressHUD.hide(for: self.view, animated: true) + } } } diff --git a/ChatSecure/Classes/Views/AddFriendsView.swift b/ChatSecureCore/Classes/Views/AddFriendsView.swift similarity index 100% rename from ChatSecure/Classes/Views/AddFriendsView.swift rename to ChatSecureCore/Classes/Views/AddFriendsView.swift diff --git a/ChatSecure/Classes/Views/Cells/HTMLPreviewView.swift b/ChatSecureCore/Classes/Views/Cells/HTMLPreviewView.swift similarity index 100% rename from ChatSecure/Classes/Views/Cells/HTMLPreviewView.swift rename to ChatSecureCore/Classes/Views/Cells/HTMLPreviewView.swift diff --git a/ChatSecure/Classes/Views/Cells/MediaDownloadView.swift b/ChatSecureCore/Classes/Views/Cells/MediaDownloadView.swift similarity index 100% rename from ChatSecure/Classes/Views/Cells/MediaDownloadView.swift rename to ChatSecureCore/Classes/Views/Cells/MediaDownloadView.swift diff --git a/ChatSecure/Classes/Views/Cells/OMEMODeviceFingerprintCell.swift b/ChatSecureCore/Classes/Views/Cells/OMEMODeviceFingerprintCell.swift similarity index 100% rename from ChatSecure/Classes/Views/Cells/OMEMODeviceFingerprintCell.swift rename to ChatSecureCore/Classes/Views/Cells/OMEMODeviceFingerprintCell.swift diff --git a/ChatSecure/Classes/Views/Cells/OTRAccountTableViewCell.h b/ChatSecureCore/Classes/Views/Cells/OTRAccountTableViewCell.h similarity index 100% rename from ChatSecure/Classes/Views/Cells/OTRAccountTableViewCell.h rename to ChatSecureCore/Classes/Views/Cells/OTRAccountTableViewCell.h diff --git a/ChatSecure/Classes/Views/Cells/OTRAccountTableViewCell.m b/ChatSecureCore/Classes/Views/Cells/OTRAccountTableViewCell.m similarity index 100% rename from ChatSecure/Classes/Views/Cells/OTRAccountTableViewCell.m rename to ChatSecureCore/Classes/Views/Cells/OTRAccountTableViewCell.m diff --git a/ChatSecure/Classes/Views/Cells/OTRBuddyApprovalCell.m b/ChatSecureCore/Classes/Views/Cells/OTRBuddyApprovalCell.m similarity index 100% rename from ChatSecure/Classes/Views/Cells/OTRBuddyApprovalCell.m rename to ChatSecureCore/Classes/Views/Cells/OTRBuddyApprovalCell.m diff --git a/ChatSecure/Classes/Views/Cells/OTRBuddyImageCell.m b/ChatSecureCore/Classes/Views/Cells/OTRBuddyImageCell.m similarity index 100% rename from ChatSecure/Classes/Views/Cells/OTRBuddyImageCell.m rename to ChatSecureCore/Classes/Views/Cells/OTRBuddyImageCell.m diff --git a/ChatSecure/Classes/Views/Cells/OTRBuddyInfoCell.m b/ChatSecureCore/Classes/Views/Cells/OTRBuddyInfoCell.m similarity index 81% rename from ChatSecure/Classes/Views/Cells/OTRBuddyInfoCell.m rename to ChatSecureCore/Classes/Views/Cells/OTRBuddyInfoCell.m index a0559f6db..f7857e00b 100644 --- a/ChatSecure/Classes/Views/Cells/OTRBuddyInfoCell.m +++ b/ChatSecureCore/Classes/Views/Cells/OTRBuddyInfoCell.m @@ -23,10 +23,29 @@ @interface OTRBuddyInfoCell () @property (nonatomic, strong) UILabel *identifierLabel; @property (nonatomic, strong) UILabel *accountLabel; +@property (nonatomic, strong, readonly) UIColor *primaryTextColor; +@property (nonatomic, strong, readonly) UIColor *subtitleTextColor; + @end @implementation OTRBuddyInfoCell +- (UIColor *) primaryTextColor { + if (@available(iOS 13.0, *)) { + return [UIColor labelColor]; + } else { + return [UIColor darkTextColor]; + } +} + +- (UIColor *) subtitleTextColor { + if (@available(iOS 13.0, *)) { + return [UIColor systemGray3Color]; + } else { + return [UIColor lightGrayColor]; + } +} + - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) { @@ -34,11 +53,11 @@ - (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reus self.nameLabel.font = [UIFont preferredFontForTextStyle:UIFontTextStyleBody]; self.identifierLabel = [[UILabel alloc] initForAutoLayout]; - self.identifierLabel.textColor = [UIColor darkTextColor]; + self.identifierLabel.textColor = self.primaryTextColor; self.identifierLabel.font = [UIFont preferredFontForTextStyle:UIFontTextStyleCaption1]; self.accountLabel = [[UILabel alloc] initForAutoLayout]; - self.accountLabel.textColor = [UIColor lightGrayColor]; + self.accountLabel.textColor = self.subtitleTextColor; self.accountLabel.font = [UIFont preferredFontForTextStyle:UIFontTextStyleCaption2]; NSArray *labels = @[self.nameLabel, self.identifierLabel, self.accountLabel]; @@ -74,9 +93,9 @@ - (void)setThread:(id)thread account:(nullable OTRAccount*)accou } self.identifierLabel.text = identifier; - UIColor *textColor = [UIColor darkTextColor]; + UIColor *textColor = self.primaryTextColor; if ([thread isArchived]) { - textColor = [UIColor lightGrayColor]; + textColor = self.subtitleTextColor; } [@[self.nameLabel, self.identifierLabel] enumerateObjectsUsingBlock:^(UILabel * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) { obj.textColor = textColor; @@ -107,9 +126,9 @@ - (void)updateConstraints - (void)prepareForReuse { [super prepareForReuse]; - self.nameLabel.textColor = [UIColor blackColor]; - self.identifierLabel.textColor = [UIColor darkTextColor]; - self.accountLabel.textColor = [UIColor lightGrayColor]; + self.nameLabel.textColor = self.primaryTextColor; + self.identifierLabel.textColor = self.primaryTextColor; + self.accountLabel.textColor = self.subtitleTextColor; } - (void) infoButtonPressed:(UIButton*)sender { diff --git a/ChatSecure/Classes/Views/Cells/OTRBuddyInfoCheckableCell.swift b/ChatSecureCore/Classes/Views/Cells/OTRBuddyInfoCheckableCell.swift similarity index 100% rename from ChatSecure/Classes/Views/Cells/OTRBuddyInfoCheckableCell.swift rename to ChatSecureCore/Classes/Views/Cells/OTRBuddyInfoCheckableCell.swift diff --git a/ChatSecure/Classes/Views/Cells/OTRComposeGroupBuddyCell.swift b/ChatSecureCore/Classes/Views/Cells/OTRComposeGroupBuddyCell.swift similarity index 100% rename from ChatSecure/Classes/Views/Cells/OTRComposeGroupBuddyCell.swift rename to ChatSecureCore/Classes/Views/Cells/OTRComposeGroupBuddyCell.swift diff --git a/ChatSecure/Classes/Views/Cells/OTRConversationCell.h b/ChatSecureCore/Classes/Views/Cells/OTRConversationCell.h similarity index 100% rename from ChatSecure/Classes/Views/Cells/OTRConversationCell.h rename to ChatSecureCore/Classes/Views/Cells/OTRConversationCell.h diff --git a/ChatSecure/Classes/Views/Cells/OTRConversationCell.m b/ChatSecureCore/Classes/Views/Cells/OTRConversationCell.m similarity index 96% rename from ChatSecure/Classes/Views/Cells/OTRConversationCell.m rename to ChatSecureCore/Classes/Views/Cells/OTRConversationCell.m index 23dfdca4a..7d1d019e4 100644 --- a/ChatSecure/Classes/Views/Cells/OTRConversationCell.m +++ b/ChatSecureCore/Classes/Views/Cells/OTRConversationCell.m @@ -137,7 +137,11 @@ - (void)setThread:(id )thread if (unreadMessages > 0) { //unread message self.nameLabel.font = [UIFont boldSystemFontOfSize:fontSize]; - self.nameLabel.textColor = [UIColor blackColor]; + if (@available(iOS 13.0, *)) { + self.nameLabel.textColor = UIColor.labelColor; + } else { + self.nameLabel.textColor = UIColor.blackColor; + } } else { self.nameLabel.font = [UIFont systemFontOfSize:fontSize]; self.nameLabel.textColor = [UIColor colorWithWhite:.45 alpha:1.0]; @@ -162,13 +166,13 @@ - (NSString *)dateString:(NSDate *)messageDate NSTimeInterval timeInterval = fabs([messageDate timeIntervalSinceNow]); NSString * dateString = nil; if (timeInterval < 60){ - dateString = @"Now"; + dateString = NSLocalizedString(@"Now", @""); } else if (timeInterval < 60*60) { int minsInt = timeInterval/60; - NSString * minString = @"mins"; + NSString * minString = NSLocalizedString(@"mins", @""); if (minsInt == 1) { - minString = @"min"; + minString = NSLocalizedString(@"min", @""); } dateString = [NSString stringWithFormat:@"%d %@",minsInt,minString]; } diff --git a/ChatSecure/Classes/Views/Cells/OTRInLineTextEditTableViewCell.h b/ChatSecureCore/Classes/Views/Cells/OTRInLineTextEditTableViewCell.h similarity index 100% rename from ChatSecure/Classes/Views/Cells/OTRInLineTextEditTableViewCell.h rename to ChatSecureCore/Classes/Views/Cells/OTRInLineTextEditTableViewCell.h diff --git a/ChatSecure/Classes/Views/Cells/OTRInLineTextEditTableViewCell.m b/ChatSecureCore/Classes/Views/Cells/OTRInLineTextEditTableViewCell.m similarity index 100% rename from ChatSecure/Classes/Views/Cells/OTRInLineTextEditTableViewCell.m rename to ChatSecureCore/Classes/Views/Cells/OTRInLineTextEditTableViewCell.m diff --git a/ChatSecure/Classes/Views/Cells/OTRMessageNewDeviceCell.swift b/ChatSecureCore/Classes/Views/Cells/OTRMessageNewDeviceCell.swift similarity index 100% rename from ChatSecure/Classes/Views/Cells/OTRMessageNewDeviceCell.swift rename to ChatSecureCore/Classes/Views/Cells/OTRMessageNewDeviceCell.swift diff --git a/ChatSecure/Classes/Views/Cells/OTRMessageUnknownSenderCell.swift b/ChatSecureCore/Classes/Views/Cells/OTRMessageUnknownSenderCell.swift similarity index 100% rename from ChatSecure/Classes/Views/Cells/OTRMessageUnknownSenderCell.swift rename to ChatSecureCore/Classes/Views/Cells/OTRMessageUnknownSenderCell.swift diff --git a/ChatSecure/Classes/Views/Cells/OTRSettingTableViewCell.h b/ChatSecureCore/Classes/Views/Cells/OTRSettingTableViewCell.h similarity index 100% rename from ChatSecure/Classes/Views/Cells/OTRSettingTableViewCell.h rename to ChatSecureCore/Classes/Views/Cells/OTRSettingTableViewCell.h diff --git a/ChatSecure/Classes/Views/Cells/OTRSettingTableViewCell.m b/ChatSecureCore/Classes/Views/Cells/OTRSettingTableViewCell.m similarity index 100% rename from ChatSecure/Classes/Views/Cells/OTRSettingTableViewCell.m rename to ChatSecureCore/Classes/Views/Cells/OTRSettingTableViewCell.m diff --git a/ChatSecure/Classes/Views/Cells/OTRStatusMessageCell.h b/ChatSecureCore/Classes/Views/Cells/OTRStatusMessageCell.h similarity index 100% rename from ChatSecure/Classes/Views/Cells/OTRStatusMessageCell.h rename to ChatSecureCore/Classes/Views/Cells/OTRStatusMessageCell.h diff --git a/ChatSecure/Classes/Views/Cells/OTRStatusMessageCell.m b/ChatSecureCore/Classes/Views/Cells/OTRStatusMessageCell.m similarity index 100% rename from ChatSecure/Classes/Views/Cells/OTRStatusMessageCell.m rename to ChatSecureCore/Classes/Views/Cells/OTRStatusMessageCell.m diff --git a/ChatSecure/Classes/Views/Cells/OTRUsernameCell.swift b/ChatSecureCore/Classes/Views/Cells/OTRUsernameCell.swift similarity index 96% rename from ChatSecure/Classes/Views/Cells/OTRUsernameCell.swift rename to ChatSecureCore/Classes/Views/Cells/OTRUsernameCell.swift index 0ce2c3566..567b9a2a7 100644 --- a/ChatSecure/Classes/Views/Cells/OTRUsernameCell.swift +++ b/ChatSecureCore/Classes/Views/Cells/OTRUsernameCell.swift @@ -63,8 +63,13 @@ open class OTRUsernameCell: XLFormBaseCell, UITextFieldDelegate { override open func update() { super.update() self.usernameField.delegate = self - self.usernameLabel.textColor = UIColor.darkText + if #available(iOS 13.0, *) { + self.usernameLabel.textColor = .label + } else { + self.usernameLabel.textColor = .darkText + } + if let value = self.rowDescriptor!.value as? NSString { let (username, domain) = OTRUsernameCell.splitJID(value as String) if username.count > 0 { diff --git a/ChatSecure/Classes/Views/Cells/PushAccountTableViewCell.swift b/ChatSecureCore/Classes/Views/Cells/PushAccountTableViewCell.swift similarity index 100% rename from ChatSecure/Classes/Views/Cells/PushAccountTableViewCell.swift rename to ChatSecureCore/Classes/Views/Cells/PushAccountTableViewCell.swift diff --git a/ChatSecure/Classes/Views/Cells/ServerCapabilityTableViewCell.swift b/ChatSecureCore/Classes/Views/Cells/ServerCapabilityTableViewCell.swift similarity index 100% rename from ChatSecure/Classes/Views/Cells/ServerCapabilityTableViewCell.swift rename to ChatSecureCore/Classes/Views/Cells/ServerCapabilityTableViewCell.swift diff --git a/ChatSecure/Classes/Views/Cells/SingleButtonTableViewCell.swift b/ChatSecureCore/Classes/Views/Cells/SingleButtonTableViewCell.swift similarity index 100% rename from ChatSecure/Classes/Views/Cells/SingleButtonTableViewCell.swift rename to ChatSecureCore/Classes/Views/Cells/SingleButtonTableViewCell.swift diff --git a/ChatSecure/Classes/Views/Cells/TwoButtonTableViewCell.swift b/ChatSecureCore/Classes/Views/Cells/TwoButtonTableViewCell.swift similarity index 100% rename from ChatSecure/Classes/Views/Cells/TwoButtonTableViewCell.swift rename to ChatSecureCore/Classes/Views/Cells/TwoButtonTableViewCell.swift diff --git a/ChatSecure/Classes/Views/Cells/UserInfoProfileCell.swift b/ChatSecureCore/Classes/Views/Cells/UserInfoProfileCell.swift similarity index 100% rename from ChatSecure/Classes/Views/Cells/UserInfoProfileCell.swift rename to ChatSecureCore/Classes/Views/Cells/UserInfoProfileCell.swift diff --git a/ChatSecure/Classes/Views/Cells/XMPPAccountCell.swift b/ChatSecureCore/Classes/Views/Cells/XMPPAccountCell.swift similarity index 100% rename from ChatSecure/Classes/Views/Cells/XMPPAccountCell.swift rename to ChatSecureCore/Classes/Views/Cells/XMPPAccountCell.swift diff --git a/ChatSecure/Classes/Views/Cells/XMPPServerInfoCell.h b/ChatSecureCore/Classes/Views/Cells/XMPPServerInfoCell.h similarity index 100% rename from ChatSecure/Classes/Views/Cells/XMPPServerInfoCell.h rename to ChatSecureCore/Classes/Views/Cells/XMPPServerInfoCell.h diff --git a/ChatSecure/Classes/Views/Cells/XMPPServerInfoCell.m b/ChatSecureCore/Classes/Views/Cells/XMPPServerInfoCell.m similarity index 100% rename from ChatSecure/Classes/Views/Cells/XMPPServerInfoCell.m rename to ChatSecureCore/Classes/Views/Cells/XMPPServerInfoCell.m diff --git a/ChatSecure/Classes/Views/JoinRoomView.swift b/ChatSecureCore/Classes/Views/JoinRoomView.swift similarity index 100% rename from ChatSecure/Classes/Views/JoinRoomView.swift rename to ChatSecureCore/Classes/Views/JoinRoomView.swift diff --git a/ChatSecure/Classes/Views/MigratedBuddyHeaderView.swift b/ChatSecureCore/Classes/Views/MigratedBuddyHeaderView.swift similarity index 100% rename from ChatSecure/Classes/Views/MigratedBuddyHeaderView.swift rename to ChatSecureCore/Classes/Views/MigratedBuddyHeaderView.swift diff --git a/ChatSecure/Classes/Views/MigrationInfoHeaderView.swift b/ChatSecureCore/Classes/Views/MigrationInfoHeaderView.swift similarity index 100% rename from ChatSecure/Classes/Views/MigrationInfoHeaderView.swift rename to ChatSecureCore/Classes/Views/MigrationInfoHeaderView.swift diff --git a/ChatSecure/Classes/Views/OTRAudioControlsView.h b/ChatSecureCore/Classes/Views/OTRAudioControlsView.h similarity index 100% rename from ChatSecure/Classes/Views/OTRAudioControlsView.h rename to ChatSecureCore/Classes/Views/OTRAudioControlsView.h diff --git a/ChatSecure/Classes/Views/OTRAudioControlsView.m b/ChatSecureCore/Classes/Views/OTRAudioControlsView.m similarity index 100% rename from ChatSecure/Classes/Views/OTRAudioControlsView.m rename to ChatSecureCore/Classes/Views/OTRAudioControlsView.m diff --git a/ChatSecure/Classes/Views/OTRAudioTrashView.h b/ChatSecureCore/Classes/Views/OTRAudioTrashView.h similarity index 100% rename from ChatSecure/Classes/Views/OTRAudioTrashView.h rename to ChatSecureCore/Classes/Views/OTRAudioTrashView.h diff --git a/ChatSecure/Classes/Views/OTRAudioTrashView.m b/ChatSecureCore/Classes/Views/OTRAudioTrashView.m similarity index 98% rename from ChatSecure/Classes/Views/OTRAudioTrashView.m rename to ChatSecureCore/Classes/Views/OTRAudioTrashView.m index 2ee155ba2..80876c2e9 100644 --- a/ChatSecure/Classes/Views/OTRAudioTrashView.m +++ b/ChatSecureCore/Classes/Views/OTRAudioTrashView.m @@ -36,7 +36,7 @@ - (instancetype)initWithFrame:(CGRect)frame _trashLabel = [[UILabel alloc] initForAutoLayout]; self.trashLabel.textAlignment = NSTextAlignmentCenter; self.trashLabel.translatesAutoresizingMaskIntoConstraints = NO; - self.trashLabel.text = @"Swipe up to delete"; + self.trashLabel.text = NSLocalizedString(@"Swipe up to delete", @""); CGFloat fontSize = 25; diff --git a/ChatSecure/Classes/Views/OTRButtonView.h b/ChatSecureCore/Classes/Views/OTRButtonView.h similarity index 96% rename from ChatSecure/Classes/Views/OTRButtonView.h rename to ChatSecureCore/Classes/Views/OTRButtonView.h index fb90f4ca3..c6a227fad 100644 --- a/ChatSecure/Classes/Views/OTRButtonView.h +++ b/ChatSecureCore/Classes/Views/OTRButtonView.h @@ -8,8 +8,6 @@ @import UIKit; -@import OTRKit; - NS_ASSUME_NONNULL_BEGIN @interface OTRButtonView : UIView diff --git a/ChatSecure/Classes/Views/OTRButtonView.m b/ChatSecureCore/Classes/Views/OTRButtonView.m similarity index 100% rename from ChatSecure/Classes/Views/OTRButtonView.m rename to ChatSecureCore/Classes/Views/OTRButtonView.m diff --git a/ChatSecure/Classes/Views/OTRCircleButtonView.h b/ChatSecureCore/Classes/Views/OTRCircleButtonView.h similarity index 100% rename from ChatSecure/Classes/Views/OTRCircleButtonView.h rename to ChatSecureCore/Classes/Views/OTRCircleButtonView.h diff --git a/ChatSecure/Classes/Views/OTRCircleButtonView.m b/ChatSecureCore/Classes/Views/OTRCircleButtonView.m similarity index 100% rename from ChatSecure/Classes/Views/OTRCircleButtonView.m rename to ChatSecureCore/Classes/Views/OTRCircleButtonView.m diff --git a/ChatSecure/Classes/Views/OTRCircleView.h b/ChatSecureCore/Classes/Views/OTRCircleView.h similarity index 100% rename from ChatSecure/Classes/Views/OTRCircleView.h rename to ChatSecureCore/Classes/Views/OTRCircleView.h diff --git a/ChatSecure/Classes/Views/OTRCircleView.m b/ChatSecureCore/Classes/Views/OTRCircleView.m similarity index 100% rename from ChatSecure/Classes/Views/OTRCircleView.m rename to ChatSecureCore/Classes/Views/OTRCircleView.m diff --git a/ChatSecure/Classes/Views/OTRColorFadingDotView.h b/ChatSecureCore/Classes/Views/OTRColorFadingDotView.h similarity index 100% rename from ChatSecure/Classes/Views/OTRColorFadingDotView.h rename to ChatSecureCore/Classes/Views/OTRColorFadingDotView.h diff --git a/ChatSecure/Classes/Views/OTRColorFadingDotView.m b/ChatSecureCore/Classes/Views/OTRColorFadingDotView.m similarity index 100% rename from ChatSecure/Classes/Views/OTRColorFadingDotView.m rename to ChatSecureCore/Classes/Views/OTRColorFadingDotView.m diff --git a/ChatSecure/Classes/Views/OTRComposingImageView.h b/ChatSecureCore/Classes/Views/OTRComposingImageView.h similarity index 100% rename from ChatSecure/Classes/Views/OTRComposingImageView.h rename to ChatSecureCore/Classes/Views/OTRComposingImageView.h diff --git a/ChatSecure/Classes/Views/OTRComposingImageView.m b/ChatSecureCore/Classes/Views/OTRComposingImageView.m similarity index 100% rename from ChatSecure/Classes/Views/OTRComposingImageView.m rename to ChatSecureCore/Classes/Views/OTRComposingImageView.m diff --git a/ChatSecure/Classes/Views/OTRHoldToTalkView.h b/ChatSecureCore/Classes/Views/OTRHoldToTalkView.h similarity index 100% rename from ChatSecure/Classes/Views/OTRHoldToTalkView.h rename to ChatSecureCore/Classes/Views/OTRHoldToTalkView.h diff --git a/ChatSecure/Classes/Views/OTRHoldToTalkView.m b/ChatSecureCore/Classes/Views/OTRHoldToTalkView.m similarity index 100% rename from ChatSecure/Classes/Views/OTRHoldToTalkView.m rename to ChatSecureCore/Classes/Views/OTRHoldToTalkView.m diff --git a/ChatSecure/Classes/Views/OTRLockButton.h b/ChatSecureCore/Classes/Views/OTRLockButton.h similarity index 100% rename from ChatSecure/Classes/Views/OTRLockButton.h rename to ChatSecureCore/Classes/Views/OTRLockButton.h diff --git a/ChatSecure/Classes/Views/OTRLockButton.m b/ChatSecureCore/Classes/Views/OTRLockButton.m similarity index 100% rename from ChatSecure/Classes/Views/OTRLockButton.m rename to ChatSecureCore/Classes/Views/OTRLockButton.m diff --git a/ChatSecure/Classes/Views/OTRPauseView.h b/ChatSecureCore/Classes/Views/OTRPauseView.h similarity index 100% rename from ChatSecure/Classes/Views/OTRPauseView.h rename to ChatSecureCore/Classes/Views/OTRPauseView.h diff --git a/ChatSecure/Classes/Views/OTRPauseView.m b/ChatSecureCore/Classes/Views/OTRPauseView.m similarity index 100% rename from ChatSecure/Classes/Views/OTRPauseView.m rename to ChatSecureCore/Classes/Views/OTRPauseView.m diff --git a/ChatSecure/Classes/Views/OTRPlayPauseProgressView.h b/ChatSecureCore/Classes/Views/OTRPlayPauseProgressView.h similarity index 100% rename from ChatSecure/Classes/Views/OTRPlayPauseProgressView.h rename to ChatSecureCore/Classes/Views/OTRPlayPauseProgressView.h diff --git a/ChatSecure/Classes/Views/OTRPlayPauseProgressView.m b/ChatSecureCore/Classes/Views/OTRPlayPauseProgressView.m similarity index 100% rename from ChatSecure/Classes/Views/OTRPlayPauseProgressView.m rename to ChatSecureCore/Classes/Views/OTRPlayPauseProgressView.m diff --git a/ChatSecure/Classes/Views/OTRPlayView.h b/ChatSecureCore/Classes/Views/OTRPlayView.h similarity index 100% rename from ChatSecure/Classes/Views/OTRPlayView.h rename to ChatSecureCore/Classes/Views/OTRPlayView.h diff --git a/ChatSecure/Classes/Views/OTRPlayView.m b/ChatSecureCore/Classes/Views/OTRPlayView.m similarity index 100% rename from ChatSecure/Classes/Views/OTRPlayView.m rename to ChatSecureCore/Classes/Views/OTRPlayView.m diff --git a/ChatSecure/Classes/Views/OTRRememberPasswordView.h b/ChatSecureCore/Classes/Views/OTRRememberPasswordView.h similarity index 100% rename from ChatSecure/Classes/Views/OTRRememberPasswordView.h rename to ChatSecureCore/Classes/Views/OTRRememberPasswordView.h diff --git a/ChatSecure/Classes/Views/OTRRememberPasswordView.m b/ChatSecureCore/Classes/Views/OTRRememberPasswordView.m similarity index 100% rename from ChatSecure/Classes/Views/OTRRememberPasswordView.m rename to ChatSecureCore/Classes/Views/OTRRememberPasswordView.m diff --git a/ChatSecure/Classes/Views/OTRSocialButtonsView.h b/ChatSecureCore/Classes/Views/OTRSocialButtonsView.h similarity index 100% rename from ChatSecure/Classes/Views/OTRSocialButtonsView.h rename to ChatSecureCore/Classes/Views/OTRSocialButtonsView.h diff --git a/ChatSecure/Classes/Views/OTRSocialButtonsView.m b/ChatSecureCore/Classes/Views/OTRSocialButtonsView.m similarity index 100% rename from ChatSecure/Classes/Views/OTRSocialButtonsView.m rename to ChatSecureCore/Classes/Views/OTRSocialButtonsView.m diff --git a/ChatSecure/Classes/Views/OTRTitleSubtitleView.m b/ChatSecureCore/Classes/Views/OTRTitleSubtitleView.m similarity index 100% rename from ChatSecure/Classes/Views/OTRTitleSubtitleView.m rename to ChatSecureCore/Classes/Views/OTRTitleSubtitleView.m diff --git a/ChatSecure/Classes/Views/OTRTouchAndHoldGestureRecognizer.h b/ChatSecureCore/Classes/Views/OTRTouchAndHoldGestureRecognizer.h similarity index 100% rename from ChatSecure/Classes/Views/OTRTouchAndHoldGestureRecognizer.h rename to ChatSecureCore/Classes/Views/OTRTouchAndHoldGestureRecognizer.h diff --git a/ChatSecure/Classes/Views/OTRTouchAndHoldGestureRecognizer.m b/ChatSecureCore/Classes/Views/OTRTouchAndHoldGestureRecognizer.m similarity index 100% rename from ChatSecure/Classes/Views/OTRTouchAndHoldGestureRecognizer.m rename to ChatSecureCore/Classes/Views/OTRTouchAndHoldGestureRecognizer.m diff --git a/ChatSecure/Classes/Views/OTRVerticalStackView.swift b/ChatSecureCore/Classes/Views/OTRVerticalStackView.swift similarity index 100% rename from ChatSecure/Classes/Views/OTRVerticalStackView.swift rename to ChatSecureCore/Classes/Views/OTRVerticalStackView.swift diff --git a/ChatSecureCore/Public/OTREncryptionManager.h b/ChatSecureCore/Public/OTREncryptionManager.h index bffcf2576..41108ac45 100644 --- a/ChatSecureCore/Public/OTREncryptionManager.h +++ b/ChatSecureCore/Public/OTREncryptionManager.h @@ -21,7 +21,7 @@ // along with ChatSecure. If not, see . @import Foundation; -@import OTRKit; +@class OTRKit, OTRDataHandler, OTRFingerprint; extern NSString * _Nonnull const OTRMessageStateDidChangeNotification; extern NSString * _Nonnull const OTRWillStartGeneratingPrivateKeyNotification; diff --git a/ChatSecureCore/Public/OTRMessagesViewController.h b/ChatSecureCore/Public/OTRMessagesViewController.h index f5e49ccd9..e7e45e7b6 100644 --- a/ChatSecureCore/Public/OTRMessagesViewController.h +++ b/ChatSecureCore/Public/OTRMessagesViewController.h @@ -10,7 +10,6 @@ #import "OTRBuddy.h" #import "OTROutgoingMessage.h" -@import OTRKit; @import JSQMessagesViewController; @class OTRBuddy, OTRXMPPManager, OTRXMPPRoom, OTRXMPPAccount, YapDatabaseConnection, OTRYapDatabaseObject, MessagesViewControllerState, DatabaseConnections; diff --git a/ChatSecureCore/Public/OTRPushTLVHandlerProtocols.h b/ChatSecureCore/Public/OTRPushTLVHandlerProtocols.h deleted file mode 100644 index 05d38c8dc..000000000 --- a/ChatSecureCore/Public/OTRPushTLVHandlerProtocols.h +++ /dev/null @@ -1,28 +0,0 @@ -// -// OTRPushTLVHandlerDelegateProtocol.h -// ChatSecure -// -// Created by David Chiles on 9/28/15. -// Copyright © 2015 Chris Ballinger. All rights reserved. -// -@class OTRFingerprint; -@protocol OTRPushTLVHandlerDelegate - -@required -- (void)receivePushData:(NSData *)tlvData - username:(NSString *)username - accountName:(NSString *)accountName - protocolString:(NSString *)protocolString - fingerprint:(OTRFingerprint *)fingerprint; - -@end - -@protocol OTRPushTLVHandlerProtocol - -@required -- (void)sendPushData:(NSData *)data - username:(NSString *)username - accountName:(NSString *)accountName - protocol:(NSString *)protocol; - -@end diff --git a/ChatSecureCore/Public/OTRYapDatabaseObject.h b/ChatSecureCore/Public/OTRYapDatabaseObject.h index 445254964..050efc0ae 100644 --- a/ChatSecureCore/Public/OTRYapDatabaseObject.h +++ b/ChatSecureCore/Public/OTRYapDatabaseObject.h @@ -13,7 +13,7 @@ NS_ASSUME_NONNULL_BEGIN -@protocol OTRYapDatabaseObjectProtocol +@protocol OTRYapDatabaseObjectProtocol @required @property (nonatomic, readonly) NSString *uniqueId; diff --git a/ChatSecureCoreTests/ChatSecureCoreTests.swift b/ChatSecureCoreTests/ChatSecureCoreTests.swift new file mode 100644 index 000000000..d9428a976 --- /dev/null +++ b/ChatSecureCoreTests/ChatSecureCoreTests.swift @@ -0,0 +1,33 @@ +// +// ChatSecureCoreTests.swift +// ChatSecureCoreTests +// +// Created by Chris Ballinger on 10/19/19. +// + +import XCTest +@testable import ChatSecureCore + +class ChatSecureCoreTests: XCTestCase { + + override func setUp() { + // Put setup code here. This method is called before the invocation of each test method in the class. + } + + override func tearDown() { + // Put teardown code here. This method is called after the invocation of each test method in the class. + } + + func testExample() { + // This is an example of a functional test case. + // Use XCTAssert and related functions to verify your tests produce the correct results. + } + + func testPerformanceExample() { + // This is an example of a performance test case. + self.measure { + // Put the code you want to measure the time of here. + } + } + +} diff --git a/ChatSecureCoreTests/Info.plist b/ChatSecureCoreTests/Info.plist new file mode 100644 index 000000000..64d65ca49 --- /dev/null +++ b/ChatSecureCoreTests/Info.plist @@ -0,0 +1,22 @@ + + + + + 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 + + diff --git a/ChatSecureTests/ChatSecureModelTest.swift b/ChatSecureTests/ChatSecureModelTest.swift index 506a9b08f..7ac4520cc 100644 --- a/ChatSecureTests/ChatSecureModelTest.swift +++ b/ChatSecureTests/ChatSecureModelTest.swift @@ -23,11 +23,15 @@ class ChatSecureModelTest: XCTestCase { container.pushDevice = device container.pushAccountKey = accountID - let data = NSKeyedArchiver.archivedData(withRootObject: container) - let newContainer = NSKeyedUnarchiver.unarchiveObject(with: data) as! DeviceContainer - XCTAssertEqual(container.pushAccountKey, newContainer.pushAccountKey) - XCTAssertEqual(container.pushDevice?.registrationID, newContainer.pushDevice!.registrationID) - XCTAssertEqual(container.pushDevice?.id, newContainer.pushDevice!.id) + do { + let data = try NSKeyedArchiver.archivedData(withRootObject: container, requiringSecureCoding: true) + let newContainer = try NSKeyedUnarchiver.unarchivedObject(ofClass: DeviceContainer.self, from: data) + XCTAssertEqual(container.pushAccountKey, newContainer?.pushAccountKey) + XCTAssertEqual(container.pushDevice?.registrationID, newContainer?.pushDevice!.registrationID) + XCTAssertEqual(container.pushDevice?.id, newContainer?.pushDevice!.id) + } catch { + XCTFail("Error \(error)") + } } } diff --git a/Gemfile b/Gemfile index 012616f23..cf0da31e2 100644 --- a/Gemfile +++ b/Gemfile @@ -1,4 +1,6 @@ source "https://rubygems.org" gem 'cocoapods' +# Waiting for https://github.com/CocoaPods/CocoaPods/pull/9470 +# gem 'cocoapods', '1.9.0.beta.2' gem 'fastlane' diff --git a/Gemfile.lock b/Gemfile.lock index db8eb74f1..620043790 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,27 +1,30 @@ GEM remote: https://rubygems.org/ specs: - CFPropertyList (3.0.0) + CFPropertyList (3.0.2) activesupport (4.2.11.1) i18n (~> 0.7) minitest (~> 5.1) thread_safe (~> 0.3, >= 0.3.4) tzinfo (~> 1.1) - addressable (2.6.0) - public_suffix (>= 2.0.2, < 4.0) + addressable (2.7.0) + public_suffix (>= 2.0.2, < 5.0) + algoliasearch (1.27.1) + httpclient (~> 2.8, >= 2.8.3) + json (>= 1.5.1) atomos (0.1.3) - babosa (1.0.2) + babosa (1.0.3) claide (1.0.3) - cocoapods (1.7.5) + cocoapods (1.8.4) activesupport (>= 4.0.2, < 5) claide (>= 1.0.2, < 2.0) - cocoapods-core (= 1.7.5) + cocoapods-core (= 1.8.4) cocoapods-deintegrate (>= 1.0.3, < 2.0) cocoapods-downloader (>= 1.2.2, < 2.0) cocoapods-plugins (>= 1.0.0, < 2.0) cocoapods-search (>= 1.0.0, < 2.0) cocoapods-stats (>= 1.0.0, < 2.0) - cocoapods-trunk (>= 1.3.1, < 2.0) + cocoapods-trunk (>= 1.4.0, < 2.0) cocoapods-try (>= 1.1.0, < 2.0) colored2 (~> 3.1) escape (~> 0.0.4) @@ -30,18 +33,20 @@ GEM molinillo (~> 0.6.6) nap (~> 1.0) ruby-macho (~> 1.4) - xcodeproj (>= 1.10.0, < 2.0) - cocoapods-core (1.7.5) + xcodeproj (>= 1.11.1, < 2.0) + cocoapods-core (1.8.4) activesupport (>= 4.0.2, < 6) + algoliasearch (~> 1.0) + concurrent-ruby (~> 1.1) fuzzy_match (~> 2.0.4) nap (~> 1.0) cocoapods-deintegrate (1.0.4) - cocoapods-downloader (1.2.2) + cocoapods-downloader (1.3.0) cocoapods-plugins (1.0.0) nap cocoapods-search (1.0.0) cocoapods-stats (1.1.0) - cocoapods-trunk (1.3.1) + cocoapods-trunk (1.4.1) nap (>= 0.8, < 2.0) netrc (~> 0.11) cocoapods-try (1.1.0) @@ -58,16 +63,16 @@ GEM dotenv (2.7.5) emoji_regex (1.0.1) escape (0.0.4) - excon (0.66.0) - faraday (0.15.4) + excon (0.71.1) + faraday (0.17.3) multipart-post (>= 1.2, < 3) faraday-cookie_jar (0.0.6) faraday (>= 0.7.4) http-cookie (~> 1.0.0) faraday_middleware (0.13.1) faraday (>= 0.7.4, < 1.0) - fastimage (2.1.5) - fastlane (2.128.1) + fastimage (2.1.7) + fastlane (2.140.0) CFPropertyList (>= 2.3, < 4.0.0) addressable (>= 2.3, < 3.0.0) babosa (>= 1.0.2, < 2.0.0) @@ -76,13 +81,13 @@ GEM commander-fastlane (>= 4.4.6, < 5.0.0) dotenv (>= 2.1.1, < 3.0.0) emoji_regex (>= 0.1, < 2.0) - excon (>= 0.45.0, < 1.0.0) - faraday (~> 0.9) + excon (>= 0.71.0, < 1.0.0) + faraday (~> 0.17) faraday-cookie_jar (~> 0.0.6) - faraday_middleware (~> 0.9) + faraday_middleware (~> 0.13.1) fastimage (>= 2.1.0, < 3.0.0) gh_inspector (>= 1.1.2, < 2.0.0) - google-api-client (>= 0.21.2, < 0.24.0) + google-api-client (>= 0.29.2, < 0.37.0) google-cloud-storage (>= 1.15.0, < 2.0.0) highline (>= 1.7.2, < 2.0.0) json (< 3.0.0) @@ -92,7 +97,7 @@ GEM multipart-post (~> 2.0.0) plist (>= 3.1.0, < 4.0.0) public_suffix (~> 2.0.0) - rubyzip (>= 1.2.2, < 2.0.0) + rubyzip (>= 1.3.0, < 2.0.0) security (= 0.1.3) simctl (~> 1.6.3) slack-notifier (>= 2.0.0, < 3.0.0) @@ -101,52 +106,54 @@ GEM tty-screen (>= 0.6.3, < 1.0.0) tty-spinner (>= 0.8.0, < 1.0.0) word_wrap (~> 1.0.0) - xcodeproj (>= 1.8.1, < 2.0.0) + xcodeproj (>= 1.13.0, < 2.0.0) xcpretty (~> 0.3.0) xcpretty-travis-formatter (>= 0.0.3) fourflusher (2.3.1) fuzzy_match (2.0.4) gh_inspector (1.1.3) - google-api-client (0.23.9) + google-api-client (0.36.4) addressable (~> 2.5, >= 2.5.1) - googleauth (>= 0.5, < 0.7.0) + googleauth (~> 0.9) httpclient (>= 2.8.1, < 3.0) - mime-types (~> 3.0) + mini_mime (~> 1.0) representable (~> 3.0) retriable (>= 2.0, < 4.0) - signet (~> 0.9) - google-cloud-core (1.3.0) + signet (~> 0.12) + google-cloud-core (1.5.0) google-cloud-env (~> 1.0) - google-cloud-env (1.2.0) + google-cloud-errors (~> 1.0) + google-cloud-env (1.3.0) faraday (~> 0.11) - google-cloud-storage (1.16.0) + google-cloud-errors (1.0.0) + google-cloud-storage (1.25.1) + addressable (~> 2.5) digest-crc (~> 0.4) - google-api-client (~> 0.23) + google-api-client (~> 0.33) google-cloud-core (~> 1.2) - googleauth (>= 0.6.2, < 0.10.0) - googleauth (0.6.7) + googleauth (~> 0.9) + mini_mime (~> 1.0) + googleauth (0.10.0) faraday (~> 0.12) jwt (>= 1.4, < 3.0) memoist (~> 0.16) multi_json (~> 1.11) os (>= 0.9, < 2.0) - signet (~> 0.7) + signet (~> 0.12) highline (1.7.10) http-cookie (1.0.3) domain_name (~> 0.5) httpclient (2.8.3) i18n (0.9.5) concurrent-ruby (~> 1.0) - json (2.2.0) + json (2.3.0) jwt (2.1.0) - memoist (0.16.0) - mime-types (3.2.2) - mime-types-data (~> 3.2015) - mime-types-data (3.2019.0331) - mini_magick (4.9.5) - minitest (5.11.3) + memoist (0.16.2) + mini_magick (4.10.1) + mini_mime (1.0.2) + minitest (5.14.0) molinillo (0.6.6) - multi_json (1.13.1) + multi_json (1.14.1) multi_xml (0.6.0) multipart-post (2.0.0) nanaimo (0.2.6) @@ -163,14 +170,14 @@ GEM retriable (3.1.2) rouge (2.0.7) ruby-macho (1.4.0) - rubyzip (1.2.3) + rubyzip (1.3.0) security (0.1.3) - signet (0.11.0) + signet (0.12.0) addressable (~> 2.3) faraday (~> 0.9) jwt (>= 1.5, < 3.0) multi_json (~> 1.10) - simctl (1.6.5) + simctl (1.6.7) CFPropertyList naturally slack-notifier (2.3.2) @@ -178,19 +185,19 @@ GEM terminal-table (1.8.0) unicode-display_width (~> 1.1, >= 1.1.1) thread_safe (0.3.6) - tty-cursor (0.7.0) + tty-cursor (0.7.1) tty-screen (0.7.0) - tty-spinner (0.9.1) + tty-spinner (0.9.2) tty-cursor (~> 0.7) - tzinfo (1.2.5) + tzinfo (1.2.6) thread_safe (~> 0.1) uber (0.1.0) unf (0.1.4) unf_ext unf_ext (0.0.7.6) - unicode-display_width (1.6.0) + unicode-display_width (1.6.1) word_wrap (1.0.0) - xcodeproj (1.12.0) + xcodeproj (1.14.0) CFPropertyList (>= 2.3.3, < 4.0) atomos (~> 0.1.3) claide (>= 1.0.2, < 2.0) diff --git a/OTRAssets/OTRBranding.h b/OTRAssets/OTRBranding.h index dfed36341..1824657bf 100644 --- a/OTRAssets/OTRBranding.h +++ b/OTRAssets/OTRBranding.h @@ -15,7 +15,7 @@ FOUNDATION_EXPORT NSString *const kOTRSettingKeyLanguage; /** Stub class for identifying asset framework bundle via bundleForClass: */ @interface OTRAssets : NSObject -/** Returns OTRResources.bundle */ +/** Returns resources bundle */ @property (class, readonly) NSBundle* resourcesBundle; @end @@ -36,6 +36,9 @@ FOUNDATION_EXPORT NSString *const kOTRSettingKeyLanguage; /** Google Apps Scope e.g. https://www.googleapis.com/auth/googletalk */ @property (class, readonly) NSString* googleAppScope; +/** e.g. https://itunes.apple.com/app/idXXXXXXXXXX */ +@property (class, readonly, nullable) NSString* appStoreID; + #pragma mark URLs /** TestFlight signup URL */ diff --git a/OTRAssets/OTRBranding.m b/OTRAssets/OTRBranding.m index ec4986e2d..7f235b807 100644 --- a/OTRAssets/OTRBranding.m +++ b/OTRAssets/OTRBranding.m @@ -124,6 +124,11 @@ + (nullable NSString*) userVoiceSite { return [[self defaultPlist] objectForKey:@"UserVoiceSite"]; } +/** UserVoice Site */ ++ (nullable NSString*) appStoreID { + return [[self defaultPlist] objectForKey:@"AppStoreID"]; +} + /** If enabled, will show a ⚠️ symbol next to your account when push may have issues */ + (BOOL) shouldShowPushWarning { BOOL result = [[[self defaultPlist] objectForKey:@"ShouldShowPushWarning"] boolValue]; @@ -170,7 +175,7 @@ + (BOOL) allowOMEMO { /** Returns true if we're running the official ChatSecure */ + (BOOL) matchesUpstream { - return [[[NSBundle mainBundle] bundleIdentifier] isEqualToString:@"com.chrisballinger.ChatSecure"]; + return [[[NSBundle mainBundle] bundleIdentifier] containsString:@"com.chrisballinger.ChatSecure"]; } + (BOOL) allowsDonation { @@ -196,22 +201,9 @@ + (NSDictionary*) defaultPlist { @implementation OTRAssets -/** Returns OTRResources.bundle */ +/** Returns resources bundle */ + (NSBundle*) resourcesBundle { - // Use resources from main bundle first, assuming the defaults are being overridden - NSString *folderName = @"OTRResources.bundle"; - NSString *bundlePath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:folderName]; - NSBundle *dataBundle = [NSBundle bundleWithPath:bundlePath]; - - // Usually this is only the case for tests - if (!dataBundle) { - NSBundle *containingBundle = [NSBundle bundleForClass:self.class]; - NSString *bundlePath = [[containingBundle resourcePath] stringByAppendingPathComponent:folderName]; - dataBundle = [NSBundle bundleWithPath:bundlePath]; - } - - - return dataBundle; + return NSBundle.mainBundle; } @end diff --git a/OTRResources/Branding.plist b/OTRResources/Branding.plist index df0297f51..4d2c6b11a 100644 --- a/OTRResources/Branding.plist +++ b/OTRResources/Branding.plist @@ -12,6 +12,8 @@ https://www.googleapis.com/auth/googletalk GitHubURL https://github.com/ChatSecure/ChatSecure-iOS/ + AppStoreID + 464200063 FacebookAppURL fb://profile/151354555075008 FacebookWebURL @@ -41,7 +43,7 @@ AllowsDonation TorEnabled - + AllowGroupOMEMO AllowDebugFileLogging diff --git a/ChatSecure/Classes/Views/Cells/OMEMODeviceFingerprintCell.xib b/OTRResources/Interface/OMEMODeviceFingerprintCell.xib similarity index 100% rename from ChatSecure/Classes/Views/Cells/OMEMODeviceFingerprintCell.xib rename to OTRResources/Interface/OMEMODeviceFingerprintCell.xib diff --git a/ChatSecure/Classes/Views/Cells/OTRComposeGroupBuddyCell.xib b/OTRResources/Interface/OTRComposeGroupBuddyCell.xib similarity index 100% rename from ChatSecure/Classes/Views/Cells/OTRComposeGroupBuddyCell.xib rename to OTRResources/Interface/OTRComposeGroupBuddyCell.xib diff --git a/ChatSecure/Classes/Views/Cells/OTRMessageNewDeviceCell.xib b/OTRResources/Interface/OTRMessageNewDeviceCell.xib similarity index 100% rename from ChatSecure/Classes/Views/Cells/OTRMessageNewDeviceCell.xib rename to OTRResources/Interface/OTRMessageNewDeviceCell.xib diff --git a/ChatSecure/Classes/Views/Cells/OTRMessageUnknownSenderCell.xib b/OTRResources/Interface/OTRMessageUnknownSenderCell.xib similarity index 100% rename from ChatSecure/Classes/Views/Cells/OTRMessageUnknownSenderCell.xib rename to OTRResources/Interface/OTRMessageUnknownSenderCell.xib diff --git a/ChatSecure/Classes/View Controllers/Purchase.storyboard b/OTRResources/Interface/Purchase.storyboard similarity index 94% rename from ChatSecure/Classes/View Controllers/Purchase.storyboard rename to OTRResources/Interface/Purchase.storyboard index 545bbdf00..ee232726c 100644 --- a/ChatSecure/Classes/View Controllers/Purchase.storyboard +++ b/OTRResources/Interface/Purchase.storyboard @@ -1,12 +1,9 @@ - - - - + + - - + @@ -23,7 +20,7 @@ - + - - + + - - + + - + - +