Commit Graph

5793 Commits

Author SHA1 Message Date
Nora Trapp
a0ff3920a8 Feature flags for .qa. 2021-03-05 23:12:43 -08:00
Nora Trapp
765a4f87c5 Feature flags for .beta. 2021-03-05 23:12:25 -08:00
Matthew Chen
c2caa4c335 Feature flags for .qa. 2021-03-05 13:58:51 -03:00
Matthew Chen
bc1bd934a2 Feature flags for .beta. 2021-03-05 13:58:41 -03:00
Matthew Chen
37c8ca29d6 Feature flags for .qa. 2021-03-05 11:15:27 -03:00
Matthew Chen
9a64146c64 Feature flags for .beta. 2021-03-05 10:58:57 -03:00
Matthew Chen
30bf4d52c3 Feature flags for .qa. 2021-03-05 10:07:44 -03:00
Matthew Chen
b151a9a8d5 Feature flags for .beta. 2021-03-05 10:07:33 -03:00
Nora Trapp
91c8b4a250 Further design feedback 2021-03-04 18:32:24 -08:00
Nora Trapp
450870de44 Design feedback 2021-03-04 18:32:24 -08:00
Jordan Rose
9cf01c3fd2 MediaGallery: fix multi-threading bug caught by previous commit! 2021-03-04 10:48:19 -08:00
Jordan Rose
15a4a1a9cd MediaGallery: delete old Finder API, including its Yap implementation 2021-03-04 10:30:54 -08:00
Jordan Rose
3b90f1b761 MediaGallery: Filter recently-deleted items from database queries
And rewrite and simplify the rest of deletion logic appropriately.
(Thanks to Nora for the strategy.)

There is one tough case here: database updates have happened
/externally/ (say, from a disappearing message expiring), in which
case the database will be updated but the MediaGallery model will not.
In this case we've broken the invariant that we have the correct count
for each month-section, and need to put a hold on database access
until the model has been updated. The only effect of this is in the
page-based media VC, where we'll exit out of the browser rather than
advancing to the next item if the item we were looking at was deleted
/and/ the next item hasn't been loaded yet. (This can happen if you're
at the start of a message with many items and the whole message gets
deleted.)
2021-03-04 10:30:54 -08:00
Jordan Rose
15e92998cb MediaGallery: use OrderedDictionary as the backing store
...rather than a flat list of loaded MediaGalleryItems. This is
similar to the ad hoc approach in MediaTileViewController in the
previous commit, but is consistent across MediaPageViewController as
well.

Still not handled yet: deletions, also avoiding redundant database
access
2021-03-04 10:30:54 -08:00
Jordan Rose
29a2884743 Rewrite the All Media collection view controller
- Measure an entire section all at once, so items don't jump around
- Load individual items lazily by section instead of by plain index
- Search for more sections by enumerating timestamps

Does not handle deletes yet. Also I haven't removed all the old APIs.
2021-03-04 10:30:54 -08:00
Jordan Rose
76b716462e SSK: Make OrderedDictionary a struct and improve it a bit
- Now a struct, meaning no need for a clone() method
- Now a RandomAccessCollection indexed by Int
- Removed the subscript setter that EarlyMessageManager was using to
  make the reordering behavior more explicit
- Generalized insert(key:value:isAppend:) to insert(key:at:value:)
- Added removeSubrange(_:)
2021-03-04 10:30:54 -08:00
Jordan Rose
26037ff8f4 Database: Remove @escaping from all synchronous transaction callbacks 2021-03-04 10:30:54 -08:00
Jordan Rose
f3b87c1ee7 MediaGalleryFinder: factor out common SQL query builder 2021-03-04 10:30:54 -08:00
Nora Trapp
28a17ec257 Add internal settings view 2021-03-03 20:32:36 -08:00
Matthew Chen
47a4b88467 Feature flags for .qa. 2021-03-04 00:16:38 -03:00
Matthew Chen
0c2205580a Feature flags for .beta. 2021-03-04 00:16:30 -03:00
Matthew Chen
b08438849d Feature flags for .qa. 2021-03-04 00:10:36 -03:00
Matthew Chen
0c85efa3ef Feature flags for .beta. 2021-03-04 00:10:21 -03:00
Michelle Linington
852e8261d8 Lint 2021-03-03 12:51:07 -08:00
Michelle Linington
adabc1a06e PR Feedback
The most significant change here is we defer initial loading of
collision interactions. We shouldn't block the main thread during
conversation presentation.

Instead, we'll perform it at UserInitiatedQoS. Once complete, we'll call
-ensureBannerState. Subsequent banner state updates will use the cached
interactions to find name collisions.
2021-03-03 12:51:07 -08:00
Michelle Linington
a7aa17c7dd Better write handling 2021-03-03 12:51:07 -08:00
Michelle Linington
15eb64086c Most of the work for profile spoofing in group membership
This separates the logic for finding spoofed profiles from the view
controller responsible for reporting collisions to the user
2021-03-03 12:51:07 -08:00
Matthew Chen
dab3994b3a Add logging around profile key rotation. 2021-03-03 17:20:02 -03:00
Jon Chambers
07d3ec2c6e Restore two-enclave configuration. 2021-03-03 17:18:36 -03:00
Matthew Chen
213b0ba702 Respond to CR. 2021-03-03 17:18:36 -03:00
Jon Chambers
ca877d293d Update KBS constants to match the latest staging deployment. 2021-03-03 17:18:36 -03:00
Jordan Rose
ae0fb0aea4 Remember to free OpenSSL-allocated memory 2021-03-03 09:50:40 -08:00
Matthew Chen
4ce2c3adb8 Feature flags for .qa. 2021-03-01 10:49:05 -03:00
Matthew Chen
f119a87e03 Feature flags for .production. 2021-02-27 09:09:24 -03:00
Matthew Chen
426d52b468 Feature flags for .qa. 2021-02-26 17:56:15 -03:00
Matthew Chen
ef0fb70b02 Feature flags for .beta. 2021-02-26 17:56:02 -03:00
Nora Trapp
de5afa9467 Use server timestamp to validate UD messages 2021-02-26 11:56:47 -08:00
Nora Trapp
2ef8db1d9f Fix excessive threadless errors 2021-02-26 11:48:29 -08:00
Nora Trapp
eff026a8d5 Don't insert decryption errors for blocked conversation 2021-02-25 13:20:05 -08:00
Matthew Chen
d19a94d328 Feature flags for .qa. 2021-02-24 21:53:11 -03:00
Matthew Chen
51e0719152 Feature flags for .beta. 2021-02-24 21:52:37 -03:00
Matthew Chen
d325b57bff Respond to CR. 2021-02-24 21:13:25 -03:00
Matthew Chen
b7e9bd906d Batch processing of synced contacts. 2021-02-24 21:13:25 -03:00
Matthew Chen
39feb7eb43 Respond to CR. 2021-02-24 18:03:10 -03:00
Matthew Chen
93fc3dd3db Filter as e164. 2021-02-24 18:00:54 -03:00
Nora Trapp
38013fb312 Fix handling of SMK decryption errors 2021-02-24 11:25:08 -08:00
Jordan Rose
f9025cc0d8 Update SignalClient, and stop using cocoapods-binary to build it
Includes updates for SignalMetadataKit and SignalServiceKit for the
change requiring SenderCertificates to always have UUIDs.
2021-02-23 14:18:16 -08:00
Matthew Chen
8017d0da50 Allow group migrations to work if a member never had a versioned profile. 2021-02-23 15:57:49 -03:00
Nora Trapp
ec1a1bb9ae Simplify MessageProcessing promises 2021-02-23 10:45:50 -08:00
Nora Trapp
5f8f048202 Fix tests 2021-02-23 10:45:50 -08:00