Commit Graph

109 Commits

Author SHA1 Message Date
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
Matthew Chen
ac59e34597 Leave primary to upload profile key commitment. 2020-02-26 23:24:37 -03:00
Matthew Chen
b56362368f Merge remote-tracking branch 'private/release/3.5.0' into release/3.6.0 2020-02-25 09:46:54 -03:00
Matthew Chen
c0547f33d2 Merge remote-tracking branch 'private/release/3.5.0' 2020-02-24 20:29:33 -03:00
Nora Trapp
f98d203f4f Avoid extraneous syncing of profile changes 2020-02-21 16:32:30 -08:00
Michael Kirk
f198d9037d Merge tag '3.5.0.5' 2020-02-19 19:26:05 -07:00
Nora Trapp
e420b2194c If there's a pending message request and we send a message to a thread, share our profile 2020-02-15 11:37:24 -07:00
Michael Kirk
8d6ba881c7 fixup registration test 2020-02-14 12:17:50 -07:00
Nora Trapp
2d1a22a862 Pass through transactions to profile manager, avoid extraneous sync after merge 2020-02-12 08:24:06 -08:00
Nora Trapp
2f9492188a Add storage service support for v1 group whitelist / blocklist 2020-02-11 20:31:56 -08:00
Nora Trapp
55b6734758 Merge branch 'nt/message-request-megaphone' 2020-02-10 11:26:18 -08:00
Matthew Chen
c95f230e8d Profiles vs. Groups v2
* Update profile whitelist to reflect v2 group membership.
* Fill in missing profile keys from group change protos.
* Ensure local profile has commitment before doing any v2 group requests.
* Fix "ensure local profile key credential" bug.
* Fix profile key parsing from group v2 member protos.
* Fix edge case around members missing uuids in temporary update group view.
2020-02-06 11:50:15 -03:00
Michael Kirk
d024ed99c0 Use appropriate sender certificate depending on capabilities 2020-01-31 20:33:57 -07:00
Nora Trapp
c2cdf73bf1 More specific reactions notifications 2020-01-30 20:13:25 -08:00
Nora Trapp
31779b803e More specific reactions notifications 2020-01-27 11:59:30 -08:00
Matthew Chen
d9d8de603b Respond to CR. 2020-01-16 17:14:54 -03:00
Matthew Chen
976fd5dfb8 Cache user profiles and signal accounts. 2020-01-16 16:52:25 -03:00
Nora Trapp
6173ba84fc PR Feedback 2020-01-09 13:17:09 -08:00
Nora Trapp
a68f5277bf Support profile given and family names 2020-01-09 13:17:09 -08:00
Matthew Chen
72f912dce3 Versioned profile changes, etc. 2020-01-08 13:54:54 -03:00
Matthew Chen
ee819340c7 Always migrate to GRDB; show notification during background migrations. 2020-01-02 12:12:18 -08:00
Matthew Chen
c23ed76df0 Always migrate to GRDB; show notification during background migrations. 2020-01-02 12:12:18 -08:00
Matthew Chen
29150102cb Revert group and profile changes. 2019-12-11 20:41:54 -08:00
Matthew Chen
05c8e674ee Rework new group new creation & group updates. 2019-12-05 12:37:22 -03:00
Nora Trapp
8d0a8ca3bd Notify for incoming reactions to your message 2019-12-03 15:26:01 -08:00
Matthew Chen
4da84b986f Respond to CR. 2019-11-19 13:13:05 -03:00
Matthew Chen
0ca1b2e028 Rework profile fetch. 2019-11-19 13:06:48 -03:00