Commit Graph

2396 Commits

Author SHA1 Message Date
Matthew Chen
644d341a05 Respond to CR. 2020-02-11 11:41:32 -03:00
Matthew Chen
d057936e28 Use TSGroupMemberRole in group membership. 2020-02-11 11:41:32 -03:00
Matthew Chen
2385f3f49a Add groupsV2forceInvites feature flag. 2020-02-11 11:41:32 -03:00
Matthew Chen
a36bdab4c5 Overhaul group model, group membership. 2020-02-11 11:41:31 -03:00
Matthew Chen
3a1bb424ea Improve group v2 service requests.
* Retry group v2 service requests.
* Fix "ensure local profile key credential" bug.
* Cache temporal credentials for group requests.
2020-02-10 14:31:37 -03:00
Matthew Chen
634ebc3e6e Clean up ahead of PR. 2020-02-10 14:24:09 -03:00
Matthew Chen
4903d313bd Add group v2 capability and improve handling of network errors. 2020-02-10 14:24:09 -03:00
Michael Kirk
e540871c85 fixup overzealous assert - e.g. if network is down 2020-02-06 21:13:34 -07: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
Matthew Chen
647fb3a33f Rework "leave group", consolidate group update logic. Add groups v2 indicator. 2020-02-06 11:11:22 -03:00
Matthew Chen
fb2d4b1744 Use Groups v2 to coordinate disappearing message state. 2020-02-06 10:50:45 -03:00
Matthew Chen
17f32b1fbe Respond to CR. 2020-02-06 10:26:02 -03:00
Matthew Chen
149ead416c Clean up ahead of PR. 2020-02-06 10:26:02 -03:00
Matthew Chen
2de281658a Sketch out handling of pending members. 2020-02-06 10:26:02 -03:00
Matthew Chen
64f47e9d7a Sketch out handling of pending members. 2020-02-06 10:26:02 -03:00
Matthew Chen
740f57cad9 Add additional recipients for v2 group updates. 2020-02-06 10:26:02 -03:00
Matthew Chen
06a4cede95 Rework feature flags, profile fetches for groups v2. Sketch out handling of pending members. 2020-02-06 10:26:02 -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
Matthew Chen
6d17f5b646 Fix profile fetch rate limiting. 2020-02-04 23:26:33 -03:00
Nora Trapp
53495b1007 Fix a bug when receiving a reaction from a user without a thread. 2020-02-04 17:15:13 -08:00
Nora Trapp
161d4aa87d Merge branch 'release/3.4.0' 2020-02-04 14:51:09 -08:00
Nora Trapp
305ab7316a Show toasts for 4 seconds. 2020-02-04 12:05:22 -08:00
Nora Trapp
630bfdd36e Fix reaction picker on iPhone 5/SE 2020-02-04 12:05:22 -08:00
Michael Kirk
aa5043477a fix test compile 2020-01-31 20:33:57 -07:00
Michael Kirk
d024ed99c0 Use appropriate sender certificate depending on capabilities 2020-01-31 20:33:57 -07:00
Matthew Chen
ea2e5f9e8d Merge tag '3.3.0.6' 2020-01-30 20:13:47 -08:00
Matthew Chen
7a58c0c35e Address perf hotspot in orphan data cleaner around reactions. 2020-01-30 20:13:25 -08:00
Nora Trapp
c2cdf73bf1 More specific reactions notifications 2020-01-30 20:13:25 -08:00
Nora Trapp
5c78f0383e Design feedback 2020-01-30 20:13:18 -08:00
Matthew Chen
61575cbd70 Merge tag '3.3.0.5' 2020-01-30 20:13:17 -08:00
Nora Trapp
52e5f99d87 Fix vertical alignment of conversation + attachment approval textView 2020-01-30 20:13:17 -08:00
Nora Trapp
dc2e4b4e48 Preserve message text when pasting an attachment. 2020-01-30 20:13:17 -08:00
Nora Trapp
a6e84b2451 Preserve ordering of albums saved from share sheet 2020-01-30 20:13:17 -08:00
Nora Trapp
697f1545f2 Merge branch 'release/3.2.1' into release/3.3.0 2020-01-30 20:13:15 -08:00
Matthew Chen
3c0fe421bc Avoid String.prefix() crash. 2020-01-30 20:11:29 -08:00
Nora Trapp
e62e186004 Re-style toasts 2020-01-30 20:11:08 -08:00
Nora Trapp
8cef37fb1e PINs for everyone megaphone 2020-01-30 20:11:08 -08:00
Michael Kirk
83d26fe62e revamp group updates - show source, show changes, show icon 2020-01-30 20:10:55 -08:00
Michael Kirk
17a807093c remote config 2020-01-30 20:10:35 -08:00
Nora Trapp
88ac10de05 Notification Service Extension
The NSE should only run on iOS 13.3 or later where the "filtering" entitlement
is available since our notifications don't contain any content and will often
not trigger any user visible content. We control this by setting the deployment
target to iOS 13.3.

This does not handle calls as it's currently impossible to wake the main app or
launch CallKit from within the NSE. Should we reach a point where we need to use
this extension in production the service will need to be able to differentiate
between call and non-call messages and deliver them as VOIP or Vanilla pushes as
appropriate. Alternatively, Apple may introduce some way for us to signal the
main app that a call message has been received.

This does not currently address the potential for the NSE and the main app to be
running and trying to process messages at the same time. As long as the
websocket is connected and the main app is processing messages in a timely
fashion the NSE will never be called since the service will not send pushes for
these messages, but censorship circumvention users and users where the websocket
is disconnected for some reason will legitimately receive pushes and we will
want to process those messages. How we will handle these cases requires further
thought since just terminating the NSE when the app launches is not sufficient.
We could potentially do something like terminate the NSE everytime the main app
runs the message fetcher job which should only happen if either the user
pulls-to-refresh on the conversation list or the websocket is actively connected
and receiving messsages. I plan to address this in a follow-up pull request.

Currently this code will not ever be run since the service never sends vanilla
push notifications. Eventually we will need to add logic into the main app to:
a) detect we're on iOS 13.3 or later and b) update a flag on the service telling
it to stop using VOIP pushes for non-call messages. The API for requesting this
from the service does not yet exist.
2020-01-30 11:44:41 -08:00
Matthew Chen
e449d6231e Generate "group updated" info messages for v2 groups. 2020-01-29 13:51:52 -03:00
Matthew Chen
5495656902 Generate "group updated" info messages for v2 groups. 2020-01-29 13:51:52 -03:00
Matthew Chen
02b15def56 Generate "group updated" info messages for v2 groups. 2020-01-29 13:51:52 -03:00
Matthew Chen
3244ecce6b Clean up ahead of PR. 2020-01-29 13:42:27 -03:00
Matthew Chen
f53c6d14ce Clean up ahead of PR. 2020-01-29 13:42:27 -03:00
Matthew Chen
58ef1cc3ed Clean up ahead of PR. 2020-01-29 13:42:27 -03:00
Matthew Chen
9432181bd5 Clean up ahead of PR. 2020-01-29 13:42:27 -03:00
Matthew Chen
2f75dac0b8 Clean up ahead of PR. 2020-01-29 13:42:27 -03:00
Matthew Chen
03768b776c Rework v2 group updates. 2020-01-29 13:42:27 -03:00