Commit Graph

66 Commits (5432f5582e2d602851f0c9ec73ac1d8522713095)

Author SHA1 Message Date
Morgan Pretty 333849c32e Logic for interactions with user mentions and closed group tweaks
Added logic to flag interactions that mention the current user
Fixed up closed group member handling
3 years ago
Morgan Pretty 0db74ce1e3 Working on the MediaGallery and ClosedGroup handling
Fixed a couple of issues around the duplicate messages handling
Fixed a few issues with ClosedGroup polling and ClosedGroup control message handling
Started working through updating the MediaGallery
3 years ago
Morgan Pretty b541666ef0 Got the ability to send message working again and other tweaks
Tested and fixed a couple of issues with the disappearingMessages job
Added a simple dependency system for jobs (primarily for the AttachmentUploadJob, but will likely be others later)
Setup the AttachmentUploadJob again (looks like there are cases which use it)
Prevented a possible infinite job deferral loop from causing the app to crash (the loop is still technically possible but the app will continue to run now)
Updated the interactions unique constraints based on testing and discussions around how the serverHash works
Deleted the legacy ReadReceipt handling (now managed via the 'interaction.wasRead' flag and 'SendReadReceiptsJob')
Deleted the unused SSKIncrementingIdFinder
3 years ago
Morgan Pretty 3baeb981d9 Further work on the JobRunner
Moved the JobRunner into SessionUtilitiesKit so it can be used by SessionSnodeKit
Exposed a 'sharedLokiProject' value on UserDefaults to remove the hard-coded group name used everywhere
Added "blocking" job support for 'OnLaunch' and 'OnActive' jobs to the JobRunner (will retry until it succeeds)
Added the UpdateProfilePicture and RetrieveDefaultOpenGroupRooms jobs
3 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)
3 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
3 years ago
Morgan Pretty cf66edb723 Further work on SessionMessagingKit migrations
Added migrations for contacts and started working through thread migration (have contact and closed group threads migrating)
Deprecated usage of ECKeyPair in the migrations (want to be able to remove Curve25519Kit in the future)
3 years ago
Morgan Pretty a1b4554cdb Migrated the SessionSnodeKit from YapDatabase to GRDB
Changed the min OS version to iOS 13.0 (support for 'Identifiable')
Removed the alternate approaches to fetching the userKeyPair and userPublicKeyHexString (no consistently routed through the caching method)
Migrated the 'OWSIdentityManager' logic to use the new 'Identity' type
Added the 'Setting' table and got the pattern working fairly nicely (unfortunately there isn't a good way to avoid key collision without proper enums)
Updated the SessionSnodeKit to migration it's data from YDB to GRDB
Updated the SessionSnodeKit to use GRDB throughout it's logic
3 years ago
Morgan Pretty e65682ae9b Merge branch 'dev' into feature/database-refactor
# Conflicts:
#	Session.xcodeproj/project.pbxproj
#	Session/Backups/OWSBackup.m
#	Session/Backups/OWSBackupImportJob.m
#	SessionSnodeKit/SnodeAPI.swift
3 years ago
Morgan Pretty 529e416dd1 Started work on GRDB logic and migrations
Setup a migration pattern
Setup the database configuration and security
Started defining the database schema
Started working on the migrations for SessionSnodeKit
3 years ago
RyanZhao 7cd0079b37
Merge pull request #599 from mpretty-cyro/fix/update-last-message-hash-after-registering-jobs
Fix - Update last message hash after registering jobs
3 years ago
Morgan Pretty b90904ebbd Updated the code to only update the last message hash once the MessageReceiveJobs have been created 3 years ago
Morgan Pretty 1492232224 Made some optimisations to open group deletion handling
Added a new OpenGroupServerIdLookup to make it easier to get a database id via an open group server id
Added a migration to generate the above data
Updated the handleCompactBody method to stop early if there are no messages to delete (would previously enumerate all interactions regardless)
Updated the handleCompactBody to fetch the mapping for the deleted message so we can avoid enumerating all interactions
3 years ago
Ryan Zhao 8652268557 add logs & fix PN 3 years ago
Ryan Zhao 7a677a1800 move pollers to one working queue to avoid race condition 3 years ago
ryanzhao cd97b9c3e8 minor fix on poller threading 3 years ago
ryanzhao b2ab984586 refactor on timer and polling threading 3 years ago
Ryan Zhao d21c5329e3 further improvements to move poller into background threads 3 years ago
Ryan Zhao 16c9b7793a move pollers to background threads 3 years ago
Ryan Zhao e8e120666b move message poller to back ground thread 3 years ago
Ryan Zhao 6c64d580b8 move open group polling to background thread 3 years ago
Ryan Zhao ce83de5c46 fix crash of dictionary.subscript.getter for closed groups 3 years ago
RyanZhao fbd30ca8e5
Merge pull request #500 from RyanRory/improvements
Improvements
4 years ago
ryanzhao d6d041a74f fix closed group threading issue 4 years ago
ryanzhao da335a8401 clean 4 years ago
ryanzhao 7a354fe220 potentially fix the closed group not receiving messages issue 4 years ago
Ryan Zhao 08360273e6 save server hash for message receive jobs 4 years ago
Niels Andriesse 8f29010e89 Poll for closed group messages more frequently 4 years ago
Niels Andriesse 11df899db3 Don't use jobs for open group polling
It's not necessary because we can always get the messages again from the server, and it helps with performance
4 years ago
Niels Andriesse 601062c9ef Fix timeSinceLastOpen usage 4 years ago
Brice-W 51ba97827d open group polling limit implementation 4 years ago
Niels Andriesse 3fda8daec9 Merge branch 'dev' into cleanup 4 years ago
nielsandriesse 73eeff3ea1 Debug 4 years ago
nielsandriesse 17688a66e6 Make closed group polling variable rate 4 years ago
Niels Andriesse bd04775cbf Implement open group invitations UI 4 years ago
Niels Andriesse 7e60d3c218 Merge branch 'dev' into cleanup 4 years ago
Niels Andriesse ad801d4f33 Fix threading 4 years ago
nielsandriesse 06f795169b Merge branch 'dev' into cleanup 4 years ago
nielsandriesse 964cb8b326 Fix new deletion method 4 years ago
Niels Andriesse d742fc1548 Delete V1 OGS & file server 4 years ago
Niels Andriesse fee6861847 Minor refactoring 4 years ago
Niels Andriesse c747acfc04 Fix compact poll deletion handling 4 years ago
Niels Andriesse 5021357661 Fix timestamp issue 4 years ago
Niels Andriesse 5a242ce4e8 Debug 4 years ago
Niels Andriesse 4774123ad4 Update V2 open group poller for compact polling 4 years ago
Niels Andriesse 516f815521 Debug 4 years ago
nielsandriesse e5764264b3 Debug 4 years ago
nielsandriesse 4c9728b4fe Update other APIs for V2 open groups 4 years ago
Niels Andriesse 82690259b2 Clean protobuf 4 years ago
Niels Andriesse dd0baf0d97 Unify contacts APIs 4 years ago