Commit Graph

452 Commits

Author SHA1 Message Date
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
Matthew Chen
07e0cf36ec Assert that writes occur on the main thread. 2020-06-07 11:45:47 -03:00
Matthew Chen
ba801f05ce Label the "slow write transactions" logging with the source of the transaction. 2020-06-07 10:37:55 -03:00
Matthew Chen
28ff9ac453 Rework model read caches. 2020-06-06 17:37:30 -03:00
Matthew Chen
6b4f192b1b Remove usage of retainUntilComplete. 2020-05-22 09:51:12 -03:00
Jim Gustafson
6806bd4d9f Adjust protocol definitions
Added a new field destinationDeviceId to the protocol buffer for
CallMessage.

Added supporting logic of setting it when sending.

Added a catch when receiving: If the field is defined, then use it
and check the local deviceId and if not a match, drop the message
since it is not for this device.

Changed naming to be more explicit.

Removed the FeatureLevel definition from the protocol since proto enums
won't be backwards compatible if updated. Instead, adding boolean flags
instead. For this release, the feature supported is multi-ring, so a
multiRing flag is defined instead of a feature level.

The supportsMultiRing value is persisted through to RingRTC. There is
no more need to translate between the enumerations anymore.

Added prefix naming for proto enums since the namespace is shared.

Removed defaults since they are already the desired default values.

When sending messages, using a nullable unsigned integer type instead
of a flag and value pair. This simplifies the function calls, although
some NSNumber extensions were required on the Swift side.
2020-05-08 15:50:49 -07:00
Jim Gustafson
60e619562e Update protocol buffer and behavior for multi-ring
Add type for Hangup messages, to reflect either normal hangup or hangup
because the call was accepted elsewhere.

Add type to Offer messages, which is used to indicate the type of call
that is being originated, either an audio call (the same as all legacy
calls) or a video call.

Add level for all messages, which is used to filter feature support,
either legacy or multi-ring behavior.

If the feature level for the Call Message is detected as legacy, AND if
the device is NOT the primary, drop the incoming Call Message.

Always mark outgoing Call Messages as multi-ring capable.

Adjust RingRTC interfaces to support:
- Call Media Type (default is always audioCall for now)
- The Hangup Type, which can be either normal (i.e. regular hangup) or
  accepted, replacing the removed Accepted message.

Hangups can now be sent out as a legacy messages or new messages. The
format is the same so that legacy clients will ignore 'new' hangups
sent to squelch ringing if they were actually the 'winner'.

Passing information for receivedOffer and receivedAnswer APIs to
indicate if the sender is a legacy sender or not. Legacy here means
someone using the protocol before the FeatureLevel was added to the
prototol for Call Messages.

Passing information to receivedOffer to indicate if the local device
is primary or not. As a result, if the device is receiving the offer
from a legacy device and is non-primary, the offer shall be ignored.
In this case, a new event is fired:

endedIgnoreCallsFromNonMultiringCallers

Co-authored-by: Michael Kirk <michael@signal.org>
2020-05-08 15:50:49 -07:00
Peter Thatcher
91dd820b3f Pass remote device ID to RingRTC 2020-05-08 15:50:49 -07:00
Matthew Chen
e84168fa68 Merge remote-tracking branch 'private/release/3.8.2' 2020-05-05 13:38:30 -03:00
Matthew Chen
8755b371c1 Try to reduce 0x8badf00d crashes by performing "app did become ready" block one-by-one.; Reduce overall frequency of checkpoints. 2020-05-04 22:02:23 -03:00
Nora Trapp
f0d7a9cb9c Add early message handling for delivery receipts, reactions, and delete for everyone 2020-04-16 19:44:45 -07:00
Matthew Chen
aa53773e84 Merge branch 'release/3.8.0' 2020-04-15 17:41:19 -03:00
Matthew Chen
a0eb61535a Bulk UUID lookup. 2020-04-15 17:11:29 -03:00
Matthew Chen
c38929dae5 Avoid rate limits while doing profile fetches. 2020-04-15 17:03:33 -03:00
Matthew Chen
a4d802a2a2 Avoid rate limits while doing profile fetches. 2020-04-15 17:03:33 -03:00
Matthew Chen
7246c613d5 Fix more build warnings. 2020-04-10 13:17:08 -03:00
Matthew Chen
988b11cf2a Remove YDB from views. 2020-04-07 13:51:02 -03:00
Matthew Chen
4448982c9d Make read receipts for linked devices durable. 2020-04-03 16:13:04 -03:00
Nora Trapp
6a39e3d174 Sync archived status with storage service 2020-03-24 17:11:02 -07:00
Matthew Chen
7c4c9be8b4 Merge remote-tracking branch 'private/release/3.6.0' 2020-03-03 11:40:53 -03:00
Nora Trapp
79a44ad084 TSCall timestamp now reflects when a call was initiated 2020-03-02 10:59:09 -08:00
Matthew Chen
20aeb8df44 Merge remote-tracking branch 'private/release/3.6.0' 2020-03-02 13:39:20 -03:00
Jim Gustafson
6c49070971 Send array of Ice candidates through CallService
This commit will adjust how received Ice Candidates are handled.
Instead of iterating the candidate array on the protocol side, the
array will be passed to the Call Service and hence passed to RingRTC.
2020-02-28 09:34:50 -07:00
Matthew Chen
caa101beab Merge remote-tracking branch 'private/release/3.5.0' into release/3.6.0 2020-02-27 13:52:43 -03:00
Michael Kirk
32ec7fa116 fix missing profile avatar 2020-02-26 08:26:36 -07:00
Michael Kirk
f198d9037d Merge tag '3.5.0.5' 2020-02-19 19:26:05 -07:00
Michael Kirk
643b64d8a5 add asserts, decompose method, unify translation comment, remove redundant groupThread check 2020-02-17 16:23:24 -07:00
Nora Trapp
e86410af4c Track pending read receipts even if we've read the message on another device. 2020-02-17 16:11:05 -07:00
Michael Kirk
2bed5d0cc3 persist pending read receipts 2020-02-16 13:13:12 -07:00
Michael Kirk
050484d8d5 loop incoming ringtone for incoming non-callkit call 2020-02-13 12:51:56 -07:00
Jim Gustafson
5e4c315e4d Call Manager Integration (RingRTC v1.0.1) 2020-02-13 12:50:00 -07:00
Michael Kirk
b27bcf7fef remove preserveYdb feature flag 2020-02-12 15:19:55 -07:00
Michael Kirk
07ccc40cd6 extract DebugFlags from FeatureFlags 2020-02-12 15:19:55 -07:00
Matthew Chen
644d341a05 Respond to CR. 2020-02-11 11:41:32 -03:00
Matthew Chen
4903d313bd Add group v2 capability and improve handling of network errors. 2020-02-10 14:24:09 -03:00
Nora Trapp
1cf95c620b Merge branch 'release/3.4.0' 2020-02-05 12:27:48 -08:00
Michael Kirk
4c1afa18a6 secondary devices update capabilities w/ devices endpoint 2020-02-05 10:38:43 -07:00
Michael Kirk
17a807093c remote config 2020-01-30 20:10:35 -08:00
Matthew Chen
8abc3219c0 Rework v2 group updates. 2020-01-29 13:42:27 -03:00
Matthew Chen
91ee0832f5 Rework v2 group updates. 2020-01-29 13:42:27 -03:00
Matthew Chen
bcfba85356 Add message processing class.
* Modify message processing to allow observation of websocket queue being drained.
* Extend MessageProcessing to allow observation of REST message fetching and "all message fetching and processing".
2020-01-27 10:42:03 -03:00
Michael Kirk
25a3635f2d remote config 2020-01-23 11:40:04 -07:00
Matthew Chen
db0adf077a Respond to CR. 2020-01-23 12:00:42 -03:00
Matthew Chen
892ce5c135 Rework message processing to handle groups v2. 2020-01-17 17:34:37 -03:00
Matthew Chen
72f912dce3 Versioned profile changes, etc. 2020-01-08 13:54:54 -03:00
Matthew Chen
29150102cb Revert group and profile changes. 2019-12-11 20:41:54 -08:00
Matthew Chen
3d88f68cfb Rework new group new creation & group updates. 2019-12-04 15:40:54 -03:00
Matthew Chen
1a6f459032 Enqueue profile updates. 2019-12-03 10:53:30 -03:00
Michael Kirk
708558bab8 Merge tag '3.0.2.1' 2019-11-27 11:34:19 -06:00