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
Nora Trapp
9ea30bc09a
lint fix
2021-02-23 10:45:50 -08:00
Nora Trapp
3669066e42
Begone OWSBatchMessageProcessor
2021-02-23 10:45:50 -08:00
Nora Trapp
91d2953843
Begone OWSMessageReceiver
2021-02-23 10:45:50 -08:00
Nora Trapp
4b2be0b8fa
Get rid of obsolte SSKMessageDecryptJobQueue
2021-02-23 10:45:50 -08:00
Nora Trapp
3991802fa8
Add appropriate restrictions to when message processing can run.
2021-02-23 10:45:50 -08:00
Nora Trapp
16708b9dd7
Batch message decryption and processing
2021-02-23 10:45:50 -08:00
Nora Trapp
3e687e5c7f
Remove signaling key support
2021-02-23 10:45:50 -08:00
Nora Trapp
ad6583facb
Eliminate usage of decrypt job queue
2021-02-23 10:45:50 -08:00
Matthew Chen
83501fd24b
Feature flags for .qa.
2021-02-19 21:35:01 -03:00
Matthew Chen
ee649a2cc2
Add logging around auto-whitelisting of group conversations.
2021-02-19 10:05:36 -03:00
Matthew Chen
bd1fb3dde6
Feature flags for .production.
2021-02-19 09:40:28 -03:00
Nora Trapp
5c970e95da
Fix sending of delivery receipts
2021-02-19 09:32:53 -03:00
Matthew Chen
c0cccf1a9e
Feature flags for .qa.
2021-02-18 11:37:31 -03:00
Matthew Chen
71fa1b03ce
Feature flags for .beta.
2021-02-18 11:37:26 -03:00
Matthew Chen
a6692967b4
Feature flags for .production.
2021-02-18 11:37:18 -03:00
Matthew Chen
98400a71b4
Improve robustness of sticker handling.
2021-02-18 09:20:03 -03:00
Nora Trapp
7ba48d8484
PR Feedback
2021-02-17 12:00:50 -08:00
Nora Trapp
49cf699733
Process messages in the same transaction they were decrypted in
2021-02-17 12:00:50 -08:00
Nora Trapp
26253a0a27
Set the proto address during initialization
2021-02-16 13:05:13 -08:00
Matthew Chen
21fc366534
Feature flags for .qa.
2021-02-15 14:33:10 -03:00
Matthew Chen
fa5eebb67b
Feature flags for .beta.
2021-02-15 14:19:36 -03:00
Michelle Linington
5341d59ba1
Lint
2021-02-12 14:03:16 -08:00
Michelle Linington
3c7e96fcd4
PR Feedback
2021-02-12 13:14:48 -08:00
Michelle Linington
b4d36dcf31
Design changes for onboarding
2021-02-12 13:14:13 -08:00
Nora Trapp
5a415e004d
Remove OWSMessageServiceParams
2021-02-12 12:02:15 -08:00
Nora Trapp
651cdef9a8
Remove legacy 'silent' flag
2021-02-12 11:59:35 -08:00
Nora Trapp
514b803fdb
Fix 'online' flag for message sending
2021-02-12 11:59:34 -08:00
Matthew Chen
54dcbbe693
Feature flags for .qa.
2021-02-12 15:36:53 -03:00
Matthew Chen
30b960ccea
Feature flags for .beta.
2021-02-12 15:36:46 -03:00
Nora Trapp
54a327e269
Don't require cache evacuation to happen on the main thread to avoid deadlocks
2021-02-11 12:13:45 -08:00
Nora Trapp
ad19838ee2
Fix message processing perf tests
2021-02-10 17:13:21 -08:00
Matthew Chen
178711f3ce
Feature flags for .qa.
2021-02-05 18:50:31 -03:00
Matthew Chen
f7fbe56b79
Feature flags for .beta.
2021-02-05 18:50:02 -03:00
Matthew Chen
75c993549b
Feature flags for .production.
2021-02-05 18:39:56 -03:00
Matthew Chen
c72ab49160
Feature flags for .qa.
2021-02-05 18:35:35 -03:00
Matthew Chen
a87dadd8e1
Feature flags for .beta.
2021-02-05 18:35:30 -03:00
Matthew Chen
1b284b393d
Feature flags for .production.
2021-02-05 18:10:27 -03:00
Matthew Chen
70c8df3824
Feature flags for .qa.
2021-02-05 17:38:19 -03:00
Matthew Chen
55b0e8a136
Feature flags for .beta.
2021-02-05 17:38:15 -03:00
Matthew Chen
8aa24793c1
Feature flags for .production.
2021-02-05 17:38:07 -03:00
Matthew Chen
8434091ead
Respond to CR.
2021-02-05 17:20:52 -03:00
Matthew Chen
d43895bfa3
Respond to CR.
2021-02-05 17:04:04 -03:00
Matthew Chen
3f1dd1c872
Limit profile name component length to 26 glyphs.
2021-02-05 17:02:47 -03:00
Michelle Linington
ebdf67395e
Additional PR Feedback
...
Our stored avatars are still PNG. Fallback to the png content type and
file extension if the underlying data is png.
2021-02-05 11:11:20 -08:00
Michelle Linington
0b8a8bf864
PR Feedback
2021-02-05 11:07:08 -08:00
Michelle Linington
34e0f99cfd
Add additional validation group avatars we receive
...
Strengthens validation requirements for group avatars a user sets. Also,
checks these requirements on avatars we receive.
Introduces a data migration to drop any large group avatars.
This fixes an issue some users were reporting of jetsaming in the share
extension. All group avatars are stored in-memory on TSGroupModel.
Until we have a better strategy for memory management here, we'll want
to keep group avatars small.
2021-02-05 11:07:08 -08:00
Matthew Chen
09147ad10f
Fix application of extra headers.
2021-02-05 15:53:47 -03:00
Matthew Chen
2a4c3ace7b
Refine handling of "request approve" vs. "member added".
2021-02-05 15:03:42 -03:00
Matthew Chen
d99395299e
Rename group change classes.
2021-02-05 09:18:19 -03:00
Matthew Chen
82dd6446d1
Enforce max group name byte length.
2021-02-05 09:18:18 -03:00
Matthew Chen
d20c8f8f4e
Feature flags for .qa.
2021-02-04 11:30:31 -03:00
Matthew Chen
1bbd1ce583
Feature flags for .beta.
2021-02-04 11:30:23 -03:00
Matthew Chen
80c2604b10
Respond to CR.
2021-02-04 11:08:59 -03:00
Matthew Chen
856c5ac058
Use OWSURLSession when generating link previews.
2021-02-04 10:57:48 -03:00
Matthew Chen
e359de0aad
Merge branch 'release/5.3.3'
2021-02-04 10:57:26 -03:00
Matthew Chen
fe1f6d64f4
Enforce max attachment upload sizes more strictly.
2021-02-04 10:45:12 -03:00
Matthew Chen
cb43be6e60
Enforce max attachment upload sizes more strictly.
2021-02-04 10:45:12 -03:00
Matthew Chen
e171488dd8
Rework app readiness.
2021-02-04 09:55:39 -03:00
Matthew Chen
f7c4f10d69
Rework app readiness.
2021-02-04 09:55:39 -03:00
Matthew Chen
cce7a14e0c
Rework app readiness.
2021-02-04 09:55:39 -03:00
Matthew Chen
645bd76bd5
Rework app readiness.
2021-02-04 09:55:39 -03:00
Matthew Chen
d78daae895
Improve handling of missing group change protos.
2021-02-04 09:54:30 -03:00
Matthew Chen
3f3574f3fe
Respond to CR.
2021-02-03 09:47:34 -03:00
Matthew Chen
e85e0993aa
Disable OWSURLSession caches by default.
2021-02-03 09:42:59 -03:00
Matthew Chen
b636d29ead
Add logging around 413 errors.
2021-02-03 09:42:59 -03:00
Matthew Chen
4d9e78c423
Fetch profiles for dropped profiles when opening a thread.
2021-02-03 09:39:58 -03:00
Jordan Rose
f8b1985930
Bump the database schema version
2021-02-02 10:25:56 -08:00
Jordan Rose
dd35454f2c
SSK: In Swift code, always use Logger rather than OWSLogger
...
Logger includes the file/line information; OWSLogger does not.
2021-02-02 10:25:56 -08:00
Jordan Rose
6b334ff7e4
SSK: Begin storing sessions in serialized protobuf form
2021-02-02 10:25:56 -08:00
Jordan Rose
fefe43d91b
SSK: Adopt SignalClient.SessionRecord.hasCurrentState
2021-02-02 10:25:56 -08:00
Jordan Rose
27f9d4f62f
Don't fail trying to send a null message to an untrusted identity
...
In this case we have bigger problems than just a broken session, and
the user needs to manually trust the identity again (even if that's
just by sending a message themself)
2021-02-02 10:25:56 -08:00
Matthew Chen
86c70f6025
Feature flags for .qa.
2021-01-29 17:28:43 -03:00
Matthew Chen
8f85241753
Feature flags for .beta.
2021-01-29 17:28:36 -03:00
Matthew Chen
9c961b98b2
Fix accessibility in chat history items.
2021-01-29 16:43:02 -03:00
Matthew Chen
6c578e816f
Improve internal logging around manual migrations.
2021-01-29 11:18:13 -03:00
Jordan Rose
7fc6b2ef7f
SSK: propagate untrusted identity errors when ensuring sessions
...
Regression introduced in "Use SignalClient for message encryption"
2021-01-28 12:03:50 -08:00
Jordan Rose
e595090046
Rename SSKSessionStore.containsSession() to containsActiveSession()
2021-01-28 12:03:50 -08:00
Jordan Rose
c7b6ba7010
Make OWSAccountIdFinder's methods into class methods
...
OWSAccountIdFinder is no longer used for dependency injection in
SignalMetadataKit, so there's no need to allocate empty NSObjects just
to call the methods.
No functionality change.
2021-01-28 12:03:50 -08:00
Jordan Rose
4a86e60b82
SSKSessionStore: fix containsSession to check for an /active/ session
...
This is how it's being used: not just that you've /ever/ had a session
with a contact/device, but that you /currently/ have a session with
them.
2021-01-28 12:03:50 -08:00
Jordan Rose
f88e8e0838
SSKSessionStore: Only use AxolotlKit types when talking to the db
...
This puts up the facade for the future we'll eventually want: the
database contains serialized protobuf data, not AxolotlKit
SessionRecord objects. This also allows us to transparently handle
fetches when the database can contain *either* SessionRecords or
serialized data---we only need to check which we have.
2021-01-28 12:03:50 -08:00
Jordan Rose
05725078f1
SSK: Migrate SSKSessionStore to Swift
...
This is a no-change migration /except/ that I've dropped entry points
that are unused in the app or tests.
2021-01-28 12:03:50 -08:00
Jordan Rose
77da9dcf16
SSK: Remove -maxSessionSenderChainKeyIndexForAccountId:transaction:
...
This was the last part of SignalServiceKit that poked inside
AxolotlKit's SessionRecord, and SignalClient doesn't currently expose
the same information. However, it was only being used as a heuristic
for merging phone number and UUID contacts when you already had a
session with each, and this just won't happen anymore except in rare
circumstances. (Specifically, all messages will have UUIDs, so a UUID
contact is always more up to date.)
2021-01-28 12:03:50 -08:00
Jordan Rose
e435532474
SSK: Use SignalClient for session archive operations
...
For now, this means some extra translation between AxolotlKit and
SignalClient types, but it helps pave the way for lazily migrating the
database to store protobuf-serialized records instead of
NSCoding-archived ones.
2021-01-28 12:03:50 -08:00
Jordan Rose
d75ac75546
SSK: Account for reset sessions in SignalClient/AxolotlKit migration
2021-01-28 12:03:50 -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
45e888826a
SSK: Clean up uses of SignalClient now that EC*Key uses SignalClient
2021-01-28 12:03:50 -08:00
Jordan Rose
2b9aeb300e
Transition OWSMessageDecrypter to SignalClient
...
This is the last bit of code that uses AxolotlKit.SessionCipher!
2021-01-28 12:03:50 -08:00
Jordan Rose
645cefcd47
Accomodate differences in UUID formatting checking cert validity
2021-01-28 12:03:50 -08:00
Jordan Rose
ebaf8c2238
Update for SignalClient.StoreContext
2021-01-28 12:03:50 -08:00
Jordan Rose
1ea62f2f50
SSK: Update for 'throws' removal in SignalClient
2021-01-28 12:03:50 -08:00
Jordan Rose
faccd52d93
SSK: Remove workaround from before Curve25519Kit adopted SignalClient
2021-01-28 12:03:50 -08:00
Jordan Rose
aeb78527ea
SSK: Update for removal of SMK{Sender,Server}Certificate
2021-01-28 12:03:50 -08:00
Jordan Rose
4219c597b9
Fix inverted check (== instead of !=)
2021-01-28 12:03:50 -08:00
Jordan Rose
f8c2b764a2
Update for the removal of SMKEnvironment
2021-01-28 12:03:50 -08:00
Jordan Rose
833bff8889
Use SignalClient for message encryption
...
And update for SMKSecretSessionCipher's adoption of SignalClient as
well.
2021-01-28 12:03:50 -08:00
Jordan Rose
07c20a5f6f
Rename the SignalClient test protocol to avoid conflicts
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
Jordan Rose
1c77cc381c
SSK: Use a named constant for provisioning cipher info data
2021-01-28 12:03:49 -08:00
Jordan Rose
afcfff317f
SSK: Convert OWSProvisioningCipher to Swift for SignalClient HKDF
2021-01-28 12:03:49 -08:00
Jordan Rose
f7198339ab
SSK: Move RemoteAttestation HKDF use to Swift/SignalClient
2021-01-28 12:03:49 -08:00
Jordan Rose
c620707091
SSK: Switch from HKDFKit to SignalClient.hkdf(...) in Swift sources
2021-01-28 12:03:49 -08:00
Jordan Rose
1705f36669
SSK: Add a test for sticker decryption
2021-01-28 12:03:49 -08:00
Matthew Chen
f1b6c93903
Improve "group update info message" copy when joining group via group link.
2021-01-28 11:34:17 -03:00
Matthew Chen
671272d56f
Merge branch 'release/5.3.2'
2021-01-27 16:56:19 -03:00
Matthew Chen
6c5167606e
Feature flags for .qa.
2021-01-27 16:42:43 -03:00
Matthew Chen
caf7ff266c
Feature flags for .production.
2021-01-27 16:42:34 -03:00
Matthew Chen
a727ed9db3
Feature flags for .beta.
2021-01-27 16:42:14 -03:00
Matthew Chen
99034619be
Fix rare crash around downloading quoted thumbnails.
2021-01-27 14:19:21 -03:00
Matthew Chen
90df86ba7a
Protect oversize text messages from auto-download settings.
2021-01-27 11:35:10 -03:00
Matthew Chen
d2e6058ef6
Fix "empty snippet" issue in conversation list view.
2021-01-27 10:08:49 -03:00
Matthew Chen
57b7461848
Fix "empty snippet" issue in conversation list view.
2021-01-27 09:59:04 -03:00
Matthew Chen
5a1d4488ec
Respond to CR.
2021-01-27 09:58:17 -03:00
Matthew Chen
7327002125
Create a new GRDB storage adapter after grdb schema migrations.
2021-01-27 09:45:12 -03:00
Matthew Chen
1be46d20bd
Create a new GRDB storage adapter after grdb schema migrations.
2021-01-27 09:45:12 -03:00
Matthew Chen
d82b6f8250
Create a new GRDB storage adapter after grdb schema migrations.
2021-01-27 09:45:12 -03:00
Matthew Chen
584a638993
Create a new GRDB storage adapter after grdb schema migrations.
2021-01-27 09:45:12 -03:00
Jordan Rose
65cbcca821
Ignore message transcripts for null messages
...
This can happen when your primary device has used a null message to
reset a session and your secondary device gets it via sync.
2021-01-25 17:05:49 -08:00
Nora Trapp
f1f788c05c
Feature flags for .qa.
2021-01-25 16:34:45 -08:00
Nora Trapp
aacaa09faa
Feature flags for .production.
2021-01-25 16:34:32 -08:00
Matthew Chen
9a17bff403
Use nickname in group short names, part 2.
2021-01-25 15:14:43 -08:00
Matthew Chen
4df4700f63
Use nickname in group short names, part 2.
2021-01-25 15:14:43 -08:00
Matthew Chen
77b2ad834f
Use nickname in group short names, part 1.
2021-01-25 15:14:43 -08:00
Matthew Chen
279b5778af
Fix crash in OWSURLSession.
2021-01-25 15:12:23 -08:00
Matthew Chen
1902e7656c
Fix broken test.
2021-01-25 19:39:40 -03:00
Nora Trapp
05efbd07e5
Feature flags for .qa.
2021-01-23 22:13:58 -08:00
Nora Trapp
5ddfb0468f
Feature flags for .beta.
2021-01-23 22:13:51 -08:00
Nora Trapp
4f2978cb32
Feature flags for .production.
2021-01-23 22:13:43 -08:00
Matthew Chen
34b6da7b2f
Fix build warnings; fix crash around url session errors.
2021-01-23 23:10:54 -03:00
Matthew Chen
b890fdeed8
Fix build warnings.
2021-01-23 22:45:33 -03:00
Nora Trapp
cb8d0afb66
Feature flags for .qa.
2021-01-23 16:00:50 -08:00
Nora Trapp
0682f957d5
Feature flags for .beta.
2021-01-23 15:59:25 -08:00
Nora Trapp
9dbe47b1aa
PR Feedback
2021-01-23 11:13:15 -08:00
Nora Trapp
8dd274cf8e
Consolidate blurring logic
2021-01-23 11:13:15 -08:00
Nora Trapp
40a605b97d
Normalize images before getting pixel size
2021-01-23 11:13:15 -08:00
Michelle Linington
8d884c8ff5
Rename strong reference property to satisfy swift lint
...
Calling it "strongDelegate" tricks swift lint into correcting the
property to be weak. Renamed it "strongReference" to work around this.
2021-01-23 10:38:41 -08:00
Michelle Linington
1ddef2bc3a
Fixes a leak in OWSURLSession
...
NSURLSession maintains a strong reference to its delegate and requires
explicit invalidation to clean up its state, otherwise it leaks memory.
This change introduces an proxy delegate for the underlying
NSURLSession. OWSURLSession retains the NSURLSession, NSURLSession
retains the proxy delegate.
The proxy delegate will retain the OWSURLSession and create a retain
cycle only while there are outstanding URLSessionTasks. Once all tasks
have been resolved, the cycle is broken and everything will be dealloced
(assuming no external references to the OWSURLSession still exist).
2021-01-23 10:38:41 -08:00
Nora Trapp
3cc4f6d67b
Feature flags for .qa.
2021-01-22 19:19:33 -08:00
Nora Trapp
76bd3553b9
Feature flags for .beta.
2021-01-22 19:19:24 -08:00
Matthew Chen
4aca268be1
Profile bio refinements.
2021-01-22 23:28:35 -03:00
Michelle Linington
593cb20482
Remove sticker tooltip
2021-01-22 13:51:50 -08:00
Nora Trapp
cc8a84d7c8
Feature flags for .qa.
2021-01-22 13:21:46 -08:00
Nora Trapp
e5ab34a4ae
Feature flags for .beta.
2021-01-22 13:21:37 -08:00
Nora Trapp
f3ed06f20d
Feature flags for .qa.
2021-01-22 10:26:04 -08:00
Nora Trapp
53decba6d6
Feature flags for .beta.
2021-01-22 10:25:57 -08:00
Matthew Chen
81c5d61f92
Improve upload progress.
2021-01-22 10:24:36 -08:00
Matthew Chen
f10cfc8533
Fix over-zealous assert around de-deduplicating group membership.
2021-01-22 10:24:36 -08:00
Matthew Chen
8c6efe8a1d
Only show sticker tooltip if sticker pack installed on linked device.
2021-01-22 10:24:35 -08:00
Nora Trapp
750a1ef98d
Feature flags for .qa.
2021-01-21 20:30:09 -08:00
Nora Trapp
cbe3c519ee
Feature flags for .beta.
2021-01-21 20:29:21 -08:00
Nora Trapp
980fedc6dd
Show sharing suggestions megaphone on linked devices
2021-01-21 20:00:52 -08:00
Nora Trapp
35db1c05a5
Add privacy setting to disable sharing suggestions
2021-01-21 20:00:52 -08:00
Nora Trapp
7230dabbc8
Add support for sharing suggestions
2021-01-21 20:00:29 -08:00
Nora Trapp
2c0f7d668c
Feature flags for .qa.
2021-01-21 18:42:38 -08:00
Nora Trapp
5d848752af
Feature flags for .beta.
2021-01-21 18:42:31 -08:00
Matthew Chen
143ab9d268
Refine sending of null message after session reset.
2021-01-21 18:31:47 -08:00
Matthew Chen
d2ffe52943
Refine sending of null message after session reset.
2021-01-21 18:31:47 -08:00
Matthew Chen
1546fbe72a
Use dynamic type in contact cell subtitles.
2021-01-21 22:32:42 -03:00
Matthew Chen
2fd7da2265
Fix GRDB schema migration.
2021-01-21 22:31:09 -03:00
Matthew Chen
fe85746aaf
Small fixes.
2021-01-21 22:31:08 -03:00
Matthew Chen
d0985f43fe
Refine handling of unverified safety number changes.
2021-01-21 22:31:08 -03:00
Matthew Chen
d3eb77d6d3
Refine handling of unverified safety number changes.
2021-01-21 22:31:08 -03:00
Matthew Chen
23857a6a0c
Refine handling of unverified safety number changes.
2021-01-21 22:31:08 -03:00
Matthew Chen
01039fbc5c
Refine handling of unverified safety number changes.
2021-01-21 22:31:08 -03:00
Matthew Chen
1cdaa74eae
Add builder for error messages.
2021-01-21 22:31:08 -03:00
Nora Trapp
e1ce224928
PR Feedback
2021-01-21 17:00:18 -08:00
Nora Trapp
ba8c43cb9b
wallpaper settings
2021-01-21 17:00:17 -08:00
Michelle Linington
52ffb5492a
Fix tests
2021-01-21 16:21:59 -08:00
Michelle Linington
e06d9d1f6e
PR Feedback
2021-01-21 16:20:40 -08:00
Michelle Linington
8fa45c7df9
Reduce unnecessary table loads in ManageStickersViewController
2021-01-21 16:20:35 -08:00
Michelle Linington
bfe76a3d34
Reduce profile avatar size cap
...
The server was rejecting 4 MB data blobs. Reduced down to something the
server handles. This is such an extreme size for a png that we'll
likely never hit it.
2021-01-21 16:17:25 -08:00
Michelle Linington
40e785cd6a
Lint
2021-01-21 16:17:24 -08:00
Michelle Linington
f996a732d8
Show tapped avatar in conversation settings full screen
2021-01-21 16:17:24 -08:00
Matthew Chen
ecf85462ae
Respond to CR.
2021-01-21 21:07:59 -03:00
Matthew Chen
8aaea5ea2d
Refine file size formatting.
2021-01-21 21:05:41 -03:00
Matthew Chen
7b5785fce8
Reuse media views.
2021-01-21 21:00:36 -03:00
Matthew Chen
ce7f557158
Skip media downloads during calls.
2021-01-21 20:56:10 -03:00
Matthew Chen
0e6b32f4ed
Overhaul attachment downloads pipeline.
2021-01-21 20:41:08 -03:00
Matthew Chen
a25d29aa6f
Overhaul attachment downloads pipeline.
2021-01-21 20:41:08 -03:00
Matthew Chen
5b3ee89f7c
Overhaul attachment downloads pipeline.
2021-01-21 20:41:08 -03:00
Matthew Chen
41cfab7585
Overhaul attachment downloads pipeline.
2021-01-21 20:41:08 -03:00
Matthew Chen
3e71eb4cd5
Overhaul attachment downloads pipeline.
2021-01-21 20:41:08 -03:00
Matthew Chen
22156a93fe
Update attachment progress UI appearance. Overhaul OWSURLSession completion handling.
2021-01-21 20:41:06 -03:00
Matthew Chen
29837b4bae
Allow cancellation of attachment downloads.
2021-01-21 20:40:24 -03:00
Matthew Chen
0611ddf549
Allow cancellation of attachment downloads.
2021-01-21 20:40:24 -03:00
Matthew Chen
edf37e47a8
Allow cancellation of attachment downloads.
2021-01-21 20:40:24 -03:00
Matthew Chen
38261e1707
Port attachment downloads logic to Swift.
2021-01-21 20:40:24 -03:00
Matthew Chen
b858e495fb
Port attachment downloads logic to Swift.
2021-01-21 20:40:24 -03:00
Matthew Chen
4530341036
Port attachment downloads logic to Swift.
2021-01-21 20:40:24 -03:00
Matthew Chen
025fc61cd7
Port attachment downloads logic to Swift.
2021-01-21 20:40:24 -03:00
Matthew Chen
aeb94d48c1
Improve attachment progress indicators.
2021-01-21 20:40:23 -03:00
Matthew Chen
e77861ddbb
Fix race in model read cache.
2021-01-21 20:36:47 -03:00
Matthew Chen
933693e78a
Add animated sticker pack.
2021-01-21 20:17:02 -03:00
Matthew Chen
6f97a31dae
Remove feature flag for profile changes.
2021-01-21 17:58:21 -03:00
Matthew Chen
e1e93b5b31
Hide profile name length and about/bio behind feature flag.
2021-01-20 17:07:34 -03:00
Matthew Chen
2ba0f06ac5
Hide profile name length and about/bio behind feature flag.
2021-01-20 17:07:33 -03:00
Jordan Rose
7748420b82
SSK: (re-)unify the decision of whether to notify for an interaction
2021-01-19 11:24:14 -08:00
Jordan Rose
f5a3b53e54
SSK: Don't notify / mark unread for people leaving the group
2021-01-19 11:18:10 -08:00
Nora Trapp
aaf512687f
Feature flags for .qa.
2021-01-16 13:25:34 -08:00
Nora Trapp
4e0a2bbecf
Merge branch 'release/5.2.1' into release/5.3.0
2021-01-16 13:15:06 -08:00
Nora Trapp
c0b1d93735
Feature flags for .beta.
2021-01-16 13:05:09 -08:00
Nora Trapp
39043a66a2
Feature flags for .production.
2021-01-16 13:04:44 -08:00
Matthew Chen
f930339a6d
Fix quoted reply of animated stickers.
2021-01-16 13:02:53 -08:00
Nora Trapp
604041e822
Increase sticker size limits to match Android.
2021-01-16 12:38:41 -08:00
Jordan Rose
e269097ed6
SSK: Flush DispatchQueue.main after every test
...
There are a lot of events that get dispatched onto the main queue
(often /from/ the main queue), and processing them during the setup
for the subsequent test can cause problems. In particular, the
notification for setting up a local number in -[OWSMessageManagerTest
test_GroupUpdate] was occasionally being processed in the subsequent
-test_GroupUpdateWithAvatar, depending on how long GRDB took to set up
in the second test.
2021-01-16 12:38:14 -08:00
Nora Trapp
449b596e95
Add kill switch for automatic session reset
2021-01-16 11:57:23 -08:00
Michelle Linington
3b4c656cca
Precommit script
2021-01-14 23:37:18 -08:00
Michelle Linington
df824254a0
Add low bandwidth mode setting for calls
...
- New setting in data settings to enable low bandwidth mode for different
network interfaces
- Call service now informs RingRTC of preferred bandwidth mode on call
connect and reachability changes
2021-01-14 23:37:18 -08:00
Nora Trapp
1939802225
Increase sticker size limits to match Android.
2021-01-14 23:18:10 -08:00
Matthew Chen
d66a9fb4ac
Respond to CR.
2021-01-14 22:32:13 -03:00
Matthew Chen
7c5d769f8b
Design tweaks.
2021-01-14 22:27:01 -03:00
Matthew Chen
cb86af7700
Fix typo from spec.
2021-01-14 22:25:47 -03:00
Matthew Chen
470af11295
Respond to CR.
2021-01-14 22:25:46 -03:00
Matthew Chen
237bf31d3d
Display profile bio.
2021-01-14 22:25:45 -03:00
Matthew Chen
3bb5f0777b
Add profile bio fields to database schema.
2021-01-14 22:25:45 -03:00
Matthew Chen
156e504446
Add profile bio view.
2021-01-14 22:25:44 -03:00
Matthew Chen
1d9a4dac27
Update profile fetches to support bio + bioEmoji.
2021-01-14 22:25:44 -03:00
Matthew Chen
fc43edbb6b
Update profile updates to support bio + bioEmoji.
2021-01-14 22:25:44 -03:00
Jordan Rose
7b1b8772d1
SSK: Treat two more errors as "network failure"
...
This avoids a spurious owsFailDebug.
2021-01-14 16:38:37 -08:00
Jordan Rose
75f179f572
SSK: Flush DispatchQueue.main after every test
...
There are a lot of events that get dispatched onto the main queue
(often /from/ the main queue), and processing them during the setup
for the subsequent test can cause problems. In particular, the
notification for setting up a local number in -[OWSMessageManagerTest
test_GroupUpdate] was occasionally being processed in the subsequent
-test_GroupUpdateWithAvatar, depending on how long GRDB took to set up
in the second test.
2021-01-14 16:37:53 -08:00
Matthew Chen
c6f7255d76
Improve logging around dropped incoming messages.
2021-01-14 18:59:56 -03:00
Nora Trapp
ed6b8c1f42
Feature flags for .qa.
2021-01-12 21:46:47 -08:00
Nora Trapp
dbdafeea3e
Feature flags for .beta.
2021-01-12 21:46:40 -08:00
Nora Trapp
1f05c908c2
Feature flags for .production.
2021-01-12 21:46:32 -08:00
Nora Trapp
444090f4b0
Don't show mutual groups for deleted threads
2021-01-12 20:35:10 -08:00
Nora Trapp
71b9f51e12
Ignore mutual groups where the local user is not a member or the remote user is not a full member.
2021-01-12 18:10:49 -08:00
Nora Trapp
1dff600b1a
Feature flags for .beta.
2021-01-12 17:33:30 -08:00
Matthew Chen
7fd6dfbca0
Fix build break.
2021-01-12 21:53:16 -03:00
Nora Trapp
806dbd7257
Replace decryption errors with single 'session refresh' message
2021-01-12 16:45:35 -08:00
Nora Trapp
4c9163c740
Remotely control full intersection interval
2021-01-12 16:39:33 -08:00
Michelle Linington
69e1963588
Precommit script
2021-01-12 16:29:30 -08:00
Michelle Linington
7e9639f737
Actually post the notification
2021-01-12 16:29:29 -08:00
Michelle Linington
7694423c4d
Add a preference for contact/profile avatars
2021-01-12 16:29:29 -08:00
Matthew Chen
3780aaaadf
Refine auto-download defaults.
2021-01-12 21:05:05 -03:00
Matthew Chen
d5b902908a
Refine the attachment download indicators.
2021-01-12 20:52:23 -03:00
Michelle Linington
e850e38401
Update the link preview user agent
...
There have been reports of some websites not vending link preview
content because of an invalid user agent. Including a version seems to
fix this.
2021-01-12 15:08:34 -08:00
Matthew Chen
4926427572
Respond to CR.
2021-01-12 19:28:17 -03:00
Matthew Chen
621685185e
Add auto-download settings for media.
2021-01-12 19:28:16 -03:00
Matthew Chen
ccc3903b6d
Add auto-download settings for media.
2021-01-12 19:28:16 -03:00
Matthew Chen
875491a7cd
Add auto-download settings for media.
2021-01-12 19:28:16 -03:00
Matthew Chen
5abf846809
Add auto-download settings for media.
2021-01-12 19:28:16 -03:00
Matthew Chen
75f6d8b60c
Add auto-download settings for media.
2021-01-12 19:28:15 -03:00
Matthew Chen
5326d876a6
Add auto-download settings for media.
2021-01-12 19:28:15 -03:00
Matthew Chen
e85efa8a5e
Add auto-download settings for media.
2021-01-12 19:28:15 -03:00
Matthew Chen
6f3c92dedd
Add auto-download settings for media.
2021-01-12 19:28:15 -03:00
Matthew Chen
d4e59dd96c
Add auto-download settings for media.
2021-01-12 19:28:14 -03:00
Matthew Chen
252e8425ab
Add auto-download settings for media.
2021-01-12 19:28:14 -03:00
Matthew Chen
48cdf3b4e4
Add auto-download settings for media.
2021-01-12 19:28:14 -03:00
Matthew Chen
380a6895eb
Tweak max group name length.
2021-01-12 19:20:49 -03:00
Matthew Chen
68b68fdf04
Group link promotion.
2021-01-12 15:51:38 -03:00
Matthew Chen
03c21253e4
Group link promotion.
2021-01-12 15:51:05 -03:00
Matthew Chen
a53d15be65
Refine log levels.
2021-01-11 23:02:28 -03:00
Matthew Chen
c7d0899a0a
Elaborate logging around image validation.
2021-01-11 23:01:24 -03:00
Matthew Chen
c0c6683c61
Merge branch 'release/5.1.0'
2021-01-07 16:44:04 -03:00
Matthew Chen
4e1ebc1dde
Feature flags for .qa.
2021-01-07 16:36:25 -03:00
Matthew Chen
7c353c01d0
Feature flags for .production.
2021-01-07 16:36:14 -03:00
Matthew Chen
65edf777f9
Feature flags for .beta.
2021-01-07 16:35:57 -03:00
Matthew Chen
40447928a1
Respond to CR.
2021-01-07 14:22:59 -03:00
Matthew Chen
41fc17acf3
Add logging around remote attestation verification.
2021-01-07 14:18:50 -03:00
Matthew Chen
b64503cce2
Clean up.
2021-01-07 14:18:50 -03:00
Matthew Chen
9e5c6e3732
Add logging around remote attestation verification.
2021-01-07 14:18:50 -03:00
Matthew Chen
83ee5636b4
Surface group updates exception group migrations in the inbox snippet.
2021-01-07 14:18:50 -03:00
Matthew Chen
a30fca9aaa
Fix spurious assert around comparing group models with dropped members.
2021-01-07 14:18:50 -03:00
Nora Trapp
ae0736a8e8
Wait to reset again until initial message queue has been drained
2021-01-05 17:41:13 -08:00
Nora Trapp
ce8170f6b1
Automatic session reset
2021-01-05 17:41:13 -08:00
Matthew Chen
59c1e4743a
Feature flags for .qa.
2021-01-05 17:58:26 -03:00
Matthew Chen
61c5bdcc9f
Feature flags for .beta.
2021-01-05 17:58:02 -03:00
Matthew Chen
0111224576
Merge branch 'release/5.1.0'
2021-01-05 17:54:30 -03:00
Matthew Chen
12a61511ab
Merge remote-tracking branch 'private/release/5.1.0'
2021-01-04 22:54:46 -03:00
Matthew Chen
96ba7060d7
Enable manual group migrations for internal users.
2021-01-04 16:04:47 -03:00
Matthew Chen
ddb07f1acc
Feature flags for .qa.
2020-12-30 16:04:57 -03:00
Matthew Chen
67f66d997c
Feature flags for .beta.
2020-12-30 16:04:26 -03:00
Matthew Chen
f7ec15b808
Refine query filtering.
2020-12-23 18:14:32 -03:00
Nora Trapp
381492d11d
Enable linked phones for internal builds
2020-12-23 12:01:03 -08:00
Matthew Chen
d7ffe46168
Merge branch 'release/5.1.0'
2020-12-23 14:33:36 -03:00
Matthew Chen
bb8267eeab
Feature flags for .qa.
2020-12-23 14:22:44 -03:00
Matthew Chen
1083d4d08b
Feature flags for .beta.
2020-12-23 14:22:17 -03:00
Matthew Chen
3e9c81d394
Fix "last admin leaves group."
2020-12-23 14:19:43 -03:00
Michelle Linington
81b06025aa
IOS-999: Issues sending/receiving still webp images on iOS
...
Metadata stripping relies on CoreGraphics, but CoreGraphics doesn't
support WebP. When attempting to send a static WebP, we fail to send
because we fail to strip metadata.
We should account for this by checking the destination formats
CoreGraphics supports. If it doesn't support the type we're trying to
strip, we'll fall back to just converting it to png/jpeg.
2020-12-22 14:22:34 -08:00
Nora Trapp
b6cb720ffe
Keep signed prekeys for 30 days
2020-12-22 12:37:59 -08:00
Matthew Chen
ad1590dc8e
Merge remote-tracking branch 'private/release/5.1.0'
2020-12-22 13:19:47 -03:00
Matthew Chen
898355731e
Feature flags for .qa.
2020-12-19 08:25:22 -03:00
Matthew Chen
84e52a7c07
Feature flags for .beta.
2020-12-19 08:24:52 -03:00
Nora Trapp
a0992b9857
Eliminate usage of unsaved SignalRecipients
2020-12-18 19:15:07 -08:00
Matthew Chen
1b508556d4
Respond to CR.
2020-12-18 11:24:40 -03:00
Matthew Chen
fc003412cd
Improve landing of loads.
2020-12-18 11:20:49 -03:00
Matthew Chen
cb3624b612
DRY up handling of network failures.
2020-12-18 11:20:49 -03:00
Matthew Chen
27e3046ab4
Ensure audio waveform view adapts to large widths.
2020-12-18 11:07:36 -03:00
Matthew Chen
8f93df9e85
Respond to CRs.
2020-12-18 10:47:57 -03:00
Nora Trapp
3c7fd4d4fe
Feature flags for .qa.
2020-12-15 16:15:12 -08:00
Nora Trapp
d151cd1158
Feature flags for .beta.
2020-12-15 16:15:03 -08:00
Nora Trapp
6bac60474d
Enable usernames and phone number privacy for internal builds
2020-12-15 16:14:55 -08:00
Nora Trapp
fda61469ce
Feature flags for .qa.
2020-12-15 11:57:50 -08:00
Nora Trapp
01a3a57dea
Feature flags for .beta.
2020-12-15 11:54:24 -08:00
Matthew Chen
be1b502367
Feature flags for .qa.
2020-12-15 11:29:31 -03:00
Matthew Chen
a9e04009d8
Feature flags for .beta.
2020-12-15 11:29:23 -03:00
Matthew Chen
4ba64c78af
Fix "mark as read" for early read receipts.
2020-12-15 11:15:24 -03:00
Nora Trapp
19a9d1414b
Merge branch 'release/5.0.2'
2020-12-11 18:19:30 -08:00
Nora Trapp
5409063ac5
Add megaphone for group calls
2020-12-11 15:24:11 -08:00
Nora Trapp
b5cf5d9cd8
Change group calling to a remote kill switch
2020-12-11 15:09:03 -08:00
Michelle Linington
80c6a4e6be
Add support for lightweight generics in ObjC functional utilities
...
NSArray supports lightweight generics in ObjC. Our extension on NSArray
for map/filter/reduce does not. This change tweaks the interface to
better support generics.
Also, fixes some tests that weren't compiling.
2020-12-11 12:30:44 -08:00
Matthew Chen
b3f93cdc88
Fix broken tests.
2020-12-11 16:33:38 -03:00
Matthew Chen
62856840da
Clean up codebase.
2020-12-10 13:17:24 -03:00
Matthew Chen
567b7da669
Feature flags for .qa.
2020-12-10 12:45:20 -03:00
Matthew Chen
111338b59d
Rewrite conversation view.
2020-12-10 12:44:13 -03:00
Nora Trapp
c05e83fad7
Feature flags for .production.
2020-12-08 23:41:47 -08:00
Nora Trapp
60eae16b6b
Enable gv2 migration for production
2020-12-08 23:41:39 -08:00
Nora Trapp
542dc33c8e
Feature flags for .beta.
2020-12-08 17:52:56 -08:00
Nora Trapp
a6fd784dbd
Feature flags for .production.
2020-12-08 17:47:40 -08:00
Nora Trapp
fb595d0e64
Use remote config for group calling
2020-12-07 15:43:59 -08:00
Michelle Linington
1beb51582a
IOS-987: Update copy for calls started by local user
...
Reported as untranslatable here:
https://community.signalusers.org/t/beta-feedback-for-the-upcoming-ios-3-23-release/18507/37
2020-12-03 17:16:26 -08:00
Nora Trapp
079530a793
Feature flags for .qa.
2020-12-02 15:49:01 -08:00