Commit Graph

2803 Commits (245623b4c64b7231943ffbf1bb4ddd68a52db70e)

Author SHA1 Message Date
Morgan Pretty 245623b4c6 QA fixes and scope changes discussed today
• Removed the blocking loading indicators from a number of group actions
• Refactored the group promotions failure toast logic to match the invites failure toast logic
• Updated the actions which are allowed on messages in legacy groups once deprecated
• Updated to the latest libSession (minor PR feedback tweaks)
• Fixed a few build warnings
• Fixed a layout issue on the All Media screen
• Fixed an issue where the keyboard avoidance wouldn't be updated on the conversation screen if you went to a child screen and returned
• Fixed a couple of places where handling 'GROUP_MEMBER' changes could result in hitting the infinite loop guards so the changes wouldn't be reflected correctly
9 months ago
Morgan Pretty cfb02f42d3 Fixed an issue where we tried to delete protected files after import 9 months ago
Morgan Pretty 7b9f8cb45e Merge remote-tracking branch 'upstream/dev' into feature/groups-rebuild 9 months ago
Morgan Pretty 11402b124f Fixed a few minor issues
• Fixed a possible incorrect crash report after importing data via the dev settings
• Fixed an issue where modals displayed after clearing the database data would have broken theming
• Fixed an issue where admin display name and pictures may not appear correctly in the message list when interleaved with control messages
9 months ago
Morgan Pretty e1f093edd4 Fixed up a couple of issues with the debug import/export process
• Updated the ConfirmationModal explanation to be automatically scrollable by default
• Updated the DirectoryArchiver to ignore hidden files (based on the '.' prefix) by default as they wouldn't have been created by Session
9 months ago
Morgan Pretty 45a9586318 Updated the code to use the localised copy for the deprecation UI 9 months ago
Morgan Pretty 6830c68c31 Merge remote-tracking branch 'upstream/dev' into feature/groups-rebuild
# Conflicts:
#	Session/Calls/Call Management/SessionCall.swift
#	Session/Conversations/ConversationVC+Interaction.swift
#	Session/Conversations/ConversationVC.swift
#	Session/Meta/AppDelegate.swift
#	Session/Meta/MainAppContext.swift
#	Session/Notifications/PushRegistrationManager.swift
#	SessionMessagingKit/Jobs/GarbageCollectionJob.swift
#	SessionMessagingKit/Jobs/Types/UpdateProfilePictureJob.swift
#	SessionMessagingKit/LibSession/Config Handling/LibSession+Shared.swift
#	SessionMessagingKit/Sending & Receiving/MessageSender.swift
#	SessionMessagingKit/Utilities/ProfileManager.swift
#	SessionUtilitiesKit/Database/Storage.swift
#	SessionUtilitiesKit/JobRunner/JobRunner.swift
#	_SharedTestUtilities/SynchronousStorage.swift
9 months ago
Morgan Pretty c1fcf8e4aa
Merge pull request #362 from session-foundation/feature/update-crowdin-translations
[Automated] Update translations from Crowdin
9 months ago
Morgan Pretty d200878162
Merge pull request #366 from mpretty-cyro/fix/database-reentrancy-handling
Fixed a few issues related to database reentrancy
9 months ago
Bilb 6075840257 [Automated] Update translations from Crowdin 9 months ago
Morgan Pretty 119d7e21da
Merge pull request #365 from RyanRory/fix-modal-on-cancel
Fix customised on cancel won't dismiss the modal
9 months ago
Morgan Pretty d5add5bb79 Fixed a few more issues
• Minor tweak to config load order
• Pulled across reentrancy PR fixes
• Fixed an issue where some UI changes were occurring on background threads (causing crashes)
• Fixed an issue where editing a group name/description was performing a blocking action but not showing a loading indicator
• Fixed an issue where the group display picture modal would have it's "save" button enabled even when the picture hadn't been changed
9 months ago
Morgan Pretty 529cb2e0f9 Added the legacy group deprecation logic (pending final copy)
• Added a separate feature flag for deprecating legacy groups
• Added the ability for a legacy group admin to "Recreate" the group (ie. pre-fill a new group with the same members)
• Updated the "Leave" button to be "Delete" for legacy groups once deprecated
• Disabled the "mark as unread" action for legacy groups once deprecated
• Disabled the input and conversation settings for legacy groups once deprecated
• Disabled the long press menu and removing reactions for legacy groups once deprecated
9 months ago
Morgan Pretty 2952d9c0bb Fixed a bug where pasting excessive text wouldn't enable the send button 9 months ago
Morgan Pretty 4028cf1023 Database reentrancy fixes
• Reworked synchronous database access to prevent reentrancy issues
• Updated the JobExecuter to take a "Scheduler" rather than a "DispatchQueue" (allows for a potentially refactor to use "OperationQueue" instead if we want more fine-tuned control over the number of concurrent executions which can occur)
9 months ago
Morgan Pretty e47e0e45f5 Added a couple more thread checks just to be safe 9 months ago
Morgan Pretty 3887a8902e Fixed a crash which could occur when leaving the conversation screen 9 months ago
Morgan Pretty 0a7cd9a500 Fixed a few issues related to database reentrancy
• Reworked the database rentrancy fixes
• Added a timeout to prevent deadlocks with our custom synchronous database actions
• Fixed a case where we were incorrectly accessing the database in a reentrant way
9 months ago
Ryan ZHAO be80fec15d fix customised on cancel won't dismiss the modal 9 months ago
Morgan Pretty dce05376d1 Fixed additional QA issues
• Updated the "Delete for Everyone" behaviour to show a blocking loading indicator if a network request is required
• Removed some duplicate code
• Fixed an issue where mentions wouldn't filter correctly for groups in some cases
• Fixed an issue where legacy group members could appear in the members list multiple times when navigating there from the conversation title
• Fixed an issue where the message deletion toasts could appear behind blurred modal backgrounds
• Fixed an issue where pasting text which is too large into an empty input field would result in the text having the default OS styling instead of the text styling we have set
10 months ago
Morgan Pretty 9ae785ae3a Fixed the build errors resulting from the merging 10 months ago
Morgan Pretty 1db80dfa13 Merge remote-tracking branch 'upstream/dev' into feature/groups-rebuild
# Conflicts:
#	Session.xcodeproj/project.pbxproj
#	Session/Calls/CallVC.swift
#	Session/Calls/WebRTC/WebRTCSession+MessageHandling.swift
#	Session/Calls/WebRTC/WebRTCSession.swift
#	Session/Meta/AppDelegate.swift
#	Session/Utilities/Permissions.swift
#	SessionMessagingKit/Sending & Receiving/Errors/MessageReceiverError.swift
#	SessionMessagingKit/Sending & Receiving/MessageReceiver.swift
#	SessionUtilitiesKit/General/SNUserDefaults.swift
10 months ago
Morgan Pretty 7b0f7ea8af Fixed a number of QA issues and other bugs founds
• Added a 2000 limit to the input field
• Added an error when opening the share extension before completing onboarding
• Updated the code to treat an empty `adminSignature` as null (in case a client sends it incorrectly)
• Updated the code to include updated group control messages when determining unread
• Updated code to perform a supplemental key rotation (if needed) when resending invites to members flagged as supplemental (to handle a case where the initial invite request failed)
• Updated the code to schedule group config update control messages when making the local changes but make their sending contingent on the next config sync succeeding
• Updated the code to only enable the Share and Notification extensions once the onboarding process has been completed
• Updated the code to always enqueue config syncs for all configs on launch (if there are no pending changes then it won't do anything, but if there are then this will increase the likelihood that they will be synced)
• Fixed an issue where the default contacts query was based on thread records instead of contact records
• Fixed an issue where creating a conversation by tapping on a group member or avatar wasn't correctly creating the conversation in the draft state
• Fixed an issue where incoming messages could be added to the "Note to Self" conversation if the "syncTarget" was incorrectly set on them
10 months ago
Morgan Pretty 81242de035 Fixed a few more QA issues
• Added some localised copy
• Added the helpdesk article URL for the deprecated groups banner
• Updated mentions to include the current user in groups, 1-1 and NTS conversations (also made the current user appear as "you")
• Fixed a layout issue with the deleted message view
• Fixed an issue where the "mark as unread" action would incorrectly appear for the Note to Self conversation
• Fixed an issue where we were incorrectly sending an ExpirationTimerUpdate in some cases
10 months ago
Ryan ZHAO 379ab2629f fix a keyboard issue 10 months ago
Ryan ZHAO d076892424 fix an issue if a global deletion fails, the UI should toast and stay on the deletion modal. 10 months ago
Ryan ZHAO 4fc848ebdc add detailed call connection info 10 months ago
Ryan ZHAO 753b93bb9e clean up 10 months ago
Ryan ZHAO 3c681a217c add detailed call info 10 months ago
Ryan ZHAO 0b33e7a5fb fix potential infinite loop 10 months ago
Ryan ZHAO bce5eda5c2 fix an issue where iPhone 6s cuts off message request text 10 months ago
Ryan ZHAO 5681b96089 WIP: fix message request info layout 10 months ago
Ryan ZHAO dcaec4b2a8 fix an keyboard issue of Calls 10 months ago
Ryan ZHAO 1b40c1363a Merge branch 'dev' into fix-calls-issue-3 10 months ago
Morgan Pretty 16addb3b91 Additional 'afterAsync' changes for the groups branch 10 months ago
Morgan Pretty 28699798f1 Merge remote-tracking branch 'upstream/dev' into feature/groups-rebuild
# Conflicts:
#	Session.xcodeproj/project.pbxproj
#	Session/Home/HomeVC.swift
#	Session/Meta/AppDelegate.swift
#	Session/Meta/SessionApp.swift
#	SessionMessagingKit/Jobs/Types/UpdateProfilePictureJob.swift
#	SessionMessagingKit/Sending & Receiving/MessageSender.swift
#	SessionUtilitiesKit/JobRunner/JobRunner.swift
10 months ago
Morgan Pretty 800e32c633 Cleaned up some TODOs, QA fixes and refetch on admin promotion
• Added logic to trigger a full refetch when getting promoted to admin within a group
• Added a timeout to display picture uploads
• Updated the code to inject the DisplayPictureManager via dependencies
• Updated the resend invite functionality to have a blocking loading indicator as well
• Refactored some closure-based logic for display picture uploads to use Combine instead
• Refactored the SnodeReceivedMessageInfo (with a migration) so it's no longer using a weird constructed key (now have individual queryable columns for the values)
10 months ago
Morgan Pretty d41bc9b2c1
Merge pull request #355 from session-foundation/feature/update-crowdin-translations
[Automated] Update translations from Crowdin
10 months ago
Morgan Pretty 37ea2a89bc Fixed a number of crashes currently affecting production
• Fixed a crash due to our ThreadSafe code using a struct instead of a class (rendering it non thread safe)
• Fixed a crash which could occur on the home screen if the data loaded before the UI finished loading
• (Hopefully) Fixed a crash which could occur when the OS optimised async execution to run immediately within an existing database transaction (potentially resulting in re-entrant database access)
• Fixed an issue where the database read/write publishers weren't checking for a valid database state before actual query execution (only during the creation of the stream)
10 months ago
stfsession 4471af11d5 [Automated] Update translations from Crowdin 10 months ago
Morgan Pretty 8d4365d89c Fixed additional QA issues and bugs found while testing
• Added a unit test to validate the GroupMember sorting continues to work as expected
• Updated the AppSetup process to be simpler (no need to check if it had previously run anymore)
• Removed some state management code from the NotificationServiceExtension (no longer needed now that state is properly managed via the Dependencies)
• Fixed an issue where if you had updated another client, gotten updated groups in your config, and then update the iOS client then it wouldn't create the updated groups until a UserGroups config change occurred
• Fixed a bug where we would incorrectly try to retrieve the disappearing messages settings for V2 Groups from the UserGroups config instead of the GroupInfo one
• Fixed an issue where the updated groups poller might not get started correctly in some cases
• Fixed an issue where we could incorrectly add a "you were invited..." control message on linked devices when creating an updated group
• Fixed an issue where the "open url" modal wouldn't be dismissed when copying the url
• Fixed an issue where reactions could appear on locally deleted community messages
• Fixed an issue where the "Note to Self" conversation could be mislabelled in the share extension
• Fixed an issue where sharing a url with a preview would fail
• Fixed an issue where a quote for an attachment wouldn't show the thumbnail if the conversation was open when the quote message was received
• Fixed an issue where the background colour of the display picture could be incorrect when in a multi-avatar for a group conversation
10 months ago
Ryan ZHAO a16e3aa61a workaround for a permission issue in NotificationServiceExtension 10 months ago
Morgan Pretty 6a4fa224ac Fixed a few more QA issues
• Added the updated light-mode warning colour
• Updated the group version warning banner to explicitly use the primary orange colour
• Fixed an incorrect colour for radio options in the modal
• Fixed an issue where non-admins would incorrectly try to remove obsolete group config hashes (which is not allowed)
10 months ago
Morgan Pretty f8716f26c3 Fixed the build issues and broken unit tests 10 months ago
Ryan ZHAO 370eb3e4de fix microphone permission request API 10 months ago
Ryan ZHAO 8bc40a3535 add retry for call messages 10 months ago
Morgan Pretty 1dd8e8f197 Merge remote-tracking branch 'upstream/dev' into feature/groups-rebuild
# Conflicts:
#	Session.xcodeproj/project.pbxproj
#	Session/Calls/Views & Modals/IncomingCallBanner.swift
#	Session/Calls/WebRTC/WebRTCSession.swift
#	Session/Conversations/ConversationVC+Interaction.swift
#	Session/Conversations/ConversationVC.swift
#	Session/Conversations/ConversationViewModel.swift
#	Session/Conversations/Settings/ThreadSettingsViewModel.swift
#	Session/Home/GlobalSearch/GlobalSearchViewController.swift
#	Session/Home/HomeVC.swift
#	Session/Home/Message Requests/MessageRequestsViewModel.swift
#	Session/Meta/AppDelegate.swift
#	Session/Meta/AppEnvironment.swift
#	Session/Meta/SessionApp.swift
#	Session/Notifications/NotificationPresenter.swift
#	Session/Notifications/PushRegistrationManager.swift
#	Session/Notifications/UserNotificationsAdaptee.swift
#	Session/Onboarding/Onboarding.swift
#	Session/Open Groups/JoinOpenGroupVC.swift
#	Session/Utilities/IP2Country.swift
#	Session/Utilities/MockDataGenerator.swift
#	Session/Utilities/UIContextualAction+Utilities.swift
#	SessionMessagingKit/Calls/CallManagerProtocol.swift
#	SessionMessagingKit/Database/Migrations/_013_SessionUtilChanges.swift
#	SessionMessagingKit/Database/Migrations/_014_GenerateInitialUserConfigDumps.swift
#	SessionMessagingKit/Database/Models/ClosedGroup.swift
#	SessionMessagingKit/Database/Models/Interaction.swift
#	SessionMessagingKit/Database/Models/SessionThread.swift
#	SessionMessagingKit/Jobs/DisappearingMessagesJob.swift
#	SessionMessagingKit/Jobs/Types/GroupLeavingJob.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/Database/QueryInterfaceRequest+Utilities.swift
#	SessionMessagingKit/LibSession/LibSession+SessionMessagingKit.swift
#	SessionMessagingKit/Open Groups/OpenGroupManager.swift
#	SessionMessagingKit/Sending & Receiving/Message Handling/MessageReceiver+Calls.swift
#	SessionMessagingKit/Sending & Receiving/Message Handling/MessageReceiver+LegacyClosedGroups.swift
#	SessionMessagingKit/Sending & Receiving/Message Handling/MessageReceiver+MessageRequests.swift
#	SessionMessagingKit/Sending & Receiving/Message Handling/MessageReceiver+VisibleMessages.swift
#	SessionMessagingKit/Sending & Receiving/Message Handling/MessageSender+LegacyClosedGroups.swift
#	SessionMessagingKit/Sending & Receiving/Pollers/CurrentUserPoller.swift
#	SessionMessagingKit/Sending & Receiving/Pollers/OpenGroupPoller.swift
#	SessionMessagingKit/Sending & Receiving/Pollers/Poller.swift
#	SessionMessagingKit/Sending & Receiving/Typing Indicators/TypingIndicators.swift
#	SessionMessagingKit/Utilities/AppReadiness.swift
#	SessionMessagingKit/Utilities/Preferences.swift
#	SessionMessagingKit/Utilities/ProfileManager.swift
#	SessionMessagingKit/Utilities/SessionEnvironment.swift
#	SessionMessagingKitTests/Jobs/MessageSendJobSpec.swift
#	SessionMessagingKitTests/Open Groups/OpenGroupManagerSpec.swift
#	SessionNotificationServiceExtension/NotificationServiceExtension.swift
#	SessionShareExtension/ShareNavController.swift
#	SessionSnodeKit/LibSession/LibSession+Networking.swift
#	SessionSnodeKit/Networking/SnodeAPI.swift
#	SessionUIKit/Components/PlaceholderIcon.swift
#	SessionUIKit/Utilities/UIContextualAction+Theming.swift
#	SessionUtilitiesKit/Crypto/Crypto.swift
#	SessionUtilitiesKit/Database/Storage.swift
#	SessionUtilitiesKit/Database/Types/Migration.swift
#	SessionUtilitiesKit/Database/Utilities/Database+Utilities.swift
#	SessionUtilitiesKit/General/AppContext.swift
#	SessionUtilitiesKit/General/Atomic.swift
#	SessionUtilitiesKit/General/Caches.swift
#	SessionUtilitiesKit/General/Dependencies.swift
#	SessionUtilitiesKit/General/FileSystem.swift
#	SessionUtilitiesKit/General/Logging.swift
#	SessionUtilitiesKit/General/SNUserDefaults.swift
#	SessionUtilitiesKit/JobRunner/JobRunner.swift
#	SessionUtilitiesKit/Types/BackgroundTaskManager.swift
#	SessionUtilitiesKit/Types/KeychainStorage.swift
#	SignalUtilitiesKit/Utilities/AppSetup.swift
#	_SharedTestUtilities/Mock.swift
#	_SharedTestUtilities/MockCaches.swift
#	_SharedTestUtilities/NimbleExtensions.swift
10 months ago
Ryan ZHAO 47f9984d33 further refactor to use latest API 10 months ago
Morgan Pretty 38dad27969 Fixed a bunch of QA issues
• Updated to the latest Lucide version
• Updated the bin icons to use the new Lucide icon
• Fixed an issue where flagging a members messages to be deleted when kicking them wasn't using the standard message removal process
• Fixed an issue where you couldn't delete a group after it was destroyed
• Fixed an issue where being promoted to admin would fail because you weren't already an admin
• Fixed an issue where the share extension wasn't populating it's conversation list
• Fixed an issue where the share extension had a translucent header
• Fixed an issue where messages could incorrectly be considered disappearing messages (with no duration)
• Fixed an issue where non-admins couldn't locally delete messages in community conversations
• Fixed an issue where deleting Note to Self messages for all devices was incorrectly leaving an artifact
• Fixed an issue where emoji reacts added to messages which have been deleted locally would still get added to the deleted artifact
• Fixed a layout issue in groups/communities with the "this message was deleted" artifact
• Fixed an issue where highlighting and unhighlighting a "danger" action in the context menu would result in it changing to a non-danger colour
• Fixed an issue where the community poller always thought it was the initial poll
10 months ago
Ryan ZHAO 403ca8c10c refactor on getting microphone permission state to try to fix an issue 10 months ago