Commit Graph

184 Commits

Author SHA1 Message Date
Nora Trapp
a365b45522 Add support for viewed receipts 2021-04-29 18:01:18 -07:00
Nora Trapp
9475658233 Sync universal expire timer 2021-04-29 15:46:43 -07:00
Michelle Linington
054c7a0b0c MP4 looping media support
- Fetch mp4s from Giphy for showing previews
- Fetch mp4s from Giphy for sending (behind featuree flag)
- A new flag on attachments to tag a video as "looping media"
- Videos tagged with this flag will be shown on repeat
2021-04-22 14:53:47 -07:00
Matthew Chen
24802f75bd Sign public payment address. 2021-04-06 13:57:10 -03:00
Matthew Chen
3ddeb4fae0 Reduce size of payment sync messages, enforce more model invariants, fill in missing ledger block timestamps in reconciliation. 2021-04-06 13:57:08 -03:00
Matthew Chen
94bcff84e7 Defragmentation. 2021-04-06 13:57:07 -03:00
Matthew Chen
590067499a Payments entropy, storage service, backup + restore flows.
* Update how payments state is stored in storage service.
* Build 'view passphrase' UI flow.
* Build 'restore payments wallet' UI flow.
* Rework the 'view passphrase' UI flow.
2021-04-06 13:57:07 -03:00
Matthew Chen
87ace3779d Respond to CR and proto schema/reconciliation review. 2021-04-06 13:57:06 -03:00
Matthew Chen
2d0fdff372 Payments: Update proto schema. 2021-04-06 13:57:06 -03:00
Nora Trapp
6c17505b68 Sync mute with storage service 2021-03-27 12:13:20 -07:00
Nora Trapp
26253a0a27 Set the proto address during initialization 2021-02-16 13:05:13 -08:00
Jordan Rose
2a8206b7dd SSK: Fix session migration for absent pre-key IDs
Doing this correctly means going "back" to proto2 for SessionRecords,
because we need to distinguish between "0" and "absent" in the
serialized protobuf data. (Note that we can do this independently of
SignalClient properly making this distinction because the proto3
implementation we're using, prost, will omit scalar proto3 fields
whose values match their defaults.)
2021-01-28 12:03:50 -08:00
Jordan Rose
77257beacc Implement AxolotlKit<->SignalClient SessionRecord migration
This is accomplished by serializing into and out of the protobuf
format used by SignalClient.
2021-01-28 12:03:50 -08:00
Michelle Linington
7694423c4d Add a preference for contact/profile avatars 2021-01-12 16:29:29 -08:00
Matthew Chen
111338b59d Rewrite conversation view. 2020-12-10 12:44:13 -03:00
Michelle Linington
8998b1e767 Add eraId to GroupCallUpdate messages
By including eraId in GroupCallUpdate messages, we're able to identify
separate group calls after the fact. Each unique eraId will result in a
new entry in the database, even if the group call has since ended.
2020-11-24 20:59:37 -08:00
Matthew Chen
62723c9b64 Update service protos. 2020-11-24 13:49:08 -03:00
Michelle Linington
2054d49f91 Add GroupCallUpdate proto definition 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
bf8508c30b Add logic for fetching real group credentials 2020-10-15 14:49:48 -07:00
Nora Trapp
898155b794 Merge branch 'release/3.16.0' 2020-09-03 18:56:52 -07:00
Michelle Linington
be9b96bf4b PR Feedback: align proto definition 2020-09-03 18:19:20 -07:00
Michelle Linington
1405e46e62 IOS-823: Add description/date to link preview model
Updates the proto definition to add a preview description and date
field. Date and description metadata from fetched content will be sent
over the wire. We can't render it locally yet, but at least this will
allow supporting recipients to display the content.

Also, made some minor changes to HTMLMetadata to better handle article
publish/modified date tags.
2020-09-03 18:19:20 -07:00
Nora Trapp
5187738c3d Conversation Pinning 2020-09-02 14:13:05 -07:00
Matthew Chen
7a25466287 Update proto schema for animated stickers. 2020-09-02 13:44:12 -03:00
Matthew Chen
38312c0e7b Fix 'join group via invite link that requires approval' issue. 2020-09-01 18:06:48 -03:00
Matthew Chen
5e6c7fe60e Fix whitespace in proto schema. 2020-09-01 17:11:09 -03:00
Matthew Chen
ed6ec5362d Add group link view. 2020-09-01 17:11:09 -03:00
Matthew Chen
318d843da4 Add GroupInviteLink and GroupJoinInfo to proto schema. 2020-09-01 17:11:08 -03:00
Matthew Chen
d87b07103d Update protos for group links. 2020-09-01 17:11:07 -03:00
Nora Trapp
3544a0020f Invert storage service discoverability flag 2020-08-28 09:24:55 -07:00
Nora Trapp
976dcfe7c8 Invert storage service discoverability flag 2020-08-28 09:23:32 -07:00
Michelle Linington
ca8997d237 Fix rebase failure with StorageService proto
Also, re-run protobuf generation with swift-protobuf-1.8.0 to reduce a
bunch of diff noise. If we decide to migrate, we should do that in a
separate commit.
2020-08-26 17:25:32 -07:00
Michelle Linington
17c166b918 Update proto to re-include legacy link previews flag
After some discussion, it was determined that we'd need to keep this
around to ensure that we'll eventually resolve any unknown fields.
Leaving around an unregistered flag will permanently leave us with an
unknown proto field.
2020-08-26 16:46:43 -07:00
Michelle Linington
d20011aeb8 IOS-791: Megaphone for updated link previews
This change:
- Disables link previews on upgrade
- Introduces a new megaphone to prompt users to re-enable link previews
- Updates sync message proto to add a v2 link previews flag
2020-08-26 16:44:51 -07:00
Nora Trapp
f968d6a12a Storage service support for phone number sharing and discoverability 2020-08-26 16:29:29 -07:00
Nora Trapp
9696671f8a Add trustLevel to SignalServiceAddress 2020-08-05 14:36:43 -07:00
Nora Trapp
ecdc9b63c1 Mention protos 2020-07-30 11:23:45 -07:00
Matthew Chen
a5697ec16f Update Cocoapods. 2020-07-30 09:22:21 -03:00
Jim Gustafson
e052054592 Update protobufs for opaque and adjust APIs 2020-07-29 14:09:34 -03:00
Nora Trapp
a4673cc86a Fix group v1 membership for desktop 2020-07-27 11:38:12 -07:00
Matthew Chen
4a147c83d4 Tweak the "apply group change" logic. 2020-07-24 17:49:46 -03:00
Nora Trapp
05d6b57616 Render memoji, bitmoji, etc. as stickers 2020-07-06 11:43:35 -07:00
Nora Trapp
1a8fb3b2e6 Update protos with need permission hangup type 2020-07-06 11:41:28 -07:00
Nora Trapp
3d084f958d Mark as unread 2020-05-27 18:29:59 -07:00
Matthew Chen
a5c8aa2b54 Refine group change processing. 2020-05-19 15:49:36 -03:00
Nora Trapp
59c0f9d091 Device Transfer Service 2020-05-18 20:48:08 -07:00
Jim Gustafson
e2fc8bc47f Add minor changes to protocol buffer definition 2020-05-08 15:50:50 -07: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