Wykres commitów

516 Commity (main)

Autor SHA1 Wiadomość Data
Cody Henthorne a7a5f2e8c6 Add batch identity checks to stories and share/forward flows. 2022-07-27 13:26:28 -04:00
Alex Hart b18542a839 Ensure images sent to stories respect media quality settings.
Stories should always use "Standard" quality, not L3 (high quality). This change ensures that we:

1. Always send stories at the appropriate quality
2. Do not corrupt or overwrite pre-existing image attachments
3. Close several streams when done (thanks StrictMode!)
2022-07-21 13:18:19 -04:00
Cody Henthorne c4bef8099f Add GV2 accept by PNI invite. 2022-07-21 13:18:19 -04:00
Alex Hart f9c0156757 Fix crash when outcomeReason is null. 2022-07-18 09:28:57 -03:00
Alex Hart efb82369b6 Bump version to 5.43.0 2022-07-11 14:04:57 -03:00
Cody Henthorne b0dc7fe6df Add batch identity key check call for improved safety number change performance. 2022-07-11 13:35:53 -03:00
Greyson Parrelli 3beb730edb Prefer ServiceIds over SignalServiceAddresses. 2022-07-11 13:35:53 -03:00
Greyson Parrelli 314ef3452f Improving logging of 401 errors. 2022-07-05 15:46:06 -04:00
Cody Henthorne 7b805e4041 Remove use of PNI Credential. 2022-06-30 15:51:59 -04:00
Greyson Parrelli 61ce39b5b6 Improve implementation and testing on PNP contact merging. 2022-06-29 15:32:26 -04:00
Cody Henthorne 89a6730efe Add Storage Service plugin to Spinner. 2022-06-29 15:32:25 -04:00
Cody Henthorne 9bc25132c3 Add new My Story privacy settings. 2022-06-29 15:32:25 -04:00
Greyson Parrelli 9ab275195f Add support for CDSI. 2022-05-18 11:54:17 -04:00
Cody Henthorne 3c08b070fc Fetch PNI Credential during own profile refresh. 2022-05-18 11:54:17 -04:00
Greyson Parrelli dda5ce4809 Add basic CDSv2 database writes and unit tests. 2022-05-18 11:54:17 -04:00
Cody Henthorne ec3540e200 Fix long text in Safety Number Change dialog. 2022-05-18 11:54:17 -04:00
Alex Hart af9465fefe Add sent story syncing. 2022-05-12 10:42:21 -03:00
Alex Hart 8ca0f4baf4 Add support for replying to gift badges. 2022-05-12 10:42:21 -03:00
Alex Hart a4a4665aaa Implement badge gifting behind feature flag. 2022-05-02 15:25:55 -04:00
Alex Hart 33236ea8e6 Add retry when user resubscribes after canceling. 2022-04-28 14:33:30 -03:00
Greyson Parrelli eccb796199 Ensure that destinationUuid is always populated. 2022-04-26 12:16:58 -04:00
Cody Henthorne 657a9c7b0a Add ability to reject group invite by PNI. 2022-04-26 12:16:58 -04:00
Victor Ding e5aea7c49e Replace non-ASCII characters in comments to their ASCII equivalent
Fixes #12201
2022-04-26 12:15:50 -04:00
Greyson Parrelli f5173fa6f5 Update libsignal-client to 0.16.0 2022-04-26 12:12:17 -04:00
Cody Henthorne 2f551ee3f2 Do not auto-leave groups you have requested to join. 2022-04-21 11:30:13 -04:00
Alex Hart 115f7063d5
Add support and tracking of ChargeFailure in ActiveSubscription. 2022-04-18 16:37:12 -03:00
Greyson Parrelli 35a9fddbb2 Add basic support for receiving messages at your PNI.
We haven't implemented merging yet, so this is still very basic, but it
"works".
2022-04-15 16:07:14 -04:00
Greyson Parrelli b34ca8ca2f Improve handling of unknown IDs in storage service. 2022-04-06 12:37:43 -04:00
Alex Hart c359b0134a Implement StoryDistributionListRecord and processing. 2022-04-06 12:37:43 -04:00
Chris Eager 086e3ed4ec Update message reporting to use sender ACI instead of E164.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2022-04-06 12:37:43 -04:00
Greyson Parrelli c149e008fd Update apostrophes in code comments. 2022-03-30 09:37:12 -04:00
Greyson Parrelli 8d4419705b Update to libsignal-client 0.15.0 2022-03-28 19:07:20 -04:00
Greyson Parrelli 2b5d65ae04 Revert "Update to libsignal-client 0.15.0"
This reverts commit 3d5f04eba757563dd92366d994a96cf323b8d540.
2022-03-28 19:07:20 -04:00
Jordan Rose 1e316ea19f Update to libsignal-client 0.15.0 2022-03-28 19:07:20 -04:00
Cody Henthorne 6890973ce8 Enforce limit for total number of blocked requests. 2022-03-28 19:07:20 -04:00
Greyson Parrelli 2edaba39a0 Fix support for PniIdentity sync message. 2022-03-28 19:07:20 -04:00
Greyson Parrelli 83c3b16b92 Add ContactDiscovery abstraction for doing CDS refreshes. 2022-03-28 19:07:19 -04:00
Cody Henthorne e6ac40a07c Fix various corner case block/reject join request bugs. 2022-03-18 11:03:38 -04:00
Cody Henthorne 445ff263c6 Fix receiving group invite bug. 2022-03-18 11:03:38 -04:00
Cody Henthorne 9d28caac00 Fix bug preventing adding and inviting by phone number. 2022-03-17 16:02:43 -04:00
Cody Henthorne d3049a3433 Add block request action button to collapsed join request events. 2022-03-17 12:12:56 -04:00
Greyson Parrelli 057231b9c3 Update libsignal-client to 0.14.0 2022-03-17 12:12:56 -04:00
Greyson Parrelli b45740884b Only upload your avatar if it's being changed.
New server param means we don't have to upload the avatar if we want to
keep it the same.
2022-03-17 12:12:56 -04:00
Cody Henthorne eed45b57a1 Prevent rejected/kicked group members from joining again via group link. 2022-03-17 12:12:56 -04:00
Cody Henthorne c17ba30cfc Show different messages based on join group link error header. 2022-03-17 12:12:56 -04:00
Greyson Parrelli e552b5160f Implement CdshV2Service. 2022-03-17 12:12:55 -04:00
Greyson Parrelli 7e063e8ad8 Refactor CDSH to allow for code reuse. 2022-03-17 12:12:55 -04:00
Greyson Parrelli c1181478dd Remove GV2 capability check. 2022-03-17 12:12:55 -04:00
Greyson Parrelli 15f51ea26e Fix crash if synced pinned contact is malformed. 2022-03-10 11:14:55 -05:00
Cody Henthorne 66f93e0d32
Do not drop 1:1 messages with mentions due to iOS and desktop regression.
iOS and Desktop both regressed in multi-forwarding by including mentions
in 1:1 forwards instead of replacing them with plain text. Android by
default drops these as invalid messages. Since there are clients in the
wild that do this now, we have to stop dropping them and try to resolve
them per normal mechanisms.
2022-03-09 12:09:46 -05:00
Alex Hart 35cd36e9fe Implement support for 'allows replies' toggle. 2022-03-08 10:41:37 -04:00
Cody Henthorne e701e4bff0 Don't allow rate limit responses to end all group sends. 2022-03-08 10:41:37 -04:00
Cody Henthorne 69dc31681d Apply server returned group patch instead of local only. 2022-03-08 10:41:37 -04:00
Jon Chambers 372dd13eba Accept both HTTP/413 and HTTP/429 as rate-limit responses. 2022-03-08 10:41:37 -04:00
Alex Hart 174cd860a0 Implement Stories feature behind flag.
Co-Authored-By: Greyson Parrelli <37311915+greyson-signal@users.noreply.github.com>
Co-Authored-By: Rashad Sookram <95182499+rashad-signal@users.noreply.github.com>
2022-03-08 10:41:36 -04:00
Greyson Parrelli 935dd7de45 Remove E164s most places and prefer ServiceId more places.\ 2022-03-08 10:41:36 -04:00
gram-signal 88d2d4d9c7 Switch from binary to streaming protos when using CDSHv1.
Co-authored-by: Greyson Parrelli <greyson@signal.org>
2022-03-01 10:47:23 -05:00
Cody Henthorne bd18b731c8 Add metrics logging around get resumable upload url request. 2022-03-01 10:47:23 -05:00
Greyson Parrelli 80598814bd Remove unused PushServiceSocket method. 2022-03-01 10:47:23 -05:00
Greyson Parrelli 7ca2420287 Move from ACI to a generic ServiceId. 2022-02-17 17:09:26 -05:00
Cody Henthorne 6f788ee3df Improve GV2 state change processing speed. 2022-02-17 17:09:26 -05:00
Greyson Parrelli dec1902dc7 Add provisioning support for PNP. 2022-02-17 17:09:25 -05:00
Greyson Parrelli e8ad1e8ed1 Support PNI prekeys. 2022-02-16 14:12:34 -05:00
Greyson Parrelli 267897b133 Improve UD handling for fallback REST sends.
Special thanks to @stevie553 for the wonderfully-detailed bug report!

Fixes #11991
2022-02-14 14:58:09 -05:00
Alex Hart 5a6d77bae4
Add better error handling for subscriptions. 2022-02-10 14:26:59 -04:00
Greyson Parrelli ae0d6b5926 Handle unsealed PlaintextContent messages.
Closes #11885

Co-authored-by: AsamK <asamk@gmx.de>
2022-02-10 11:01:18 -05:00
Greyson Parrelli 0558d5f0b3 Clear sender key shared state on archive and prekey message receive.
We need to clear the sender key shared state whenever a registrationId
changes. We don't have good hooks for that on Android, so instead we're
just going to reset on every archive and prekey receive. It's a little
overzealous, but given these are rare events anyway, it shouldn't be a
big deal.
2022-02-10 10:35:22 -05:00
Cody Henthorne bb1e6ffae0
Improve GV2 update speed by only requesting a full snapshot when necessary. 2022-02-09 14:52:01 -05:00
Greyson Parrelli 80a2e1e3cc
Support syncing dontNotifyIfMuted on GV2Records. 2022-02-09 10:03:31 -05:00
Greyson Parrelli 0877d6a25e Improve handling of unknown fields in storage service.
Improve handling of unknown fields in storage service.

Found a lovely bug today where unmuting chats on mobile didn't sync to my linked devices. Turns out this was a result of the unknown field merging. 

1. When a proto has unknown fields, we store the entire proto in a column in our database.
2. After building a proto that we want to write remotely, we merge the saved proto with unknown fields into constructed proto. Most of the time this is fine.
3. _However_, if one of the values you're trying to set happens to be the same as the default value for the given data type (e.g. setting a long like mutedUntil = 0), then when the protos merge, it treats that field as unset and can override it with the field from the proto with unknown fields.
4. Because we currently have unknown fields in every GV2 record, we could never unmute a GV2 group :(

This changes the order of things so that unknown fields are the first thing applied in the record builder. I did this by requiring them in the builder constructors. That way start off with the unknown fields and then can manually set whatever you want, and it'll be guaranteed to override it.
2022-02-08 16:49:49 -04:00
Greyson Parrelli 83ee4c0147 Break storage reads into pages of 1000. 2022-02-08 16:49:49 -04:00
Cody Henthorne 8af7c5043a Fix bug with sending after safety number changes. 2022-02-04 17:33:32 -05:00
Cody Henthorne a05776551f Fix sending reactions to note to self. 2022-02-03 17:12:30 -05:00
Cody Henthorne d690a52fd7 Add additional timing logs for getting resumable upload spec. 2022-02-02 16:50:58 -05:00
Cody Henthorne 8348badcd6 Periodically fetch release notes. 2022-02-02 16:50:58 -05:00
Cody Henthorne 7a241e5fb5 Use group state paging always. 2022-02-02 16:50:58 -05:00
Greyson Parrelli 33f4bb0000 Add the ability to have separate ACI and PNI protocol stores. 2022-02-01 13:41:31 -05:00
Cody Henthorne 053b19846b
Add additional log around change number and set PNI. 2022-01-26 15:13:52 -05:00
AsamK 523e21f3be Improve handling of group send errors over websocket.
- Correctly parse error responses from send group message via websocket.
- Reduce logging output for mismatched/stale devices exceptions.
- Only fallback from websocket to socket if there were technical errors.

Closes #11918
2022-01-25 10:02:26 -04:00
Greyson Parrelli 35c5a8106d
Migrate to the new KBS and CDS enclaves. 2022-01-24 14:46:51 -05:00
Cody Henthorne 22c396067d Add storage sync support for linked devices. 2022-01-24 12:05:29 -05:00
Cody Henthorne c548816daa Add contact and key sync message receive support. 2022-01-24 12:04:48 -05:00
Cody Henthorne 7203228626 Add partial support for operating as a linked device. 2022-01-24 12:04:48 -05:00
Greyson Parrelli b5dcf8e8f1
Improve handling of inbound UD messages. 2022-01-21 12:51:22 -05:00
Cody Henthorne 791c1ee8dd Fix group send with sender key failure due to mistmatch identity. 2022-01-20 20:41:06 -05:00
Greyson Parrelli 8bc7d1b7f5 Drop messages that have a story context. 2022-01-07 14:41:42 -04:00
Cody Henthorne e41c73f293 Fix OOM when paging lots of group updates. 2022-01-07 14:41:42 -04:00
Alan Evans ac90eeb42f Protoc update to 3.18.0
Windows and M1 gradle verification sha256 values.

Using: gradlew --write-verification-metadata sha256 help

But aapt2 artifact had to be manually added.

Fixes #11871, Fixes #11878, Closes #11877
2022-01-03 10:17:17 -05:00
Greyson Parrelli a17fd447a7 Add logging to help diagnose ratelimit issues. 2021-12-20 13:31:18 -05:00
Alex Hart 9177f5637a Add support for manual cancellation proto field. 2021-12-20 13:31:18 -05:00
Rashad Sookram 4ae129d2af Use Gradle dependency verification.
Generated by running:
./gradlew --write-verification-metadata sha256 qa --rerun-tasks
2021-12-16 14:48:25 -05:00
Greyson Parrelli c93457402c
Store your own PNI. 2021-12-06 12:18:42 -05:00
Greyson Parrelli 562a255478 Update libsignal-client to 0.11.0 2021-12-03 18:09:52 -05:00
Alex Hart ae1f834619 Add new subscription multi device sync message. 2021-11-30 17:13:14 -05:00
Ehren Kret dccfafa9e8 Remove dead code referencing the old way directory lookup was performed. 2021-11-30 17:13:10 -05:00
Cody Henthorne c5d7188dcb Fix country specific translations for badges. 2021-11-24 16:41:12 -05:00
Greyson Parrelli 11aa168a6b Improve handling of unregistered failure during sender key send. 2021-11-23 17:00:47 -05:00
Greyson Parrelli cd1f0632fa Improve recognition of failed payment states. 2021-11-22 22:44:10 -05:00
Alex Hart f260633c9d Update payment failure ux. 2021-11-19 16:28:39 -05:00
Alex Hart 8a00caabd7 Update how we deal with failed or in progress subscriptions. 2021-11-19 16:28:39 -05:00
Greyson Parrelli 8aea20f147 Migrate local account data into SignalStore. 2021-11-17 16:14:26 -05:00
Greyson Parrelli 2df303cde7 Add some additional endpoints for PNP. 2021-11-16 17:27:47 -05:00
Greyson Parrelli 732a6324d6 Include auth token in CDSH request. 2021-11-16 17:27:47 -05:00
Greyson Parrelli 54614e67aa Update CDSH with better error handling. 2021-11-16 17:27:47 -05:00
AsamK 1ad0b0e6ae Close response body for all storage requests and for unsuccessful requests. 2021-11-16 17:27:47 -05:00
Jordan Rose 7ccc7ec856 Update to libsignal-client 0.10.0, which includes zkgroup. 2021-11-16 17:27:47 -05:00
Alex Hart 882bdcc726
Send user an email after Stripe completes payment for boosts. 2021-11-15 13:48:19 -04:00
Alex Hart 6b94fc82eb Add and sync displayBadgesOnProfile Flag. 2021-11-11 16:52:08 -04:00
Alex Hart 482a10de02 Improve handling of network timeouts for donor badges. 2021-11-05 15:36:30 -04:00
Cody Henthorne 9827deffd3 Make websocket timeouts stay on IO threads. 2021-11-04 18:29:51 -04:00
Alex Hart 70355aa70e Add server-based localization of subscription names and badge information. 2021-11-04 17:00:04 -04:00
Greyson Parrelli 56c502c9bf Update libphonenumber to 8.12.33 2021-11-04 17:00:04 -04:00
Greyson Parrelli a51bb8e23f Add LeakCanary to flipper builds. 2021-11-04 16:59:59 -04:00
Greyson Parrelli 3574be913a Log out sender key state for internal users. 2021-11-04 16:59:59 -04:00
Greyson Parrelli 4615f246ac Log additional info about 409/410 responses. 2021-11-04 16:57:10 -04:00
Greyson Parrelli 62ee60df82 Add full support for unknown fields in storage service. 2021-11-01 17:07:01 -04:00
Alex Hart 6673da0b04 Add subscriber information to storage service account record. 2021-11-01 16:48:42 -04:00
Greyson Parrelli 5bb48caafd Strongly type UUIDs as ACIs. 2021-11-01 16:48:41 -04:00
Alex Hart 186bd9db48 Implement new APIs for Boost badging. 2021-11-01 16:48:41 -04:00
Greyson Parrelli 48a81da883 Handle non-normalized phone number responses. 2021-11-01 16:48:41 -04:00
Alex Hart c1820459b7 Implement further features for badges.
* Add Subscriptions API
* Add Accept-Language header to profile requests
* Fix several UI bugs, add error dialogs, etc.
2021-10-21 17:11:46 -04:00
Greyson Parrelli 13ef53372e Remove the reset session button. 2021-10-21 17:11:46 -04:00
Greyson Parrelli b89e08dad7 Update libsignal-client to 0.9.7 2021-10-21 17:11:46 -04:00
Alex Hart 43e4cba3d7
Implement the majority of the Donor UI. 2021-10-12 15:55:54 -03:00
Greyson Parrelli 92e506b117 Update libsignal-client to 0.9.6 2021-10-04 21:49:59 -04:00
Alex Hart 7f3ba1978d Add RedeemReceiptRequest object and DonationService. 2021-10-04 21:49:59 -04:00
Alex Hart 891dfc1b68 Upgrade zkgroups to 0.8.2 2021-10-04 21:49:59 -04:00
Alex Hart 8d53c2392a Update zkgroup to v0.8.1 2021-10-04 21:49:59 -04:00
Alex Hart 8d0acb277c Add support for updated server badge image url formats. 2021-10-04 21:49:59 -04:00
Greyson Parrelli 1222d020ad Fix address list for sender key messages. 2021-10-04 20:50:08 -04:00
Fumiaki Yoshimatsu e18d9e665f Take padded bytes into account when decrypting a stream of data.
Fixes #11573
2021-09-28 11:42:51 -04:00
Greyson Parrelli cc99febe32 Allow use of the new CDSH service in staging. 2021-09-28 11:42:51 -04:00
Greyson Parrelli 7267d77dcb Add support for syncing default reactions. 2021-09-23 11:35:21 -03:00
Alex Hart 77cf029fdc Implement ability to view badges and modify whether they appear.
Note: this is available in staging only.
2021-09-23 11:35:21 -03:00
Greyson Parrelli 1031a4e96c Improve logging around message sending and processing. 2021-09-16 14:17:38 -03:00
Alex Hart b589449c34 Consolidate app dependencies using gradle version catalogs. 2021-09-16 14:17:38 -03:00
Alex Hart 662ba85c5a Upgrade to Gradle 7.2 and AGP 7.0.2 2021-09-16 14:17:38 -03:00
Greyson Parrelli 573c0fad7f Update libsignal-client to 0.9.4 2021-09-14 09:07:43 -04:00
Cody Henthorne 7e7bbad788 Ensure change number operation status before returning to normal app usage. 2021-09-08 21:04:21 -04:00
Cody Henthorne 77ff25ec49 Add Change Number capability and Conversation Update item. 2021-09-08 21:04:06 -04:00
Cody Henthorne f2ab0b6423 Initial work to support Change Number. 2021-09-03 20:19:56 -04:00
Cody Henthorne 8e32592218 Clarify networking call order during registration flow. 2021-09-02 21:24:53 -04:00
Greyson Parrelli bca2205945 Add measurements, improve MSL insert. 2021-09-02 21:24:53 -04:00
Greyson Parrelli aec2ca1d87 Update libsignal-client to 0.9.0 2021-09-02 11:21:15 -04:00
Greyson Parrelli 1819af3000 Fix possible crash when a contact merge results in no UUID.
After merging contacts, it's possible that we don't have a valid
UUID. We need to be careful not to use it.

Kind of a bummer, but the storage sync flow is currently the only flow
where we have this 'possibly not valid UUID'. In the future we should
probably use something else instead of a SignalServiceAddress to keep
that abstraction clean.
2021-09-01 10:46:42 -04:00
Greyson Parrelli 45a6894da1 Handle invalid registrationIds during sender key sends. 2021-08-30 20:32:41 -04:00
Greyson Parrelli 08008629b3 Fix some issues around SignalServiceAddress creation. 2021-08-27 14:43:38 -03:00
Greyson Parrelli b21abb8e7e Fix crash during block list parsing. 2021-08-26 09:51:28 -04:00
Alex Hart 3f233ed39f
Use AttachmentsV2 if the resumable upload link from V3 becomes corrupted. 2021-08-26 10:24:20 -03:00
Greyson Parrelli 28d86886bd Update handling of invalid unknown fields. 2021-08-25 13:34:29 -04:00