Morgan Pretty
ff36b3eeab
Resolved a number of TODOs and a couple of crashes
...
Updated the logic to always fetch all config messages (and not de-dupe them)
Updated the onboarding to fallback to fetch the legacy config if the there is no updated user config
Added sorting to config message processing to reduce the turn-around time for certain edge-cases to resolve
Removed some redundant code
Fixed a database re-entrancy crash
Fixed a crash when merging config messages
Fixed an issue which could occur by registering too many 'afterTransaction' closures
2 years ago
Morgan Pretty
742c4a161f
Merge remote-tracking branch 'upstream/dev' into feature/updated-user-config-handling
...
# Conflicts:
# Session.xcodeproj/project.pbxproj
# Session/Conversations/ConversationVC+Interaction.swift
# Session/Conversations/ConversationViewModel.swift
# Session/Media Viewing & Editing/GIFs/GifPickerViewController.swift
# Session/Media Viewing & Editing/GIFs/GiphyAPI.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
# Session/Notifications/AppNotifications.swift
# Session/Notifications/SyncPushTokensJob.swift
# Session/Notifications/UserNotificationsAdaptee.swift
# SessionMessagingKit/Configuration.swift
# SessionMessagingKit/Database/Models/Interaction.swift
# SessionMessagingKit/Database/Models/SessionThread.swift
# SessionMessagingKit/Jobs/Types/MessageReceiveJob.swift
# SessionMessagingKit/Jobs/Types/MessageSendJob.swift
# SessionMessagingKit/Jobs/Types/SendReadReceiptsJob.swift
# SessionMessagingKit/Messages/Message.swift
# SessionMessagingKit/Sending & Receiving/Message Handling/MessageReceiver+ReadReceipts.swift
# SessionMessagingKit/Sending & Receiving/MessageSender+Convenience.swift
# SessionMessagingKit/Sending & Receiving/MessageSender.swift
# SessionMessagingKit/Shared Models/MentionInfo.swift
2 years ago
Morgan Pretty
f30b383bb8
Updated to the latest version of libSession-util
...
Updated the SharedConfigMessage type to have a TTL of 30 days
Updated the SnodeAPI to have a 'poll' method to be more consistent with the OpenGroupAPI (it also does multiple things now so is cleaner)
Added logic to limit the number of config messages to be retrieved per poll
Added the 'ValidatableResponse' protocol to standardise SnodeAPI response validation
Added the libSession version to the logs
Fixed an issue where the user profile pic wouldn't get synced correctly due to memory going out of scope
Fixed some threading issues
Refactored the thread variants to follow the updated terminology (will think about refactoring other code areas later)
Cleaned up the Combine error handling
Started fixing broken unit tests
2 years ago
Morgan Pretty
4f8fb63f2c
Merge remote-tracking branch 'upstream/dev' into feature/updated-user-config-handling
...
# Conflicts:
# Session/Media Viewing & Editing/PhotoCapture.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
# Session/Notifications/AppNotifications.swift
# Session/Onboarding/RestoreVC.swift
# Session/Shared/SessionTableViewController.swift
# Session/Shared/SessionTableViewModel.swift
# SessionMessagingKit/Calls/WebRTCSession.swift
# SessionMessagingKit/Database/Models/Attachment.swift
# SessionMessagingKit/Database/Models/DisappearingMessageConfiguration.swift
# SessionMessagingKit/File Server/FileServerAPI.swift
# SessionMessagingKit/Jobs/Types/AttachmentDownloadJob.swift
# SessionMessagingKit/Open Groups/OpenGroupAPI.swift
# SessionMessagingKit/Sending & Receiving/Message Handling/MessageSender+ClosedGroups.swift
# SessionMessagingKit/Sending & Receiving/MessageReceiver.swift
# SessionMessagingKit/Sending & Receiving/MessageSender.swift
# SessionSnodeKit/OnionRequestAPI.swift
# SessionSnodeKit/SnodeAPI.swift
# SessionUtilitiesKit/Database/Models/Identity.swift
# SessionUtilitiesKit/JobRunner/JobRunner.swift
2 years ago
Morgan Pretty
0abb09c0cf
Fixed a few small issues found when testing
...
Fixed a couple of issues with the ConfigurationSyncJob logic
Moved the proto parsing out of the MessageReceiveJob write block (to reduce time blocking writes)
Removed difficulty from the SendMessageResponse (deprecated and removed)
2 years ago
Morgan Pretty
8f3dcbc6be
Sorted out a bunch of the config syncing logic
...
Updated the onboarding to attempt to retrieve the current user profile config and skip display name collection if it already exists
Updated the logic to get the snode pool and build paths immediately on launch even if the user hasn't been created yet (faster onboarding)
Removed the iOS-specific concurrent dual snode '/store' behaviour
Cleaned up the profile updating logic
Fixed an issue where the pollers could end up deadlocking the main thread if too many tried to start concurrently
2 years ago
Morgan Pretty
5033738994
Fixed a few issues caused by the PromiseKit refactor
...
Started cleaning up the TODOs
Fixed a couple of merge conflict issues
Fixed a bug with the state of attachments which failed to download
# Conflicts:
# SessionMessagingKit/Database/Models/Attachment.swift
2 years ago
Morgan Pretty
8ac6b25ced
Further refactoring work
...
Refactored usages and removed AFNetworking
Updated the media screens to use Combine
# Conflicts:
# Session/Closed Groups/GroupMembersViewModel.swift
# Session/Media Viewing & Editing/GIFs/GifPickerCell.swift
# Session/Media Viewing & Editing/GIFs/GiphyAPI.swift
# Session/Media Viewing & Editing/PhotoCapture.swift
2 years ago
Morgan Pretty
c9fdee9f24
Work on the PromiseKit refactor
...
# Conflicts:
# Session.xcodeproj/project.pbxproj
# Session/Conversations/ConversationVC+Interaction.swift
# Session/Home/Message Requests/MessageRequestsViewModel.swift
# Session/Notifications/AppNotifications.swift
# Session/Notifications/PushRegistrationManager.swift
# Session/Notifications/SyncPushTokensJob.swift
# Session/Notifications/UserNotificationsAdaptee.swift
# Session/Settings/BlockedContactsViewModel.swift
# Session/Settings/NukeDataModal.swift
# Session/Settings/SettingsViewModel.swift
# Session/Utilities/BackgroundPoller.swift
# SessionMessagingKit/Database/Models/ClosedGroup.swift
# SessionMessagingKit/File Server/FileServerAPI.swift
# SessionMessagingKit/Open Groups/OpenGroupAPI.swift
# SessionMessagingKit/Sending & Receiving/Message Handling/MessageReceiver+ClosedGroups.swift
# SessionMessagingKit/Sending & Receiving/Message Handling/MessageReceiver+UnsendRequests.swift
# SessionMessagingKit/Sending & Receiving/Message Handling/MessageSender+ClosedGroups.swift
# SessionMessagingKit/Sending & Receiving/MessageSender+Convenience.swift
# SessionMessagingKit/Sending & Receiving/MessageSender.swift
# SessionMessagingKit/Sending & Receiving/Notifications/PushNotificationAPI.swift
# SessionMessagingKit/Sending & Receiving/Pollers/ClosedGroupPoller.swift
# SessionMessagingKit/Sending & Receiving/Pollers/CurrentUserPoller.swift
# SessionMessagingKit/Sending & Receiving/Pollers/Poller.swift
# SessionMessagingKit/Utilities/ProfileManager.swift
# SessionSnodeKit/Networking/SnodeAPI.swift
# SessionSnodeKit/OnionRequestAPI.swift
# SessionUtilitiesKit/Networking/HTTP.swift
2 years ago