Commit Graph

2087 Commits (db633e69dec777ccd3e245a92b30bb2f09f496d9)

Author SHA1 Message Date
Morgan Pretty db633e69de Reworked the SessionCell.Accessory (same interface, builds much quicker) 1 year ago
Morgan Pretty 42f4925c36 Added more unit tests and resolve a minor edge case
Added some more unit tests
Added logic to insert a fallback "invite" control message if a group is created via the USER_GROUPS config message instead of an invite
1 year ago
Morgan Pretty 9b21a0d251 More unit tests, attempting to parallelize CI test running 1 year ago
Morgan Pretty f5f112a593 More unit tests & disable XCBeautify for CI testing 1 year ago
Morgan Pretty 37d3d5b829 Plugged in some more libSession functions and added more unit tests
Updated the code to use the libSession encrypt/decrypt functions for the 'groupKicked' message
Updated the code to use the libSession function to load the admin key when receiving a promotion instead of reloading the config state
Changed the NotificationsManager and NotificationActionHandler to be injected via dependencies instead of the Environment
Mocked out the NotificationsManager for unit testing
1 year ago
Morgan Pretty 3d60757c40 Reworked test DSL to speed up build time and added more tests
Fixed a bug where the group invite message could be incorrectly added in some cases
1 year ago
Morgan Pretty 315d78b500 [REVERT ME] Allow arbitrary loads in ATS for QA 1 year ago
Morgan Pretty 875bf88be4 Added more unit tests, fixed a couple of minor bugs
Added a dev setting to disable the group auto-approve for admins which are contacts (for testing purposes)
Added logic to unsubscribe and resubscribe for PNs when swapping environments
1 year ago
Morgan Pretty fa8e37b0c7 Removed 'fileIds' from Message.Destination (tested and won't break)
Removed 'fileIds' from Message.Destination (tested and won't break)
Cleaned up some TODOs
1 year ago
Morgan Pretty b7b7b4af6a Added disappearing messages support to updated groups
Added disappearing messages support to updated groups
Added the 10s & 60s debug disappearing message setting options to the DeveloperSettingsViewModel
Copy tweaks on the DeveloperSettingsViewModel
Removed some unused code
1 year ago
Morgan Pretty 988fa5c550 Fixed build errors from merge 1 year ago
Morgan Pretty 1057a4c3fa Merge remote-tracking branch 'origin/feature/drop-yap-database-support' into feature/groups-rebuild-part-2
# Conflicts:
#	LibSession-Util
#	Session.xcodeproj/project.pbxproj
#	Session/Conversations/ConversationVC+Interaction.swift
#	Session/Conversations/ConversationViewModel.swift
#	Session/Conversations/Message Cells/InfoMessageCell.swift
#	Session/Conversations/Settings/ThreadDisappearingMessagesSettingsViewModel.swift
#	SessionMessagingKit/Database/Models/SessionThread.swift
#	SessionMessagingKit/Sending & Receiving/MessageSender.swift
#	SessionMessagingKit/SessionUtil/Config Handling/SessionUtil+UserGroups.swift
#	SessionMessagingKit/SessionUtil/SessionUtil.swift
#	SessionUtilitiesKit/Database/SSKKeychainStorage.swift
1 year ago
Morgan Pretty 60684bc977 Merge remote-tracking branch 'RyanFork/disappearing-message-redesign' into feature/drop-yap-database-support 1 year ago
Morgan Pretty 59fc7a53ef New DeveloperSettingsViewModel, bulk PN endpoints and updated group messages
Added the DeveloperSettingsViewModel and dependency-controlled feature flags
Added the generic 'SessionListViewModel' to reduce duplicate code when we want to just display a selectable list of items
Added an indicator on the home screen to show when using testnet
Added group promotions behind a feature flag
Updated the PushNotificationAPI to use bulk subscribe/unsubscribe requests
Updated the 'GroupUpdateDeleteMessage' and 'GroupUpdateDeleteMemberContentMessage' to support additional behaviours
Updated the SessionCell to have better RTL support (swapped some left/right things to leading/trailing)
Updated the revoke/unrevoke endpoints to take arrays of subaccount tokens
Refactored the Bencode logic to properly support Codable types
1 year ago
Ryan ZHAO 3d566c1923 minor fix on close button accessibility id 1 year ago
Ryan ZHAO 6d92f31f6d update accessibility of empty state label 1 year ago
Morgan Pretty 32f5a18e00 WIP adding PNs for updated groups and changes for enabling unit testing
Started adding logic to subscribe and unsubscribe for updated group push notifications
Updated the keychain service to be injected via dependencies
Reworked the Dependencies logic to avoid a concurrent access issue
Fixed an issue where some keychain data might not be cleared in some cases
Fixed an issue where being kicked and readded to a group would make it seem to disappear ("invited" message wasn't getting created)
1 year ago
Morgan Pretty 0c1ea23b08 Started adding tests for the DisplayPictureDownloadJob and clean up
Started adding tests for the DisplayPictureDownloadJob
Cleaned up the Crypto singleton a bit
Moved the DisplayPictureManager encryption/decryption into Crypto methods
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 dffe321bc4 Added the updated revoke & unrevoke endpoints
Added the updated revoke & unrevoke endpoints when removing and adding group members
Updated the group creation to upload the provided image and set it to the group correctly
2 years ago
Morgan Pretty 7e34c1609f Added the new localised strings 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
Ryan Zhao 70326b5c74 fix disappearing messages for closed group control messages 2 years ago
Ryan Zhao f2629f193b add disappearing timer to call info messages 2 years ago
Ryan Zhao 8c6c6705a5 update control message text colour 2 years ago
Morgan Pretty a5118157b3 Finished invite statuses and toasts
Added invitation statuses for updated groups
Added the invite and failed invite toasts
Added proper support for the group description
Refactored the EditClosedGroupVC and UserSelectionVC to use the SessionTableViewModel
Updated the ObservableTableSource to support forcing a refresh either before or after the database observation
Removed support for the per-thread notification sound
2 years ago
Ryan Zhao d27475d0be feat: add timer for disappearing info messages 2 years ago
Ryan Zhao 83a64c5ca1 clean 2 years ago
Ryan Zhao 3d1b930ede feat: update disappearing messages ui for visible messages 2 years ago
Ryan Zhao 61df9e2cf1 refactor disappearing timer view from objc to swift 2 years ago
ryanzhao 5569da0874 add accessibility id for radio button in cells 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
Ryan Zhao c933ea1734 add comments 2 years ago
Ryan Zhao b605193e61 fix an issue by the refactor 2 years ago
Ryan Zhao 99d5620536 minor refactor and clean up 2 years ago
Morgan Pretty 417060a676 Added functionality for a bunch of GroupUpdate messages
Added logic to trigger and handle destroyed groups
Added logic to trigger and handle handle supplementary key rotations (libSession implementation is WIP)
Added logic for 'remove user and their content'
Added the ability to associate a callback to any arbitrary job
Added data support for the group description value
Added logic to handle being kicked from a group
Added logs for failed GROUP_KEYS merges (already have for other config types)
Fixed an issue where the initial key generation didn't include the initial members
Fixed a crash which could occur when creating a conversation via handling a USER_GROUPS config
Fixed an issue where manually triggering the ConfigurationSyncJob might not ever get a callback
Updated to have the latest Protobuf tweaks
Removed recognition of the LegacyConfigurationMessage
2 years ago
Morgan Pretty 0df6501265 Pushing up my WIP changes from the last few days
Got a number of the GroupUpdate messages working properly
Updated the DisplayPictureDownloadJob to support OpenGroup room images
Updated the Poller to process messages by namespace (sorted) and added support for synchronous handling of messages
Reworked the ProfileManager to be a more reusable DisplayPictureManager
Cleaned up the conversion from milliseconds to TimeInterval (which is documented as seconds) for clarity
Fixed a read/write crash due to the SnodeAPI cache setup
Fixed an issue where dependencies could incorrectly overwrite each other when based on protocols
2 years ago
Ryan Zhao 71fa811064 WIP: handle disappearing message failed to send 2 years ago
Morgan Pretty 12347c9f2f Merge remote-tracking branch 'upstream/dev' into disappearing-message-redesign
# Conflicts:
#	Session/Media Viewing & Editing/MediaDetailViewController.swift
2 years ago
Morgan Pretty a3ef1c92d3 Started adding logic for the GroupUpdate messages 2 years ago
Morgan Pretty 81d0072a43 Including the change to create an updated group instead of a legacy one 2 years ago
Morgan Pretty 4127d45122 Added more unit tests
Added the SnodeAPICache and a mock for it
Moved the current user poller into Dependencies
2 years ago
Morgan Pretty 05460ca2b3 Fixed a bug where the play button wouldn't appear when swiping attachments 2 years ago
Morgan Pretty de7d85f4cb Merge remote-tracking branch 'upstream/dev' into fix/media-interactions 2 years ago
Morgan Pretty 67713ca498 Fixed a few bugs and resolved some TODOs
Added additional properties to the Group to simplify the code
Added the roleStatus to the GroupMember for future functionality
Fixed a bug where the input field might not appear if a group becomes valid while it's open
Fixed a bug where updated groups might not get their states loaded into memory under certain conditions
Removed some duplicate code
2 years ago
Morgan Pretty 8e04944af0 Fixes from cross-platform testing and general code changes
Fixed the incorrect Group Namespaces
Fixed an incorrect identity generation which could create invalid accounts
Fixed an issue where adding group members would remove admins incorrectly
Finished updating the SnodeAPI to use prepared requests
2 years ago
Morgan Pretty 5ac05a41ec Merge remote-tracking branch 'RyanFork/disappearing-message-redesign' into feature/groups-rebuild
# Conflicts:
#	Session.xcodeproj/project.pbxproj
#	Session/Conversations/ConversationViewModel.swift
#	Session/Conversations/Settings/ThreadDisappearingMessagesSettingsViewModel.swift
#	Session/Conversations/Settings/ThreadSettingsViewModel.swift
#	Session/Home/Message Requests/MessageRequestsViewController.swift
#	Session/Home/Message Requests/MessageRequestsViewModel.swift
#	Session/Meta/Translations/fil.lproj/Localizable.strings
#	Session/Meta/Translations/hi.lproj/Localizable.strings
#	Session/Meta/Translations/hr.lproj/Localizable.strings
#	Session/Meta/Translations/nl.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-TW.lproj/Localizable.strings
#	Session/Settings/ConversationSettingsViewModel.swift
#	Session/Settings/HelpViewModel.swift
#	Session/Settings/NotificationContentViewModel.swift
#	Session/Settings/NotificationSettingsViewModel.swift
#	Session/Settings/NotificationSoundViewModel.swift
#	Session/Settings/PrivacySettingsViewModel.swift
#	Session/Settings/SettingsViewModel.swift
#	Session/Shared/SessionTableViewController.swift
#	SessionSnodeKit/Database/Models/SnodeReceivedMessageInfo.swift
#	SessionTests/Settings/NotificationContentViewModelSpec.swift
#	SessionUIKit/Components/TopBannerController.swift
#	SessionUtilitiesKit/Configuration.swift
2 years ago
Morgan Pretty a6931bb922 Merge remote-tracking branch 'upstream/dev' into disappearing-message-redesign
# Conflicts:
#	Session.xcodeproj/project.pbxproj
#	Session/Conversations/Settings/ThreadDisappearingMessagesSettingsViewModel.swift
#	Session/Conversations/Settings/ThreadSettingsViewModel.swift
#	Session/Shared/SessionTableViewController.swift
#	Session/Shared/SessionTableViewModel.swift
#	Session/Shared/Types/SessionTableSection.swift
#	SessionTests/Conversations/Settings/ThreadDisappearingMessagesViewModelSpec.swift
#	SessionUIKit/Components/SessionButton.swift
2 years ago
Morgan Pretty 89b38dc2f5
Merge pull request #928 from mpretty-cyro/fix/blocked-contacts-crash
Fixed a crash on the blocked contacts screen and refactoring
2 years ago
Morgan Pretty e427e59544
Merge pull request #926 from mpretty-cyro/fix/rare-multi-threading-crash
Fixed a crash which could occur when scrolling conversation messages
2 years ago