Commit graph

1709 commits

Author SHA1 Message Date
Michael Kirk
4511b4015f Clarify where we use the profile name
Add some hints to differentiate profile name usage from a name pulled
from the contacts.

// FREEBIE
2017-08-17 12:24:31 -04:00
Matthew Chen
164bf19b47 Respond to CR.
// 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
Matthew Chen
0b14f87575 Improve comments about mapping consistency in conversation view.
// FREEBIE
2017-08-17 11:22:25 -04:00
Michael Kirk
e08fa4bcec Fix jolting animation after sending a message
When we send the nth message, we retain the footer for the n-1th message
until the nth message is successfully sent.

1. leave the footer on the n-1th message
2. draw the nth message with the "..." footer
3. update the nth message with the "sent" footer and hide the footer for
   the n-1th message

In the normal case this all happens very quickly, which results in some
unpleasant flicker every time you send a message.

The concession here is that we'll only print the n-1th footer if the
outgoing message *fails*. So until we implement a design more like
Android's double-check for sent/delivery, the user will not be able to
distinguish between a sent and delivered message *while* their message
is outgoing.

In my opinion the lack of jank in the normal case makes the app
supercedes this use case.

// FREEBIE
2017-08-17 11:19:46 -04:00
Michael Kirk
2e83643327 Don't consider registration complete until user registers their push
notification tokens.

// FREEBIE
2017-08-17 10:56:36 -04:00
Matthew Chen
6c3662b944 Increase max conversation range length.
// FREEBIE
2017-08-16 17:07:18 -04:00
Matthew Chen
ddd8c9ff5f Respond to CR.
// FREEBIE
2017-08-16 16:10:07 -04:00
Matthew Chen
3ecd415b84 Show activity indicator during profile update; trim whitespace from profile names.
// FREEBIE
2017-08-16 16:05:05 -04:00
Matthew Chen
943945b4bd Fix “profiles not encoded” bug.
// FREEBIE
2017-08-16 16:03:16 -04:00
Matthew Chen
46d27cef30 Respond to CR.
// FREEBIE
2017-08-16 10:46:56 -04:00
Matthew Chen
1dd75a05ff Tweak concurrency in profile manager.
// FREEBIE
2017-08-16 10:40:17 -04:00
Matthew Chen
02f8b13f4f Rework concurrency in the profile manager.
// FREEBIE
2017-08-16 10:40:17 -04:00
Matthew Chen
b2360ace6e Fix layout glitch in messages view.
// FREEBIE
2017-08-16 10:38:29 -04:00
Matthew Chen
f618f87825 Respond to CR.
// FREEBIE
2017-08-15 17:02:07 -04:00
Matthew Chen
90f959d0ab Respond to CR.
// FREEBIE
2017-08-15 16:47:12 -04:00
Matthew Chen
cdb181eadc Sketch out profile header in app settings view.
// FREEBIE
2017-08-15 16:47:12 -04:00
Matthew Chen
13aea66878 Sketch out profile header in app settings view.
// FREEBIE
2017-08-15 16:47:12 -04:00
Michael Kirk
abec536729 simplify check for max file size per CR
// FREEBIE
2017-08-15 16:25:01 -04:00
Michael Kirk
2c3e99c372 better var name per code review
// FREEBIE
2017-08-15 15:51:41 -04:00
Michael Kirk
fd02644ca7 resize profile avatar
// FREEBIE
2017-08-15 15:51:41 -04:00
Michael Kirk
9f72db44ac Avoid lossy re-encoding of profile image
// FREEBIE
2017-08-15 15:45:52 -04:00
Michael Kirk
0290f176c0 Use profile name/avatar when creating new contact
// FREEBIE
2017-08-15 15:45:52 -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
283d36c55b remove avatar digest.
For ease of CDN cache expiry, each new avatar will have a unique URL, so
no need for a separate digest. Contents of file at URL will be verified
by forthcoming crypto scheme.

// FREEBIE
2017-08-11 11:28:38 -04:00
Michael Kirk
fc3f9ae396 Replace server sent avatar URL with hardcoded
// FREEBIE
2017-08-11 11:19:05 -04:00
Michael Kirk
3d9796db77 Debug actions for calling
For testing stale hangup/busy messages

Extracted MessageSender promise API
Moved call debug actions to their own page

// FREEBIE
2017-08-11 09:21:11 -04:00
Michael Kirk
1ee27996e4 Merge branch 'hotfix/2.15.3.1' 2017-08-11 07:42:00 -04:00
Michael Kirk
8da3108b53 Drop stale EndCall/BusyCall messages
// FREEBIE
2017-08-11 07:35:48 -04:00
Michael Kirk
0e241299d2 Discard GroupInfoRequest from unknown group
// FREEBIE
2017-08-10 12:17:42 -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
72b3f3779b Discard GroupInfoRequest from unknown group
// FREEBIE
2017-08-08 12:17:26 -04:00
Michael Kirk
16c646a939 Use profile name/image when available.
Refactored the ContactAvatarBuilder to clarify intent of the two
methods. One is only used for non-signal contacts in the Invite flow.
The other should be used for any signal contacts so we have a single
consistent way of generating the avatar initials.

// FREEBIE
2017-08-07 16:50:55 -04:00
Matthew Chen
e01fbc247e Refine profile logic.
// FREEBIE
2017-08-04 17:35:22 -04:00
Matthew Chen
09e65a674b Incomplete work to upload avatars.
// FREEBIE
2017-08-04 17:35:16 -04:00
Matthew Chen
f6668d24c1 Download profile avatars.
// FREEBIE
2017-08-04 17:35:02 -04:00
Matthew Chen
9266c3a4f9 Clear profile state when a user’s profile key changes.
// FREEBIE
2017-08-04 17:34:27 -04:00
Matthew Chen
8b9749202d Load local user profile avatar if necessary.
// FREEBIE
2017-08-04 17:34:27 -04:00
Matthew Chen
823927685d Update profile on service.
// FREEBIE
2017-08-04 15:25:17 -04:00
Matthew Chen
83d01eed76 Don’t encrypt/decrypt avatar URL or digest.
// FREEBIE
2017-08-04 15:25:10 -04:00
Matthew Chen
f6bcff5427 Fix rebase breakage.
// FREEBIE
2017-08-04 15:23:17 -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
Matthew Chen
03774216a0 Respond to CR.
// FREEBIE
2017-08-04 10:32:00 -04:00
Matthew Chen
6ac4d8e971 Delete profile avatars on disk when unregistering.
// FREEBIE
2017-08-04 10:29:56 -04:00
Matthew Chen
ddf3929be1 Auto-add groups to profile whitelist groups when you make them.
// FREEBIE
2017-08-04 10:17:24 -04:00
Matthew Chen
ba506bf092 Respond to CR.
// FREEBIE
2017-08-04 10:16:17 -04:00
Matthew Chen
49e65ba1b1 Update user profile update date on successful update.
// FREEBIE
2017-08-04 09:45:33 -04:00
Matthew Chen
9c0f94f1c0 Fetch profiles from profile manager. Update profile manager with profile fetch results.
// FREEBIE
2017-08-04 09:45:33 -04:00