Commit Graph

691 Commits (4b4c69a533b7a0d4b3f2135cbd9e0f995738b5bd)

Author SHA1 Message Date
Morgan Pretty 290bce5ce0 Merge branch 'feature/session-id-blinding-part-2' into feature/database-refactor
# Conflicts:
#	Podfile
#	Podfile.lock
#	Session.xcodeproj/project.pbxproj
#	Session/Closed Groups/EditClosedGroupVC.swift
#	Session/Closed Groups/NewClosedGroupVC.swift
#	Session/Conversations/Context Menu/ContextMenuVC+Action.swift
#	Session/Conversations/Context Menu/ContextMenuVC.swift
#	Session/Conversations/ConversationMessageMapping.swift
#	Session/Conversations/ConversationSearch.swift
#	Session/Conversations/ConversationVC+Interaction.swift
#	Session/Conversations/ConversationVC.swift
#	Session/Conversations/ConversationViewItem.h
#	Session/Conversations/ConversationViewItem.m
#	Session/Conversations/ConversationViewModel.m
#	Session/Conversations/Input View/InputView.swift
#	Session/Conversations/Input View/MentionSelectionView.swift
#	Session/Conversations/LongTextViewController.swift
#	Session/Conversations/Message Cells/Content Views/LinkPreviewView.swift
#	Session/Conversations/Message Cells/MessageCell.swift
#	Session/Conversations/Message Cells/VisibleMessageCell.swift
#	Session/Conversations/Settings/OWSConversationSettingsViewController.m
#	Session/Conversations/Views & Modals/ConversationTitleView.swift
#	Session/Conversations/Views & Modals/DownloadAttachmentModal.swift
#	Session/Conversations/Views & Modals/JoinOpenGroupModal.swift
#	Session/Conversations/Views & Modals/LinkPreviewModal.swift
#	Session/Conversations/Views & Modals/MessagesTableView.swift
#	Session/Conversations/Views & Modals/URLModal.swift
#	Session/Home/GlobalSearch/GlobalSearchViewController.swift
#	Session/Home/HomeVC.swift
#	Session/Home/Message Requests/MessageRequestsViewController.swift
#	Session/Media Viewing & Editing/MediaDetailViewController.m
#	Session/Media Viewing & Editing/MediaPageViewController.swift
#	Session/Meta/AppDelegate.m
#	Session/Meta/AppDelegate.swift
#	Session/Meta/AppEnvironment.swift
#	Session/Meta/Signal-Bridging-Header.h
#	Session/Meta/Translations/en.lproj/Localizable.strings
#	Session/Meta/Translations/hi.lproj/Localizable.strings
#	Session/Meta/Translations/si.lproj/Localizable.strings
#	Session/Meta/Translations/zh-Hant.lproj/Localizable.strings
#	Session/Notifications/AppNotifications.swift
#	Session/Open Groups/JoinOpenGroupVC.swift
#	Session/Settings/NukeDataModal.swift
#	Session/Settings/SeedModal.swift
#	Session/Settings/SettingsVC.swift
#	Session/Settings/ShareLogsModal.swift
#	Session/Shared/ConversationCell.swift
#	Session/Shared/UserSelectionVC.swift
#	Session/Utilities/BackgroundPoller.swift
#	Session/Utilities/MentionUtilities.swift
#	Session/Utilities/MockDataGenerator.swift
#	SessionMessagingKit/Database/OWSPrimaryStorage.m
#	SessionMessagingKit/Database/SSKPreferences.swift
#	SessionMessagingKit/Database/Storage+Contacts.swift
#	SessionMessagingKit/Database/Storage+Jobs.swift
#	SessionMessagingKit/Database/Storage+Messaging.swift
#	SessionMessagingKit/Database/Storage+OpenGroups.swift
#	SessionMessagingKit/Database/TSDatabaseView.m
#	SessionMessagingKit/File Server/FileServerAPIV2.swift
#	SessionMessagingKit/Jobs/AttachmentDownloadJob.swift
#	SessionMessagingKit/Jobs/AttachmentUploadJob.swift
#	SessionMessagingKit/Jobs/JobQueue.swift
#	SessionMessagingKit/Jobs/MessageReceiveJob.swift
#	SessionMessagingKit/Jobs/MessageSendJob.swift
#	SessionMessagingKit/Jobs/NotifyPNServerJob.swift
#	SessionMessagingKit/Messages/Control Messages/ClosedGroupControlMessage.swift
#	SessionMessagingKit/Messages/Control Messages/ConfigurationMessage+Convenience.swift
#	SessionMessagingKit/Messages/Message+Destination.swift
#	SessionMessagingKit/Messages/Signal/TSIncomingMessage.h
#	SessionMessagingKit/Messages/Signal/TSIncomingMessage.m
#	SessionMessagingKit/Messages/Signal/TSInfoMessage.h
#	SessionMessagingKit/Messages/Signal/TSInfoMessage.m
#	SessionMessagingKit/Messages/Signal/TSInteraction.h
#	SessionMessagingKit/Messages/Signal/TSInteraction.m
#	SessionMessagingKit/Messages/Signal/TSMessage.h
#	SessionMessagingKit/Messages/Signal/TSMessage.m
#	SessionMessagingKit/Open Groups/OpenGroupAPIV2+ObjC.swift
#	SessionMessagingKit/Open Groups/OpenGroupAPIV2.swift
#	SessionMessagingKit/Open Groups/OpenGroupManagerV2.swift
#	SessionMessagingKit/Open Groups/OpenGroupMessageV2.swift
#	SessionMessagingKit/Sending & Receiving/Mentions/MentionsManager.swift
#	SessionMessagingKit/Sending & Receiving/MessageReceiver+Decryption.swift
#	SessionMessagingKit/Sending & Receiving/MessageReceiver+Handling.swift
#	SessionMessagingKit/Sending & Receiving/MessageReceiver.swift
#	SessionMessagingKit/Sending & Receiving/MessageSender+ClosedGroups.swift
#	SessionMessagingKit/Sending & Receiving/MessageSender+Encryption.swift
#	SessionMessagingKit/Sending & Receiving/MessageSender.swift
#	SessionMessagingKit/Sending & Receiving/Notifications/NotificationsProtocol.h
#	SessionMessagingKit/Sending & Receiving/Pollers/ClosedGroupPoller.swift
#	SessionMessagingKit/Sending & Receiving/Pollers/OpenGroupPollerV2.swift
#	SessionMessagingKit/Sending & Receiving/Pollers/Poller.swift
#	SessionMessagingKit/Storage.swift
#	SessionMessagingKit/Threads/Notification+Thread.swift
#	SessionMessagingKit/Threads/TSContactThread.h
#	SessionMessagingKit/Threads/TSContactThread.m
#	SessionMessagingKit/Threads/TSGroupModel.h
#	SessionMessagingKit/Threads/TSGroupModel.m
#	SessionMessagingKit/Threads/TSGroupThread.m
#	SessionMessagingKit/Utilities/General.swift
#	SessionNotificationServiceExtension/NSENotificationPresenter.swift
#	SessionNotificationServiceExtension/NotificationServiceExtension.swift
#	SessionSnodeKit/OnionRequestAPI+Encryption.swift
#	SessionSnodeKit/OnionRequestAPI.swift
#	SessionSnodeKit/SnodeAPI.swift
#	SessionSnodeKit/SnodeMessage.swift
#	SessionSnodeKit/Storage+SnodeAPI.swift
#	SessionSnodeKit/Storage.swift
#	SessionUtilitiesKit/General/Array+Utilities.swift
#	SessionUtilitiesKit/General/Dictionary+Utilities.swift
#	SessionUtilitiesKit/General/SNUserDefaults.swift
#	SessionUtilitiesKit/General/Set+Utilities.swift
#	SessionUtilitiesKit/Meta/SessionUtilitiesKit.h
#	SessionUtilitiesKit/Utilities/Optional+Utilities.swift
#	SessionUtilitiesKit/Utilities/Sodium+Conversion.swift
#	SignalUtilitiesKit/Configuration.swift
#	SignalUtilitiesKit/Database/Migrations/OpenGroupServerIdLookupMigration.swift
#	SignalUtilitiesKit/Messaging/FullTextSearcher.swift
#	SignalUtilitiesKit/Messaging/Sending & Receiving/MessageSender+Convenience.swift
#	SignalUtilitiesKit/Profile Pictures/Identicon+ObjC.swift
#	SignalUtilitiesKit/To Do/OWSProfileManager.m
#	SignalUtilitiesKit/Utilities/NoopNotificationsManager.swift
#	SignalUtilitiesKit/Utilities/UIView+OWS.swift
2 years ago
Morgan Pretty 07d1d8acee Merge branch 'dev' into feature/session-id-blinding-part-2
# Conflicts:
#	Podfile
#	Podfile.lock
#	Session/Calls/Views & Modals/CallVideoView.swift
#	Session/Utilities/BackgroundPoller.swift
#	SessionSnodeKit/SnodeAPI.swift
2 years ago
Morgan Pretty 59696f7d2c Removed all the old Storage classes and YapDB extensions
Removed the AppUpdateNag code (unused)
Removed the Mantle dependency
2 years ago
Morgan Pretty 18d833f152 Optimised the home screen query (~50% speed improvement)
Updated to the latest version of GRDB
Renamed some variables for clarity
Updated the "seed viewed" banner on the HomeVC to be driven by a database setting to be consistent with other UI changes
2 years ago
Morgan Pretty c500d4c6ca Fixed a few bugs, resolved a number of TODOs and deleted more unused code
Fixed a couple of bugs with search term highlighting (updated the logic to make the highlighted content follow similar logic to what terms would have actually matched)
Fixed a bug where info messages in search results weren't rendering correctly
Shifted some duplicate query code for global search into variables
Fixed a small bug where sending attachments could incorrectly result in the mentions UI being visible
Fixed a bug where quote content was appearing incorrectly
Consolidated the ShareExtension Item and the ConversationCell.ViewModel into one type (with a more-limited query) to remove duplicate code
Added back a missing asset (deleted a long time ago)
2 years ago
Morgan Pretty 5bcc124388 Updated the SessionShareExtension to work with GRDB
Updated to the latest version of GRDB
Fixed an issue with db reentrant behaviour with the Attachment upload function
Finished up the updated 'sendNonDurability' functions
2 years ago
Morgan Pretty 531ddcb079 Replaced the GoogleWebRTC library (deprecated) with WebRTC-lib 2 years ago
Morgan Pretty 4eaa8c4d36 Updated Nimble to the latest version
Fixed some flaky OpenGroupManager tests
2 years ago
Morgan Pretty 1c575e520d Merge remote-tracking branch 'upstream/voice-calls-2' into feature/session-id-blinding-part-2
# Conflicts:
#	Podfile.lock
#	Session.xcodeproj/project.pbxproj
#	Session/Conversations/ConversationVC+Interaction.swift
#	Session/Conversations/Views & Modals/JoinOpenGroupModal.swift
#	Session/Home/HomeVC.swift
#	Session/Open Groups/JoinOpenGroupVC.swift
#	Session/Utilities/BackgroundPoller.swift
#	SessionMessagingKit/Jobs/AttachmentUploadJob.swift
#	SessionMessagingKit/Open Groups/OpenGroupAPIV2.swift
#	SessionMessagingKit/Sending & Receiving/MessageReceiver+Handling.swift
#	SessionNotificationServiceExtension/NotificationServiceExtension.swift
2 years ago
Morgan Pretty ed9f4ea6c6 Fixed a few closed group and job issues
Fixed a few job migration issues
Fixed an issue with the closed group key pair management (wasn't storing keys correctly)
Refactored the OWSSound (now Preferences.Sound)
Added the logic for the AttachmentDownloadJob and enabled jobs to be cascade deleted via interactions
Optimised the HomeViewModel database observation query (fetch specific columns so changes outside those don't trigger updates)
Updated to the latest GRDB (ran into a deadlock which should be fixed in a newer version)
2 years ago
Morgan Pretty 11231599db Further work on migrations and message pipeline refactoring
Refactored the AppDelegate from Objective C to Swift
Updated the HomeVC to use GRDB
Refactored a number of the Job types to be driven via GRDB and the new JobRunner
Fixed a bug where the LinkPreviewView wouldn't render correctly in dark mode
2 years ago
Morgan Pretty b1cfa4f50a Updated the Podfile to include the needed libraries 2 years ago
Morgan Pretty 31ecd78737 Refactored the mocking code to use a better convention which also allows for call validation
Added a Nimble predicate for checking a function on a mock was called
Added the various remove methods to the Storage protocol
Updated the Ed25519Type to be an instance-based protocol (needed for mocking)
2 years ago
Morgan Pretty c04d4544f2 Added more unit tests
Refactored the existing unit tests to use Quick
Started adding unit tests for a number of the OpenGroupAPI network models
Added unit tests for the SessionId type
2 years ago
Morgan Pretty a26ee12f8d Further work on Id Blinding
Renamed the setter for the SOGS 'Server' object for consistency
Updated the Curve25519Kit repo to use an Oxen fork
Updated the MockDataGenerator to accomodate the latest changes
Updated the ConversationVC to better support getting replaced when the conversion from blinded to unblinded happens while on that screen
Added a cache for the mapping between blinded ids and standard ids (gets cached whenever a valid match is found)
Added a migration to remove the old 'authToken, 'lastMessageServerId' and 'lastDeletionServerId' collections (redundant in SOGS V4)
2 years ago
Morgan Pretty 3e97782d18 Merge branch 'dev' into feature/session-id-blinding-part-2
# Conflicts:
#	Session.xcodeproj/project.pbxproj
#	Session/Conversations/ConversationVC.swift
#	Session/Meta/Translations/de.lproj/Localizable.strings
#	Session/Meta/Translations/en.lproj/Localizable.strings
#	Session/Meta/Translations/es.lproj/Localizable.strings
#	Session/Meta/Translations/fa.lproj/Localizable.strings
#	Session/Meta/Translations/fi.lproj/Localizable.strings
#	Session/Meta/Translations/fr.lproj/Localizable.strings
#	Session/Meta/Translations/hi.lproj/Localizable.strings
#	Session/Meta/Translations/hr.lproj/Localizable.strings
#	Session/Meta/Translations/id-ID.lproj/Localizable.strings
#	Session/Meta/Translations/it.lproj/Localizable.strings
#	Session/Meta/Translations/ja.lproj/Localizable.strings
#	Session/Meta/Translations/nl.lproj/Localizable.strings
#	Session/Meta/Translations/pl.lproj/Localizable.strings
#	Session/Meta/Translations/pt_BR.lproj/Localizable.strings
#	Session/Meta/Translations/ru.lproj/Localizable.strings
#	Session/Meta/Translations/si.lproj/Localizable.strings
#	Session/Meta/Translations/sk.lproj/Localizable.strings
#	Session/Meta/Translations/sv.lproj/Localizable.strings
#	Session/Meta/Translations/th.lproj/Localizable.strings
#	Session/Meta/Translations/vi-VN.lproj/Localizable.strings
#	Session/Meta/Translations/zh-Hant.lproj/Localizable.strings
#	Session/Meta/Translations/zh_CN.lproj/Localizable.strings
2 years ago
Morgan Pretty cc2a077a6c Started working on `MessageRequestResponse` handling for SOGS message requests
Pointing Curve25519 to use a fork that exposes an XEd25519 conversion method
Fixed an issue where I had broken all message sending due to the SnodeAPI casting Onion responses to `Any`
2 years ago
Morgan Pretty 30cbe77366 Added labels to the NewConversationButtonSet 2 years ago
Morgan Pretty f5e48cec01 Updated the project to use the Oxen fork of Sodium (instead of my one) 2 years ago
Morgan Pretty ef09d4d5aa Additional encryption work on id blinding
Got the updated blinding logic working (at least when authenticating a request - still need to deal with message signing and verification)
Storing the server capabilities in the database now so we can correctly blind requests based on them
Renamed the remaining 'v2' functions and classes to just be 'OpenGroup' since there isn't a 'V2' anymore
Cleaned up a few TODOs and functions
2 years ago
Morgan Pretty eb927c36a9 Started cleaning up some of the SOGS and Onion Requests structure
Cleaned up the OnionRequestAPI so we don't need the LegacyOnionRequestAPI
Added requests for the user endpoints
Added deprecated flags to the legacy endpoints and functions
Added some logic to start handling the new poll (batch) response
Started adding unit tests for the OpenGroupAPI functions
2 years ago
Morgan Pretty 67d2a13dfb Ran pod install to update the Podfile.lock 2 years ago
Ryan Zhao a61e99216d update pods 2 years ago
Ryan Zhao 64374bb59e Revert "update pods for merge"
This reverts commit 6cb571bb1b.
2 years ago
Ryan Zhao 6cb571bb1b update pods for merge 2 years ago
Ryan Zhao b1c2802613 update pods 2 years ago
Ryan Zhao 18fea4ab73 Merge branch 'dev' into global-search 2 years ago
Morgan Pretty 03fb5cbeeb Cleanup and tweaks
Fixed some compilation issues.
Removed an unused dependency.
Cleaned up the Podfile to minimise duplication.
Pointed at an oxen fork of SignalCoreKit instead of a personal one.
2 years ago
Morgan Pretty 9994c04f1e Updated the Podfile to fix M1 Mac build issues 3 years ago
Niels Andriesse 876814dd43 Basic proof of concept 3 years ago
Niels Andriesse 74e9cacd58 Implement MockWebSocket 3 years ago
Niels Andriesse 170da7a276 Implement VideoCallVC & CameraManager 3 years ago
Niels Andriesse 030c869d06 Add WebRTC dependency & implement CallMessage 3 years ago
coo1k e328ab9bfd Support for App Links 3 years ago
Niels Andriesse a1c23394d6 Remove unused pods 3 years ago
Niels Andriesse 4958d3d368 Implement ONS API 3 years ago
nielsandriesse afeabf0fe9 Potentially fix race condition 3 years ago
Niels Andriesse 6a810d959b Fix initial scroll position bug 3 years ago
nielsandriesse bffde9451c Update CocoaPods 3 years ago
Niels Andriesse aa027a28c5 Implement preliminary link preview view 3 years ago
nielsandriesse 1924e01edc Merge branch 'multi-device' into ui 3 years ago
nielsandriesse 4803b96eb1 Only handle the first config sync message after restoration 3 years ago
Niels Andriesse 90e53e5cef Redesign conversation screen part 1 3 years ago
Niels Andriesse f2f3025554 Remove unused pod 3 years ago
Niels Andriesse 464e8864af Clean up onboarding 3 years ago
Niels Andriesse 54e902c848 Fix various warnings 3 years ago
Niels Andriesse ff09ee3e79 Delete unused files 3 years ago
Niels Andriesse 2a4977d269 Implement Session protocol 4 years ago
Niels Andriesse 75f7a7973b Debug PN extension 4 years ago
Niels Andriesse 76f92000b9 Add missing pod 4 years ago
Niels Andriesse 2be42e892a Prune unused notification service extension pods 4 years ago
Niels Andriesse d33fcb0756 Re-install pods 4 years ago
Niels Andriesse 02454b6cc9 Point to forked YapDatabase repo 4 years ago
Niels Andriesse ac6baec6f2 Make things compile again 4 years ago
nielsandriesse 5dfd4b1965 Restructure 4 years ago
nielsandriesse b218a16b05 Implement attachment downloading 4 years ago
nielsandriesse 877751445d Clean 4 years ago
nielsandriesse e819d8f536 Update dependencies 4 years ago
nielsandriesse 1c0b32af3c Fix ECKeyPair usage 4 years ago
nielsandriesse 000e907d47 Clean up Podfile 4 years ago
nielsandriesse 7e213c71d5 Make everything build again 4 years ago
nielsandriesse ffa64e4747 Merge SignalMessaging into SignalUtilitiesKit 4 years ago
nielsandriesse ae635dbd36 Make SignalMessaging work with SignalUtilitiesKit 4 years ago
nielsandriesse c475f895e8 Create SignalUtilitiesKit 4 years ago
nielsandriesse 362e2e9c03 Update SessionMessagingKit for open groups 4 years ago
nielsandriesse a3382f41d4 Re-organize files 4 years ago
nielsandriesse 21fe9558a4 Partially implement messaging kit encryption & decryption 4 years ago
nielsandriesse 2d618cc6e9 Re-add proof of work 4 years ago
nielsandriesse 10582e0381 Add SSKs to SessionProtocolKit 4 years ago
nielsandriesse dcb218c864 Create SessionProtocolKit framework 4 years ago
nielsandriesse 96bfab5d93 Re-generate protos 4 years ago
nielsandriesse c1196a6921 Start SessionMessagingKit 4 years ago
nielsandriesse f3753abe5a Create SessionUtilities framework 4 years ago
nielsandriesse 2b1e322832 Create SessionSnodeKit 4 years ago
nielsandriesse 0598fdfb99 Update Pods 4 years ago
nielsandriesse dc901d7528 Update Pods 4 years ago
nielsandriesse b63bc8e9eb Add Sodium & remove GCDWebServer 4 years ago
nielsandriesse 8e651aadc2 Move SwiftCSV into the project 4 years ago
nielsandriesse 056ec0349a Move ZXingObjC & SwiftCSV to CocoaPods 4 years ago
nielsandriesse e4c8369c93 Update for metadata kit changes 4 years ago
nielsandriesse 33d23b3e51 Update Pods 4 years ago
nielsandriesse 9b527424e6 Ditch pod in favor of own implementation 4 years ago
nielsandriesse cd761d2687 Make new private chat screen use a UITextView 4 years ago
nielsandriesse 6e6e9332bf Improve performance 4 years ago
nielsandriesse 7475c7c6b8 Update Pods 4 years ago
nielsandriesse 707dad64d9 Update Pods 4 years ago
nielsandriesse 79655169bd Update Pods 4 years ago
nielsandriesse 832e70f588 Debug 4 years ago
nielsandriesse 80dcca627a Implement polling, encryption & decryption 4 years ago
nielsandriesse 16918a50d8 Update Pods 4 years ago
nielsandriesse 93b3054c17 Update CryptoSwift 4 years ago
nielsandriesse 301be4a957 Update Pods 4 years ago
nielsandriesse eab26c504c Fix build 4 years ago
nielsandriesse 74bbe067d8 Update Pods 4 years ago
gmbnt 5f9b0aec9f Update pods 4 years ago
ryanzhao ca20f3f979 add a Notification Service Extension for PN with preview 4 years ago
Niels Andriesse 40bb4ba1a4 Set device link message TTL, clean & add more analytics 5 years ago
Niels Andriesse a604ba5646 Start implementing device linking UI 5 years ago
Niels Andriesse 1e4b88d616 Set up Crashlytics 5 years ago
Niels Andriesse b367ea7ab8 Set up Mixpanel 5 years ago