diff --git a/Signal.xcodeproj/project.pbxproj b/Signal.xcodeproj/project.pbxproj index 4795d9675..d34df5ebf 100644 --- a/Signal.xcodeproj/project.pbxproj +++ b/Signal.xcodeproj/project.pbxproj @@ -26,7 +26,7 @@ 343D3D9B1E9283F100165CA4 /* BlockListUIUtils.m in Sources */ = {isa = PBXBuildFile; fileRef = 343D3D9A1E9283F100165CA4 /* BlockListUIUtils.m */; }; 34480B361FD0929200BC14EF /* ShareAppExtensionContext.m in Sources */ = {isa = PBXBuildFile; fileRef = 34480B351FD0929200BC14EF /* ShareAppExtensionContext.m */; }; 34480B491FD0A60200BC14EF /* OWSMath.h in Headers */ = {isa = PBXBuildFile; fileRef = 34480B481FD0A60200BC14EF /* OWSMath.h */; }; - 34480B521FD0A7A400BC14EF /* OWSLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 34480B4A1FD0A7A200BC14EF /* OWSLogger.h */; }; + 34480B521FD0A7A400BC14EF /* OWSLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 34480B4A1FD0A7A200BC14EF /* OWSLogger.h */; settings = {ATTRIBUTES = (Public, ); }; }; 34480B531FD0A7A400BC14EF /* OWSLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 34480B4B1FD0A7A300BC14EF /* OWSLogger.m */; }; 34480B551FD0A7A400BC14EF /* DebugLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 34480B4D1FD0A7A300BC14EF /* DebugLogger.h */; }; 34480B561FD0A7A400BC14EF /* DebugLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 34480B4E1FD0A7A300BC14EF /* DebugLogger.m */; }; @@ -43,7 +43,9 @@ 34533F181EA8D2070006114F /* OWSAudioAttachmentPlayer.m in Sources */ = {isa = PBXBuildFile; fileRef = 34533F171EA8D2070006114F /* OWSAudioAttachmentPlayer.m */; }; 3453D8EA1EC0D4ED003F9E6F /* OWSAlerts.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3453D8E91EC0D4ED003F9E6F /* OWSAlerts.swift */; }; 345671011E89A5F1006EE662 /* ThreadUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = 345671001E89A5F1006EE662 /* ThreadUtil.m */; }; + 3461284B1FD0B94000532771 /* SAELoadViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3461284A1FD0B93F00532771 /* SAELoadViewController.swift */; }; 346129321FD1A26100532771 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 346129051FD1A25B00532771 /* Localizable.strings */; }; + 346129341FD1A88700532771 /* OWSSwiftUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 346129331FD1A88700532771 /* OWSSwiftUtils.swift */; }; 346B66311F4E29B200E5122F /* CropScaleImageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 346B66301F4E29B200E5122F /* CropScaleImageViewController.swift */; }; 3471B1DA1EB7C63600F6AEC8 /* NewNonContactConversationViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3471B1D91EB7C63600F6AEC8 /* NewNonContactConversationViewController.m */; }; 3472229F1EB22FFE00E53955 /* AddToGroupViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 3472229E1EB22FFE00E53955 /* AddToGroupViewController.m */; }; @@ -130,7 +132,6 @@ 34D9134D1F66DB7C00722898 /* ModalActivityIndicatorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34D9134C1F66DB7C00722898 /* ModalActivityIndicatorViewController.swift */; }; 34D99C8C1F27B13B00D284D6 /* OWSViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 34D99C8B1F27B13B00D284D6 /* OWSViewController.m */; }; 34D99C931F2937CC00D284D6 /* OWSAnalytics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34D99C911F2937CC00D284D6 /* OWSAnalytics.swift */; }; - 34D99C941F2937CC00D284D6 /* OWSSwiftUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34D99C921F2937CC00D284D6 /* OWSSwiftUtils.swift */; }; 34DFCB851E8E04B500053165 /* AddToBlockListViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 34DFCB841E8E04B500053165 /* AddToBlockListViewController.m */; }; 34E3E5681EC4B19400495BAC /* AudioProgressView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34E3E5671EC4B19400495BAC /* AudioProgressView.swift */; }; 34E3EF0D1EFC235B007F6822 /* DebugUIDiskUsage.m in Sources */ = {isa = PBXBuildFile; fileRef = 34E3EF0C1EFC235B007F6822 /* DebugUIDiskUsage.m */; }; @@ -197,7 +198,6 @@ 4542F0961EBB9E9A00C7EE92 /* Promise+retainUntilComplete.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4542F0951EBB9E9A00C7EE92 /* Promise+retainUntilComplete.swift */; }; 4542F0971EBB9E9A00C7EE92 /* Promise+retainUntilComplete.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4542F0951EBB9E9A00C7EE92 /* Promise+retainUntilComplete.swift */; }; 45464DBC1DFA041F001D3FD6 /* DataChannelMessage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 45464DBB1DFA041F001D3FD6 /* DataChannelMessage.swift */; }; - 454EBAB31F2BC08800ACE0BB /* OWSSwiftUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34D99C921F2937CC00D284D6 /* OWSSwiftUtils.swift */; }; 454EBAB41F2BE14C00ACE0BB /* OWSAnalytics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34D99C911F2937CC00D284D6 /* OWSAnalytics.swift */; }; 4556FA681F54AA9500AF40DD /* DebugUIProfile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4556FA671F54AA9500AF40DD /* DebugUIProfile.swift */; }; 4556FA691F54AA9500AF40DD /* DebugUIProfile.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4556FA671F54AA9500AF40DD /* DebugUIProfile.swift */; }; @@ -527,6 +527,7 @@ 3453D8E91EC0D4ED003F9E6F /* OWSAlerts.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OWSAlerts.swift; sourceTree = ""; }; 345670FF1E89A5F1006EE662 /* ThreadUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ThreadUtil.h; sourceTree = ""; }; 345671001E89A5F1006EE662 /* ThreadUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ThreadUtil.m; sourceTree = ""; }; + 3461284A1FD0B93F00532771 /* SAELoadViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SAELoadViewController.swift; sourceTree = ""; }; 346129061FD1A25B00532771 /* bs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = bs; path = Signal/translations/bs.lproj/Localizable.strings; sourceTree = SOURCE_ROOT; }; 346129071FD1A25B00532771 /* he */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = he; path = Signal/translations/he.lproj/Localizable.strings; sourceTree = SOURCE_ROOT; }; 346129081FD1A25B00532771 /* hu */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hu; path = Signal/translations/hu.lproj/Localizable.strings; sourceTree = SOURCE_ROOT; }; @@ -571,6 +572,7 @@ 3461292F1FD1A26000532771 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = Signal/translations/en.lproj/Localizable.strings; sourceTree = SOURCE_ROOT; }; 346129301FD1A26000532771 /* tr_TR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr_TR; path = Signal/translations/tr_TR.lproj/Localizable.strings; sourceTree = SOURCE_ROOT; }; 346129311FD1A26100532771 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = Signal/translations/es.lproj/Localizable.strings; sourceTree = SOURCE_ROOT; }; + 346129331FD1A88700532771 /* OWSSwiftUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OWSSwiftUtils.swift; sourceTree = ""; }; 346B66301F4E29B200E5122F /* CropScaleImageViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CropScaleImageViewController.swift; sourceTree = ""; }; 3471B1D81EB7C63600F6AEC8 /* NewNonContactConversationViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NewNonContactConversationViewController.h; sourceTree = ""; }; 3471B1D91EB7C63600F6AEC8 /* NewNonContactConversationViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NewNonContactConversationViewController.m; sourceTree = ""; }; @@ -724,7 +726,6 @@ 34D99C8A1F27B13B00D284D6 /* OWSViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OWSViewController.h; sourceTree = ""; }; 34D99C8B1F27B13B00D284D6 /* OWSViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OWSViewController.m; sourceTree = ""; }; 34D99C911F2937CC00D284D6 /* OWSAnalytics.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OWSAnalytics.swift; sourceTree = ""; }; - 34D99C921F2937CC00D284D6 /* OWSSwiftUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OWSSwiftUtils.swift; sourceTree = ""; }; 34DFCB831E8E04B400053165 /* AddToBlockListViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AddToBlockListViewController.h; sourceTree = ""; }; 34DFCB841E8E04B500053165 /* AddToBlockListViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AddToBlockListViewController.m; sourceTree = ""; }; 34E3E5671EC4B19400495BAC /* AudioProgressView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AudioProgressView.swift; sourceTree = ""; }; @@ -1146,6 +1147,7 @@ 34480B481FD0A60200BC14EF /* OWSMath.h */, 34480B4F1FD0A7A300BC14EF /* OWSScrubbingLogFormatter.h */, 34480B511FD0A7A400BC14EF /* OWSScrubbingLogFormatter.m */, + 346129331FD1A88700532771 /* OWSSwiftUtils.swift */, ); path = utils; sourceTree = ""; @@ -1437,6 +1439,7 @@ 4535186F1FC635DD00210559 /* Info.plist */, 346129051FD1A25B00532771 /* Localizable.strings */, 4535186C1FC635DD00210559 /* MainInterface.storyboard */, + 3461284A1FD0B93F00532771 /* SAELoadViewController.swift */, 4535186A1FC635DD00210559 /* ShareViewController.swift */, 34480B371FD092A900BC14EF /* SignalShareExtension-Bridging-Header.h */, 34480B381FD092E300BC14EF /* SignalShareExtension-Prefix.pch */, @@ -1449,9 +1452,9 @@ 453518931FC63DBF00210559 /* SignalMessaging */ = { isa = PBXGroup; children = ( + 34480B5C1FD0A98800BC14EF /* categories */, 453518951FC63DBF00210559 /* Info.plist */, 34480B5A1FD0A7E300BC14EF /* SignalMessaging-Prefix.pch */, - 34480B5C1FD0A98800BC14EF /* categories */, 453518941FC63DBF00210559 /* SignalMessaging.h */, 453518A01FC63DD500210559 /* StorageCoordinator.swift */, 34480B471FD0A60200BC14EF /* utils */, @@ -1704,7 +1707,6 @@ 34D99C911F2937CC00D284D6 /* OWSAnalytics.swift */, 34D5CC941EA6AFAD005515DB /* OWSContactsSyncing.h */, 34D5CC951EA6AFAD005515DB /* OWSContactsSyncing.m */, - 34D99C921F2937CC00D284D6 /* OWSSwiftUtils.swift */, 4579431C1E7C8CE9008ED0C0 /* Pastelog.h */, 4579431D1E7C8CE9008ED0C0 /* Pastelog.m */, 450DF2041E0D74AC003D14BE /* Platform.swift */, @@ -2670,6 +2672,7 @@ files = ( 4535186B1FC635DD00210559 /* ShareViewController.swift in Sources */, 34480B361FD0929200BC14EF /* ShareAppExtensionContext.m in Sources */, + 3461284B1FD0B94000532771 /* SAELoadViewController.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -2682,6 +2685,7 @@ 34480B531FD0A7A400BC14EF /* OWSLogger.m in Sources */, 34480B641FD0A98800BC14EF /* UIView+OWS.m in Sources */, 34480B671FD0AA9400BC14EF /* UIFont+OWS.m in Sources */, + 346129341FD1A88700532771 /* OWSSwiftUtils.swift in Sources */, 34480B591FD0A7A400BC14EF /* OWSScrubbingLogFormatter.m in Sources */, 34480B561FD0A7A400BC14EF /* DebugLogger.m in Sources */, ); @@ -2874,7 +2878,6 @@ 34B3F88B1E8DF1700035BE1A /* OWSLinkedDevicesTableViewController.m in Sources */, 45666F7E1D9C0814008FE134 /* OWSDatabaseMigrationRunner.m in Sources */, 4579431E1E7C8CE9008ED0C0 /* Pastelog.m in Sources */, - 34D99C941F2937CC00D284D6 /* OWSSwiftUtils.swift in Sources */, 34C42D661F4734ED0072EC04 /* OWSContactOffersInteraction.m in Sources */, 34B3F8941E8DF1710035BE1A /* HomeViewController.m in Sources */, 34E8BF381EE9E2FD00F5F4CA /* FingerprintViewScanController.m in Sources */, @@ -2936,7 +2939,6 @@ 45360B911F952AA900FA666C /* MarqueeLabel.swift in Sources */, 45FBC5D21DF8592E00E9B410 /* SignalCall.swift in Sources */, 451A13B21E13DED2000A50FD /* CallNotificationsAdapter.swift in Sources */, - 454EBAB31F2BC08800ACE0BB /* OWSSwiftUtils.swift in Sources */, 4542F0971EBB9E9A00C7EE92 /* Promise+retainUntilComplete.swift in Sources */, 451DA3C91F1489BE008E2423 /* OWSAlerts.swift in Sources */, 45855F381D9498A40084F340 /* OWSContactAvatarBuilder.m in Sources */, @@ -3530,6 +3532,7 @@ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OBJC_BRIDGING_HEADER = ""; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 4.0; TARGETED_DEVICE_FAMILY = "1,2"; @@ -3600,6 +3603,7 @@ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_OBJC_BRIDGING_HEADER = ""; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; SWIFT_VERSION = 4.0; TARGETED_DEVICE_FAMILY = "1,2"; @@ -3671,6 +3675,7 @@ PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; SDKROOT = iphoneos; SKIP_INSTALL = YES; + SWIFT_OBJC_BRIDGING_HEADER = ""; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; SWIFT_VERSION = 4.0; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/Signal/src/Models/SignalAttachment.swift b/Signal/src/Models/SignalAttachment.swift index 3d89cc741..5fa80144c 100644 --- a/Signal/src/Models/SignalAttachment.swift +++ b/Signal/src/Models/SignalAttachment.swift @@ -5,6 +5,7 @@ import Foundation import MobileCoreServices import SignalServiceKit +import SignalMessaging enum SignalAttachmentError: Error { case missingData diff --git a/Signal/src/MultiDeviceProfileKeyUpdateJob.swift b/Signal/src/MultiDeviceProfileKeyUpdateJob.swift index b5262fe2a..85de4dd21 100644 --- a/Signal/src/MultiDeviceProfileKeyUpdateJob.swift +++ b/Signal/src/MultiDeviceProfileKeyUpdateJob.swift @@ -5,6 +5,7 @@ import Foundation import PromiseKit import SignalServiceKit +import SignalMessaging /** * Used to distribute our profile key to legacy linked devices, newly linked devices will have our profile key as part of provisioning. diff --git a/Signal/src/OWSMessagesBubbleImageFactory.swift b/Signal/src/OWSMessagesBubbleImageFactory.swift index 878b145c6..80c9481f9 100644 --- a/Signal/src/OWSMessagesBubbleImageFactory.swift +++ b/Signal/src/OWSMessagesBubbleImageFactory.swift @@ -5,6 +5,7 @@ import Foundation import JSQMessagesViewController import SignalServiceKit +import SignalMessaging @objc class OWSMessagesBubbleImageFactory: NSObject { diff --git a/Signal/src/UserInterface/SlideOffAnimatedTransition.swift b/Signal/src/UserInterface/SlideOffAnimatedTransition.swift index 867edefe0..c1fe66966 100644 --- a/Signal/src/UserInterface/SlideOffAnimatedTransition.swift +++ b/Signal/src/UserInterface/SlideOffAnimatedTransition.swift @@ -3,6 +3,7 @@ // import UIKit +import SignalMessaging @objc class SlideOffAnimatedTransition: NSObject, UIViewControllerAnimatedTransitioning { diff --git a/Signal/src/ViewControllers/CallViewController.swift b/Signal/src/ViewControllers/CallViewController.swift index 9a7bec8d9..cf644c722 100644 --- a/Signal/src/ViewControllers/CallViewController.swift +++ b/Signal/src/ViewControllers/CallViewController.swift @@ -6,6 +6,7 @@ import Foundation import WebRTC import PromiseKit import SignalServiceKit +import SignalMessaging // TODO: Add category so that button handlers can be defined where button is created. // TODO: Ensure buttons enabled & disabled as necessary. diff --git a/Signal/src/ViewControllers/CropScaleImageViewController.swift b/Signal/src/ViewControllers/CropScaleImageViewController.swift index db19bf440..29692fbe8 100644 --- a/Signal/src/ViewControllers/CropScaleImageViewController.swift +++ b/Signal/src/ViewControllers/CropScaleImageViewController.swift @@ -4,6 +4,7 @@ import Foundation import MediaPlayer +import SignalMessaging class OWSLayerView: UIView { let layoutCallback : (() -> Void) diff --git a/Signal/src/ViewControllers/DebugUI/DebugUICalling.swift b/Signal/src/ViewControllers/DebugUI/DebugUICalling.swift index d5fb213b0..37148c3b3 100644 --- a/Signal/src/ViewControllers/DebugUI/DebugUICalling.swift +++ b/Signal/src/ViewControllers/DebugUI/DebugUICalling.swift @@ -4,6 +4,7 @@ import Foundation import SignalServiceKit +import SignalMessaging class DebugUICalling: DebugUIPage { diff --git a/Signal/src/ViewControllers/DebugUI/DebugUIProfile.swift b/Signal/src/ViewControllers/DebugUI/DebugUIProfile.swift index 748b144fe..e7a75801b 100644 --- a/Signal/src/ViewControllers/DebugUI/DebugUIProfile.swift +++ b/Signal/src/ViewControllers/DebugUI/DebugUIProfile.swift @@ -4,6 +4,7 @@ import Foundation import SignalServiceKit +import SignalMessaging class DebugUIProfile: DebugUIPage { diff --git a/Signal/src/ViewControllers/ExperienceUpgradesPageViewController.swift b/Signal/src/ViewControllers/ExperienceUpgradesPageViewController.swift index dc9d2c1d5..db17209fc 100644 --- a/Signal/src/ViewControllers/ExperienceUpgradesPageViewController.swift +++ b/Signal/src/ViewControllers/ExperienceUpgradesPageViewController.swift @@ -3,6 +3,7 @@ // import Foundation +import SignalMessaging private class IntroductingReadReceiptsExperienceUpgradeViewController: ExperienceUpgradeViewController { diff --git a/Signal/src/ViewControllers/GifPicker/GifPickerCell.swift b/Signal/src/ViewControllers/GifPicker/GifPickerCell.swift index c910d319c..637e26d0f 100644 --- a/Signal/src/ViewControllers/GifPicker/GifPickerCell.swift +++ b/Signal/src/ViewControllers/GifPicker/GifPickerCell.swift @@ -5,6 +5,7 @@ import Foundation import PromiseKit import SignalServiceKit +import SignalMessaging import YYImage class GifPickerCell: UICollectionViewCell { diff --git a/Signal/src/ViewControllers/GifPicker/GifPickerViewController.swift b/Signal/src/ViewControllers/GifPicker/GifPickerViewController.swift index 17452f054..a46af2c9b 100644 --- a/Signal/src/ViewControllers/GifPicker/GifPickerViewController.swift +++ b/Signal/src/ViewControllers/GifPicker/GifPickerViewController.swift @@ -5,6 +5,7 @@ import Foundation import SignalServiceKit import Reachability +import SignalMessaging @objc protocol GifPickerViewControllerDelegate: class { diff --git a/Signal/src/ViewControllers/MessageDetailViewController.swift b/Signal/src/ViewControllers/MessageDetailViewController.swift index efaa3f405..4a307615d 100644 --- a/Signal/src/ViewControllers/MessageDetailViewController.swift +++ b/Signal/src/ViewControllers/MessageDetailViewController.swift @@ -4,6 +4,7 @@ import Foundation import SignalServiceKit +import SignalMessaging @objc enum MessageMetadataViewMode: UInt { diff --git a/Signal/src/ViewControllers/Utils/MessageRecipientStatusUtils.swift b/Signal/src/ViewControllers/Utils/MessageRecipientStatusUtils.swift index 93981a138..ba98a7c8b 100644 --- a/Signal/src/ViewControllers/Utils/MessageRecipientStatusUtils.swift +++ b/Signal/src/ViewControllers/Utils/MessageRecipientStatusUtils.swift @@ -4,6 +4,7 @@ import Foundation import SignalServiceKit +import SignalMessaging @objc enum MessageRecipientStatus: Int { case uploading diff --git a/Signal/src/call/CallAudioService.swift b/Signal/src/call/CallAudioService.swift index d6fe6cfdc..213f1277e 100644 --- a/Signal/src/call/CallAudioService.swift +++ b/Signal/src/call/CallAudioService.swift @@ -5,6 +5,7 @@ import Foundation import AVFoundation import SignalServiceKit +import SignalMessaging public let CallAudioServiceSessionChanged = Notification.Name("CallAudioServiceSessionChanged") diff --git a/Signal/src/call/CallService.swift b/Signal/src/call/CallService.swift index a285e3de7..dca545bf8 100644 --- a/Signal/src/call/CallService.swift +++ b/Signal/src/call/CallService.swift @@ -6,6 +6,7 @@ import Foundation import PromiseKit import WebRTC import SignalServiceKit +import SignalMessaging /** * `CallService` is a global singleton that manages the state of WebRTC-backed Signal Calls diff --git a/Signal/src/call/NonCallKitCallUIAdaptee.swift b/Signal/src/call/NonCallKitCallUIAdaptee.swift index 5fd87c466..c20dea878 100644 --- a/Signal/src/call/NonCallKitCallUIAdaptee.swift +++ b/Signal/src/call/NonCallKitCallUIAdaptee.swift @@ -4,6 +4,7 @@ import Foundation import SignalServiceKit +import SignalMessaging /** * Manage call related UI in a pre-CallKit world. diff --git a/Signal/src/call/OutboundCallInitiator.swift b/Signal/src/call/OutboundCallInitiator.swift index db6eeebed..c51a72565 100644 --- a/Signal/src/call/OutboundCallInitiator.swift +++ b/Signal/src/call/OutboundCallInitiator.swift @@ -4,6 +4,7 @@ import Foundation import SignalServiceKit +import SignalMessaging /** * Creates an outbound call via WebRTC. diff --git a/Signal/src/call/PeerConnectionClient.swift b/Signal/src/call/PeerConnectionClient.swift index e26650388..1ddc6e83c 100644 --- a/Signal/src/call/PeerConnectionClient.swift +++ b/Signal/src/call/PeerConnectionClient.swift @@ -6,6 +6,7 @@ import Foundation import PromiseKit import WebRTC import SignalServiceKit +import SignalMessaging // HACK - Seeing crazy SEGFAULTs on iOS9 when accessing these objc externs. // iOS10 seems unaffected. Reproducible for ~1 in 3 calls. diff --git a/Signal/src/call/Speakerbox/CallKitCallUIAdaptee.swift b/Signal/src/call/Speakerbox/CallKitCallUIAdaptee.swift index ee3164050..2562c1366 100644 --- a/Signal/src/call/Speakerbox/CallKitCallUIAdaptee.swift +++ b/Signal/src/call/Speakerbox/CallKitCallUIAdaptee.swift @@ -7,6 +7,7 @@ import UIKit import CallKit import AVFoundation import SignalServiceKit +import SignalMessaging /** * Connects user interface to the CallService using CallKit. diff --git a/Signal/src/call/UserInterface/CallUIAdapter.swift b/Signal/src/call/UserInterface/CallUIAdapter.swift index 605e0d7cb..560041591 100644 --- a/Signal/src/call/UserInterface/CallUIAdapter.swift +++ b/Signal/src/call/UserInterface/CallUIAdapter.swift @@ -6,6 +6,7 @@ import Foundation import PromiseKit import CallKit import SignalServiceKit +import SignalMessaging import WebRTC protocol CallUIAdaptee { diff --git a/Signal/src/call/WebRTCCallMessageHandler.swift b/Signal/src/call/WebRTCCallMessageHandler.swift index 238edd106..3f4199a17 100644 --- a/Signal/src/call/WebRTCCallMessageHandler.swift +++ b/Signal/src/call/WebRTCCallMessageHandler.swift @@ -4,6 +4,7 @@ import Foundation import SignalServiceKit +import SignalMessaging @objc(OWSWebRTCCallMessageHandler) class WebRTCCallMessageHandler: NSObject, OWSCallMessageHandler { diff --git a/Signal/src/contact/SystemContactsFetcher.swift b/Signal/src/contact/SystemContactsFetcher.swift index cd45cc486..760647c6e 100644 --- a/Signal/src/contact/SystemContactsFetcher.swift +++ b/Signal/src/contact/SystemContactsFetcher.swift @@ -6,6 +6,7 @@ import Foundation import Contacts import ContactsUI import SignalServiceKit +import SignalMessaging enum Result { case success(T) diff --git a/Signal/src/environment/ExperienceUpgrades/ExperienceUpgrade.swift b/Signal/src/environment/ExperienceUpgrades/ExperienceUpgrade.swift index d94250492..79f29d2cd 100644 --- a/Signal/src/environment/ExperienceUpgrades/ExperienceUpgrade.swift +++ b/Signal/src/environment/ExperienceUpgrades/ExperienceUpgrade.swift @@ -4,6 +4,7 @@ import Foundation import SignalServiceKit +import SignalMessaging class ExperienceUpgrade: TSYapDatabaseObject { let title: String diff --git a/Signal/src/environment/OWS106EnsureProfileComplete.swift b/Signal/src/environment/OWS106EnsureProfileComplete.swift index db6a2cacf..0099420c7 100644 --- a/Signal/src/environment/OWS106EnsureProfileComplete.swift +++ b/Signal/src/environment/OWS106EnsureProfileComplete.swift @@ -5,6 +5,7 @@ import Foundation import PromiseKit import SignalServiceKit +import SignalMessaging class OWS106EnsureProfileComplete: OWSDatabaseMigration { diff --git a/Signal/src/environment/PushRegistrationManager.swift b/Signal/src/environment/PushRegistrationManager.swift index 45d7ecd65..655d74ab4 100644 --- a/Signal/src/environment/PushRegistrationManager.swift +++ b/Signal/src/environment/PushRegistrationManager.swift @@ -6,6 +6,7 @@ import Foundation import PromiseKit import PushKit import SignalServiceKit +import SignalMessaging public enum PushRegistrationError: Error { case assertionError(description: String) diff --git a/Signal/src/network/GiphyDownloader.swift b/Signal/src/network/GiphyDownloader.swift index 051a8303f..dc05f3b7b 100644 --- a/Signal/src/network/GiphyDownloader.swift +++ b/Signal/src/network/GiphyDownloader.swift @@ -5,6 +5,7 @@ import Foundation import ObjectiveC import SignalServiceKit +import SignalMessaging // Stills should be loaded before full GIFs. enum GiphyRequestPriority { diff --git a/Signal/src/views/AttachmentPointerView.swift b/Signal/src/views/AttachmentPointerView.swift index 817fe0499..90202cfc7 100644 --- a/Signal/src/views/AttachmentPointerView.swift +++ b/Signal/src/views/AttachmentPointerView.swift @@ -4,6 +4,7 @@ import Foundation import SignalServiceKit +import SignalMessaging class AttachmentPointerView: UIView { diff --git a/Signal/src/views/OWSFlatButton.swift b/Signal/src/views/OWSFlatButton.swift index 0bf11786c..91a95ae61 100644 --- a/Signal/src/views/OWSFlatButton.swift +++ b/Signal/src/views/OWSFlatButton.swift @@ -4,6 +4,7 @@ import Foundation import SignalServiceKit +import SignalMessaging @objc class OWSFlatButton: UIView { let TAG = "[OWSFlatButton]" diff --git a/SignalMessaging/SignalMessaging.h b/SignalMessaging/SignalMessaging.h index 40733b122..e26acc379 100644 --- a/SignalMessaging/SignalMessaging.h +++ b/SignalMessaging/SignalMessaging.h @@ -10,4 +10,5 @@ FOUNDATION_EXPORT double SignalMessagingVersionNumber; //! Project version string for SignalMessaging. FOUNDATION_EXPORT const unsigned char SignalMessagingVersionString[]; -// In this header, you should import all the public headers of your framework using statements like #import +// The public headers of the framework +#import diff --git a/Signal/src/util/OWSSwiftUtils.swift b/SignalMessaging/utils/OWSSwiftUtils.swift similarity index 83% rename from Signal/src/util/OWSSwiftUtils.swift rename to SignalMessaging/utils/OWSSwiftUtils.swift index 794f5bc4e..d70088d68 100644 --- a/Signal/src/util/OWSSwiftUtils.swift +++ b/SignalMessaging/utils/OWSSwiftUtils.swift @@ -7,7 +7,7 @@ import Foundation /** * We synchronize access to state in this class using this queue. */ -func assertOnQueue(_ queue: DispatchQueue) { +public func assertOnQueue(_ queue: DispatchQueue) { if #available(iOS 10.0, *) { dispatchPrecondition(condition: .onQueue(queue)) } else { @@ -15,7 +15,7 @@ func assertOnQueue(_ queue: DispatchQueue) { } } -func owsFail(_ message: String) { +public func owsFail(_ message: String) { Logger.error(message) Logger.flush() assertionFailure(message) diff --git a/SignalShareExtension/SAELoadViewController.swift b/SignalShareExtension/SAELoadViewController.swift new file mode 100644 index 000000000..2206821b2 --- /dev/null +++ b/SignalShareExtension/SAELoadViewController.swift @@ -0,0 +1,85 @@ +// +// Copyright (c) 2017 Open Whisper Systems. All rights reserved. +// + +import UIKit +import SignalMessaging +import PureLayout + +// All Observer methods will be invoked from the main thread. +protocol SAELoadViewDelegate: class { + func shareExtensionWasCancelled() +} + +class SAELoadViewController: UIViewController { + + weak var delegate: SAELoadViewDelegate? + + var activityIndicator: UIActivityIndicatorView? + + // MARK: Initializers and Factory Methods + + init(delegate: SAELoadViewDelegate) { + self.delegate = delegate + super.init(nibName: nil, bundle: nil) + } + + required init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + } + + override func loadView() { + super.loadView() + + self.navigationItem.leftBarButtonItem = UIBarButtonItem(barButtonSystemItem: .cancel, + target: self, + action: #selector(cancelPressed)) + self.navigationItem.title = "Signal" + + self.view.backgroundColor = UIColor.ows_signalBrandBlue() + + let activityIndicator = UIActivityIndicatorView(activityIndicatorStyle:.whiteLarge) + self.activityIndicator = activityIndicator + self.view.addSubview(activityIndicator) + activityIndicator.autoCenterInSuperview() + + let label = UILabel() + label.textColor = UIColor.white + label.font = UIFont.ows_mediumFont(withSize: 18) + label.text = NSLocalizedString("SHARE_EXTENSION_LOADING", + comment: "Indicates that the share extension is still loading.") + self.view.addSubview(label) + label.autoHCenterInSuperview() + label.autoPinEdge(.top, to: .bottom, of: activityIndicator, withOffset: 25) + } + + override func viewWillAppear(_ animated: Bool) { + super.viewWillAppear(animated) + + self.navigationController?.isNavigationBarHidden = false + + guard let activityIndicator = activityIndicator else { + return + } + activityIndicator.startAnimating() + } + + override func viewDidDisappear(_ animated: Bool) { + super.viewDidDisappear(animated) + + guard let activityIndicator = activityIndicator else { + return + } + activityIndicator.stopAnimating() + } + + // MARK: - Event Handlers + + @objc func cancelPressed(sender: UIButton) { + guard let delegate = delegate else { + owsFail("\(self.logTag) missing delegate") + return + } + delegate.shareExtensionWasCancelled() + } +} diff --git a/SignalShareExtension/ShareViewController.swift b/SignalShareExtension/ShareViewController.swift index a8f4574ca..103166fe3 100644 --- a/SignalShareExtension/ShareViewController.swift +++ b/SignalShareExtension/ShareViewController.swift @@ -8,7 +8,7 @@ import SignalMessaging import PureLayout import SignalServiceKit -class ShareViewController: UIViewController { +class ShareViewController: UINavigationController, SAELoadViewDelegate { override func loadView() { super.loadView() @@ -16,44 +16,46 @@ class ShareViewController: UIViewController { // This should be the first thing we do. SetCurrentAppContext(ShareAppExtensionContext()) -// DebugLogger.shared().enableTTYLogging() -// if _isDebugAssertConfiguration() { -// DebugLogger.shared().enableFileLogging() -// } else { -// // TODO: Consult OWSPreferences.loggingIsEnabled. -// DebugLogger.shared().enableFileLogging() -// } + // DebugLogger.shared().enableTTYLogging() + // if _isDebugAssertConfiguration() { + // DebugLogger.shared().enableFileLogging() + // } else { + // // TODO: Consult OWSPreferences.loggingIsEnabled. + // DebugLogger.shared().enableFileLogging() + // } _ = AppVersion() -//DDLogWarn(@"%@ application: didFinishLaunchingWithOptions.", self.logTag); -// -//// We need to do this _after_ we set up logging but _before_ we do -//// anything else. -//[self ensureIsReadyForAppExtensions]; -// -//#if RELEASE -// // ensureIsReadyForAppExtensions may have changed the state of the logging -// // preference (due to [NSUserDefaults migrateToSharedUserDefaults]), so honor -// // that change if necessary. -//if (loggingIsEnabled && !OWSPreferences.loggingIsEnabled) { -// [DebugLogger.sharedLogger disableFileLogging]; -//} -//#endif -// -//[AppVersion instance]; -// -//[self startupLogging]; + //DDLogWarn(@"%@ application: didFinishLaunchingWithOptions.", self.logTag); + // + //// We need to do this _after_ we set up logging but _before_ we do + //// anything else. + //[self ensureIsReadyForAppExtensions]; + // + //#if RELEASE + // // ensureIsReadyForAppExtensions may have changed the state of the logging + // // preference (due to [NSUserDefaults migrateToSharedUserDefaults]), so honor + // // that change if necessary. + //if (loggingIsEnabled && !OWSPreferences.loggingIsEnabled) { + // [DebugLogger.sharedLogger disableFileLogging]; + //} + //#endif + // + //[AppVersion instance]; + // + //[self startupLogging]; Logger.debug("\(self.logTag()) \(#function)") print("\(self.logTag()) \(#function) \(self.view.frame)") + + let loadViewController = SAELoadViewController(delegate:self) + self.pushViewController(loadViewController, animated: false) + self.isNavigationBarHidden = false } override func viewDidLoad() { super.viewDidLoad() - showLoadingAnimation() - let proofOfSharedFramework = StorageCoordinator.shared.path let proofOfSSK = textSecureServerURL @@ -67,34 +69,6 @@ class ShareViewController: UIViewController { print("\(self.logTag()) \(#function) \(self.view.frame)") } - private func showLoadingAnimation() { - Logger.debug("\(self.logTag()) \(#function)") - print("\(self.logTag()) \(#function) \(self.view.frame)") - - // Proof of cocoapods, utilizes PureLayout - let rootView = UIView() - rootView.backgroundColor = UIColor.ows_signalBrandBlue() - view.addSubview(rootView) - rootView.autoCenterInSuperview() - rootView.autoSetDimension(.width, toSize: 200) - rootView.autoSetDimension(.height, toSize: 300) - rootView.layer.cornerRadius = 3 - - let activityIndicator = UIActivityIndicatorView(activityIndicatorStyle:.whiteLarge) - rootView.addSubview(activityIndicator) - activityIndicator.autoCenterInSuperview() - activityIndicator.startAnimating() - - let label = UILabel() - label.textColor = UIColor.white - label.font = UIFont.ows_mediumFont(withSize: 14) - label.text = NSLocalizedString("SHARE_EXTENSION_LOADING", - comment: "Indicates that the share extension is still loading.") - rootView.addSubview(label) - label.autoHCenterInSuperview() - label.autoPinEdge(.top, to: .bottom, of: activityIndicator, withOffset: 10) - } - override func viewWillAppear(_ animated: Bool) { Logger.debug("\(self.logTag()) \(#function)") print("\(self.logTag()) \(#function) \(self.view.frame)") @@ -108,4 +82,10 @@ class ShareViewController: UIViewController { super.viewDidAppear(animated) } + + // MARK: SAELoadViewDelegate + + public func shareExtensionWasCancelled() { + self.extensionContext!.completeRequest(returningItems: [], completionHandler: nil) + } }