Michael Kirk
d35b735d76
Log message type in message sender
2018-10-25 11:54:59 -06:00
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
2018-10-25 11:54:59 -06:00
Matthew Chen
9df94b8477
Rework sync transcript sending.
2018-10-24 10:53:23 -04:00
Matthew Chen
21cf467bb4
Don't use websocket after 409/410.
2018-10-23 15:09:22 -04:00
Matthew Chen
b003049d9c
Improve UD logging.
2018-10-22 14:29:08 -04:00
Matthew Chen
8c8b3a95b8
Respond to CR.
2018-10-22 14:04:30 -04:00
Matthew Chen
d656ae1017
Fix edge cases around UD v. linked devices.
2018-10-22 12:31:28 -04:00
Matthew Chen
86e22edcb1
Send "sent message transcript" sync messages at the _end_ of a send, not after the first recipient is sent.
2018-10-19 17:22:28 -04:00
Matthew Chen
55369a1ca3
Only send 'sent message transcript' sync messages using UD.
2018-10-19 16:45:50 -04:00
Matthew Chen
94c7b72361
Only send "sent message transcript" sync messages using UD.
2018-10-19 16:45:50 -04:00
Matthew Chen
2894db0d6e
Add request maker.
2018-10-19 16:35:19 -04:00
Matthew Chen
ab6c4a4c36
Try prekey fetches via websocket.
2018-10-19 09:03:47 -04:00
Matthew Chen
d44e414b54
Clean up message sender.
2018-10-18 13:50:48 -04:00
Matthew Chen
353f91db64
Respond to CR.
2018-10-18 12:12:13 -04:00
Matthew Chen
9519e7961a
Rework recipient device updates.
2018-10-18 11:21:16 -04:00
Matthew Chen
a00ebdf4a2
Fix UD auth edge cases.
2018-10-18 11:21:16 -04:00
Matthew Chen
4d89670f19
Fix UD auth edge cases.
2018-10-18 11:21:16 -04:00
Matthew Chen
f2a1df4e99
Update device message auditing to reflect UD behavior.
2018-10-11 13:00:53 -04:00
Matthew Chen
a6eed30127
Add 'is ud' property to outgoing messages.
2018-10-10 14:32:14 -04:00
Matthew Chen
0d588346f1
Fix rebase breakage.
2018-10-10 14:28:02 -04:00
Matthew Chen
a4cdc5272c
Handle UD auth errors in websocket sends.
2018-10-10 14:22:41 -04:00
Michael Kirk
0be1f8cca2
Move UD auth into request initializers
2018-10-10 09:09:11 -06:00
Michael Kirk
39ba413439
Track UD mode enum instead of two booleans
2018-10-10 09:09:11 -06:00
Matthew Chen
75e59bbc6f
Discard self-sent messages during the decryption process.
2018-10-10 09:10:45 -04:00
Matthew Chen
e47b69e0aa
Send sync messages to self via UD (only); discard self-sent sync messages.
2018-10-10 09:10:45 -04:00
Matthew Chen
01ca416f42
Fix rebase breakage.
2018-10-05 12:53:54 -04:00
Matthew Chen
2f2b6b071b
UD sends over web sockets; update web socket auth for UD.
2018-10-05 12:49:40 -04:00
Matthew Chen
3b06434d4f
Split out second web socket.
2018-10-05 12:48:19 -04:00
Matthew Chen
c137e95ae5
Move socket manager to hang on SSKEnvironment.
2018-10-05 12:47:11 -04:00
Matthew Chen
fbfda5b9db
Respond to CR.
2018-10-05 12:00:31 -04:00
Matthew Chen
1a23186ec4
Fix 'info message for group events'.
2018-10-05 11:50:17 -04:00
Matthew Chen
61a99c3f87
Further sender cleanup.
2018-10-05 11:49:36 -04:00
Matthew Chen
f2a9c10c20
Respond to CR.
2018-10-05 10:41:10 -04:00
Matthew Chen
a697072271
Respond to CR.
2018-10-05 10:32:32 -04:00
Matthew Chen
ccb67f49a3
Fix issues in UD send & receive.
2018-10-04 11:56:37 -04:00
Matthew Chen
0b41e5e240
Rework profile fetch to reflect UD changes.
2018-10-04 11:56:37 -04:00
Matthew Chen
1e10a86635
UD send via REST.
2018-10-04 11:56:36 -04:00
Matthew Chen
24b0eed1f6
UD send via REST.
2018-10-04 11:56:36 -04:00
Matthew Chen
d08479980d
UD send via REST.
2018-10-04 11:56:36 -04:00
Matthew Chen
71da312336
Post-SMK ud changes.
2018-10-02 13:19:41 -04:00
Matthew Chen
0125535d4d
Pull out SignalCoreKit.
2018-10-01 09:06:40 -04:00
Matthew Chen
ebae75af00
Revert 'new sort id'.
2018-09-27 19:40:51 -04:00
Michael Kirk
6bfd0f29ed
mark self-sent messages as read as soon as it was created
2018-09-26 09:52:34 -06:00
Michael Kirk
ab55e85304
step 1: timestampForSorting audit, change signature
...
No change in functionality in this commit, I just broke the signature to have a
systematic audit of the callsites. Added TODO's with the plan for each call.
2018-09-26 09:52:33 -06:00
Michael Kirk
df61316495
minimize diff senderTimestamp -> timestamp
2018-09-26 09:52:33 -06:00
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.
2018-09-26 09:52:33 -06:00
Matthew Chen
87836f506b
Move more singletons to SSKEnvironment.
2018-09-21 09:06:48 -04:00
Matthew Chen
edcedd2845
Remove selfRecipient method.
2018-09-19 15:11:26 -04:00
Matthew Chen
e1db60c1c0
Rework creation of singletons.
2018-09-19 15:11:26 -04:00
Michael Kirk
1853e79c3e
Don't retry send until SPK has been rotated
...
// FREEBIE
2018-09-17 10:10:32 -06:00
Michael Kirk
3df0e72eda
Extract SPK rotation and CreatePreKey operations
2018-09-17 10:10:32 -06:00
Matthew Chen
9b94580dae
Update assertions.
...
* Streamline precompiled headers.
* Remove obsolete assertions in Constraints.h.
2018-09-14 14:30:06 -04:00
Matthew Chen
e15b8ebe16
Add names to operation queues.
2018-09-14 14:24:37 -04:00
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
2018-09-07 10:00:48 -06:00
Matthew Chen
fac7f6932f
Rename TSGroupMetaMessage enum values.
2018-09-04 09:30:01 -04:00
Matthew Chen
f473f60111
Apply OWS log functions in Objective-C.
2018-08-27 12:58:52 -04:00
Matthew Chen
cc5a480baa
Apply OWS log functions in Objective-C.
2018-08-27 12:58:52 -04:00
Matthew Chen
3a50377902
Apply OWS log functions in Objective-C.
2018-08-27 12:58:52 -04:00
Matthew Chen
713606271c
Rename fail macros in Obj-C.
2018-08-27 10:29:51 -04:00
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
2018-08-09 15:30:19 -06:00
Matthew Chen
ab31e5a07f
Code generate Swift wrappers for protocol buffers.
2018-08-03 14:05:20 -04:00
Matthew Chen
b0a516c36f
Refine recipient device updates.
2018-07-26 09:22:40 -04:00
Matthew Chen
0518b335d8
Refine recipient device updates.
2018-07-26 09:22:40 -04:00
Matthew Chen
baed561033
Mark message sent to self as read.
2018-07-23 13:27:10 -04:00
Matthew Chen
88be3a5755
Respond to CR.
2018-07-23 13:25:21 -04:00
Matthew Chen
819c2b1ceb
Remove Twisted Oak.
2018-07-23 13:24:33 -04:00
Michael Kirk
b7288b2565
Move contact intersection into batched operation
...
// FREEBIE
2018-07-19 13:40:30 -06:00
Matthew Chen
094cf3691d
Respond to CR.
2018-07-18 13:57:22 -04:00
Matthew Chen
cc91cb3dbf
Respond to CR.
2018-07-18 13:57:22 -04:00
Matthew Chen
ace07ac62a
Respond to CR.
2018-07-18 13:57:22 -04:00
Matthew Chen
77884913d8
Streamline SignalRecipient.
2018-07-18 13:57:22 -04:00
Matthew Chen
b6489c6948
Streamline SignalRecipient.
2018-07-18 13:57:22 -04:00
Matthew Chen
05a4222b2d
Streamline SignalRecipient.
2018-07-18 13:57:22 -04:00
Matthew Chen
ef3933bfaa
Streamline SignalRecipient.
2018-07-18 13:57:21 -04:00
Matthew Chen
9618fc16c5
Streamline SignalRecipient.
2018-07-18 13:57:21 -04:00
Matthew Chen
ebe87348a2
Streamline SignalRecipient.
2018-07-18 13:57:21 -04:00
Matthew Chen
d14f764b50
Streamline SignalRecipient.
2018-07-18 13:57:21 -04:00
Matthew Chen
3f4cd15f5b
Use sending queue in websocket send failover to REST.
2018-07-05 09:57:28 -04:00
Michael Kirk
1e8c7d63b8
clarify sync logging
2018-07-03 15:39:31 -06:00
Michael Kirk
8576de0618
Fix: No contacts/groups after initial device link
...
The server caches your device list on the websocket, so sending on the
websocket to a just-linked device will always fail. We could close/open the
websocket, but that might be disruptive in it's own way. Instead we'll closely
mirror the Android approach, where WebSocket sends are attempted only one time,
and failure is handled by falling back to the original REST approach.
So note: we don't do any special handling of failures on the websocket
(409/410). We simply retry it with REST which will handle the 409/410/etc.
Consequently, we don't want to decrement our retry count for websocket sends.
2018-07-03 15:31:25 -06:00
Michael Kirk
c48f2404a3
Fix overzealous assert
...
// FREEBIE
2018-06-15 10:28:07 -04:00
Matthew Chen
f9f931fc2d
Fix assert around failing sync message sends.
2018-06-14 15:07:09 -04:00
Matthew Chen
61ec865b6d
Respond to CR.
2018-05-30 15:41:01 -04:00
Matthew Chen
4342b04bd3
Include response data in 'request over websocket' failures.
2018-05-30 15:37:59 -04:00
Matthew Chen
4d498563e7
Unify the socket manager's 'can send requests' logic.
2018-05-30 12:48:32 -04:00
Matthew Chen
21b54bee4f
Fix breakage from recents changes in share extension.
2018-05-29 10:45:58 -04:00
Matthew Chen
8a76e778b5
Use websocket for sends.
2018-05-22 14:24:04 -04:00
Matthew Chen
5f1682deab
Use websocket for sends.
2018-05-22 14:24:04 -04:00
Matthew Chen
5c7b98e5c4
Improve handling of unregistered users.
2018-05-14 16:45:06 -04:00
Matthew Chen
8489c55fde
Mark send-to-self as sent.
2018-05-14 14:41:45 -04:00
Matthew Chen
9c2f619132
Don't echo messages sent to self 1:1.
2018-05-14 10:56:47 -04:00
Michael Kirk
77fc5571fb
Implement avatar sending
...
// FREEBIE
2018-05-07 12:08:41 -04:00
Michael Kirk
48b4791b13
Download avatar attachment stream
...
// FREEBIE
2018-05-07 12:08:41 -04:00
Matthew Chen
e7eaa7945d
Handle completely skipped message sends.
2018-05-07 09:58:40 -04:00
Matthew Chen
0316a98eb8
Undo renaming of contactShare property of TSMessage.
2018-05-01 11:26:01 -04:00
Matthew Chen
0d8cfc5403
Rename contact share class to contact.
2018-05-01 11:03:25 -04:00
Matthew Chen
4b8a2fa8a3
Sketch out "contact share" model.
2018-05-01 11:03:25 -04:00
Matthew Chen
bb96454070
More outgoing message fixes.
2018-04-30 11:00:57 -04:00
Matthew Chen
752bca313c
Fix glitches in outgoing messages.
2018-04-27 16:37:09 -04:00
Matthew Chen
f16e9a2920
Fix issues in outgoing messages status changes.
2018-04-26 14:17:41 -04:00
Matthew Chen
5c6f9ec088
Fix issues in outgoing messages status changes.
2018-04-26 14:12:34 -04:00
Matthew Chen
4de4a4b229
Respond to CR.
2018-04-25 10:49:19 -04:00
Matthew Chen
40ac0daa9a
Respond to CR.
2018-04-25 10:49:19 -04:00
Matthew Chen
9e6062f21c
Rework outgoing message state.
2018-04-25 10:49:19 -04:00
Matthew Chen
9275c67818
Rework outgoing message state.
2018-04-25 10:49:19 -04:00
Michael Kirk
754549adf1
Start timer for expiring message based on when read receipt was sent
...
// FREEBIE
2018-04-18 15:32:01 -04:00
Michael Kirk
dfb2a034af
Use explicit transactions.
...
- Start expiration within scope of existing transaction when we're
already in a transaction
// FREEBIE
2018-04-18 15:32:01 -04:00
Matthew Chen
829cfd0428
Reduce oversize text size.
2018-04-11 17:57:53 -04:00
Michael Kirk
02efbd3069
Fix blip where thumbnail is initially missing from outgoing message
...
// FREEBIE
2018-04-09 12:47:57 -04:00
Michael Kirk
4399967e99
Comment cleanup, remove unnecessary includes
...
// FREEBIE
2018-04-09 12:47:56 -04:00
Michael Kirk
fa2e1ba89b
Fetch thumbnail when not available locally
...
// FREEBIE
2018-04-09 12:47:56 -04:00
Michael Kirk
42f454b075
Generate thumbnail when quoted attachment is available locally
...
// FREEBIE
2018-04-09 12:47:56 -04:00
Michael Kirk
cb5d3d4f85
Use QuotedReplyModel to access attachment data
...
This view model loads the attachment when it's build.
// FREEBIE
2018-04-09 12:47:56 -04:00
Michael Kirk
253435b27f
extract QuotedReplyDraft model
2018-04-09 12:47:56 -04:00
Michael Kirk
0b8b3b4f16
WIP: towards avatar attachment streams
...
// FREEBIE
2018-04-09 12:47:56 -04:00
Michael Kirk
53af41fcc6
Reusable UploadOperation based on extracted OWSOperation
...
// FREEBIE
2018-04-09 12:47:56 -04:00
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.
2018-04-02 16:17:46 -04:00
Matthew Chen
b067d81017
Don't log message send errors.
2018-03-22 15:47:57 -04:00
Matthew Chen
d6f4db1523
Rename TSStorageManager to OWSPrimaryStorage.
2018-03-06 17:12:13 -03:00
Matthew Chen
2395dbf66b
Fix redundant sync sends.
2018-03-02 15:05:14 -05:00
Matthew Chen
c2f092018c
Elaborate request factory.
2018-03-02 15:05:14 -05:00
Matthew Chen
004479a2ce
Elaborate request factory.
2018-03-02 15:05:14 -05:00
Matthew Chen
b9458fffef
Respond to CR.
2018-03-02 10:53:22 -05:00
Matthew Chen
dcf7f550ae
Fix redundant sync sends.
2018-03-01 23:37:03 -05:00
Matthew Chen
b07f466e08
Fix redundant sync sends.
2018-03-01 23:34:31 -05:00
Matthew Chen
8576da791c
Improve handling of attachments with captions.
2018-02-22 16:03:00 -05:00
Matthew Chen
96b5f22799
Improve handling of attachments with captions.
2018-02-22 16:03:00 -05:00
Matthew Chen
81522e4a23
Respond to CR.
2018-02-14 10:38:08 -05:00
Matthew Chen
01496b2db8
Avoid deadlocks in message sender.
2018-02-14 10:38:08 -05:00
Michael Kirk
ea12ed4c23
Fix dynamic type check which was too restrictive
...
// FREEBIE
2018-02-13 15:54:23 -08:00
Matthew Chen
6b357f9445
Respond to CR.
2018-02-09 10:31:29 -05:00
Matthew Chen
43765ef3b5
Respond to CR.
2018-02-09 10:31:29 -05:00
Matthew Chen
51cec20c50
Clean up ahead of PR.
2018-02-09 10:31:29 -05:00
Matthew Chen
074046b98e
Add protocol context to protocol kit.
2018-02-09 10:31:29 -05:00
Matthew Chen
71782e0369
Add protocol context to protocol kit.
2018-02-09 10:31:29 -05:00
Matthew Chen
122ef91e57
Add protocol context to protocol kit.
2018-02-09 10:31:29 -05:00
Michael Kirk
4f8db63fb3
Ensure keyspec is generated before DB is created
...
// FREEBIE
2018-01-31 18:05:44 -08:00
Matthew Chen
992e926142
Unpack oversize text messages if possible.
2018-01-25 13:26:10 -05:00
Matthew Chen
0cc7f3e00e
Clean up ahead of PR.
2018-01-25 11:00:38 -05:00
Matthew Chen
d81d85c386
Respond to CR.
2018-01-12 10:36:09 -05:00
sdkjfhsdkjhfsdlkjhfsdf
6e2d9c8141
identity change vs. share extension
...
// FREEBIE
2018-01-02 11:24:36 -06:00
Matthew Chen
f9ce34f553
Improve background task logic.
2017-12-19 11:05:17 -05:00
Matthew Chen
df8ded90b8
Use background task during attachment downloads.
2017-12-19 11:05:17 -05:00
Michael Kirk
3eceb86371
Show alert if we fail to build the attachment
...
// FREEBIE
2017-12-07 10:14:30 -05:00
Michael Kirk
a58f1f385c
Share a photo from photos app
...
Shows the conversation picker, and sends the attachment to that
conversation.
There's still a lot TODO
-[ ] resolve JSQ dependency
-[ ] properly wait for app to load
-[ ] dismiss share extension after send is complete
-[ ] support non jpeg file types
-[ ] Fix device sleep manager
// FREEBIE
2017-12-07 10:13:06 -05:00
Michael Kirk
0138777343
New @available syntax avoids compiler warnings
...
// FREEBIE
2017-12-04 12:50:28 -05:00
Matthew Chen
d17ccadea2
Use AppContext to resolve share extension FIXMEs.
2017-11-30 10:12:32 -05:00
Matthew Chen
e712e8bfc4
Use AppContext to resolve share extension FIXMEs.
2017-11-30 10:12:24 -05:00
Michael Kirk
336aa13520
Avoid overzealous assert
...
// FREEBIE
2017-11-29 14:57:04 -08:00
Michael Kirk
e9796600c6
disable some asserts for now
...
// FREEBIE
2017-11-29 13:58:27 -08:00