Commit Graph

48 Commits

Author SHA1 Message Date
Max Radermacher
e737971864
Handle 429s & retry-after when sending messages 2025-09-10 16:28:48 -05:00
Max Radermacher
0ee384908e
NO MORE REST 2025-08-27 18:09:16 -05:00
Max Radermacher
3e22dd19c7 Replace two comments with “use web socket” checks 2025-07-30 11:25:42 -05:00
Max Radermacher
a79d45e371 Remove unused variable 2025-07-23 12:29:17 -05:00
Max Radermacher
06eda4b70b
Retry message sends when opening a socket 2025-07-22 16:48:02 -05:00
Max Radermacher
2dbe56cd0e
Wait until all pending messages are sent 2025-06-13 20:44:28 -05:00
Max Radermacher
4dc6c9ff33
Update default value for maxAverageBackoff 2025-04-30 11:58:50 -05:00
Sasha Weiss
bb048e8b59
One transaction type to rule them all and in the darkness bind them 2025-03-13 21:43:35 -07:00
Sasha Weiss
a94efa2d32
Clean up SDSAnyWriteTransaction finalization blocks 2025-03-13 21:37:17 -07:00
Max Radermacher
2087f4b6a0
Update to Xcode 16.2 2025-01-08 18:48:03 -06:00
Max Radermacher
77a9296f60
Add & use CompletionSerializer 2024-12-19 13:11:00 -06:00
Max Radermacher
e2dd33d53b
Asyncify MessageSenderJobQueue 2024-12-18 12:32:40 -06:00
Adam Sharp
68bee00b8b Audit OWSOperation for sendability 2024-11-15 19:04:36 -05:00
Max Radermacher
33e8ebf9f7
Remove exclusiveProcessIdentifier almost everywhere 2024-10-28 21:40:25 -05:00
Max Radermacher
d086376fcf
Improve MessageSenderJobQueue fetching 2024-10-28 21:25:40 -05:00
Max Radermacher
4281cc9a5b
Clean up MessageSenderJobQueue 2024-10-25 13:24:11 -05:00
Max Radermacher
cd99181746
Squash JobQueue and MessageSenderJobQueue 2024-10-25 13:19:48 -05:00
Ehren Kret
de32c7799d remove NSObject and Dependencies extension computed vars for SignalServiceKit 2024-10-11 23:12:59 -05:00
Harry Sanabria
d43b2846b0 Pass AppReadiness to JobQueue methods 2024-09-27 16:30:12 -07:00
Harry Sanabria
044f277a28 Pass AppReadiness instance to a ton of classes that need to retain it as an instance var 2024-09-27 15:03:52 -07:00
Harry
fd0a34909e
Add non-global AppReadiness protocol + impl 2024-09-27 12:36:15 -07:00
Ehren Kret
bfbeba9435 migrate OWSOperation from objc to swift 2024-09-10 12:25:57 -05:00
Ehren Kret
cb27389cef enable swiftlint mark rule 2024-08-30 22:05:59 -05:00
Sasha Weiss
a1f7e4c1b1
Migrate TSOutgoingMessageRecipientState off of Mantle 2024-08-23 16:17:26 -07:00
Max Radermacher
17b1ccfaf6
Handle errors when enqueuing message sends jobs 2024-07-01 12:02:11 -05:00
Harry
6acaf28187
Clean up PreparedOutgoingMessage 2024-04-04 12:55:20 -07:00
Harry
3915fd14db
Use PreparedOutgoingMessage in MessageSender 2024-04-03 13:26:49 -07:00
Harry
ef97f3d8f1
Pre-upload contact syncs before sending 2024-04-03 13:26:05 -07:00
Harry
0e24aa35ff
Add edit message as an explicit type in the new message send preparers 2024-03-29 11:24:18 -07:00
Harry
71f06fc3c2
Remove OutgoingMessagePreparer from MessageSendJobQueue 2024-03-28 10:38:12 -07:00
Harry
038a5f0ac0
Accept PreparedOutgoingMessage in MessageSenderQueue 2024-03-28 09:50:02 -07:00
Jordan Rose
2727a70b90 Make AtomicValue's lock-sharing explicit
Also:
- Remove AtomicUInt's @objc, it's no longer used from ObjC
- Remove Codable conformances, they would implicitly use shared locks
  and weren't used in practice
2024-03-27 10:57:32 -07:00
Max Radermacher
517de6a9bd
Clean up some debug/verbose lines 2024-03-26 16:37:23 -05:00
Harry
9aa258b58c
Remove unneeded objc declarations on methods 2024-03-26 13:28:09 -07:00
Harry
8090e47a73
Use an explicit enum on MessageSenderJobRecord 2024-03-26 13:26:47 -07:00
Harry
768535363c
Require transaction in TSMessage.hasRenderableContent 2024-02-27 14:21:41 -08:00
Max Radermacher
b095509975
Drop obsolete removeMessageAfterSending support 2024-01-04 14:37:54 -06:00
Max Radermacher
6d16de2522
Change how job queue labels are specified 2023-12-11 13:39:48 -06:00
Max Radermacher
f848a6373f
Swiftify the rest of MessageSender 2023-11-27 11:29:23 -06:00
Max Radermacher
b6fec5c1db
Remove a bunch of debug Bench events 2023-11-21 11:12:18 -06:00
Max Radermacher
1323ccbe7a
Make JobQueue.isSetup’s container immutable 2023-11-15 18:23:55 -06:00
Sasha Weiss
7f41ecaa8b
Support SEPA bank transfer donations 2023-11-06 13:49:40 -08:00
Max Radermacher
ebc5e15b9e Improve code to fetch thread for a given message 2023-06-23 12:48:30 -05:00
Sasha Weiss
a6fbbefa9b
Remove PniIdentitySyncMessage 2023-05-10 14:35:48 -07:00
Sasha Weiss
c9fbc9a9ee
Migrate SSKJobRecord and subclasses to SDSCodableModel using factory init 2023-04-13 10:57:48 -07:00
Max Radermacher
898fd2c4d5
Clean up queue names 2023-02-27 14:16:09 -08:00
Max Radermacher
0598c3f9b9
Clean up JobRecordFinder 2023-02-22 13:54:56 -08:00
Sasha Weiss
242dfd2bce
Add all JobQueues to environment, via a wrapper
Currently, only some `JobQueue` types are initialized during startup
(as part of `Environment`, or `SSKEnvironment`). Initialization is
required, however, for a `JobQueue` type to restart any latent jobs.
That means that, for example, a durable `SendGiftBadge` job that failed,
and should be reattempted at a later date, will not in fact be restarted
since no `SendGiftBadgeJobQueue` will be initialized at launch.

This change adds `SSKJobQueues` and `SignalMessagingJobQueues` types,
which are intended to be singletons that hold within them a singleton
job queue for each of our `JobQueue` types. These wrappers are added to
`SSKEnvironment` and `Environment` (from SignalMessaging) respectively,
ensuring that all the `JobQueue`s they contain are initialized as part
of environment setup. The wrappers also avoid the need to add a new
property to the (already large) environment types for each new future
`JobQueue`.

This change also updates all existing call sites that accessed a
`JobQueue` from an environment object, to direct that access now through
the wrapper type.
2022-11-09 14:08:44 -06:00