Morgan Pretty
8500e1f602
Merge remote-tracking branch 'upstream/dev' into feature/groups-rebuild
...
# Conflicts:
# LibSession-Util
# Podfile
# Podfile.lock
# Session.xcodeproj/project.pbxproj
# Session.xcodeproj/xcshareddata/xcschemes/SessionSnodeKit.xcscheme
# Session/Calls/Call Management/SessionCallManager.swift
# Session/Closed Groups/EditClosedGroupVC.swift
# Session/Closed Groups/NewClosedGroupVC.swift
# Session/Conversations/ConversationVC+Interaction.swift
# Session/Conversations/ConversationVC.swift
# Session/Conversations/ConversationViewModel.swift
# Session/Conversations/Settings/ThreadDisappearingMessagesSettingsViewModel.swift
# Session/Conversations/Settings/ThreadSettingsViewModel.swift
# Session/Home/New Conversation/NewDMVC.swift
# Session/Media Viewing & Editing/GIFs/GiphyDownloader.swift
# Session/Meta/AppDelegate.swift
# Session/Meta/SessionApp.swift
# Session/Notifications/SyncPushTokensJob.swift
# Session/Notifications/UserNotificationsAdaptee.swift
# Session/Onboarding/Onboarding.swift
# Session/Path/PathStatusView.swift
# Session/Path/PathVC.swift
# Session/Settings/NukeDataModal.swift
# Session/Utilities/BackgroundPoller.swift
# Session/Utilities/IP2Country.swift
# SessionMessagingKit/Database/Migrations/_014_GenerateInitialUserConfigDumps.swift
# SessionMessagingKit/Database/Migrations/_015_BlockCommunityMessageRequests.swift
# SessionMessagingKit/Database/Migrations/_018_DisappearingMessagesConfiguration.swift
# SessionMessagingKit/Database/Models/Attachment.swift
# SessionMessagingKit/Database/Models/ClosedGroup.swift
# SessionMessagingKit/Database/Models/ConfigDump.swift
# SessionMessagingKit/Database/Models/DisappearingMessageConfiguration.swift
# SessionMessagingKit/Database/Models/Interaction.swift
# SessionMessagingKit/Database/Models/SessionThread.swift
# SessionMessagingKit/File Server/FileServerAPI.swift
# SessionMessagingKit/Jobs/AttachmentDownloadJob.swift
# SessionMessagingKit/Jobs/ConfigMessageReceiveJob.swift
# SessionMessagingKit/Jobs/ConfigurationSyncJob.swift
# SessionMessagingKit/Jobs/ExpirationUpdateJob.swift
# SessionMessagingKit/Jobs/GetExpirationJob.swift
# SessionMessagingKit/Jobs/MessageSendJob.swift
# SessionMessagingKit/LibSession/Config Handling/LibSession+Contacts.swift
# SessionMessagingKit/LibSession/Config Handling/LibSession+ConvoInfoVolatile.swift
# SessionMessagingKit/LibSession/Config Handling/LibSession+Shared.swift
# SessionMessagingKit/LibSession/Config Handling/LibSession+UserGroups.swift
# SessionMessagingKit/LibSession/Config Handling/LibSession+UserProfile.swift
# SessionMessagingKit/LibSession/Config Handling/SessionUtil+GroupInfo.swift
# SessionMessagingKit/LibSession/Config Handling/SessionUtil+GroupKeys.swift
# SessionMessagingKit/LibSession/Config Handling/SessionUtil+GroupMembers.swift
# SessionMessagingKit/LibSession/Config Handling/SessionUtil+SharedGroup.swift
# SessionMessagingKit/LibSession/Database/QueryInterfaceRequest+Utilities.swift
# SessionMessagingKit/LibSession/Database/Setting+Utilities.swift
# SessionMessagingKit/LibSession/LibSession+SessionMessagingKit.swift
# SessionMessagingKit/Messages/Message+Origin.swift
# SessionMessagingKit/Messages/Message.swift
# SessionMessagingKit/Messages/Visible Messages/VisibleMessage.swift
# SessionMessagingKit/Open Groups/Models/SOGSMessage.swift
# SessionMessagingKit/Open Groups/OpenGroupAPI.swift
# SessionMessagingKit/Open Groups/OpenGroupManager.swift
# SessionMessagingKit/Open Groups/OpenGroupServerIdLookup.swift
# SessionMessagingKit/Open Groups/Types/Request+OpenGroupAPI.swift
# SessionMessagingKit/Open Groups/Types/SOGSEndpoint.swift
# SessionMessagingKit/Protos/Generated/SNProto.swift
# SessionMessagingKit/Protos/Generated/SessionProtos.pb.swift
# SessionMessagingKit/Protos/SessionProtos.proto
# SessionMessagingKit/Sending & Receiving/Errors/MessageSenderError.swift
# SessionMessagingKit/Sending & Receiving/Message Handling/MessageReceiver+ExpirationTimers.swift
# SessionMessagingKit/Sending & Receiving/Message Handling/MessageReceiver+UnsendRequests.swift
# SessionMessagingKit/Sending & Receiving/MessageReceiver.swift
# SessionMessagingKit/Sending & Receiving/MessageSender.swift
# SessionMessagingKit/Sending & Receiving/Notifications/Models/PushNotificationAPIRequest.swift
# SessionMessagingKit/Sending & Receiving/Notifications/PushNotificationAPI.swift
# SessionMessagingKit/Sending & Receiving/Notifications/Types/Request+PushNotificationAPI.swift
# SessionMessagingKit/Sending & Receiving/Pollers/CurrentUserPoller.swift
# SessionMessagingKit/Sending & Receiving/Pollers/GroupPoller.swift
# SessionMessagingKit/Sending & Receiving/Pollers/OpenGroupAPI+Poller.swift
# SessionMessagingKit/Sending & Receiving/Pollers/Poller.swift
# SessionMessagingKit/SessionUtil/SessionUtilError.swift
# SessionMessagingKit/SessionUtil/Utilities/TypeConversion+Utilities.swift
# SessionMessagingKit/Shared Models/MessageViewModel.swift
# SessionMessagingKit/Shared Models/SessionThreadViewModel.swift
# SessionMessagingKit/Utilities/ProfileManager.swift
# SessionMessagingKitTests/LibSession/LibSessionSpec.swift
# SessionMessagingKitTests/LibSession/LibSessionUtilSpec.swift
# SessionMessagingKitTests/Open Groups/Models/SOGSMessageSpec.swift
# SessionMessagingKitTests/Open Groups/OpenGroupAPISpec.swift
# SessionMessagingKitTests/Open Groups/OpenGroupManagerSpec.swift
# SessionNotificationServiceExtension/NotificationServiceExtension.swift
# SessionShareExtension/ShareNavController.swift
# SessionShareExtension/ThreadPickerVC.swift
# SessionSnodeKit/Configuration.swift
# SessionSnodeKit/Database/Migrations/_001_InitialSetupMigration.swift
# SessionSnodeKit/Database/Models/Snode.swift
# SessionSnodeKit/Database/Models/SnodeReceivedMessageInfo.swift
# SessionSnodeKit/Database/Models/SnodeSet.swift
# SessionSnodeKit/Jobs/GetSnodePoolJob.swift
# SessionSnodeKit/Models/DeleteAllBeforeRequest.swift
# SessionSnodeKit/Models/DeleteAllMessagesRequest.swift
# SessionSnodeKit/Models/DeleteMessagesRequest.swift
# SessionSnodeKit/Models/GetExpiriesRequest.swift
# SessionSnodeKit/Models/GetMessagesRequest.swift
# SessionSnodeKit/Models/ONSResolveResponse.swift
# SessionSnodeKit/Models/RevokeSubkeyRequest.swift
# SessionSnodeKit/Models/SendMessageRequest.swift
# SessionSnodeKit/Models/SnodeAuthenticatedRequestBody.swift
# SessionSnodeKit/Models/SnodeRequest.swift
# SessionSnodeKit/Models/SwarmSnode.swift
# SessionSnodeKit/Models/UpdateExpiryAllRequest.swift
# SessionSnodeKit/Models/UpdateExpiryRequest.swift
# SessionSnodeKit/Networking/OnionRequestAPI.swift
# SessionSnodeKit/Networking/PreparedRequest+OnionRequest.swift
# SessionSnodeKit/Networking/Request+SnodeAPI.swift
# SessionSnodeKit/Networking/SnodeAPI.swift
# SessionSnodeKit/Types/OnionRequestAPIError.swift
# SessionSnodeKit/Types/SnodeAPIEndpoint.swift
# SessionSnodeKit/Types/SnodeAPIError.swift
# SessionSnodeKit/Types/SnodeAPINamespace.swift
# SessionSnodeKit/Types/SwarmDrainBehaviour.swift
# SessionSnodeKitTests/Models/SnodeRequestSpec.swift
# SessionTests/Database/DatabaseSpec.swift
# SessionUIKit/Style Guide/Values.swift
# SessionUtilitiesKit/Database/Migrations/_005_AddJobUniqueHash.swift
# SessionUtilitiesKit/Database/Models/Job.swift
# SessionUtilitiesKit/Database/Types/Migration.swift
# SessionUtilitiesKit/General/Data+Utilities.swift
# SessionUtilitiesKit/General/Dependencies.swift
# SessionUtilitiesKit/General/Features.swift
# SessionUtilitiesKit/General/Logging.swift
# SessionUtilitiesKit/JobRunner/JobRunner.swift
# SessionUtilitiesKit/LibSession/Utilities/Crypto+SessionUtil.swift
# SessionUtilitiesKit/LibSession/Utilities/TypeConversion+Utilities.swift
# SessionUtilitiesKit/Networking/BatchRequest.swift
# SessionUtilitiesKit/Networking/BatchResponse.swift
# SessionUtilitiesKit/Networking/HTTP.swift
# SessionUtilitiesKit/Networking/HTTPError.swift
# SessionUtilitiesKit/Networking/PreparedRequest.swift
# SessionUtilitiesKit/Networking/Request.swift
# SessionUtilitiesKit/Networking/RequestTarget.swift
# SessionUtilitiesKit/SessionUtil/Utilities/TypeConversion+Utilities.swift
# SessionUtilitiesKit/Utilities/Bencode.swift
# SessionUtilitiesKit/Utilities/JSONEncoder+Utilities.swift
# SessionUtilitiesKitTests/JobRunner/JobRunnerSpec.swift
# SessionUtilitiesKitTests/Networking/BatchRequestSpec.swift
# SessionUtilitiesKitTests/Networking/BatchResponseSpec.swift
# SessionUtilitiesKitTests/Networking/PreparedRequestSpec.swift
# SessionUtilitiesKitTests/Networking/RequestSpec.swift
# SessionUtilitiesKitTests/Utilities/BencodeResponseSpec.swift
# SignalUtilitiesKit/Configuration.swift
# SignalUtilitiesKit/Utilities/AppSetup.swift
# SignalUtilitiesKit/Utilities/Bench.swift
# SignalUtilitiesKit/Utilities/UIGestureRecognizer+OWS.swift
# _SharedTestUtilities/CommonMockedExtensions.swift
# _SharedTestUtilities/MockJobRunner.swift
# _SharedTestUtilities/Mocked.swift
11 months ago
Morgan Pretty
9491b4a97b
Fixed a crash and config issue
...
• Fixed a bad memory crash which could occur when returning from the background
• Fixed an issue where config messages were incorrectly getting double wrapped in protobuf wrappers
1 year ago
Morgan Pretty
4f2b629239
Added bolding to the control messages and unit testing work
...
Added bolding to the control messages
Reworked the MockFunctionHandler to have different calls with inferred return types to reduce boilerplate
Fixed broken unit tests
Fixed an issue which could occur in the ObservableTableSource where it could miss the first output if it returned too quickly
Started adding DownloadDisplayPictureJob unit tests
Minor copy tweak
2 years ago
Morgan Pretty
b90ee74c91
Added promotion handling, message deletion & deprecation banner
...
Added logic to handle promotion messages
Added a debounced toast for promotion failures
Added support for the 'delete_before' and 'attach_delete_before' functionality
Added in the deprecated legacy groups banner.
Cleaned up the UserListViewModel a little
Updated the 'User count' header subtitle to take the user to the 'Group Members' or 'Edit Group' screens based on admin status
Updated the sorting of the group member lists to match the requirements
Fixed the debounced group invite failure toast
Fixed an issue where some libSession errors wouldn't get propagated back into the Swift code resulting in invalid database changes
Fixed an issue where admins couldn't properly leave groups
2 years ago
Morgan Pretty
00f246a21e
Added group message requests, admin message deletion, fixed a few bugs
...
Added logic for Group Message Requests
Added a 'ManualResultJob' which allows for a way to add a dependency to a job which can be resolved separately from the job system (it's not persistent though)
Added the ability for admins to delete select messages from updated groups
Swapped 'save'/'saved' calls to be 'upsert'/'upserted' as that's the actual behaviour we expect (unique key based rather than primary key based)
Fixed a bug where the 'limitedReuse' 'drainBehaviour' could get stuck in an invalid state
Fixed a bug where job dependencies could swap queues which could theoretically result in deadlocks in some cases
2 years ago
Morgan Pretty
abda057702
Merge remote-tracking branch 'origin/feature/drop-yap-database-support' into feature/groups-rebuild
...
# Conflicts:
# Scripts/LintLocalizableStrings.swift
# Session.xcodeproj/project.pbxproj
# Session/Calls/Views & Modals/IncomingCallBanner.swift
# Session/Meta/AppDelegate.swift
# Session/Onboarding/Onboarding.swift
# Session/Onboarding/SeedVC.swift
# SessionMessagingKit/Database/Migrations/_017_DisappearingMessagesConfiguration.swift
# SessionMessagingKit/Messages/Control Messages/LegacyConfigurationMessage.swift
# SessionMessagingKit/SessionUtil/Config Handling/SessionUtil+Shared.swift
# SessionMessagingKit/SessionUtil/SessionUtil.swift
# SessionUtilitiesKit/Database/Migrations/_003_YDBToGRDBMigration.swift
# SessionUtilitiesKit/Database/Storage.swift
# SessionUtilitiesKit/Database/Types/Migration.swift
# SessionUtilitiesKit/Database/Types/PagedDatabaseObserver.swift
# _SharedTestUtilities/SynchronousStorage.swift
2 years ago
Morgan Pretty
42b49e0227
Added unit tests to verify migrations between all versions work
...
Fixed a busted test import
2 years ago
Morgan Pretty
96b5403726
Merge remote-tracking branch 'upstream/dev' into feature/groups-rebuild
...
# Conflicts:
# Session.xcodeproj/project.pbxproj
# Session/Conversations/Settings/ThreadSettingsViewModel.swift
# Session/Meta/Translations/de.lproj/Localizable.strings
# Session/Meta/Translations/en.lproj/Localizable.strings
# Session/Meta/Translations/es-ES.lproj/Localizable.strings
# Session/Meta/Translations/fa.lproj/Localizable.strings
# Session/Meta/Translations/fi.lproj/Localizable.strings
# Session/Meta/Translations/fil.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/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/sk.lproj/Localizable.strings
# Session/Meta/Translations/sl.lproj/Localizable.strings
# Session/Meta/Translations/sv-SE.lproj/Localizable.strings
# Session/Meta/Translations/th.lproj/Localizable.strings
# Session/Meta/Translations/vi.lproj/Localizable.strings
# Session/Meta/Translations/zh-CN.lproj/Localizable.strings
# Session/Meta/Translations/zh-TW.lproj/Localizable.strings
# SessionMessagingKit/Calls/WebRTCSession.swift
# SessionMessagingKit/Configuration.swift
# SessionMessagingKit/Database/Migrations/_003_YDBToGRDBMigration.swift
# SessionMessagingKit/Sending & Receiving/Message Handling/MessageReceiver+VisibleMessages.swift
# SessionMessagingKit/SessionUtil/Config Handling/SessionUtil+Contacts.swift
# SessionMessagingKit/Utilities/ProfileManager.swift
# SessionMessagingKitTests/Jobs/Types/MessageSendJobSpec.swift
# SessionMessagingKitTests/LibSessionUtil/LibSessionSpec.swift
# SessionMessagingKitTests/LibSessionUtil/SessionUtilSpec.swift
# SessionMessagingKitTests/Open Groups/Models/BatchRequestInfoSpec.swift
# SessionMessagingKitTests/Open Groups/Models/SOGSMessageSpec.swift
# SessionMessagingKitTests/Open Groups/OpenGroupAPISpec.swift
# SessionMessagingKitTests/Open Groups/OpenGroupManagerSpec.swift
# SessionMessagingKitTests/Open Groups/Types/SOGSEndpointSpec.swift
# SessionMessagingKitTests/Sending & Receiving/MessageReceiverDecryptionSpec.swift
# SessionMessagingKitTests/Sending & Receiving/MessageSenderEncryptionSpec.swift
# SessionMessagingKitTests/Shared Models/SessionThreadViewModelSpec.swift
# SessionMessagingKitTests/Utilities/CryptoSMKSpec.swift
# SessionTests/Conversations/Settings/ThreadDisappearingMessagesViewModelSpec.swift
# SessionTests/Conversations/Settings/ThreadSettingsViewModelSpec.swift
# SessionTests/Settings/NotificationContentViewModelSpec.swift
# SessionUtilitiesKitTests/Database/Models/IdentitySpec.swift
# SessionUtilitiesKitTests/Database/Utilities/PersistableRecordUtilitiesSpec.swift
# SessionUtilitiesKitTests/General/DependenciesSpec.swift
# SessionUtilitiesKitTests/JobRunner/JobRunnerSpec.swift
# _SharedTestUtilities/MockCaches.swift
2 years ago
Morgan Pretty
c4aadaff1c
Fixed the broken tests and updated test dependencies
...
Properly fixed the busted migration issue
Updated to the latest version of Quick and Nimble (unit testing libraries)
Updated the tests based on the above
2 years ago
Morgan Pretty
c77d7ecda1
[WIP] Refactored dependency access to be more generic
2 years ago
Morgan Pretty
f1075e9123
Started adding logic and unit tests for group creation
...
Reworked the config store to better support different types of config objects
Added the logic to create a group (not final just yet)
2 years ago
Morgan Pretty
a41f1c1366
Fixed the broken tests
...
Cleaned up the Dependencies so that tests can run synchronously without having to custom set queues as much
Sorted out the crypto and network dependencies to avoid needing weird dependency inheritance
Fixed the flaky tests so they are no longer flaky
Fixed some unexpected JobRunner behaviours
Updated the CI config to use a local build directory for derivedData (now works with build tweaks)
2 years ago
Morgan Pretty
c86cc0ed9c
CI tweaks and incremented build number
...
Added the XCBeautify pod (so the CI doesn't need to separately install something)
Updated the CI build script to use XCBeautify
Fixed some broken unit tests
2 years ago
Morgan Pretty
f07313c7ac
Fixed a number of bugs found during internal testing
...
Updated to the latest libSession to increase the available size for config message content (size check now happens after compression rather than before)
Added some additional logs for config size info
Fixed a bug where the database could be accessed before the migrations ran which could result in unexpected behaviours
Fixed a bug where you couldn't mark a non one-to-one thread as read/unread
Fixed a bug where a database initialization failure wouldn't result in a migration failure (user would be stuck on the splash screen indefinitely)
Fixed a bug where if a message was too large for the screen the conversation would open it centered on the screen (now it will be positioned to the top)
Started looking at broken unit tests
Increased the build number
2 years ago
Morgan Pretty
70ff2b49f0
Fixed the broken tests and resolved some warnings
...
Stopped migration logs from appearing in unit tests
# Conflicts:
# Session/Settings/RemoveUsersModal.swift
# SessionMessagingKitTests/Open Groups/OpenGroupManagerSpec.swift
# SessionTests/Conversations/Settings/ThreadDisappearingMessagesViewModelSpec.swift
# SessionTests/Conversations/Settings/ThreadSettingsViewModelSpec.swift
2 years ago
Morgan Pretty
89df1261e3
Added a method to allow safer database inserts
...
Fixed an issue where the app settings were updating immediately making them seem to
Updated GRDB to version 6.1 and SQLCipher to 4.5.2
Added a method which allows for inserting into the database while omitting columns which exist in the object but not in the database (so allow for old migrations to run with less issues)
Updated all the migrations to use the migration safe insert method
Removed some ObjC support extension functions
3 years ago