Commit Graph

500 Commits

Author SHA1 Message Date
Matthew Chen
235eb5d119 Payments changes in SignalMessaging. 2021-04-06 13:57:07 -03:00
Nora Trapp
0ef7fc24e6 Revert database recovery attempts, just flag when we detect corruption and prevent app launch. 2021-04-01 12:50:41 -07:00
Nora Trapp
4e535fa7ef Make database recovery async 2021-04-01 12:50:41 -07:00
Matthew Chen
86b8eb08b8 Remove YapDatabase.
Apply asset from design.

Fix rebase breakage.
2021-03-25 11:41:16 -03:00
Matthew Chen
0ff23b8f21 Clean up app readiness. 2021-03-25 10:52:31 -03:00
Matthew Chen
b4aa2aa1c3 Clean up app readiness. 2021-03-25 09:36:16 -03:00
Matthew Chen
d0cbf8cfd0 Rework dependency access. 2021-03-25 09:24:27 -03:00
Matthew Chen
af1e1d0eb3 Rework dependency access. 2021-03-25 09:24:27 -03:00
Jordan Rose
1a55d29922 Prefix AxolotlKit session model classes with "Legacy"
PreKeyRecord, PreKeyBundle, and SignedPreKeyBundle are still used
outside of serialized sessions, so it doesn't make sense to mark them
"Legacy" just yet. Additionally, the keyed archiver overrides have to
be set up before any instances are unarchived, which is trickier for
these remaining model types.
2021-03-22 16:19:31 -07:00
Jordan Rose
68a27a76e2 Move AxolotlKit model classes into SSK and remove the dependency
We still need the AxolotlKit model classes to migrate old sessions,
but we don't need any of the actual protocol support. This also
means we can drop HKDFKit.

Additionally, we do still use some utilities from AxolotlKit:

- AxolotlExceptions.h: NSException names, should eventually be
  replaced by NSErrors everywhere

- NSData+keyVersionByte.h: prepend/remove public key type byte,
  should eventually be replaced by strong types (ECPublicKey)

- SPKProtocolContext.h: defines the SPKProtocol{Read,Write}Context
  marker protocols, should be replaced by direct use of
  SDSAny{Read,Write}Transaction
2021-03-22 16:17:47 -07:00
Nora Trapp
ec1a1bb9ae Simplify MessageProcessing promises 2021-02-23 10:45:50 -08:00
Nora Trapp
3669066e42 Begone OWSBatchMessageProcessor 2021-02-23 10:45:50 -08:00
Nora Trapp
91d2953843 Begone OWSMessageReceiver 2021-02-23 10:45:50 -08:00
Nora Trapp
4b2be0b8fa Get rid of obsolte SSKMessageDecryptJobQueue 2021-02-23 10:45:50 -08:00
Nora Trapp
3991802fa8 Add appropriate restrictions to when message processing can run. 2021-02-23 10:45:50 -08:00
Nora Trapp
16708b9dd7 Batch message decryption and processing 2021-02-23 10:45:50 -08:00
Matthew Chen
cce7a14e0c Rework app readiness. 2021-02-04 09:55:39 -03:00
Matthew Chen
645bd76bd5 Rework app readiness. 2021-02-04 09:55:39 -03:00
Jordan Rose
05725078f1 SSK: Migrate SSKSessionStore to Swift
This is a no-change migration /except/ that I've dropped entry points
that are unused in the app or tests.
2021-01-28 12:03:50 -08:00
Jordan Rose
f8c2b764a2 Update for the removal of SMKEnvironment 2021-01-28 12:03:50 -08:00
Matthew Chen
d82b6f8250 Create a new GRDB storage adapter after grdb schema migrations. 2021-01-27 09:45:12 -03:00
Matthew Chen
584a638993 Create a new GRDB storage adapter after grdb schema migrations. 2021-01-27 09:45:12 -03:00
Matthew Chen
025fc61cd7 Port attachment downloads logic to Swift. 2021-01-21 20:40:24 -03:00
Nora Trapp
08baf57151 Allow sharing to multiple threads 2021-01-12 15:33:54 -08:00
Michelle Linington
f9067bac8a Respect server received timestamp in group call message 2020-11-19 16:04:22 -08:00
Michelle Linington
daa28d413d Handle incoming GroupCallUpdate messages
This builds out infrastructure to fetch updated PeekInfo structs from
RingRTC on a GroupCallUpdate. There are still a bunch of TODOs to
resolve once RingRTC adds PeekInfo.
2020-11-19 16:02:22 -08:00
Nora Trapp
723ea9c95f Allow RingRTC to send/receive opaque call messages 2020-11-05 12:25:49 -08:00
Nora Trapp
46351cf16f Add notification when user joins / leaves call 2020-11-05 12:25:49 -08:00
Matthew Chen
fc30b0084b Enforce uniqueness when migrating SignalRecipients from YDB. 2020-10-02 09:47:42 -03:00
Christopher Kobusch
4715240cc1 Added custom notification sounds
* user can add custom notification sounds from Files app (aiff, wav, or caf files)
* former OWSSound enum is now named OWSStandardSound, OWSSound turned into an alias for NSUInteger
* custom sounds get IDs based on the hash of the file name
2020-09-23 14:54:23 -07:00
Matthew Chen
686aee752c Rename OWSMessageSender -> MessageSender. 2020-09-17 21:35:35 -03:00
Matthew Chen
819321e4ef Rename singleton accessors. 2020-09-17 21:11:09 -03:00
Matthew Chen
c017e76aab Rename singleton accessors. 2020-09-17 21:11:09 -03:00
Matthew Chen
ad6bda8a44 Rename singleton accessors. 2020-09-17 21:11:07 -03:00
Matthew Chen
9aa17e833b Remote deprecation. 2020-09-02 16:51:58 -03:00
Nora Trapp
4b3908077b Migration to add serverDeliveryTimestamp 2020-08-20 16:48:54 -07:00
Nora Trapp
5457c37ba8 Handle x-signal-timestamp header 2020-08-20 16:48:54 -07:00
Matthew Chen
7c047d5798 Minor cleanup. 2020-08-19 10:51:57 -03:00
Nora Trapp
7137cf75b5 Don't use CallKit for video calls received while the app is active 2020-08-17 15:41:10 -07:00
Matthew Chen
73c8839061 Convert ContactsViewHelper to singleton. 2020-08-11 17:51:40 -03:00
Michelle Linington
a660a81d0f IOS-668: Reorganize how ContactsUpdater interacts with CDS operations
- Removes ContactsUpdater singleton. It wasn't really tracking much
  state anyway
- Introduces ContactDiscoveryTask. This creates a
  ContactDiscoveryOperation (modern or legacy) and updates the
  SignalRecipients database on completion. Returns a promise.
- Begin migrating away from operation queues

PromiseKit is weird about priority propogation, so this shouldn't be
used yet. Since all then closures are asynced, priorities don't
propogate down to underlying queues. This means the a
ContactDiscoveryTask on the main queue will not boost the priority on
the ModernContactDiscoverOperation's owned operation queue
2020-08-06 12:55:32 -07:00
Matthew Chen
11b2c14ccc Respond to CR. 2020-08-03 14:38:18 -03:00
Matthew Chen
e6e4709487 Merge branch 'release/3.13.3_' 2020-07-31 14:55:24 -03:00
Matthew Chen
39b35b8a6d Do not log unsatisfiable layout constraints.
Thanks Shaun Mirani of ISE for the bug report.
2020-07-31 14:07:04 -03:00
Matthew Chen
01296a1ade Tweak ydb-to-grdb migration. 2020-07-30 13:51:17 -03:00
Michelle Linington
e3e903a8ad IOS-631: Suppress message processing pipeline while we have a pending backfill operation
Creates a new root singleton: OWSMessagePipelineSupervisor

As of right now, this singleton has two responsibilities:
- Track all message processing pipeline stages that have registered
  themselves
- Post processing suspension updates to interested stages

Four classes will now register themselves as pipeline stages:
- OWSMessageContentQueue
- YAPDBMessageDecryptQueue
- IncomingGroupsV2MessageQueue
- SSKMessageDecryptJobQueue

At initialization, OWSMessagePipelineSupervisor will take out a pipeline
suspension while it waits for a UUIDBackfillTask to complete. Other
interested objects are also able to suspend the message processing
pipeline by invoking suspendMessageProcessing(for:) on the supervisor
(though, currently this is not used by anything except tests)

This also adds some supporting improvements to UnfairLock. Now,
UnfairLock closures will return the value returned from its critical
section closure.
2020-07-22 21:10:27 -07:00
Matthew Chen
f070a0e479 Clean up naming around profile fetches. 2020-07-08 11:10:37 -03:00
Matthew Chen
fc82a11ccf Clean up naming around profile fetches. 2020-07-08 11:04:01 -03:00
Matthew Chen
c49a977d3e Merge branch 'release/3.10.3' into release/3.11.0 2020-06-07 15:01:54 -03:00
Nora Trapp
ad64727ecc Evacuate early message cache after memory warning 2020-06-07 10:05:07 -07:00