Commit Graph

243 Commits (a19315cfeb22c19f262f68041b26bcd862bd4d5d)

Author SHA1 Message Date
Matthew Chen f26241ebd0 Avoid deadlocks in contact manager. 7 years ago
Michael Kirk 3560f3be5c Durable send operation
TODO
-[x] respect order of queue
-[x] replacements
  -[x] those w/o completion handler
  -[x] basic send+log operation persists
  -[x] send+ui completion
  -[x] share extension
  -[x] update state jobs
-[x] App Lifecyle
  -[x] settable
  -[x] Mark as ready on startup
  -[x] Fail appropriate jobs on startup

NICE TO HAVE
-[x] concurrent per senders
-[ ] longer retry (e.g. 24hrs)
-[ ] App Lifecyle
  -[x] retry failed jobs on startup?
  -[ ] reachability

DONE
-[x] basic passing test
-[x] datamodel
-[x] queue/classes
7 years ago
Matthew Chen b83299888f Fix edge cases around UD v. linked devices. 7 years ago
Matthew Chen d656ae1017 Fix edge cases around UD v. linked devices. 7 years ago
Matthew Chen 99d0495ec7 Respond to CR. 7 years ago
Matthew Chen bbcbbafaab Sync local profile key after rotating it. 7 years ago
Matthew Chen 693b3e13a9 Revert "Sync local profile key after rotating it."
This reverts commit ddbd20e706.
7 years ago
Matthew Chen ddbd20e706 Sync local profile key after rotating it. 7 years ago
Matthew Chen 275414cbda Respond to CR. 7 years ago
Matthew Chen 7c1f1882d8 Sync "show UD indicators" setting. 7 years ago
Michael Kirk 3e85c8c023 clang-format branch changes 7 years ago
Matthew Chen 010ce1f6c2 Rename to OWSOutgoingReceiptManager. 7 years ago
Matthew Chen 2b45a8348e Clean up ahead of PR. 7 years ago
Matthew Chen de7bffa593 Send delivery receipts. 7 years ago
Matthew Chen 13373db3bc Send delivery receipts. 7 years ago
Matthew Chen cba8c67983 Add 'is ud' property to incoming messages. 7 years ago
Matthew Chen 21b383f4e2 Remove server GUID from TSIncomingMessage. 7 years ago
Matthew Chen f9e90215b3 Respond to CR. 7 years ago
Matthew Chen ccb67f49a3 Fix issues in UD send & receive. 7 years ago
Matthew Chen 580d0486b6 Respond to CR. 7 years ago
Matthew Chen 9f2a15925a Add new envelope properties for UD. 7 years ago
Matthew Chen 71da312336 Post-SMK ud changes. 7 years ago
Matthew Chen 3738155c81 Fix build breakage from SMK. 7 years ago
Matthew Chen 0125535d4d Pull out SignalCoreKit. 7 years ago
Matthew Chen ebae75af00 Revert 'new sort id'. 7 years ago
Michael Kirk df61316495 minimize diff senderTimestamp -> timestamp 7 years ago
Michael Kirk 550e7ba63b Create disappearing message update info messages before messages they affect
Since we're no longer sorting by timestamp we have to ensure we save the update
info message before we save any affected message, e.g. in the case of implicit
updates.
7 years ago
Michael Kirk eef1368ad3 Timestamp audit step1: change signature
There is no change in functionality in this commit.

Apart from clarifying what the timestamp means (it's the timestamp of the
*sender*), this intentionally breaks all the call sites, so I could have a sane
way to thoroughly audit wherever we're passing in timestamps, to see where
we're depending on them to affect sort order.

For the sake of a cleaner diff of meaningful changes, instead of "fixing"
everything in this commit, I've just added comments and renamed signatures.
7 years ago
Matthew Chen 87836f506b Move more singletons to SSKEnvironment. 7 years ago
Matthew Chen e1db60c1c0 Rework creation of singletons. 7 years ago
Matthew Chen 4ad7ca79b7 Respond to CR. 7 years ago
Matthew Chen e8eac9f30b Clean up ahead of PR. 7 years ago
Matthew Chen b883209f91 Refine logging. 7 years ago
Michael Kirk 920a82564f Merge tag '2.29.3.3' 7 years ago
Michael Kirk b96e9a6a82 Fix: not receiving group deliveries
Previously we were using the wrong method - the local user's id is removed
from group.recipientIdentifiers
7 years ago
Michael Kirk f1e5b1862f Ignore messages from left groups 7 years ago
Michael Kirk 2c9d905a16 Message processor ignores messages from blocked group 7 years ago
Michael Kirk b282d51da0 SyncMessages for blocked groups 7 years ago
Matthew Chen 3a12446be8 Modify environment accessors to use our 'shared' convention. 7 years ago
Matthew Chen bd05cdc031 Rename TextSecureKitEnv to SSKEnvironment. 7 years ago
Michael Kirk c7662b5a86 Step 2/2 %s/OWSAssert/OWSAssertDebug for existing previous assert semantics
Going forward, we want to prefer safer asserts, but we don't want to blindly
apply crashing asserts across the codebase
7 years ago
Matthew Chen fac7f6932f Rename TSGroupMetaMessage enum values. 7 years ago
Matthew Chen f473f60111 Apply OWS log functions in Objective-C. 7 years ago
Matthew Chen cc5a480baa Apply OWS log functions in Objective-C. 7 years ago
Matthew Chen 03829779cc Apply OWS log functions in Objective-C. 7 years ago
Matthew Chen 3a50377902 Apply OWS log functions in Objective-C. 7 years ago
Matthew Chen 713606271c Rename fail macros in Obj-C. 7 years ago
Michael Kirk c05700fd98 Log in OWSFail
step 1: rename OWSFail->OWSFailNoProdLog
step 2: rename OWSProdLogAndFail->OWSFail
step 3: Convert OWSFailNoProdLog->OWSFail where we want logging
step 4: Rename OWSCFail->OWSCFailNoProdLog
step 5: Rename OWSProdLogAndCFail -> OWSCFail
step 6: Convert OWSCFailNoProdLog -> OWSCFail where we want logging
7 years ago
Matthew Chen 7437e7a6b1 Remove 'has' accessors from proto wrappers. 7 years ago
Matthew Chen 1ab0842403 Remove Obj-c proto parser. 7 years ago
Matthew Chen a5ffbdebb3 Remove Obj-c proto parser. 7 years ago
Matthew Chen a647b5be48 Respond to CR. 7 years ago
Matthew Chen ff8565dbd5 Code generate Swift wrappers for protocol buffers. 7 years ago
Matthew Chen ab31e5a07f Code generate Swift wrappers for protocol buffers. 7 years ago
Matthew Chen f814157a9e Code generate Swift wrappers for protocol buffers. 7 years ago
Matthew Chen dfc39b4a1d Tidy files. 7 years ago
Matthew Chen e6bc37d941 Tidy files. 7 years ago
Matthew Chen 8f55f53329 Tidy files. 7 years ago
Michael Kirk abcd0a1d29 CR: revert logging change 7 years ago
Michael Kirk b860dce7f9 Swift protos for Envelope 7 years ago
Matthew Chen d14f764b50 Streamline SignalRecipient. 7 years ago
Michael Kirk d591fb7f2c Fix some compiler warnings 7 years ago
Michael Kirk 4d3d5d98e1 Sync colors with contacts 7 years ago
Michael Kirk 0a17246737 Don't use group name in message.
// FREEBIE
7 years ago
Michael Kirk 95b1dced18 add: messages in Book Club will disappear in 1 minute
Show different message when joining group with disappearing messages
7 years ago
Michael Kirk 0cf751d34f Newly added group members should have expire time
Send expire timer with group info updates and in group updates that add a user.
7 years ago
Matthew Chen 3cd6a33aa6 Fix build warnings. 7 years ago
Michael Kirk a10ae1835e respond to code review
// FREEBIE
7 years ago
Michael Kirk 48b4791b13 Download avatar attachment stream
// FREEBIE
7 years ago
Michael Kirk 242cc1138f A few lingering places were ordered with their envelope timestamp
// FREEBIE
7 years ago
Matthew Chen 8dc3333467 Send fake contact shares. 7 years ago
Matthew Chen 0316a98eb8 Undo renaming of contactShare property of TSMessage. 7 years ago
Matthew Chen 147368913c Gather all contact conversion logic in OWSContacts. 7 years ago
Matthew Chen 0d8cfc5403 Rename contact share class to contact. 7 years ago
Matthew Chen 7490a55f61 Sketch out "contact share" model. 7 years ago
Matthew Chen 4b8a2fa8a3 Sketch out "contact share" model. 7 years ago
Matthew Chen 204d379603 Respond to CR. 7 years ago
Matthew Chen 9275c67818 Rework outgoing message state. 7 years ago
Michael Kirk 754549adf1 Start timer for expiring message based on when read receipt was sent
// FREEBIE
7 years ago
Michael Kirk dfb2a034af Use explicit transactions.
- Start expiration within scope of existing transaction when we're
  already in a transaction

// FREEBIE
7 years ago
Matthew Chen 5ce39337ed Handle malformed protos. 7 years ago
Michael Kirk f1714bf252 Handle synced quotes
// FREEBIE
7 years ago
Michael Kirk fa2e1ba89b Fetch thumbnail when not available locally
// FREEBIE
7 years ago
Michael Kirk 42f454b075 Generate thumbnail when quoted attachment is available locally
// FREEBIE
7 years ago
Michael Kirk 351f9ea263 Simplify attachment processor
We've accepted all attachment types for a long while now.

// FREEBIE
7 years ago
Michael Kirk 3252866727 remove unused params
// FREEBIE
7 years ago
Michael Kirk 3334f2a063 tentative proto changes
// FREEBIE
7 years ago
Michael Kirk 51a4298c14 WIP: Send attachment info in protobuf (no thumbnails yet)
// FREEBIE
7 years ago
Michael Kirk 253435b27f extract QuotedReplyDraft model 7 years ago
Michael Kirk 0b8b3b4f16 WIP: towards avatar attachment streams
// FREEBIE
7 years ago
Michael Kirk 2975d4d5d2 Sync with android protos
// FREEBIE
7 years ago
Matthew Chen 9085609087 Fix interaction initializers and tests. 7 years ago
Matthew Chen 8e4f2ca0ed Rework proto schema changes for quoted replies.
Sketch out model changes for quoted replies.

Sketch out quoted reply input preview.

Send quoted messages protos.

Update models to reflect quoted messages.

Rework interaction initializers.

Rework interaction initializers.

Add debug UI methods for generating quoted reply variations.

Add debug UI methods for generating quoted reply variations.
7 years ago
Matthew Chen d6f4db1523 Rename TSStorageManager to OWSPrimaryStorage. 7 years ago
Matthew Chen d648a258d1 Merge branch 'hotfix/2.19.7' 7 years ago
Matthew Chen abfd333a17 Address Indic script crash. 7 years ago
Matthew Chen 8930110efd Fix glitch in batch processing of incoming messages. 7 years ago
Matthew Chen 6f28c75257 Fix glitch in batch processing of incoming messages. 7 years ago
Michael Kirk a23f1b86ef nullability annotations for TSGroupModel
- add readonly where possible
- group members needn't be a mutable array

// FREEBIE
7 years ago
Joshua Lund 2c18a75d12 Update to the new GitHub organization name 7 years ago
Matthew Chen 78c4c00eac Respond to CR. 7 years ago
Matthew Chen 074046b98e Add protocol context to protocol kit. 7 years ago
Matthew Chen 122ef91e57 Add protocol context to protocol kit. 7 years ago
Matthew Chen 799949e546 Refine sync messages. 7 years ago
Matthew Chen eb180ba5c4 Register all database views asynchronously. 7 years ago
Matthew Chen 17907dca10 Clean up ahead of PR. 7 years ago
Matthew Chen 15b8e58324 Retain changes from session database branch. 7 years ago
sdkjfhsdkjhfsdlkjhfsdf 92477c78b7 cleanup before PR 7 years ago
Michael Kirk bce18637f0 render attachments with captions
// FREEBIE
7 years ago
Matthew Chen d52eba739d Clean up TSStorageManager usage. 7 years ago
Matthew Chen 137fe6fb8b Pull out OWSStorage base class for TSStorageManager. 7 years ago
Matthew Chen 9da165b846 Continue conversion of app setup. 8 years ago
Matthew Chen 64762eb427 Observe YapDatabaseModifiedExternallyNotification. 8 years ago
Matthew Chen e712e8bfc4 Use AppContext to resolve share extension FIXMEs. 8 years ago
Michael Kirk 7894a58769 FIXME: Changes to get share extension compiling
This was a slash and burn approach, and breaks existing functionality.
We need to address all of these before merging.

// FREEBIE
8 years ago
Matthew Chen 9b197fad03 Fix deadlock when responding to contacts sync messages. 8 years ago
Matthew Chen 21e9f57cbe Imitate Android's behavior of delaying local notifications based on incoming sync messages. 8 years ago
Matthew Chen 19ba564f80 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen c6160a5a1e Rework the "update with..." methods to avoid re-saving deleted models. 8 years ago
Matthew Chen 6e840ff956 Fix build warnings from XCode 9. 8 years ago
Michael Kirk 98fd15fae7 Avoid groupsync deadlock - pass in transaction
// FREEBIE
8 years ago
Matthew Chen 0c46b770e9 Ignore group info requests if sender and recipient aren't both known group members.
// FREEBIE
8 years ago
Matthew Chen 13a6657991 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 2a5a0929e6 Create & access groups more carefully.
// FREEBIE
8 years ago
Matthew Chen 380ed0f82b Create & access groups more carefully.
// FREEBIE
8 years ago
Matthew Chen a31b1aeea6 Respond to "sync block list" request.
// FREEBIE
8 years ago
Michael Kirk 2125dbe72c CR: Avoid potential transaction nesting
also clean up description method

// FREEBIE
8 years ago
Michael Kirk ab5b090338 Sync read receipt config to linked devices
// FREEBIE
8 years ago
Michael Kirk be197621ac Add read receipts field/configuration protos
Also converge with Android protos where possible

// FREEBIE
8 years ago
Michael Kirk a2421d5b3e Fix "unknown attachment" notifications
The transaction in which the attachments were created hasn't been
committed yet.

// FREEBIE
8 years ago
Matthew Chen 9573e0e16d Move more work off the main thread.
// FREEBIE
8 years ago
Matthew Chen a4d285f50d Respond to CR.
// FREEBIE
8 years ago
Matthew Chen aa7329013d Handle new-style delivery receipts.
// FREEBIE
8 years ago
Matthew Chen 25c40ea3cf Handle new-style delivery receipts.
// FREEBIE
8 years ago
Matthew Chen ee13084d5c Respond to CR.
// FREEBIE
8 years ago
Matthew Chen ffe44e68be Refactor linked device read receipts.
// FREEBIE
8 years ago
Matthew Chen b74da07f7e Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 11cadf4200 Send, receive & show read receipts to senders/from receivers.
* Send read receipts to senders.
* Honor "send read receipts" preference.
* Process read receipts from recipients.
* Refactor "mark as read" logic.
* Serialize and apply recipient read receipts received before sync transcript.
* Show recipient read receipts in conversation view.

// FREEBIE
8 years ago
Matthew Chen 7268bde506 Add stress group to debug UI.
// FREEBIE
8 years ago
Matthew Chen 77e0c9664c Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 077b74a0aa Fix handling of edge cases around groups.
// FREEBIE
8 years ago
Matthew Chen bfb03c0db4 Fix message processing edge cases.
// FREEBIE
8 years ago
Matthew Chen b28c4b74b2 Pull out TSMessageDecrypter class.
// FREEBIE
8 years ago