Commit Graph

135 Commits

Author SHA1 Message Date
Matthew Chen
d0cbf8cfd0 Rework dependency access. 2021-03-25 09:24:27 -03:00
Matthew Chen
1d9a4dac27 Update profile fetches to support bio + bioEmoji. 2021-01-14 22:25:44 -03:00
Matthew Chen
111338b59d Rewrite conversation view. 2020-12-10 12:44:13 -03:00
Michelle Linington
f9067bac8a Respect server received timestamp in group call message 2020-11-19 16:04:22 -08:00
Michelle Linington
485e12e6c4 Stable ordering of call participants 2020-11-19 16:04:21 -08:00
Michelle Linington
24083156ec Run precommit script 2020-11-19 16:02:22 -08:00
Michelle Linington
89c616c3e1 Minor cleanup 2020-11-19 16:02:22 -08:00
Michelle Linington
f4d60ff89c Notify the user when a group call begins 2020-11-19 16:02: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
1bc6da36fe PR Feedback 2020-11-05 12:25:49 -08:00
Nora Trapp
723ea9c95f Allow RingRTC to send/receive opaque call messages 2020-11-05 12:25:49 -08:00
Matthew Chen
f272471db5 Re-upload protected profiled names. 2020-10-23 14:01:44 -03:00
Nora Trapp
4b3908077b Migration to add serverDeliveryTimestamp 2020-08-20 16:48:54 -07:00
Nora Trapp
fc2d80335f codegen 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
07bbe9550c Don't load pre-existing profile avatars during profile fetches. 2020-08-18 02:18:54 -03:00
Matthew Chen
667250e118 Fix perf of signal address sorting. 2020-08-07 17:19:19 -03:00
Matthew Chen
36baf6f5ab Fix perf of signal account sorting. 2020-08-07 17:19:19 -03:00
Matthew Chen
038bb5e1d7 Rework profile lifecycle. 2020-08-01 12:04:22 -03:00
Nora Trapp
719213e8d9 Render profile name changes in conversation 2020-07-14 19:18:28 -07:00
Matthew Chen
fc82a11ccf Clean up naming around profile fetches. 2020-07-08 11:04:01 -03:00
Matthew Chen
3b9920ff66 Track messages sent and received from users. 2020-07-08 11:04:01 -03:00
Matthew Chen
f55b0790b9 Track last fetch date on user profile. 2020-07-08 11:04:01 -03:00
Matthew Chen
e5bee64490 Preserve avatars. 2020-06-26 18:31:29 -03:00
Matthew Chen
51f35da8dd Preserve avatars. 2020-06-26 18:31:29 -03:00
Matthew Chen
179ecaf258 Cache threads, interactions, attachments. Improve model cache. 2020-06-18 12:05:07 -03:00
Nora Trapp
ba44116a9c PR Feedback 2020-06-08 19:06:31 -07:00
Nora Trapp
cafaa231b3 Use short names for message requests 2020-06-08 19:06:31 -07:00
Matthew Chen
ea1b62e838 Rework model read caches. 2020-06-08 17:36:21 -03:00
Matthew Chen
e66da658e1 Avoid 'unknown' user labels in group update copy. 2020-05-15 15:42:46 -07:00
Matthew Chen
f8b9b209ff Respond to CR. 2020-05-11 10:19:52 -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
Nora Trapp
566e288421 Cancel stale reaction notifications when the reaction is removed or replaced 2020-04-20 10:25:31 -07:00
Matthew Chen
aa53773e84 Merge branch 'release/3.8.0' 2020-04-15 17:41:19 -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
d57cb36ace Merge remote-tracking branch 'private/release/3.8.0' 2020-04-15 10:08:56 -03:00
Matthew Chen
23b442d6ba Aggressively enable groups v2 support in member picking views. 2020-04-13 17:24:59 -03:00
Nora Trapp
12f0be1a62 Receive support for delete for everyone 2020-04-13 12:49:27 -07:00
Matthew Chen
7246c613d5 Fix more build warnings. 2020-04-10 13:17:08 -03:00
Matthew Chen
d8a6334f5e Overhaul "create new group" and "add group member" views.
* Move "new group" button.
* Overhaul new group view header.
* Add 'new group confirm' view.
* Add the new "add group members" view.
2020-04-06 09:54:49 -03:00
Matthew Chen
973a7c52e6 Respond to CR. 2020-04-02 14:42:17 -03:00
Nora Trapp
682ad2d902 Whitelisting a group does not inherently approve all group members for profile sharing outside of the group. 2020-04-01 13:47:24 -07:00
Nora Trapp
89450058b4 More proto changes: flatten and limit account to relevant data 2020-03-24 17:11:02 -07:00
Michael Kirk
f927ef1b4b Batch Select / Delete 2020-03-20 19:36:48 -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
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