Attempt to fix extensions
This commit is contained in:
parent
5a3ed9163b
commit
bbac6cc5ed
|
@ -1,6 +0,0 @@
|
|||
[submodule "ThirdParty/Carthage"]
|
||||
path = ThirdParty/Carthage
|
||||
url = https://github.com/loki-project/session-ios-carthage.git
|
||||
[submodule "ThirdParty/WebRTC"]
|
||||
path = ThirdParty/WebRTC
|
||||
url = https://github.com/signalapp/signal-webrtc-ios-artifacts
|
|
@ -70,8 +70,6 @@
|
|||
34BECE301F7ABCF800D7438D /* GifPickerLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34BECE2F1F7ABCF800D7438D /* GifPickerLayout.swift */; };
|
||||
34C3C78D20409F320000134C /* Opening.m4r in Resources */ = {isa = PBXBuildFile; fileRef = 34C3C78C20409F320000134C /* Opening.m4r */; };
|
||||
34C3C78F2040A4F70000134C /* sonarping.mp3 in Resources */ = {isa = PBXBuildFile; fileRef = 34C3C78E2040A4F70000134C /* sonarping.mp3 */; };
|
||||
34C4E2572118957600BEA353 /* OWSWebRTCDataProtos.pb.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34C4E2552118957600BEA353 /* OWSWebRTCDataProtos.pb.swift */; };
|
||||
34C4E2582118957600BEA353 /* WebRTCProto.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34C4E2562118957600BEA353 /* WebRTCProto.swift */; };
|
||||
34CF0787203E6B78005C4D61 /* busy_tone_ansi.caf in Resources */ = {isa = PBXBuildFile; fileRef = 34CF0783203E6B77005C4D61 /* busy_tone_ansi.caf */; };
|
||||
34CF0788203E6B78005C4D61 /* ringback_tone_ansi.caf in Resources */ = {isa = PBXBuildFile; fileRef = 34CF0784203E6B77005C4D61 /* ringback_tone_ansi.caf */; };
|
||||
34CF078A203E6B78005C4D61 /* end_call_tone_cept.caf in Resources */ = {isa = PBXBuildFile; fileRef = 34CF0786203E6B78005C4D61 /* end_call_tone_cept.caf */; };
|
||||
|
@ -103,8 +101,6 @@
|
|||
3681EBBAC430992520DBD9AC /* Pods_SessionShareExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 200605FD180CB8B89F566B41 /* Pods_SessionShareExtension.framework */; };
|
||||
4503F1BE20470A5B00CEE724 /* classic-quiet.aifc in Resources */ = {isa = PBXBuildFile; fileRef = 4503F1BB20470A5B00CEE724 /* classic-quiet.aifc */; };
|
||||
4503F1BF20470A5B00CEE724 /* classic.aifc in Resources */ = {isa = PBXBuildFile; fileRef = 4503F1BC20470A5B00CEE724 /* classic.aifc */; };
|
||||
4509E79A1DD653700025A59F /* WebRTC.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4509E7991DD653700025A59F /* WebRTC.framework */; };
|
||||
450D19131F85236600970622 /* RemoteVideoView.m in Sources */ = {isa = PBXBuildFile; fileRef = 450D19121F85236600970622 /* RemoteVideoView.m */; };
|
||||
450DF2051E0D74AC003D14BE /* Platform.swift in Sources */ = {isa = PBXBuildFile; fileRef = 450DF2041E0D74AC003D14BE /* Platform.swift */; };
|
||||
450DF2091E0DD2C6003D14BE /* UserNotificationsAdaptee.swift in Sources */ = {isa = PBXBuildFile; fileRef = 450DF2081E0DD2C6003D14BE /* UserNotificationsAdaptee.swift */; };
|
||||
451166C01FD86B98000739BA /* AccountManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 451166BF1FD86B98000739BA /* AccountManager.swift */; };
|
||||
|
@ -299,6 +295,14 @@
|
|||
B8CCF63723961D6D0091D419 /* NewPrivateChatVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8CCF63623961D6D0091D419 /* NewPrivateChatVC.swift */; };
|
||||
B8CCF63F23975CFB0091D419 /* JoinPublicChatVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8CCF63E23975CFB0091D419 /* JoinPublicChatVC.swift */; };
|
||||
B8CCF6432397711F0091D419 /* SettingsVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8CCF6422397711F0091D419 /* SettingsVC.swift */; };
|
||||
B8D64FBB25BA78310029CFC0 /* SessionMessagingKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C3C2A6F025539DE700C340D1 /* SessionMessagingKit.framework */; };
|
||||
B8D64FBC25BA78310029CFC0 /* SessionProtocolKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C3C2A8622553B41A00C340D1 /* SessionProtocolKit.framework */; };
|
||||
B8D64FBD25BA78310029CFC0 /* SessionSnodeKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C3C2A59F255385C100C340D1 /* SessionSnodeKit.framework */; };
|
||||
B8D64FBE25BA78310029CFC0 /* SessionUtilitiesKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C3C2A679255388CC00C340D1 /* SessionUtilitiesKit.framework */; };
|
||||
B8D64FC725BA78520029CFC0 /* SessionMessagingKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C3C2A6F025539DE700C340D1 /* SessionMessagingKit.framework */; };
|
||||
B8D64FC825BA78520029CFC0 /* SessionProtocolKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C3C2A8622553B41A00C340D1 /* SessionProtocolKit.framework */; };
|
||||
B8D64FC925BA78520029CFC0 /* SessionSnodeKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C3C2A59F255385C100C340D1 /* SessionSnodeKit.framework */; };
|
||||
B8D64FCB25BA78A90029CFC0 /* SignalUtilitiesKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C33FD9AB255A548A00E217F9 /* SignalUtilitiesKit.framework */; };
|
||||
B90418E6183E9DD40038554A /* DateUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = B90418E5183E9DD40038554A /* DateUtil.m */; };
|
||||
B9EB5ABD1884C002007CBB57 /* MessageUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B9EB5ABC1884C002007CBB57 /* MessageUI.framework */; };
|
||||
C300A5B22554AF9800555489 /* VisibleMessage+Profile.swift in Sources */ = {isa = PBXBuildFile; fileRef = C300A5B12554AF9800555489 /* VisibleMessage+Profile.swift */; };
|
||||
|
@ -827,6 +831,62 @@
|
|||
remoteGlobalIDString = 7BC01A3A241F40AB00BC7C55;
|
||||
remoteInfo = LokiPushNotificationService;
|
||||
};
|
||||
B8D64FB325BA78270029CFC0 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = D221A080169C9E5E00537ABF /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = C3C2A6EF25539DE700C340D1;
|
||||
remoteInfo = SessionMessagingKit;
|
||||
};
|
||||
B8D64FB525BA78270029CFC0 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = D221A080169C9E5E00537ABF /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = C3C2A8612553B41A00C340D1;
|
||||
remoteInfo = SessionProtocolKit;
|
||||
};
|
||||
B8D64FB725BA78270029CFC0 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = D221A080169C9E5E00537ABF /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = C3C2A59E255385C100C340D1;
|
||||
remoteInfo = SessionSnodeKit;
|
||||
};
|
||||
B8D64FB925BA78270029CFC0 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = D221A080169C9E5E00537ABF /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = C3C2A678255388CC00C340D1;
|
||||
remoteInfo = SessionUtilitiesKit;
|
||||
};
|
||||
B8D64FBF25BA784A0029CFC0 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = D221A080169C9E5E00537ABF /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = C3C2A6EF25539DE700C340D1;
|
||||
remoteInfo = SessionMessagingKit;
|
||||
};
|
||||
B8D64FC125BA784A0029CFC0 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = D221A080169C9E5E00537ABF /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = C3C2A8612553B41A00C340D1;
|
||||
remoteInfo = SessionProtocolKit;
|
||||
};
|
||||
B8D64FC325BA784A0029CFC0 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = D221A080169C9E5E00537ABF /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = C3C2A59E255385C100C340D1;
|
||||
remoteInfo = SessionSnodeKit;
|
||||
};
|
||||
B8D64FC525BA784A0029CFC0 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = D221A080169C9E5E00537ABF /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = C3C2A678255388CC00C340D1;
|
||||
remoteInfo = SessionUtilitiesKit;
|
||||
};
|
||||
C331FF202558F9D300070591 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = D221A080169C9E5E00537ABF /* Project object */;
|
||||
|
@ -1021,8 +1081,6 @@
|
|||
34BECE2F1F7ABCF800D7438D /* GifPickerLayout.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = GifPickerLayout.swift; sourceTree = "<group>"; };
|
||||
34C3C78C20409F320000134C /* Opening.m4r */ = {isa = PBXFileReference; lastKnownFileType = file; path = Opening.m4r; sourceTree = "<group>"; };
|
||||
34C3C78E2040A4F70000134C /* sonarping.mp3 */ = {isa = PBXFileReference; lastKnownFileType = audio.mp3; name = sonarping.mp3; path = Session/Meta/AudioFiles/sonarping.mp3; sourceTree = SOURCE_ROOT; };
|
||||
34C4E2552118957600BEA353 /* OWSWebRTCDataProtos.pb.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OWSWebRTCDataProtos.pb.swift; sourceTree = "<group>"; };
|
||||
34C4E2562118957600BEA353 /* WebRTCProto.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = WebRTCProto.swift; sourceTree = "<group>"; };
|
||||
34CA1C261F7156F300E51C51 /* MessageDetailViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MessageDetailViewController.swift; sourceTree = "<group>"; };
|
||||
34CF0783203E6B77005C4D61 /* busy_tone_ansi.caf */ = {isa = PBXFileReference; lastKnownFileType = file; name = busy_tone_ansi.caf; path = Session/Meta/AudioFiles/busy_tone_ansi.caf; sourceTree = SOURCE_ROOT; };
|
||||
34CF0784203E6B77005C4D61 /* ringback_tone_ansi.caf */ = {isa = PBXFileReference; lastKnownFileType = file; name = ringback_tone_ansi.caf; path = Session/Meta/AudioFiles/ringback_tone_ansi.caf; sourceTree = SOURCE_ROOT; };
|
||||
|
@ -1076,8 +1134,6 @@
|
|||
4503F1BB20470A5B00CEE724 /* classic-quiet.aifc */ = {isa = PBXFileReference; lastKnownFileType = file; path = "classic-quiet.aifc"; sourceTree = "<group>"; };
|
||||
4503F1BC20470A5B00CEE724 /* classic.aifc */ = {isa = PBXFileReference; lastKnownFileType = file; path = classic.aifc; sourceTree = "<group>"; };
|
||||
4509E7991DD653700025A59F /* WebRTC.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebRTC.framework; path = ThirdParty/WebRTC/Build/WebRTC.framework; sourceTree = "<group>"; };
|
||||
450D19111F85236600970622 /* RemoteVideoView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = RemoteVideoView.h; sourceTree = "<group>"; };
|
||||
450D19121F85236600970622 /* RemoteVideoView.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = RemoteVideoView.m; sourceTree = "<group>"; };
|
||||
450DF2041E0D74AC003D14BE /* Platform.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Platform.swift; sourceTree = "<group>"; };
|
||||
450DF2081E0DD2C6003D14BE /* UserNotificationsAdaptee.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; lineEnding = 0; path = UserNotificationsAdaptee.swift; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.swift; };
|
||||
451166BF1FD86B98000739BA /* AccountManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AccountManager.swift; sourceTree = "<group>"; };
|
||||
|
@ -1838,8 +1894,12 @@
|
|||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
B8D64FC725BA78520029CFC0 /* SessionMessagingKit.framework in Frameworks */,
|
||||
B8D64FC825BA78520029CFC0 /* SessionProtocolKit.framework in Frameworks */,
|
||||
B8D64FC925BA78520029CFC0 /* SessionSnodeKit.framework in Frameworks */,
|
||||
C3D90A5C25773A25002C9DF5 /* SessionUtilitiesKit.framework in Frameworks */,
|
||||
C3402FE52559036600EA6424 /* SessionUIKit.framework in Frameworks */,
|
||||
B8D64FCB25BA78A90029CFC0 /* SignalUtilitiesKit.framework in Frameworks */,
|
||||
3681EBBAC430992520DBD9AC /* Pods_SessionShareExtension.framework in Frameworks */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
|
@ -1848,6 +1908,10 @@
|
|||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
B8D64FBB25BA78310029CFC0 /* SessionMessagingKit.framework in Frameworks */,
|
||||
B8D64FBC25BA78310029CFC0 /* SessionProtocolKit.framework in Frameworks */,
|
||||
B8D64FBD25BA78310029CFC0 /* SessionSnodeKit.framework in Frameworks */,
|
||||
B8D64FBE25BA78310029CFC0 /* SessionUtilitiesKit.framework in Frameworks */,
|
||||
C38EF00C255B61CC007E1867 /* SignalUtilitiesKit.framework in Frameworks */,
|
||||
75A5E31037A6F0E5677F3B5C /* Pods_SessionNotificationServiceExtension.framework in Frameworks */,
|
||||
);
|
||||
|
@ -1920,7 +1984,6 @@
|
|||
455A16DD1F1FEA0000F86704 /* Metal.framework in Frameworks */,
|
||||
455A16DE1F1FEA0000F86704 /* MetalKit.framework in Frameworks */,
|
||||
45847E871E4283C30080EAB3 /* Intents.framework in Frameworks */,
|
||||
4509E79A1DD653700025A59F /* WebRTC.framework in Frameworks */,
|
||||
4520D8D51D417D8E00123472 /* Photos.framework in Frameworks */,
|
||||
4C9CA25D217E676900607C63 /* ZXingObjC.framework in Frameworks */,
|
||||
B6B226971BE4B7D200860F4D /* ContactsUI.framework in Frameworks */,
|
||||
|
@ -2042,8 +2105,6 @@
|
|||
76EB03C118170B33006006FC /* Utilities */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
34C4E2552118957600BEA353 /* OWSWebRTCDataProtos.pb.swift */,
|
||||
34C4E2562118957600BEA353 /* WebRTCProto.swift */,
|
||||
451166BF1FD86B98000739BA /* AccountManager.swift */,
|
||||
4C090A1A210FD9C7001FD7F9 /* HapticFeedback.swift */,
|
||||
34D5CCA71EAE3D30005515DB /* AvatarViewHelper.h */,
|
||||
|
@ -2892,8 +2953,6 @@
|
|||
children = (
|
||||
C36096B925AD1ACF008B62B2 /* GIFs */,
|
||||
34E3E5671EC4B19400495BAC /* AudioProgressView.swift */,
|
||||
450D19111F85236600970622 /* RemoteVideoView.h */,
|
||||
450D19121F85236600970622 /* RemoteVideoView.m */,
|
||||
346B66301F4E29B200E5122F /* CropScaleImageViewController.swift */,
|
||||
34969559219B605E00DCFE74 /* ImagePickerController.swift */,
|
||||
45B9EE9A200E91FB005D2F2D /* MediaDetailViewController.h */,
|
||||
|
@ -3824,6 +3883,10 @@
|
|||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
B8D64FC025BA784A0029CFC0 /* PBXTargetDependency */,
|
||||
B8D64FC225BA784A0029CFC0 /* PBXTargetDependency */,
|
||||
B8D64FC425BA784A0029CFC0 /* PBXTargetDependency */,
|
||||
B8D64FC625BA784A0029CFC0 /* PBXTargetDependency */,
|
||||
C3D90A5525773A1A002C9DF5 /* PBXTargetDependency */,
|
||||
C3D90A5925773A1A002C9DF5 /* PBXTargetDependency */,
|
||||
);
|
||||
|
@ -3844,6 +3907,10 @@
|
|||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
B8D64FB425BA78270029CFC0 /* PBXTargetDependency */,
|
||||
B8D64FB625BA78270029CFC0 /* PBXTargetDependency */,
|
||||
B8D64FB825BA78270029CFC0 /* PBXTargetDependency */,
|
||||
B8D64FBA25BA78270029CFC0 /* PBXTargetDependency */,
|
||||
C3D90A7125773A44002C9DF5 /* PBXTargetDependency */,
|
||||
);
|
||||
name = SessionNotificationServiceExtension;
|
||||
|
@ -3974,7 +4041,6 @@
|
|||
D221A086169C9E5E00537ABF /* Frameworks */,
|
||||
D221A087169C9E5E00537ABF /* Resources */,
|
||||
59C9DBA462715B5C999FFB02 /* [CP] Embed Pods Frameworks */,
|
||||
451DE9EE1DC1546A00810E42 /* [Carthage] Copy Frameworks */,
|
||||
453518771FC635DD00210559 /* Embed App Extensions */,
|
||||
4535189F1FC63DBF00210559 /* Embed Frameworks */,
|
||||
);
|
||||
|
@ -4348,21 +4414,6 @@
|
|||
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;
|
||||
};
|
||||
451DE9EE1DC1546A00810E42 /* [Carthage] Copy Frameworks */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
inputPaths = (
|
||||
"$(SRCROOT)/ThirdParty/WebRTC/Build/WebRTC.framework",
|
||||
);
|
||||
name = "[Carthage] Copy Frameworks";
|
||||
outputPaths = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
shellPath = /bin/sh;
|
||||
shellScript = "/usr/local/bin/carthage copy-frameworks\n";
|
||||
};
|
||||
4B4609DACEC6E462A2394D2F /* [CP] Check Pods Manifest.lock */ = {
|
||||
isa = PBXShellScriptBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
|
@ -4979,7 +5030,6 @@
|
|||
files = (
|
||||
C396DAF52518408B00FF6DC5 /* CSV.swift in Sources */,
|
||||
B8CCF63723961D6D0091D419 /* NewPrivateChatVC.swift in Sources */,
|
||||
34C4E2582118957600BEA353 /* WebRTCProto.swift in Sources */,
|
||||
C396DAF12518408B00FF6DC5 /* EnumeratedView.swift in Sources */,
|
||||
34D1F0BD1F8D108C0066283D /* AttachmentUploadView.m in Sources */,
|
||||
452EC6DF205E9E30000E787C /* MediaGalleryViewController.swift in Sources */,
|
||||
|
@ -5010,7 +5060,6 @@
|
|||
EF764C351DB67CC5000D9A87 /* UIViewController+Permissions.m in Sources */,
|
||||
45CD81EF1DC030E7004C9430 /* SyncPushTokensJob.swift in Sources */,
|
||||
C396DAF32518408B00FF6DC5 /* Description.swift in Sources */,
|
||||
450D19131F85236600970622 /* RemoteVideoView.m in Sources */,
|
||||
34129B8621EF877A005457A8 /* LinkPreviewView.swift in Sources */,
|
||||
34386A54207D271D009F5D9C /* NeverClearView.swift in Sources */,
|
||||
451166C01FD86B98000739BA /* AccountManager.swift in Sources */,
|
||||
|
@ -5134,7 +5183,6 @@
|
|||
340FC8AE204DAC8D007AEB0F /* OWSSoundSettingsViewController.m in Sources */,
|
||||
340FC8B0204DAC8D007AEB0F /* AddToBlockListViewController.m in Sources */,
|
||||
3496957321A301A100DCFE74 /* OWSBackupJob.m in Sources */,
|
||||
34C4E2572118957600BEA353 /* OWSWebRTCDataProtos.pb.swift in Sources */,
|
||||
B894D0752339EDCF00B4D94D /* NukeDataModal.swift in Sources */,
|
||||
346B66311F4E29B200E5122F /* CropScaleImageViewController.swift in Sources */,
|
||||
45E5A6991F61E6DE001E4A8A /* MarqueeLabel.swift in Sources */,
|
||||
|
@ -5163,6 +5211,46 @@
|
|||
target = 7BC01A3A241F40AB00BC7C55 /* SessionNotificationServiceExtension */;
|
||||
targetProxy = 7BC01A40241F40AB00BC7C55 /* PBXContainerItemProxy */;
|
||||
};
|
||||
B8D64FB425BA78270029CFC0 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = C3C2A6EF25539DE700C340D1 /* SessionMessagingKit */;
|
||||
targetProxy = B8D64FB325BA78270029CFC0 /* PBXContainerItemProxy */;
|
||||
};
|
||||
B8D64FB625BA78270029CFC0 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = C3C2A8612553B41A00C340D1 /* SessionProtocolKit */;
|
||||
targetProxy = B8D64FB525BA78270029CFC0 /* PBXContainerItemProxy */;
|
||||
};
|
||||
B8D64FB825BA78270029CFC0 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = C3C2A59E255385C100C340D1 /* SessionSnodeKit */;
|
||||
targetProxy = B8D64FB725BA78270029CFC0 /* PBXContainerItemProxy */;
|
||||
};
|
||||
B8D64FBA25BA78270029CFC0 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = C3C2A678255388CC00C340D1 /* SessionUtilitiesKit */;
|
||||
targetProxy = B8D64FB925BA78270029CFC0 /* PBXContainerItemProxy */;
|
||||
};
|
||||
B8D64FC025BA784A0029CFC0 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = C3C2A6EF25539DE700C340D1 /* SessionMessagingKit */;
|
||||
targetProxy = B8D64FBF25BA784A0029CFC0 /* PBXContainerItemProxy */;
|
||||
};
|
||||
B8D64FC225BA784A0029CFC0 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = C3C2A8612553B41A00C340D1 /* SessionProtocolKit */;
|
||||
targetProxy = B8D64FC125BA784A0029CFC0 /* PBXContainerItemProxy */;
|
||||
};
|
||||
B8D64FC425BA784A0029CFC0 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = C3C2A59E255385C100C340D1 /* SessionSnodeKit */;
|
||||
targetProxy = B8D64FC325BA784A0029CFC0 /* PBXContainerItemProxy */;
|
||||
};
|
||||
B8D64FC625BA784A0029CFC0 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = C3C2A678255388CC00C340D1 /* SessionUtilitiesKit */;
|
||||
targetProxy = B8D64FC525BA784A0029CFC0 /* PBXContainerItemProxy */;
|
||||
};
|
||||
C331FF212558F9D300070591 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = C331FF1A2558F9D300070591 /* SessionUIKit */;
|
||||
|
@ -5264,7 +5352,7 @@
|
|||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
CURRENT_PROJECT_VERSION = 163;
|
||||
CURRENT_PROJECT_VERSION = 168;
|
||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
DEVELOPMENT_TEAM = SUQ8J2PCT7;
|
||||
FRAMEWORK_SEARCH_PATHS = "$(inherited)";
|
||||
|
@ -5285,7 +5373,7 @@
|
|||
INFOPLIST_FILE = SessionShareExtension/Meta/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||
MARKETING_VERSION = 1.7.5;
|
||||
MARKETING_VERSION = 1.7.6;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.loki-project.loki-messenger.ShareExtension";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
|
@ -5333,7 +5421,7 @@
|
|||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
CURRENT_PROJECT_VERSION = 163;
|
||||
CURRENT_PROJECT_VERSION = 168;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
DEVELOPMENT_TEAM = SUQ8J2PCT7;
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
|
@ -5359,7 +5447,7 @@
|
|||
INFOPLIST_FILE = SessionShareExtension/Meta/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||
MARKETING_VERSION = 1.7.5;
|
||||
MARKETING_VERSION = 1.7.6;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.loki-project.loki-messenger.ShareExtension";
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
|
@ -5394,7 +5482,7 @@
|
|||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
CURRENT_PROJECT_VERSION = 163;
|
||||
CURRENT_PROJECT_VERSION = 168;
|
||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
DEVELOPMENT_TEAM = SUQ8J2PCT7;
|
||||
FRAMEWORK_SEARCH_PATHS = "$(inherited)";
|
||||
|
@ -5413,7 +5501,7 @@
|
|||
INFOPLIST_FILE = SessionNotificationServiceExtension/Meta/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||
MARKETING_VERSION = 1.7.5;
|
||||
MARKETING_VERSION = 1.7.6;
|
||||
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
||||
MTL_FAST_MATH = YES;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.loki-project.loki-messenger.NotificationServiceExtension";
|
||||
|
@ -5464,7 +5552,7 @@
|
|||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
CURRENT_PROJECT_VERSION = 163;
|
||||
CURRENT_PROJECT_VERSION = 168;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
DEVELOPMENT_TEAM = SUQ8J2PCT7;
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
|
@ -5488,7 +5576,7 @@
|
|||
INFOPLIST_FILE = SessionNotificationServiceExtension/Meta/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||
MARKETING_VERSION = 1.7.5;
|
||||
MARKETING_VERSION = 1.7.6;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
MTL_FAST_MATH = YES;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.loki-project.loki-messenger.NotificationServiceExtension";
|
||||
|
@ -5506,6 +5594,7 @@
|
|||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = C88965DE4F4EC4FC919BEC4E /* Pods-SessionUIKit.debug.xcconfig */;
|
||||
buildSettings = {
|
||||
APPLICATION_EXTENSION_API_ONLY = YES;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
|
@ -5559,6 +5648,7 @@
|
|||
baseConfigurationReference = C1A746BC424B531D8ED478F6 /* Pods-SessionUIKit.app store release.xcconfig */;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
APPLICATION_EXTENSION_API_ONLY = YES;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
|
||||
|
@ -6343,10 +6433,7 @@
|
|||
ENABLE_BITCODE = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(PROJECT_DIR)/ThirdParty/WebRTC/Build",
|
||||
"$(PROJECT_DIR)/ThirdParty/Carthage/Build/iOS",
|
||||
);
|
||||
FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)/ThirdParty/Carthage/Build/iOS";
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
|
@ -6421,10 +6508,7 @@
|
|||
CODE_SIGN_IDENTITY = "iPhone Distribution";
|
||||
ENABLE_BITCODE = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(PROJECT_DIR)/ThirdParty/WebRTC/Build",
|
||||
"$(PROJECT_DIR)/ThirdParty/Carthage/Build/iOS",
|
||||
);
|
||||
FRAMEWORK_SEARCH_PATHS = "$(PROJECT_DIR)/ThirdParty/Carthage/Build/iOS";
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = YES;
|
||||
GCC_TREAT_INCOMPATIBLE_POINTER_TYPE_WARNINGS_AS_ERRORS = YES;
|
||||
|
@ -6483,7 +6567,7 @@
|
|||
CODE_SIGN_ENTITLEMENTS = Session/Meta/Signal.entitlements;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CURRENT_PROJECT_VERSION = 163;
|
||||
CURRENT_PROJECT_VERSION = 168;
|
||||
DEVELOPMENT_TEAM = SUQ8J2PCT7;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
|
@ -6519,7 +6603,7 @@
|
|||
"$(SRCROOT)",
|
||||
);
|
||||
LLVM_LTO = NO;
|
||||
MARKETING_VERSION = 1.7.5;
|
||||
MARKETING_VERSION = 1.7.6;
|
||||
OTHER_LDFLAGS = "$(inherited)";
|
||||
OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" \"-DDEBUG\"";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.loki-project.loki-messenger";
|
||||
|
@ -6551,7 +6635,7 @@
|
|||
CODE_SIGN_ENTITLEMENTS = Session/Meta/Signal.entitlements;
|
||||
CODE_SIGN_IDENTITY = "iPhone Developer";
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
CURRENT_PROJECT_VERSION = 163;
|
||||
CURRENT_PROJECT_VERSION = 168;
|
||||
DEVELOPMENT_TEAM = SUQ8J2PCT7;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
|
@ -6587,7 +6671,7 @@
|
|||
"$(SRCROOT)",
|
||||
);
|
||||
LLVM_LTO = NO;
|
||||
MARKETING_VERSION = 1.7.5;
|
||||
MARKETING_VERSION = 1.7.6;
|
||||
OTHER_LDFLAGS = "$(inherited)";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = "com.loki-project.loki-messenger";
|
||||
PRODUCT_NAME = Session;
|
||||
|
|
|
@ -1,17 +0,0 @@
|
|||
//
|
||||
// Copyright (c) 2017 Open Whisper Systems. All rights reserved.
|
||||
//
|
||||
|
||||
#import <WebRTC/RTCVideoRenderer.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
/**
|
||||
* Drives the full screen remote video. This is *not* a swift class
|
||||
* so we can take advantage of some compile time constants from WebRTC
|
||||
*/
|
||||
@interface RemoteVideoView : UIView <RTCVideoRenderer>
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
|
@ -1,165 +0,0 @@
|
|||
//
|
||||
// Copyright (c) 2019 Open Whisper Systems. All rights reserved.
|
||||
//
|
||||
|
||||
#import "RemoteVideoView.h"
|
||||
#import "UIFont+OWS.h"
|
||||
#import "UIView+OWS.h"
|
||||
#import <MetalKit/MetalKit.h>
|
||||
#import <PureLayout/PureLayout.h>
|
||||
#import <SignalCoreKit/Threading.h>
|
||||
#import <WebRTC/RTCEAGLVideoView.h>
|
||||
#import <WebRTC/RTCMTLVideoView.h>
|
||||
#import <WebRTC/RTCVideoRenderer.h>
|
||||
|
||||
NS_ASSUME_NONNULL_BEGIN
|
||||
|
||||
@interface RemoteVideoView () <RTCVideoViewDelegate>
|
||||
|
||||
@property (nonatomic, readonly) __kindof UIView<RTCVideoRenderer> *videoRenderer;
|
||||
|
||||
// Used for legacy EAGLVideoView
|
||||
@property (nullable, nonatomic) NSArray<NSLayoutConstraint *> *remoteVideoConstraints;
|
||||
|
||||
@end
|
||||
|
||||
@implementation RemoteVideoView
|
||||
|
||||
- (instancetype)init
|
||||
{
|
||||
self = [super init];
|
||||
if (!self) {
|
||||
return self;
|
||||
}
|
||||
|
||||
_remoteVideoConstraints = @[];
|
||||
|
||||
// Currently RTC only supports metal on 64bit machines
|
||||
#if defined(__arm64__)
|
||||
// On 64-bit, iOS9+: uses the MetalKit backed view for improved battery/rendering performance.
|
||||
if (_videoRenderer == nil) {
|
||||
|
||||
// It is insufficient to check the RTC_SUPPORTS_METAL macro to determine Metal support.
|
||||
// RTCMTLVideoView requires the MTKView class, available only in iOS9+
|
||||
// So check that it exists before proceeding.
|
||||
if ([MTKView class]) {
|
||||
RTCMTLVideoView *rtcMetalView = [[RTCMTLVideoView alloc] initWithFrame:CGRectZero];
|
||||
rtcMetalView.videoContentMode = UIViewContentModeScaleAspectFill;
|
||||
_videoRenderer = rtcMetalView;
|
||||
[self addSubview:_videoRenderer];
|
||||
[_videoRenderer autoPinEdgesToSuperviewEdges];
|
||||
// HACK: Although RTCMTLVideo view is positioned to the top edge of the screen
|
||||
// It's inner (private) MTKView is below the status bar.
|
||||
for (UIView *subview in [_videoRenderer subviews]) {
|
||||
if ([subview isKindOfClass:[MTKView class]]) {
|
||||
[subview autoPinEdgesToSuperviewEdges];
|
||||
} else {
|
||||
OWSFailDebug(@"New subviews added to MTLVideoView. Reconsider this hack.");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
// On 32-bit iOS9+ systems, use the legacy EAGL backed view.
|
||||
if (_videoRenderer == nil) {
|
||||
RTCEAGLVideoView *eaglVideoView = [RTCEAGLVideoView new];
|
||||
eaglVideoView.delegate = self;
|
||||
_videoRenderer = eaglVideoView;
|
||||
[self addSubview:_videoRenderer];
|
||||
// Pinning legacy RTCEAGL view discards aspect ratio.
|
||||
// So we have a more verbose layout in the RTCEAGLVideoViewDelegate methods
|
||||
// [_videoRenderer autoPinEdgesToSuperviewEdges];
|
||||
}
|
||||
|
||||
// We want the rendered video to go edge-to-edge.
|
||||
_videoRenderer.layoutMargins = UIEdgeInsetsZero;
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
#pragma mark - RTCVideoRenderer
|
||||
|
||||
/** The size of the frame. */
|
||||
- (void)setSize:(CGSize)size
|
||||
{
|
||||
[self.videoRenderer setSize:size];
|
||||
}
|
||||
|
||||
#pragma mark - RTCVideoViewDelegate
|
||||
|
||||
- (void)videoView:(id<RTCVideoRenderer>)videoRenderer didChangeVideoSize:(CGSize)remoteVideoSize
|
||||
{
|
||||
OWSAssertIsOnMainThread();
|
||||
|
||||
if (![videoRenderer isKindOfClass:[RTCEAGLVideoView class]]) {
|
||||
OWSFailDebug(@"Unexpected videoRenderer: %@", videoRenderer);
|
||||
return;
|
||||
}
|
||||
RTCEAGLVideoView *videoView = (RTCEAGLVideoView *)videoRenderer;
|
||||
|
||||
if (remoteVideoSize.height <= 0) {
|
||||
OWSFailDebug(@"Illegal video height: %f", remoteVideoSize.height);
|
||||
return;
|
||||
}
|
||||
|
||||
CGFloat aspectRatio = remoteVideoSize.width / remoteVideoSize.height;
|
||||
OWSLogVerbose(@"Remote video size: width: %f height: %f ratio: %f",
|
||||
remoteVideoSize.width,
|
||||
remoteVideoSize.height,
|
||||
aspectRatio);
|
||||
|
||||
UIView *containingView = self.superview;
|
||||
if (containingView == nil) {
|
||||
OWSLogDebug(@"Cannot layout video view without superview");
|
||||
return;
|
||||
}
|
||||
|
||||
[NSLayoutConstraint deactivateConstraints:self.remoteVideoConstraints];
|
||||
|
||||
NSMutableArray<NSLayoutConstraint *> *constraints = [NSMutableArray new];
|
||||
if (remoteVideoSize.width > 0 && remoteVideoSize.height > 0 && containingView.bounds.size.width > 0
|
||||
&& containingView.bounds.size.height > 0) {
|
||||
|
||||
// to approximate "scale to fill" contentMode
|
||||
// - Pin aspect ratio
|
||||
// - Width and height is *at least* as wide as superview
|
||||
[constraints addObject:[videoView autoPinToAspectRatioWithSize:remoteVideoSize]];
|
||||
[constraints addObject:[videoView autoSetDimension:ALDimensionWidth
|
||||
toSize:containingView.width
|
||||
relation:NSLayoutRelationGreaterThanOrEqual]];
|
||||
[constraints addObject:[videoView autoSetDimension:ALDimensionHeight
|
||||
toSize:containingView.height
|
||||
relation:NSLayoutRelationGreaterThanOrEqual]];
|
||||
[constraints addObjectsFromArray:[videoView autoCenterInSuperview]];
|
||||
|
||||
// Low priority constraints force view to be no larger than necessary.
|
||||
[NSLayoutConstraint autoSetPriority:UILayoutPriorityDefaultLow
|
||||
forConstraints:^{
|
||||
[constraints addObjectsFromArray:[videoView autoPinEdgesToSuperviewEdges]];
|
||||
}];
|
||||
|
||||
} else {
|
||||
[constraints addObjectsFromArray:[videoView autoPinEdgesToSuperviewEdges]];
|
||||
}
|
||||
|
||||
self.remoteVideoConstraints = [constraints copy];
|
||||
// We need to force relayout to occur immediately (and not
|
||||
// wait for a UIKit layout/render pass) or the remoteVideoView
|
||||
// (which presumably is updating its CALayer directly) will
|
||||
// ocassionally appear to have bad frames.
|
||||
[videoView setNeedsLayout];
|
||||
[[videoView superview] setNeedsLayout];
|
||||
[videoView layoutIfNeeded];
|
||||
[[videoView superview] layoutIfNeeded];
|
||||
}
|
||||
|
||||
/** The frame to be displayed. */
|
||||
- (void)renderFrame:(nullable RTCVideoFrame *)frame
|
||||
{
|
||||
[self.videoRenderer renderFrame:frame];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
NS_ASSUME_NONNULL_END
|
|
@ -32,7 +32,6 @@
|
|||
#import <YapDatabase/YapDatabaseCryptoUtils.h>
|
||||
#import <sys/utsname.h>
|
||||
|
||||
@import WebRTC;
|
||||
@import Intents;
|
||||
|
||||
NSString *const AppDelegateStoryboardMain = @"Main";
|
||||
|
@ -371,8 +370,6 @@ static NSTimeInterval launchStartedAt;
|
|||
|
||||
static dispatch_once_t onceToken;
|
||||
dispatch_once(&onceToken, ^{
|
||||
RTCInitializeSSL();
|
||||
|
||||
if ([self.tsAccountManager isRegistered]) {
|
||||
// At this point, potentially lengthy DB locking migrations could be running.
|
||||
// Avoid blocking app launch by putting all further possible DB access in async block
|
||||
|
|
|
@ -8,8 +8,6 @@
|
|||
<string>0.36.0</string>
|
||||
<key>OSXVersion</key>
|
||||
<string>10.15.6</string>
|
||||
<key>WebRTCCommit</key>
|
||||
<string>1445d719bf05280270e9f77576f80f973fd847f8 M73</string>
|
||||
</dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>en</string>
|
||||
|
@ -65,7 +63,7 @@
|
|||
<key>NSContactsUsageDescription</key>
|
||||
<string>Signal uses your contacts to find users you know. We do not store your contacts on the server.</string>
|
||||
<key>NSFaceIDUsageDescription</key>
|
||||
<string>Session's Screen Lock feature uses Face ID.</string>
|
||||
<string>Session's Screen Lock feature uses Face ID.</string>
|
||||
<key>NSMicrophoneUsageDescription</key>
|
||||
<string>Session needs access to your microphone to record media.</string>
|
||||
<key>NSPhotoLibraryAddUsageDescription</key>
|
||||
|
|
|
@ -33,7 +33,6 @@
|
|||
#import "OWSQuotedMessageView.h"
|
||||
#import "OWSWindowManager.h"
|
||||
#import "PrivacySettingsTableViewController.h"
|
||||
#import "RemoteVideoView.h"
|
||||
#import "OWSQRCodeScanningViewController.h"
|
||||
#import "SignalApp.h"
|
||||
#import "UIViewController+Permissions.h"
|
||||
|
@ -88,6 +87,4 @@
|
|||
#import <SessionMessagingKit/TSThread.h>
|
||||
#import <SessionUtilitiesKit/LKGroupUtilities.h>
|
||||
#import <SessionUtilitiesKit/UIImage+OWS.h>
|
||||
#import <WebRTC/RTCAudioSession.h>
|
||||
#import <WebRTC/RTCCameraPreviewView.h>
|
||||
#import <YYImage/YYImage.h>
|
||||
|
|
|
@ -12,7 +12,6 @@ NS_ASSUME_NONNULL_BEGIN
|
|||
@class HomeVC;
|
||||
@class OWSMessageFetcherJob;
|
||||
@class OWSNavigationController;
|
||||
@class OWSWebRTCCallMessageHandler;
|
||||
@class OutboundCallInitiator;
|
||||
@class TSThread;
|
||||
|
||||
|
|
|
@ -1,317 +0,0 @@
|
|||
// DO NOT EDIT.
|
||||
//
|
||||
// Generated by the Swift generator plugin for the protocol buffer compiler.
|
||||
// Source: OWSWebRTCDataProtos.proto
|
||||
//
|
||||
// For information on using the generated types, please see the documenation:
|
||||
// https://github.com/apple/swift-protobuf/
|
||||
|
||||
//*
|
||||
// Copyright (C) 2014-2016 Open Whisper Systems
|
||||
//
|
||||
// Licensed according to the LICENSE file in this repository.
|
||||
|
||||
/// iOS - since we use a modern proto-compiler, we must specify
|
||||
/// the legacy proto format.
|
||||
|
||||
import Foundation
|
||||
import SwiftProtobuf
|
||||
|
||||
// If the compiler emits an error on this type, it is because this file
|
||||
// was generated by a version of the `protoc` Swift plug-in that is
|
||||
// incompatible with the version of SwiftProtobuf to which you are linking.
|
||||
// Please ensure that your are building against the same version of the API
|
||||
// that was used to generate this file.
|
||||
fileprivate struct _GeneratedWithProtocGenSwiftVersion: SwiftProtobuf.ProtobufAPIVersionCheck {
|
||||
struct _2: SwiftProtobuf.ProtobufAPIVersion_2 {}
|
||||
typealias Version = _2
|
||||
}
|
||||
|
||||
struct WebRTCProtos_Connected {
|
||||
// SwiftProtobuf.Message conformance is added in an extension below. See the
|
||||
// `Message` and `Message+*Additions` files in the SwiftProtobuf library for
|
||||
// methods supported on all messages.
|
||||
|
||||
/// @required
|
||||
var id: UInt64 {
|
||||
get {return _id ?? 0}
|
||||
set {_id = newValue}
|
||||
}
|
||||
/// Returns true if `id` has been explicitly set.
|
||||
var hasID: Bool {return self._id != nil}
|
||||
/// Clears the value of `id`. Subsequent reads from it will return its default value.
|
||||
mutating func clearID() {self._id = nil}
|
||||
|
||||
var unknownFields = SwiftProtobuf.UnknownStorage()
|
||||
|
||||
init() {}
|
||||
|
||||
fileprivate var _id: UInt64? = nil
|
||||
}
|
||||
|
||||
struct WebRTCProtos_Hangup {
|
||||
// SwiftProtobuf.Message conformance is added in an extension below. See the
|
||||
// `Message` and `Message+*Additions` files in the SwiftProtobuf library for
|
||||
// methods supported on all messages.
|
||||
|
||||
/// @required
|
||||
var id: UInt64 {
|
||||
get {return _id ?? 0}
|
||||
set {_id = newValue}
|
||||
}
|
||||
/// Returns true if `id` has been explicitly set.
|
||||
var hasID: Bool {return self._id != nil}
|
||||
/// Clears the value of `id`. Subsequent reads from it will return its default value.
|
||||
mutating func clearID() {self._id = nil}
|
||||
|
||||
var unknownFields = SwiftProtobuf.UnknownStorage()
|
||||
|
||||
init() {}
|
||||
|
||||
fileprivate var _id: UInt64? = nil
|
||||
}
|
||||
|
||||
struct WebRTCProtos_VideoStreamingStatus {
|
||||
// SwiftProtobuf.Message conformance is added in an extension below. See the
|
||||
// `Message` and `Message+*Additions` files in the SwiftProtobuf library for
|
||||
// methods supported on all messages.
|
||||
|
||||
/// @required
|
||||
var id: UInt64 {
|
||||
get {return _id ?? 0}
|
||||
set {_id = newValue}
|
||||
}
|
||||
/// Returns true if `id` has been explicitly set.
|
||||
var hasID: Bool {return self._id != nil}
|
||||
/// Clears the value of `id`. Subsequent reads from it will return its default value.
|
||||
mutating func clearID() {self._id = nil}
|
||||
|
||||
var enabled: Bool {
|
||||
get {return _enabled ?? false}
|
||||
set {_enabled = newValue}
|
||||
}
|
||||
/// Returns true if `enabled` has been explicitly set.
|
||||
var hasEnabled: Bool {return self._enabled != nil}
|
||||
/// Clears the value of `enabled`. Subsequent reads from it will return its default value.
|
||||
mutating func clearEnabled() {self._enabled = nil}
|
||||
|
||||
var unknownFields = SwiftProtobuf.UnknownStorage()
|
||||
|
||||
init() {}
|
||||
|
||||
fileprivate var _id: UInt64? = nil
|
||||
fileprivate var _enabled: Bool? = nil
|
||||
}
|
||||
|
||||
struct WebRTCProtos_Data {
|
||||
// SwiftProtobuf.Message conformance is added in an extension below. See the
|
||||
// `Message` and `Message+*Additions` files in the SwiftProtobuf library for
|
||||
// methods supported on all messages.
|
||||
|
||||
var connected: WebRTCProtos_Connected {
|
||||
get {return _storage._connected ?? WebRTCProtos_Connected()}
|
||||
set {_uniqueStorage()._connected = newValue}
|
||||
}
|
||||
/// Returns true if `connected` has been explicitly set.
|
||||
var hasConnected: Bool {return _storage._connected != nil}
|
||||
/// Clears the value of `connected`. Subsequent reads from it will return its default value.
|
||||
mutating func clearConnected() {_storage._connected = nil}
|
||||
|
||||
var hangup: WebRTCProtos_Hangup {
|
||||
get {return _storage._hangup ?? WebRTCProtos_Hangup()}
|
||||
set {_uniqueStorage()._hangup = newValue}
|
||||
}
|
||||
/// Returns true if `hangup` has been explicitly set.
|
||||
var hasHangup: Bool {return _storage._hangup != nil}
|
||||
/// Clears the value of `hangup`. Subsequent reads from it will return its default value.
|
||||
mutating func clearHangup() {_storage._hangup = nil}
|
||||
|
||||
var videoStreamingStatus: WebRTCProtos_VideoStreamingStatus {
|
||||
get {return _storage._videoStreamingStatus ?? WebRTCProtos_VideoStreamingStatus()}
|
||||
set {_uniqueStorage()._videoStreamingStatus = newValue}
|
||||
}
|
||||
/// Returns true if `videoStreamingStatus` has been explicitly set.
|
||||
var hasVideoStreamingStatus: Bool {return _storage._videoStreamingStatus != nil}
|
||||
/// Clears the value of `videoStreamingStatus`. Subsequent reads from it will return its default value.
|
||||
mutating func clearVideoStreamingStatus() {_storage._videoStreamingStatus = nil}
|
||||
|
||||
var unknownFields = SwiftProtobuf.UnknownStorage()
|
||||
|
||||
init() {}
|
||||
|
||||
fileprivate var _storage = _StorageClass.defaultInstance
|
||||
}
|
||||
|
||||
// MARK: - Code below here is support for the SwiftProtobuf runtime.
|
||||
|
||||
fileprivate let _protobuf_package = "WebRTCProtos"
|
||||
|
||||
extension WebRTCProtos_Connected: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
|
||||
static let protoMessageName: String = _protobuf_package + ".Connected"
|
||||
static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
|
||||
1: .same(proto: "id"),
|
||||
]
|
||||
|
||||
mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
|
||||
while let fieldNumber = try decoder.nextFieldNumber() {
|
||||
switch fieldNumber {
|
||||
case 1: try decoder.decodeSingularUInt64Field(value: &self._id)
|
||||
default: break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
|
||||
if let v = self._id {
|
||||
try visitor.visitSingularUInt64Field(value: v, fieldNumber: 1)
|
||||
}
|
||||
try unknownFields.traverse(visitor: &visitor)
|
||||
}
|
||||
|
||||
func _protobuf_generated_isEqualTo(other: WebRTCProtos_Connected) -> Bool {
|
||||
if self._id != other._id {return false}
|
||||
if unknownFields != other.unknownFields {return false}
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
extension WebRTCProtos_Hangup: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
|
||||
static let protoMessageName: String = _protobuf_package + ".Hangup"
|
||||
static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
|
||||
1: .same(proto: "id"),
|
||||
]
|
||||
|
||||
mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
|
||||
while let fieldNumber = try decoder.nextFieldNumber() {
|
||||
switch fieldNumber {
|
||||
case 1: try decoder.decodeSingularUInt64Field(value: &self._id)
|
||||
default: break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
|
||||
if let v = self._id {
|
||||
try visitor.visitSingularUInt64Field(value: v, fieldNumber: 1)
|
||||
}
|
||||
try unknownFields.traverse(visitor: &visitor)
|
||||
}
|
||||
|
||||
func _protobuf_generated_isEqualTo(other: WebRTCProtos_Hangup) -> Bool {
|
||||
if self._id != other._id {return false}
|
||||
if unknownFields != other.unknownFields {return false}
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
extension WebRTCProtos_VideoStreamingStatus: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
|
||||
static let protoMessageName: String = _protobuf_package + ".VideoStreamingStatus"
|
||||
static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
|
||||
1: .same(proto: "id"),
|
||||
2: .same(proto: "enabled"),
|
||||
]
|
||||
|
||||
mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
|
||||
while let fieldNumber = try decoder.nextFieldNumber() {
|
||||
switch fieldNumber {
|
||||
case 1: try decoder.decodeSingularUInt64Field(value: &self._id)
|
||||
case 2: try decoder.decodeSingularBoolField(value: &self._enabled)
|
||||
default: break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
|
||||
if let v = self._id {
|
||||
try visitor.visitSingularUInt64Field(value: v, fieldNumber: 1)
|
||||
}
|
||||
if let v = self._enabled {
|
||||
try visitor.visitSingularBoolField(value: v, fieldNumber: 2)
|
||||
}
|
||||
try unknownFields.traverse(visitor: &visitor)
|
||||
}
|
||||
|
||||
func _protobuf_generated_isEqualTo(other: WebRTCProtos_VideoStreamingStatus) -> Bool {
|
||||
if self._id != other._id {return false}
|
||||
if self._enabled != other._enabled {return false}
|
||||
if unknownFields != other.unknownFields {return false}
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
extension WebRTCProtos_Data: SwiftProtobuf.Message, SwiftProtobuf._MessageImplementationBase, SwiftProtobuf._ProtoNameProviding {
|
||||
static let protoMessageName: String = _protobuf_package + ".Data"
|
||||
static let _protobuf_nameMap: SwiftProtobuf._NameMap = [
|
||||
1: .same(proto: "connected"),
|
||||
2: .same(proto: "hangup"),
|
||||
3: .same(proto: "videoStreamingStatus"),
|
||||
]
|
||||
|
||||
fileprivate class _StorageClass {
|
||||
var _connected: WebRTCProtos_Connected? = nil
|
||||
var _hangup: WebRTCProtos_Hangup? = nil
|
||||
var _videoStreamingStatus: WebRTCProtos_VideoStreamingStatus? = nil
|
||||
|
||||
static let defaultInstance = _StorageClass()
|
||||
|
||||
private init() {}
|
||||
|
||||
init(copying source: _StorageClass) {
|
||||
_connected = source._connected
|
||||
_hangup = source._hangup
|
||||
_videoStreamingStatus = source._videoStreamingStatus
|
||||
}
|
||||
}
|
||||
|
||||
fileprivate mutating func _uniqueStorage() -> _StorageClass {
|
||||
if !isKnownUniquelyReferenced(&_storage) {
|
||||
_storage = _StorageClass(copying: _storage)
|
||||
}
|
||||
return _storage
|
||||
}
|
||||
|
||||
mutating func decodeMessage<D: SwiftProtobuf.Decoder>(decoder: inout D) throws {
|
||||
_ = _uniqueStorage()
|
||||
try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
|
||||
while let fieldNumber = try decoder.nextFieldNumber() {
|
||||
switch fieldNumber {
|
||||
case 1: try decoder.decodeSingularMessageField(value: &_storage._connected)
|
||||
case 2: try decoder.decodeSingularMessageField(value: &_storage._hangup)
|
||||
case 3: try decoder.decodeSingularMessageField(value: &_storage._videoStreamingStatus)
|
||||
default: break
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func traverse<V: SwiftProtobuf.Visitor>(visitor: inout V) throws {
|
||||
try withExtendedLifetime(_storage) { (_storage: _StorageClass) in
|
||||
if let v = _storage._connected {
|
||||
try visitor.visitSingularMessageField(value: v, fieldNumber: 1)
|
||||
}
|
||||
if let v = _storage._hangup {
|
||||
try visitor.visitSingularMessageField(value: v, fieldNumber: 2)
|
||||
}
|
||||
if let v = _storage._videoStreamingStatus {
|
||||
try visitor.visitSingularMessageField(value: v, fieldNumber: 3)
|
||||
}
|
||||
}
|
||||
try unknownFields.traverse(visitor: &visitor)
|
||||
}
|
||||
|
||||
func _protobuf_generated_isEqualTo(other: WebRTCProtos_Data) -> Bool {
|
||||
if _storage !== other._storage {
|
||||
let storagesAreEqual: Bool = withExtendedLifetime((_storage, other._storage)) { (_args: (_StorageClass, _StorageClass)) in
|
||||
let _storage = _args.0
|
||||
let other_storage = _args.1
|
||||
if _storage._connected != other_storage._connected {return false}
|
||||
if _storage._hangup != other_storage._hangup {return false}
|
||||
if _storage._videoStreamingStatus != other_storage._videoStreamingStatus {return false}
|
||||
return true
|
||||
}
|
||||
if !storagesAreEqual {return false}
|
||||
}
|
||||
if unknownFields != other.unknownFields {return false}
|
||||
return true
|
||||
}
|
||||
}
|
|
@ -1,392 +0,0 @@
|
|||
//
|
||||
// Copyright (c) 2018 Open Whisper Systems. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
// WARNING: This code is generated. Only edit within the markers.
|
||||
|
||||
public enum WebRTCProtoError: Error {
|
||||
case invalidProtobuf(description: String)
|
||||
}
|
||||
|
||||
// MARK: - WebRTCProtoConnected
|
||||
|
||||
@objc public class WebRTCProtoConnected: NSObject {
|
||||
|
||||
// MARK: - WebRTCProtoConnectedBuilder
|
||||
|
||||
@objc public class func builder(id: UInt64) -> WebRTCProtoConnectedBuilder {
|
||||
return WebRTCProtoConnectedBuilder(id: id)
|
||||
}
|
||||
|
||||
@objc public class WebRTCProtoConnectedBuilder: NSObject {
|
||||
|
||||
private var proto = WebRTCProtos_Connected()
|
||||
|
||||
@objc fileprivate override init() {}
|
||||
|
||||
@objc fileprivate init(id: UInt64) {
|
||||
super.init()
|
||||
|
||||
setId(id)
|
||||
}
|
||||
|
||||
@objc public func setId(_ valueParam: UInt64) {
|
||||
proto.id = valueParam
|
||||
}
|
||||
|
||||
@objc public func build() throws -> WebRTCProtoConnected {
|
||||
return try WebRTCProtoConnected.parseProto(proto)
|
||||
}
|
||||
|
||||
@objc public func buildSerializedData() throws -> Data {
|
||||
return try WebRTCProtoConnected.parseProto(proto).serializedData()
|
||||
}
|
||||
}
|
||||
|
||||
fileprivate let proto: WebRTCProtos_Connected
|
||||
|
||||
@objc public let id: UInt64
|
||||
|
||||
private init(proto: WebRTCProtos_Connected,
|
||||
id: UInt64) {
|
||||
self.proto = proto
|
||||
self.id = id
|
||||
}
|
||||
|
||||
@objc
|
||||
public func serializedData() throws -> Data {
|
||||
return try self.proto.serializedData()
|
||||
}
|
||||
|
||||
@objc public class func parseData(_ serializedData: Data) throws -> WebRTCProtoConnected {
|
||||
let proto = try WebRTCProtos_Connected(serializedData: serializedData)
|
||||
return try parseProto(proto)
|
||||
}
|
||||
|
||||
fileprivate class func parseProto(_ proto: WebRTCProtos_Connected) throws -> WebRTCProtoConnected {
|
||||
guard proto.hasID else {
|
||||
throw WebRTCProtoError.invalidProtobuf(description: "\(logTag) missing required field: id")
|
||||
}
|
||||
let id = proto.id
|
||||
|
||||
// MARK: - Begin Validation Logic for WebRTCProtoConnected -
|
||||
|
||||
// MARK: - End Validation Logic for WebRTCProtoConnected -
|
||||
|
||||
let result = WebRTCProtoConnected(proto: proto,
|
||||
id: id)
|
||||
return result
|
||||
}
|
||||
}
|
||||
|
||||
#if DEBUG
|
||||
|
||||
extension WebRTCProtoConnected {
|
||||
@objc public func serializedDataIgnoringErrors() -> Data? {
|
||||
return try! self.serializedData()
|
||||
}
|
||||
}
|
||||
|
||||
extension WebRTCProtoConnected.WebRTCProtoConnectedBuilder {
|
||||
@objc public func buildIgnoringErrors() -> WebRTCProtoConnected? {
|
||||
return try! self.build()
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
// MARK: - WebRTCProtoHangup
|
||||
|
||||
@objc public class WebRTCProtoHangup: NSObject {
|
||||
|
||||
// MARK: - WebRTCProtoHangupBuilder
|
||||
|
||||
@objc public class func builder(id: UInt64) -> WebRTCProtoHangupBuilder {
|
||||
return WebRTCProtoHangupBuilder(id: id)
|
||||
}
|
||||
|
||||
@objc public class WebRTCProtoHangupBuilder: NSObject {
|
||||
|
||||
private var proto = WebRTCProtos_Hangup()
|
||||
|
||||
@objc fileprivate override init() {}
|
||||
|
||||
@objc fileprivate init(id: UInt64) {
|
||||
super.init()
|
||||
|
||||
setId(id)
|
||||
}
|
||||
|
||||
@objc public func setId(_ valueParam: UInt64) {
|
||||
proto.id = valueParam
|
||||
}
|
||||
|
||||
@objc public func build() throws -> WebRTCProtoHangup {
|
||||
return try WebRTCProtoHangup.parseProto(proto)
|
||||
}
|
||||
|
||||
@objc public func buildSerializedData() throws -> Data {
|
||||
return try WebRTCProtoHangup.parseProto(proto).serializedData()
|
||||
}
|
||||
}
|
||||
|
||||
fileprivate let proto: WebRTCProtos_Hangup
|
||||
|
||||
@objc public let id: UInt64
|
||||
|
||||
private init(proto: WebRTCProtos_Hangup,
|
||||
id: UInt64) {
|
||||
self.proto = proto
|
||||
self.id = id
|
||||
}
|
||||
|
||||
@objc
|
||||
public func serializedData() throws -> Data {
|
||||
return try self.proto.serializedData()
|
||||
}
|
||||
|
||||
@objc public class func parseData(_ serializedData: Data) throws -> WebRTCProtoHangup {
|
||||
let proto = try WebRTCProtos_Hangup(serializedData: serializedData)
|
||||
return try parseProto(proto)
|
||||
}
|
||||
|
||||
fileprivate class func parseProto(_ proto: WebRTCProtos_Hangup) throws -> WebRTCProtoHangup {
|
||||
guard proto.hasID else {
|
||||
throw WebRTCProtoError.invalidProtobuf(description: "\(logTag) missing required field: id")
|
||||
}
|
||||
let id = proto.id
|
||||
|
||||
// MARK: - Begin Validation Logic for WebRTCProtoHangup -
|
||||
|
||||
// MARK: - End Validation Logic for WebRTCProtoHangup -
|
||||
|
||||
let result = WebRTCProtoHangup(proto: proto,
|
||||
id: id)
|
||||
return result
|
||||
}
|
||||
}
|
||||
|
||||
#if DEBUG
|
||||
|
||||
extension WebRTCProtoHangup {
|
||||
@objc public func serializedDataIgnoringErrors() -> Data? {
|
||||
return try! self.serializedData()
|
||||
}
|
||||
}
|
||||
|
||||
extension WebRTCProtoHangup.WebRTCProtoHangupBuilder {
|
||||
@objc public func buildIgnoringErrors() -> WebRTCProtoHangup? {
|
||||
return try! self.build()
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
// MARK: - WebRTCProtoVideoStreamingStatus
|
||||
|
||||
@objc public class WebRTCProtoVideoStreamingStatus: NSObject {
|
||||
|
||||
// MARK: - WebRTCProtoVideoStreamingStatusBuilder
|
||||
|
||||
@objc public class func builder(id: UInt64) -> WebRTCProtoVideoStreamingStatusBuilder {
|
||||
return WebRTCProtoVideoStreamingStatusBuilder(id: id)
|
||||
}
|
||||
|
||||
@objc public class WebRTCProtoVideoStreamingStatusBuilder: NSObject {
|
||||
|
||||
private var proto = WebRTCProtos_VideoStreamingStatus()
|
||||
|
||||
@objc fileprivate override init() {}
|
||||
|
||||
@objc fileprivate init(id: UInt64) {
|
||||
super.init()
|
||||
|
||||
setId(id)
|
||||
}
|
||||
|
||||
@objc public func setId(_ valueParam: UInt64) {
|
||||
proto.id = valueParam
|
||||
}
|
||||
|
||||
@objc public func setEnabled(_ valueParam: Bool) {
|
||||
proto.enabled = valueParam
|
||||
}
|
||||
|
||||
@objc public func build() throws -> WebRTCProtoVideoStreamingStatus {
|
||||
return try WebRTCProtoVideoStreamingStatus.parseProto(proto)
|
||||
}
|
||||
|
||||
@objc public func buildSerializedData() throws -> Data {
|
||||
return try WebRTCProtoVideoStreamingStatus.parseProto(proto).serializedData()
|
||||
}
|
||||
}
|
||||
|
||||
fileprivate let proto: WebRTCProtos_VideoStreamingStatus
|
||||
|
||||
@objc public let id: UInt64
|
||||
|
||||
@objc public var enabled: Bool {
|
||||
return proto.enabled
|
||||
}
|
||||
@objc public var hasEnabled: Bool {
|
||||
return proto.hasEnabled
|
||||
}
|
||||
|
||||
private init(proto: WebRTCProtos_VideoStreamingStatus,
|
||||
id: UInt64) {
|
||||
self.proto = proto
|
||||
self.id = id
|
||||
}
|
||||
|
||||
@objc
|
||||
public func serializedData() throws -> Data {
|
||||
return try self.proto.serializedData()
|
||||
}
|
||||
|
||||
@objc public class func parseData(_ serializedData: Data) throws -> WebRTCProtoVideoStreamingStatus {
|
||||
let proto = try WebRTCProtos_VideoStreamingStatus(serializedData: serializedData)
|
||||
return try parseProto(proto)
|
||||
}
|
||||
|
||||
fileprivate class func parseProto(_ proto: WebRTCProtos_VideoStreamingStatus) throws -> WebRTCProtoVideoStreamingStatus {
|
||||
guard proto.hasID else {
|
||||
throw WebRTCProtoError.invalidProtobuf(description: "\(logTag) missing required field: id")
|
||||
}
|
||||
let id = proto.id
|
||||
|
||||
// MARK: - Begin Validation Logic for WebRTCProtoVideoStreamingStatus -
|
||||
|
||||
// MARK: - End Validation Logic for WebRTCProtoVideoStreamingStatus -
|
||||
|
||||
let result = WebRTCProtoVideoStreamingStatus(proto: proto,
|
||||
id: id)
|
||||
return result
|
||||
}
|
||||
}
|
||||
|
||||
#if DEBUG
|
||||
|
||||
extension WebRTCProtoVideoStreamingStatus {
|
||||
@objc public func serializedDataIgnoringErrors() -> Data? {
|
||||
return try! self.serializedData()
|
||||
}
|
||||
}
|
||||
|
||||
extension WebRTCProtoVideoStreamingStatus.WebRTCProtoVideoStreamingStatusBuilder {
|
||||
@objc public func buildIgnoringErrors() -> WebRTCProtoVideoStreamingStatus? {
|
||||
return try! self.build()
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
// MARK: - WebRTCProtoData
|
||||
|
||||
@objc public class WebRTCProtoData: NSObject {
|
||||
|
||||
// MARK: - WebRTCProtoDataBuilder
|
||||
|
||||
@objc public class func builder() -> WebRTCProtoDataBuilder {
|
||||
return WebRTCProtoDataBuilder()
|
||||
}
|
||||
|
||||
@objc public class WebRTCProtoDataBuilder: NSObject {
|
||||
|
||||
private var proto = WebRTCProtos_Data()
|
||||
|
||||
@objc fileprivate override init() {}
|
||||
|
||||
@objc public func setConnected(_ valueParam: WebRTCProtoConnected) {
|
||||
proto.connected = valueParam.proto
|
||||
}
|
||||
|
||||
@objc public func setHangup(_ valueParam: WebRTCProtoHangup) {
|
||||
proto.hangup = valueParam.proto
|
||||
}
|
||||
|
||||
@objc public func setVideoStreamingStatus(_ valueParam: WebRTCProtoVideoStreamingStatus) {
|
||||
proto.videoStreamingStatus = valueParam.proto
|
||||
}
|
||||
|
||||
@objc public func build() throws -> WebRTCProtoData {
|
||||
return try WebRTCProtoData.parseProto(proto)
|
||||
}
|
||||
|
||||
@objc public func buildSerializedData() throws -> Data {
|
||||
return try WebRTCProtoData.parseProto(proto).serializedData()
|
||||
}
|
||||
}
|
||||
|
||||
fileprivate let proto: WebRTCProtos_Data
|
||||
|
||||
@objc public let connected: WebRTCProtoConnected?
|
||||
|
||||
@objc public let hangup: WebRTCProtoHangup?
|
||||
|
||||
@objc public let videoStreamingStatus: WebRTCProtoVideoStreamingStatus?
|
||||
|
||||
private init(proto: WebRTCProtos_Data,
|
||||
connected: WebRTCProtoConnected?,
|
||||
hangup: WebRTCProtoHangup?,
|
||||
videoStreamingStatus: WebRTCProtoVideoStreamingStatus?) {
|
||||
self.proto = proto
|
||||
self.connected = connected
|
||||
self.hangup = hangup
|
||||
self.videoStreamingStatus = videoStreamingStatus
|
||||
}
|
||||
|
||||
@objc
|
||||
public func serializedData() throws -> Data {
|
||||
return try self.proto.serializedData()
|
||||
}
|
||||
|
||||
@objc public class func parseData(_ serializedData: Data) throws -> WebRTCProtoData {
|
||||
let proto = try WebRTCProtos_Data(serializedData: serializedData)
|
||||
return try parseProto(proto)
|
||||
}
|
||||
|
||||
fileprivate class func parseProto(_ proto: WebRTCProtos_Data) throws -> WebRTCProtoData {
|
||||
var connected: WebRTCProtoConnected?
|
||||
if proto.hasConnected {
|
||||
connected = try WebRTCProtoConnected.parseProto(proto.connected)
|
||||
}
|
||||
|
||||
var hangup: WebRTCProtoHangup?
|
||||
if proto.hasHangup {
|
||||
hangup = try WebRTCProtoHangup.parseProto(proto.hangup)
|
||||
}
|
||||
|
||||
var videoStreamingStatus: WebRTCProtoVideoStreamingStatus?
|
||||
if proto.hasVideoStreamingStatus {
|
||||
videoStreamingStatus = try WebRTCProtoVideoStreamingStatus.parseProto(proto.videoStreamingStatus)
|
||||
}
|
||||
|
||||
// MARK: - Begin Validation Logic for WebRTCProtoData -
|
||||
|
||||
// MARK: - End Validation Logic for WebRTCProtoData -
|
||||
|
||||
let result = WebRTCProtoData(proto: proto,
|
||||
connected: connected,
|
||||
hangup: hangup,
|
||||
videoStreamingStatus: videoStreamingStatus)
|
||||
return result
|
||||
}
|
||||
}
|
||||
|
||||
#if DEBUG
|
||||
|
||||
extension WebRTCProtoData {
|
||||
@objc public func serializedDataIgnoringErrors() -> Data? {
|
||||
return try! self.serializedData()
|
||||
}
|
||||
}
|
||||
|
||||
extension WebRTCProtoData.WebRTCProtoDataBuilder {
|
||||
@objc public func buildIgnoringErrors() -> WebRTCProtoData? {
|
||||
return try! self.build()
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
|
@ -16,6 +16,11 @@ extension MessageReceiver {
|
|||
case let message as VisibleMessage: try handleVisibleMessage(message, associatedWithProto: proto, openGroupID: openGroupID, isBackgroundPoll: isBackgroundPoll, using: transaction)
|
||||
default: fatalError()
|
||||
}
|
||||
var isMainAppAndActive = false
|
||||
if let sharedUserDefaults = UserDefaults(suiteName: "group.com.loki-project.loki-messenger") {
|
||||
isMainAppAndActive = sharedUserDefaults.bool(forKey: "isMainAppActive")
|
||||
}
|
||||
guard isMainAppAndActive else { return }
|
||||
// Touch the thread to update the home screen preview
|
||||
let storage = SNMessagingKitConfiguration.shared.storage
|
||||
guard let threadID = storage.getOrCreateThread(for: message.sender!, groupPublicKey: message.groupPublicKey, openGroupID: openGroupID, using: transaction) else { return }
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
//
|
||||
|
||||
import Foundation
|
||||
import WebRTC
|
||||
import AVFoundation
|
||||
|
||||
@objc(OWSAudioActivity)
|
||||
public class AudioActivity: NSObject {
|
||||
|
@ -176,45 +176,4 @@ public class OWSAudioSession: NSObject {
|
|||
owsFailDebug("failed with error: \(error)")
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: - WebRTC Audio
|
||||
|
||||
/**
|
||||
* By default WebRTC starts the audio session (PlayAndRecord) immediately upon creating the peer connection
|
||||
* but we want to create the peer connection and set up all the signaling channels before we prompt the user
|
||||
* for an incoming call. Without manually handling the session, this would result in the user seeing a recording
|
||||
* permission requested (and recording banner) before they even know they have an incoming call.
|
||||
*
|
||||
* By using the `useManualAudio` and `isAudioEnabled` attributes of the RTCAudioSession we can delay recording until
|
||||
* it makes sense.
|
||||
*/
|
||||
|
||||
/**
|
||||
* The private class that manages AVAudioSession for WebRTC
|
||||
*/
|
||||
private let rtcAudioSession = RTCAudioSession.sharedInstance()
|
||||
|
||||
/**
|
||||
* This must be called before any audio tracks are added to the peerConnection, else we'll start recording before all
|
||||
* our signaling is set up.
|
||||
*/
|
||||
@objc
|
||||
public func configureRTCAudio() {
|
||||
Logger.info("")
|
||||
rtcAudioSession.useManualAudio = true
|
||||
}
|
||||
|
||||
/**
|
||||
* Because we useManualAudio with our RTCAudioSession, we have to start/stop the recording audio session ourselves.
|
||||
* See header for details on manual audio.
|
||||
*/
|
||||
@objc
|
||||
public var isRTCAudioEnabled: Bool {
|
||||
get {
|
||||
return rtcAudioSession.isAudioEnabled
|
||||
}
|
||||
set {
|
||||
rtcAudioSession.isAudioEnabled = newValue
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -83,15 +83,14 @@ public class ShareViewController: UIViewController, ShareViewDelegate, SAEFailed
|
|||
// We shouldn't set up our environment until after we've consulted isReadyForAppExtensions.
|
||||
AppSetup.setupEnvironment(appSpecificSingletonBlock: {
|
||||
SSKEnvironment.shared.notificationsManager = NoopNotificationsManager()
|
||||
},
|
||||
migrationCompletion: { [weak self] in
|
||||
AssertIsOnMainThread()
|
||||
}, migrationCompletion: { [weak self] in
|
||||
AssertIsOnMainThread()
|
||||
|
||||
guard let strongSelf = self else { return }
|
||||
guard let strongSelf = self else { return }
|
||||
|
||||
// performUpdateCheck must be invoked after Environment has been initialized because
|
||||
// upgrade process may depend on Environment.
|
||||
strongSelf.versionMigrationsDidComplete()
|
||||
// performUpdateCheck must be invoked after Environment has been initialized because
|
||||
// upgrade process may depend on Environment.
|
||||
strongSelf.versionMigrationsDidComplete()
|
||||
})
|
||||
|
||||
let shareViewNavigationController = OWSNavigationController()
|
||||
|
@ -112,7 +111,7 @@ public class ShareViewController: UIViewController, ShareViewDelegate, SAEFailed
|
|||
|
||||
Logger.debug("setup is slow - showing loading screen")
|
||||
strongSelf.showPrimaryViewController(loadViewController)
|
||||
}.retainUntilComplete()
|
||||
}.retainUntilComplete()
|
||||
|
||||
// We don't need to use "screen protection" in the SAE.
|
||||
|
||||
|
@ -180,7 +179,7 @@ public class ShareViewController: UIViewController, ShareViewDelegate, SAEFailed
|
|||
// Avoid blocking app launch by putting all further possible DB access in async block
|
||||
DispatchQueue.global().async { [weak self] in
|
||||
guard let _ = self else { return }
|
||||
Logger.info("running post launch block for registered user: \(TSAccountManager.localNumber())")
|
||||
Logger.info("running post launch block for registered user: \(TSAccountManager.localNumber()!)")
|
||||
|
||||
// We don't need to use OWSDisappearingMessagesJob in the SAE.
|
||||
|
||||
|
@ -199,7 +198,7 @@ public class ShareViewController: UIViewController, ShareViewDelegate, SAEFailed
|
|||
if tsAccountManager.isRegistered() {
|
||||
DispatchQueue.main.async { [weak self] in
|
||||
guard let _ = self else { return }
|
||||
Logger.info("running post launch block for registered user: \(TSAccountManager.localNumber())")
|
||||
Logger.info("running post launch block for registered user: \(TSAccountManager.localNumber()!)")
|
||||
|
||||
// We don't need to use the TSSocketManager in the SAE.
|
||||
|
||||
|
@ -258,7 +257,7 @@ public class ShareViewController: UIViewController, ShareViewDelegate, SAEFailed
|
|||
AppReadiness.setAppIsReady()
|
||||
|
||||
if tsAccountManager.isRegistered() {
|
||||
Logger.info("localNumber: \(TSAccountManager.localNumber())")
|
||||
Logger.info("localNumber: \(TSAccountManager.localNumber()!)")
|
||||
|
||||
// We don't need to use messageFetcherJob in the SAE.
|
||||
|
||||
|
@ -290,7 +289,7 @@ public class ShareViewController: UIViewController, ShareViewDelegate, SAEFailed
|
|||
Logger.debug("")
|
||||
|
||||
if tsAccountManager.isRegistered() {
|
||||
Logger.info("localNumber: \(TSAccountManager.localNumber())")
|
||||
Logger.info("localNumber: \(TSAccountManager.localNumber()!)")
|
||||
|
||||
// We don't need to use ExperienceUpgradeFinder in the SAE.
|
||||
|
||||
|
|
|
@ -52,6 +52,7 @@ public final class Storage : NSObject {
|
|||
|
||||
@discardableResult
|
||||
public static func write(with block: @escaping (YapDatabaseReadWriteTransaction) -> Void, completion: @escaping () -> Void) -> Promise<Void> {
|
||||
print(owsStorage)
|
||||
let (promise, seal) = Promise<Void>.pending()
|
||||
serialQueue.async {
|
||||
owsStorage.dbReadWriteConnection.readWrite { transaction in
|
||||
|
|
|
@ -5,10 +5,19 @@ extension OWSPrimaryStorage : OWSPrimaryStorageProtocol { }
|
|||
|
||||
@objc(SNConfiguration)
|
||||
public final class Configuration : NSObject {
|
||||
|
||||
private static let sharedSenderKeysDelegate = SharedSenderKeysImpl()
|
||||
|
||||
private final class SharedSenderKeysImpl : SharedSenderKeysDelegate {
|
||||
|
||||
func requestSenderKey(for groupPublicKey: String, senderPublicKey: String, using transaction: Any) {
|
||||
// Do nothing
|
||||
}
|
||||
}
|
||||
|
||||
@objc public static func performMainSetup() {
|
||||
SNMessagingKit.configure(storage: Storage.shared)
|
||||
SNSnodeKit.configure(storage: Storage.shared)
|
||||
SNProtocolKit.configure(storage: Storage.shared, sharedSenderKeysDelegate: sharedSenderKeysDelegate)
|
||||
SNUtilitiesKit.configure(owsPrimaryStorage: OWSPrimaryStorage.shared(), maxFileSize: UInt(Double(FileServerAPI.maxFileSize) / FileServerAPI.fileSizeORMultiplier))
|
||||
}
|
||||
}
|
||||
|
|
|
@ -49,7 +49,7 @@ NS_ASSUME_NONNULL_BEGIN
|
|||
if (!previousVersion) {
|
||||
OWSLogInfo(@"No previous version found. Probably first launch since install - nothing to migrate.");
|
||||
OWSDatabaseMigrationRunner *runner = [[OWSDatabaseMigrationRunner alloc] init];
|
||||
[runner assumeAllExistingMigrationsRun];
|
||||
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
completion();
|
||||
});
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
Subproject commit bb128340bcefe46794f38d569be6ea21a9fbd750
|
|
@ -1 +0,0 @@
|
|||
Subproject commit 1445d719bf05280270e9f77576f80f973fd847f8
|
Loading…
Reference in New Issue