Commit graph

1447 commits

Author SHA1 Message Date
Matthew Chen
622c0c3f5f * Add debug UI tools for clearing and logging the profile whitelist.
* Auto-add new contact threads to profile whitelist when local user sends first message to that thread.
* Ensure dynamic interactions have a non-negative timestamp even if the conversation was empty.
* Only call updateMessageMappingRangeOptions _after_ beginLongLivedReadTransaction and updating messageMappings.
* Improve documentation around how to avoid corrupt mappings in conversation view.
* Fix edge cases around large initial range sizes.
* Always treat dynamic interactions as read.
* Rebuild the “unseen” database views to remove dynamic interactions (see above).

// FREEBIE
2017-08-17 11:22:25 -04:00
Matthew Chen
d476bc286d * Add debug UI tools for clearing and logging the profile whitelist.
* Auto-add new contact threads to profile whitelist when local user sends first message to that thread.
* Ensure dynamic interactions have a non-negative timestamp even if the conversation was empty.
* Only call updateMessageMappingRangeOptions _after_ beginLongLivedReadTransaction and updating messageMappings.
* Improve documentation around how to avoid corrupt mappings in conversation view.
* Fix edge cases around large initial range sizes.
* Always treat dynamic interactions as read.
* Rebuild the “unseen” database views to remove dynamic interactions (see above).

// FREEBIE
2017-08-17 11:22:25 -04:00
Michael Kirk
7499b3aaf0 Avatar API integration / WIP crypto scheme
Crypto Scheme:

- Name (un)padding
- WIP AES-GCM (funtioning, but need to verify against android
  implementation, and tag functionality)

Changes to avatar API:

- hard code avatar domain (cdn.signal.org)
- avatar form hands out new avatar key, invalidating old avatar
- preliminary aes-gcm integration

Also:

- New type to represent AES128 keys, rather than passing around opaque
  data blobs everywhere, we can use the compiler to help us make sure
  we're passing compliant keying material.

- Started using factory pattern for API requests. This is intended to be
  a lighter weight way to implement new API requests, rather than the
  current 1-method class ceremony.

// FREEBIE
2017-08-14 12:45:37 -04:00
Michael Kirk
72b3f3779b Discard GroupInfoRequest from unknown group
// FREEBIE
2017-08-08 12:17:26 -04:00
Matthew Chen
e01fbc247e Refine profile logic.
// FREEBIE
2017-08-04 17:35:22 -04:00
Matthew Chen
98def41782 Respond to CR.
// FREEBIE
2017-08-04 17:33:16 -04:00
Matthew Chen
823927685d Update profile on service.
// FREEBIE
2017-08-04 15:25:17 -04:00
Matthew Chen
83e2fbe28c Rework where profile key is attached in photos.
// FREEBIE
2017-08-04 15:23:17 -04:00
Matthew Chen
b5fdc05b91 Move profile key to data, call, sync and null protos.
// FREEBIE
2017-08-04 15:23:02 -04:00
Matthew Chen
37ce388eb6 Add “add to profile whitelist” offer.
// FREEBIE
2017-08-04 15:23:02 -04:00
Michael Kirk
f99d4e9df9 Merge branch 'hotfix/2.15.2' 2017-08-04 13:11:53 -04:00
Michael Kirk
3856f3dfb1 Improve asserts/logging
// FREEBIE
2017-08-04 12:14:43 -04:00
Matthew Chen
6ec756de44 Move profile manager to Signal.
// FREEBIE
2017-08-04 09:45:33 -04:00
Matthew Chen
540a0a8e48 Refine UserProfile class. Move local user properties to UserProfile.
// FREEBIE
2017-08-04 09:45:33 -04:00
Michael Kirk
8a4712bf4c Only access localNumber on AccountManager and cache it
// FREEBIE
2017-08-03 13:27:09 -04:00
Matthew Chen
539490ee19 Respond to CR.
// FREEBIE
2017-08-03 12:05:53 -04:00
Matthew Chen
d7f275ce73 Add accessor for other users’ profile names.
// FREEBIE
2017-08-02 10:50:44 -04:00
Matthew Chen
aa6312b586 DRY up and refine the logic to attach the local profile key to outgoing messages.
// FREEBIE
2017-08-02 10:50:44 -04:00
Matthew Chen
26b668cce7 Add profile key to proto schema. Send and receive profile keys. Cache profile manager state.
// FREEBIE
2017-08-02 10:50:44 -04:00
Matthew Chen
e58358ce53 Add profile key to content proto schema.
// FREEBIE
2017-08-02 10:50:44 -04:00
Matthew Chen
a3b16812ec Add convenience category for YapDatabaseConnection.
// FREEBIE
2017-08-02 10:38:23 -04:00
Matthew Chen
4be706caf5 Add convenience category for YapDatabaseConnection.
// FREEBIE
2017-08-02 10:38:23 -04:00
Matthew Chen
0bd23345a1 Sketch out the profile view.
// FREEBIE
2017-08-01 16:17:59 -04:00
Matthew Chen
63e20cd8bb Sketch out profile manager.
// FREEBIE
2017-08-01 11:41:55 -04:00
Michael Kirk
4bf407a24f fix some compiler warnings
// FREEBIE
2017-07-31 11:56:47 -04:00
Michael Kirk
a196693425 Make sure DB views are ready before kicking processing job
// FREEBIE
2017-07-28 17:12:47 -04:00
Michael Kirk
0b38b46683 remove unnecessary dispatch
// FREEBIE
2017-07-28 17:12:47 -04:00
Michael Kirk
6a5c6a9fc9 didBecomeActive kicks the processing queue
// FREEBIE
2017-07-28 17:12:47 -04:00
Michael Kirk
1066089980 Fix thread explosion
Without this, when the user has a large message queue to process, things
slow to a crawl as we spew more and more threads. Since it's on a serial
queue anyway, there's no need to have multiple threads executing this
code.

// FREEBIE
2017-07-28 17:12:47 -04:00
Matthew Chen
8e628a6296 Hide empty conversations in home view.
// FREEBIE
2017-07-27 15:40:19 -04:00
Matthew Chen
f1807cd709 Add script to extract and gather analytics event names.
// FREEBIE
2017-07-27 12:29:05 -04:00
Michael Kirk
91ad2ec32b Properly handle too-large messages
1. Take note of any large messages.
2. If they are way too large, we just drop them on the floor.

// FREEBIE
2017-07-27 11:37:10 -04:00
Matthew Chen
f973af5a83 Streamline analytics properties.
// FREEBIE
2017-07-27 10:16:16 -04:00
Michael Kirk
3f4dcecf15 ensure blocking keychange message has identityKey before proceeding
This is increasingly irrelevant due to recent safety number changes, but
legacy clients with old messages can still run into this.

FIXES: https://github.com/WhisperSystems/Signal-iOS/issues/2346

// FREEBIE
2017-07-26 16:00:32 -04:00
Michael Kirk
eafc370bbe CR: move property to method to clearly avoid Mantle serialization
Also some formatting cleanup and extra asserts

// FREEBIE
2017-07-26 14:29:56 -04:00
Michael Kirk
4d8429186d Store undecrypted envelopes before doing any processing.
This lets us clear the server side queue immediately, and paves the way
for retry, give up logic.

// FREEBIE
2017-07-26 14:29:56 -04:00
Matthew Chen
fa7a2407bf Respond to CR.
// FREEBIE
2017-07-24 16:20:00 -04:00
Matthew Chen
543c05b2c5 Add a “critical” severity level for analytics events.
// FREEBIE
2017-07-24 16:13:59 -04:00
Matthew Chen
2418baec15 Respond to CR.
// FREEBIE
2017-07-24 16:13:22 -04:00
Matthew Chen
9587aab37b Instrument network errors.
// FREEBIE
2017-07-24 16:05:39 -04:00
Matthew Chen
117bca7c48 Instrument errors in app delegate.
// FREEBIE
2017-07-24 16:05:39 -04:00
Matthew Chen
19c0a7ad7c Instrument errors in message sender.
// FREEBIE
2017-07-24 16:05:39 -04:00
Matthew Chen
e168db79aa Instrument errors in message manager.
// FREEBIE
2017-07-24 16:05:39 -04:00
Michael Kirk
6e19c1aae8 Don't crash when messaging user with malformed profile
// FREEBIE
2017-07-24 13:01:43 -04:00
Matthew Chen
64a99c63b3 [SSK] Migrating changes from obsolete SSK repo.
// FREEBIE
2017-07-21 15:08:37 -04:00
Matthew Chen
4f5b2993b0 [SSK] Migrating changes from obsolete SSK repo.
// FREEBIE
2017-07-21 14:55:31 -04:00
Michael Kirk
ccb4a88742 Import SSK (and history) into Signal-iOS
git remote add ssk ../SignalServiceKit
git remote update
git merge -s ours --allow-unrelated-histories --no-commit ssk/master
git read-tree --prefix=SignalServiceKit -u ssk/master
git commit
2017-07-21 13:55:01 -04:00