Commit graph

110 commits

Author SHA1 Message Date
Michael Kirk bde40a1f9c Ensure avatar upates right after profile change.
// FREEBIE
2017-08-25 12:40:19 -04:00
Matthew Chen 703b348091 Respond to CR.
// FREEBIE
2017-08-23 09:55:53 -04:00
Matthew Chen a9b55675cd Add assert to ensure that we don't use write transactions before sync database view registration is complete.
// FREEBIE
2017-08-23 09:46:26 -04:00
Matthew Chen 97f74ca5b4 Only use staging service in debug builds.
// FREEBIE
2017-08-22 17:19:44 -04:00
Matthew Chen a825fad47b Start reworking the contact offers.
// FREEBIE
2017-08-21 17:05:42 -04:00
Matthew Chen 98eb4693c5 Rework the contact offers.
// FREEBIE
2017-08-21 17:05:42 -04:00
Michael Kirk 0ab958f03a cleanup per codereview
- reference OWS OpenSSL
- clarify comments
- fix typo

// FREEBIE
2017-08-21 16:37:16 -04:00
Michael Kirk 0f9f26a577 handle remote user's profile key has changed
// FREEBIE
2017-08-21 16:37:16 -04:00
Michael Kirk 72fbb02028 aes-gcm via openssl
// FREEBIE
2017-08-21 16:37:16 -04:00
Matthew Chen 164bf19b47 Respond to CR.
// FREEBIE
2017-08-17 11:22:25 -04:00
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 97afa4d48a verification on decrypt
// FREEBIE
2017-08-15 15:19:40 -04:00
Michael Kirk 135243e383 CR: variable rename, better comments, fix up tests
// FREEBIE
2017-08-14 15:18:12 -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 fc3f9ae396 Replace server sent avatar URL with hardcoded
// FREEBIE
2017-08-11 11:19:05 -04:00
Michael Kirk 9fdc3202af White listing must happen on main thread
followup to: ee613e4889

Again, this solves a crash, but we'll want to revisit the perf
implications.

// FREEBIE
2017-08-11 09:11:55 -04:00
Michael Kirk a3ae22c84f Upload profile avatar to service
WIP, this currently lacks crypto pending further discussion.

// FREEBIE
2017-08-09 11:44:34 -04:00
Michael Kirk 45a1f534ba Rename method to make way for new method.
No behavioral changes.

// FREEBIE
2017-08-08 15:03:48 -04:00
Michael Kirk 72b3f3779b Discard GroupInfoRequest from unknown group
// FREEBIE
2017-08-08 12:17:26 -04:00
Michael Kirk ee613e4889 Can only set whitelist on main thread
As written solves a crash, but we'll probalby want to revisit the perf
implications.

// FREEBIE
2017-08-07 16:48:12 -04:00
Michael Kirk e07ed50170 define avatar form URL
// FREEBIE
2017-08-07 15:17:34 -04:00
Matthew Chen e01fbc247e Refine profile logic.
// FREEBIE
2017-08-04 17:35:22 -04:00
Matthew Chen 21304c18a6 Once we've shared our profile key with a user (perhaps due to being a member of a whitelisted group), make sure they're whitelisted.
// FREEBIE
2017-08-04 17:34:27 -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 ed4de7e8af Simplify code / pre-cache localNumber
Now that localNumber is read from a dedicated dbConnection we don't have
to worry about it blocking.

// FREEBIE
2017-08-04 15:19:26 -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 935b51aa19 Fixup tests
// FREEBIE
2017-08-03 13:27:09 -04:00
Michael Kirk 01e808febe localNumber persistance from Category -> TSAccountManager
Following the pattern that singleton methods for effectively global
state should get/set on their own dedicated dbConnection for consistency
and to avoid being blocked by unrelated writes.
2017-08-03 13:27:09 -04:00
Michael Kirk 8a4712bf4c Only access localNumber on AccountManager and cache it
// FREEBIE
2017-08-03 13:27:09 -04:00
Matthew Chen 43b3abe321 Merge branch 'hotfix/2.15.2' 2017-08-03 13:10:01 -04:00
Matthew Chen 539490ee19 Respond to CR.
// FREEBIE
2017-08-03 12:05:53 -04:00
Matthew Chen 9c5934359e Don’t dismiss call view controller to present other view.
// FREEBIE
2017-08-03 10:41:16 -04:00
Matthew Chen 791e270578 Terminate call if call view presentation is delayed.
// FREEBIE
2017-08-03 10:29:40 -04:00
Matthew Chen 6f03c2d92f Don’t hide threads if they are a group thread, or if they have _ever_ had a message.
// FREEBIE
2017-08-02 15:12:42 -04:00
Matthew Chen c603a2651d Rework how user profiles are updated and persisted. Persist other user’s profiles. Load and cache other user’s profile avatars.
// FREEBIE
2017-08-02 10:50:44 -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 1c1e173c58 Add support for adding groups to the profile whitelist.
// 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 202724cdcc Persist profile whitelist and known profile keys.
// FREEBIE
2017-08-02 10:50:44 -04:00
Matthew Chen 2993ac002f Clean up database convenience methods and add assertions.
// FREEBIE
2017-08-02 10:47:42 -04:00