Commit graph

112 commits

Author SHA1 Message Date
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
2022-04-27 10:48:54 +10:00
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)
2022-04-22 18:47:11 +10:00
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
2022-04-21 16:42:35 +10:00
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)
2022-04-06 15:43:26 +10:00
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
2022-04-01 17:22:45 +11:00
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
2022-03-21 16:53:12 +11:00
Ryan Zhao 6b231316ee fix & improve voice message preview in home screen 2022-03-01 13:22:53 +11:00
ryanzhao e24ae60d71 fix duplicated disappearing message in closed groups 2021-12-09 13:55:17 +11:00
Ryan Zhao a6df6504c8 Prevent the same ExpirationTimerUpdate to be handled twice 2021-11-29 17:02:23 +11:00
ryanzhao e49431d2eb fix transaction crash 2021-11-15 16:47:12 +11:00
ryanzhao 132ff0416f set server timestamp as open group message's sent timestamp 2021-08-23 11:10:22 +10:00
ryanzhao 1822c7df16 fix duplicated messages sent in closed groups 2021-08-18 12:09:05 +10:00
Ryan Zhao 6e45aed71b Merge branch 'dev' of https://github.com/oxen-io/session-ios into unsend-message 2021-08-05 13:34:17 +10:00
Niels Andriesse e311d2878f Fix message status indicator bug 2021-08-05 10:47:15 +10:00
Niels Andriesse 50d17be43b Fix animation glitch 2021-08-05 10:11:20 +10:00
Niels Andriesse b8c4e6aa93 Avoid unnecessary conversation screen updates 2021-08-05 10:02:52 +10:00
ryanzhao 9953451767 add comment 2021-08-04 14:53:16 +10:00
ryanzhao 8d53a775d2 Revert "delete real message and sync message together"
This reverts commit cc17a952e0.
2021-08-04 14:48:32 +10:00
ryanzhao cc17a952e0 delete real message and sync message together 2021-08-04 11:49:21 +10:00
Niels Andriesse 7f0b87a2b2 Avoid unnecessary conversation screen updates 2021-08-03 15:36:54 +10:00
Ryan Zhao c68350f3d8 store hash value for outgoing messages 2021-08-02 14:49:34 +10:00
Ryan Zhao b827b9e1ba make it work for multi device 2021-08-02 10:32:47 +10:00
Ryan Zhao 6aa865e7b7 delete locally and send unsend request 2021-07-30 16:51:43 +10:00
Niels Andriesse 8a29469eb5 Handle incorrect clock setting 2021-07-23 13:42:13 +10:00
Niels Andriesse ca862096b4 Rename profilePictureEncryptionKey → profileEncryptionKey 2021-07-22 14:52:10 +10:00
Niels Andriesse aa3a18fa7e Don't notify for closed group control messages
This addresses an issue where:

• someone would create a closed group
• on other peoples' devices this control message would be received through a background poll or a push notification
• the received message timestamps table would be updated
• processing wouldn't be finished (during a background poll or while handling a push notification the system can cut you off at any time)
• some of the added users don't see the new closed group because when they open the app and get the control message from their swarm it's considered a duplicate and isn't processed again
2021-05-24 08:57:31 +10:00
Niels Andriesse 3fda8daec9 Merge branch 'dev' into cleanup 2021-05-20 16:25:59 +10:00
Niels Andriesse bd04775cbf Implement open group invitations UI 2021-05-07 13:10:21 +10:00
nielsandriesse 06f795169b Merge branch 'dev' into cleanup 2021-05-05 14:10:19 +10:00
nielsandriesse 0c864454aa Remove duplicate message server ID tracking 2021-05-05 13:30:37 +10:00
Niels Andriesse d742fc1548 Delete V1 OGS & file server 2021-05-04 15:46:48 +10:00
Niels Andriesse 2763ee0d1a Clean 2021-04-15 10:34:47 +10:00
nielsandriesse a76c43973f Increase TTL & remove PoW 2021-04-14 15:46:40 +10:00
Niels Andriesse 516f815521 Debug 2021-03-26 10:39:51 +11:00
nielsandriesse e5764264b3 Debug 2021-03-24 14:06:48 +11:00
nielsandriesse 09b4b7d388 Update MessageSender for V2 open groups 2021-03-24 13:28:30 +11:00
nielsandriesse 81d091c43f Fail gracefully if the user doesn't have a name set 2021-03-03 14:19:38 +11:00
Niels Andriesse 82690259b2 Clean protobuf 2021-03-02 13:12:24 +11:00
Niels Andriesse dd0baf0d97 Unify contacts APIs 2021-03-01 09:36:18 +11:00
Niels Andriesse 73bbaf9ce7 Potentially fix attachment issue 2021-02-26 13:42:06 +11:00
nielsandriesse 2d6bf235d7 Sync expiration timer updates 2021-02-24 15:19:50 +11:00
nielsandriesse ece564988e Allow self-sending of closed group control messages 2021-02-10 10:56:46 +11:00
nielsandriesse 4803b96eb1 Only handle the first config sync message after restoration 2021-02-10 10:19:46 +11:00
Niels Andriesse 57f7bc88eb Fix leftover merge conflicts 2021-01-28 15:49:43 +11:00
Niels Andriesse 7acb6c9ac3 Merge branch 'dev' into multi-device 2021-01-28 15:44:04 +11:00
Niels Andriesse 804377c5a4 Minor refactoring 2021-01-28 13:33:50 +11:00
Niels Andriesse 585fabca03 Debug 2021-01-25 15:50:30 +11:00
Niels Andriesse 6b7b158000 Debug 2021-01-25 14:46:47 +11:00
Niels Andriesse cf333d5e3d Merge branch 'closed-groups' into multi-device 2021-01-25 13:50:18 +11:00
Niels Andriesse 867e9114a6
Merge branch 'dev' into multi-device 2021-01-22 13:29:13 +11:00