Commit graph

1996 commits

Author SHA1 Message Date
Matthew Chen
5fcf89dff1 Ignore "GIF of death."
// FREEBIE
2017-08-30 12:46:21 -04:00
Matthew Chen
b9908997c9 Remain scrolled to bottom after presenting the keyboard in messages view.
// FREEBIE
2017-08-30 12:44:10 -04:00
Matthew Chen
d7b0b6a253 Fix build break in production builds.
// FREEBIE
2017-08-29 17:30:56 -04:00
Matthew Chen
3c90c3361a Respond to CR.
// FREEBIE
2017-08-29 16:31:27 -04:00
Matthew Chen
71d7490e35 Re-sync local profile state with service if necessary.
// FREEBIE
2017-08-29 16:29:54 -04:00
Matthew Chen
ac3743f810 Fix RTL layout of system message cells.
// FREEBIE
2017-08-29 16:26:23 -04:00
Matthew Chen
92a0fbe01b Fix yet another edge case around message view scroll state.
// FREEBIE
2017-08-29 13:30:56 -04:00
Matthew Chen
4a2ca15b70 Fix build break around parameter name.
// FREEBIE
2017-08-29 12:26:41 -04:00
Matthew Chen
997cd2ef2b Revisit the [UIScrollView _adjustContentOffsetIfNecessary] issue. Fix glitches in the initial scroll state in message view. Don't reset scroll state when returning to the message view.
// FREEBIE
2017-08-29 12:20:58 -04:00
Matthew Chen
7f717c0ca6 Revisit the [UIScrollView _adjustContentOffsetIfNecessary] issue. Fix glitches in the initial scroll state in message view. Don't reset scroll state when returning to the message view.
// FREEBIE
2017-08-29 12:20:58 -04:00
Michael Kirk
4c51f1810c sync local profile as soon as it's created
// FREEBIE
2017-08-29 11:05:19 -04:00
Michael Kirk
ab84cbd670 use messageSender property now that the class relies on it in multiple
places.

(due to rebase)

// FREEBIE
2017-08-29 10:49:22 -04:00
Michael Kirk
42934e5fd4 remove retry logic per code review
the system naturally recovers anyway, upon sending messages, no need to
hit the user with another alert.

// FREEBIE
2017-08-29 10:49:22 -04:00
Michael Kirk
d71b7684a6 cleanup logging
// FREEBIE
2017-08-29 10:46:10 -04:00
Michael Kirk
55d0db8c46 Disable profile-key sending with feature flag
// FREEBIE
2017-08-29 10:39:36 -04:00
Michael Kirk
4382f33618 Send blank PROFILE_MESSAGE after whitelisting someone
So they can immediately fetch your profile.
Note, we're going to put this behind a feature flag for initial release
since iOS prints an empty bubble when receiving a message like this.

// FREEBIE
2017-08-29 10:35:54 -04:00
Michael Kirk
6c63009e9e Dedicated "Profile" debug section
// FREEBIE
2017-08-29 10:35:54 -04:00
Michael Kirk
9c56660618 profile key flag and debug action
// FREEBIE
2017-08-29 10:35:54 -04:00
Michael Kirk
d8aa9b4a3d better comment per CR
// FREEBIE
2017-08-29 10:35:18 -04:00
Michael Kirk
0feb966a1c comment cleanup / code formatting
// FREEBIE
2017-08-29 10:35:18 -04:00
Michael Kirk
526d5e33b9 Sync profile key to sibling devices when updating contact
// FREEBIE
2017-08-29 10:35:18 -04:00
Michael Kirk
46919e4702 Add own profile key to multidevice provisioning message
// FREEBIE
2017-08-29 10:35:18 -04:00
Michael Kirk
1f3d2d1ed6 Send any profile key in contact sync
// FREEBIE
2017-08-29 10:35:18 -04:00
Matthew Chen
d3d9e5dabc Fix scroll down button state.
// FREEBIE
2017-08-28 14:55:39 -04:00
Matthew Chen
cdfdb80fd1 Respond to CR.
// FREEBIE
2017-08-28 13:11:13 -04:00
Matthew Chen
7e4859241a Clear the local profile avatar immediately when we request upload form.
// FREEBIE
2017-08-28 13:09:33 -04:00
Matthew Chen
0fa19b5269 Clear own avatar on service if necessary when updating local profile. Clear others' avatar when appropriate.
// FREEBIE
2017-08-28 11:59:36 -04:00
Matthew Chen
50a8d0f165 Clear own avatar on service if necessary when updating local profile. Clear others' avatar when appropriate.
// FREEBIE
2017-08-28 11:57:39 -04:00
Michael Kirk
1e51bf4899 extract event names
// FREEBIE
2017-08-25 17:19:31 -04:00
Michael Kirk
251e206b6d profiles vs. censorship circumvention
// FREEBIE
2017-08-25 17:17:43 -04:00
Matthew Chen
f2ae73e156 Remove obsolete "scrollLaterTimer" hack in messages view.
// FREEBIE
2017-08-25 17:01:13 -04:00
Matthew Chen
8794880db8 Unbound message bubble cache size and DRY up cache logic.
// FREEBIE
2017-08-25 17:01:13 -04:00
Matthew Chen
c90ca331e3 Respond to CR.
// FREEBIE
2017-08-25 16:50:14 -04:00
Matthew Chen
6b8e189f45 Add view to Crop and scale avatar.
// FREEBIE
2017-08-25 16:02:15 -04:00
Matthew Chen
728028563c Add double-tap to zoom out.
// FREEBIE
2017-08-25 16:02:15 -04:00
Matthew Chen
e7b32f9fd1 Add double-tap to zoom out.
// FREEBIE
2017-08-25 16:02:15 -04:00
Matthew Chen
2b50eb5acc Add view to Crop and scale avatar.
// FREEBIE
2017-08-25 16:02:15 -04:00
Matthew Chen
2c301feeb7 Add view to Crop and scale avatar.
// FREEBIE
2017-08-25 16:02:15 -04:00
Matthew Chen
374a59e937 Remove an old TODO.
// FREEBIE
2017-08-25 16:01:09 -04:00
Matthew Chen
e8a6ca1c22 Show an error when profile name is too long.
// FREEBIE
2017-08-25 16:01:09 -04:00
Michael Kirk
bde40a1f9c Ensure avatar upates right after profile change.
// FREEBIE
2017-08-25 12:40:19 -04:00
Michael Kirk
f6720f9afa properly clear all cached avatar images
// FREEBIE
2017-08-25 12:40:19 -04:00
Michael Kirk
b579ea5915 Use profile name when building avatar if contact name is unavailable
// FREEBIE
2017-08-25 12:40:19 -04:00
Matthew Chen
89bacf5cce Respond to CR.
// FREEBIE
2017-08-24 17:29:52 -04:00
Matthew Chen
65db75a91d Fix group profile whitelist check.
// FREEBIE
2017-08-24 17:29:32 -04:00
Matthew Chen
9bf80a215f Don't add avatar to new contacts.
// FREEBIE
2017-08-24 17:28:18 -04:00
Michael Kirk
903d792af4 Debug action to clobber local profile and key
// FREEBIE
2017-08-24 14:52:49 -04:00
Michael Kirk
041c5a4a11 CR: setNeedsLayout
// FREEBIE
2017-08-24 14:44:14 -04:00
Michael Kirk
f49e122567 listen for profile names change notifications
// FREEBIE
2017-08-23 17:09:43 -04:00
Michael Kirk
96f0ab215c wip 2017-08-23 16:42:55 -04:00
Michael Kirk
fd99354673 profile name vs. verified in ContactTableViewCell
// FREEBIE
2017-08-23 16:42:22 -04:00
Michael Kirk
e54e1d11c0 show profile name snippet in inbox and conversation settings
// FREEBIE
2017-08-23 15:56:58 -04:00
Michael Kirk
279eb89023 Fix whitelist
whitelist cache are a bunch of NSNumber's, we need to check their
boolValue

// FREEBIE
2017-08-23 14:59:25 -04:00
Matthew Chen
b28a6bab26 Respond to CR.
// FREEBIE
2017-08-23 14:57:02 -04:00
Matthew Chen
57b76b3411 Ensure message view range is properly truncated with view is configured.
// FREEBIE
2017-08-23 14:56:16 -04:00
Matthew Chen
15d2fd23d7 Rework save/cancel buttons in profile view.
// FREEBIE
2017-08-23 14:07:31 -04:00
Matthew Chen
68309eb00f Rework save/cancel buttons in profile view.
// FREEBIE
2017-08-23 13:31:06 -04:00
Michael Kirk
0a57e7db09 Fix slow start crash after upgrade to 2.16
We were opening a write transaction before our sync extensions were
registered. This seems to have caused our views to rebuild themselves
once they did register, which in turn can cause device timeout.

Instead of opening transcations in `init`, we only build the
localProfile once it's needed.

A future PR will ensure transactions
aren't being created before syncViews are registered.

// FREEBIE
2017-08-23 11:02:24 -04:00
Matthew Chen
5e6f5804c1 Respond to CR.
// FREEBIE
2017-08-21 17:50:40 -04:00
Matthew Chen
584ddab0b9 Show "share profile with group" banner.
// FREEBIE
2017-08-21 17:49:54 -04:00
Matthew Chen
ae1908c40c Show "share profile with group" banner.
// FREEBIE
2017-08-21 17:49:54 -04:00
Matthew Chen
68ee56174a Pad empty profile names instead of nil.
// FREEBIE
2017-08-21 17:49:04 -04:00
Matthew Chen
7eeb326865 Fix minor build error.
// FREEBIE
2017-08-21 17:40:18 -04:00
Matthew Chen
6dda535f24 Rework the profile view.
// FREEBIE
2017-08-21 17:32:01 -04:00
Matthew Chen
313d06b31d Rework the profile view.
// FREEBIE
2017-08-21 17:32:01 -04:00
Matthew Chen
020d2c567a Rework the profile view.
// FREEBIE
2017-08-21 17:32:01 -04:00
Matthew Chen
3181ee7882 Rework the profile view.
// FREEBIE
2017-08-21 17:32:01 -04:00
Matthew Chen
9dfeb132cb Respond to CR.
// FREEBIE
2017-08-21 17:27:30 -04:00
Matthew Chen
1e43e93371 Observe profile changes in conversation view.
// FREEBIE
2017-08-21 17:25:07 -04:00
Matthew Chen
14d472781f Respond to CR.
// FREEBIE
2017-08-21 17:13:36 -04:00
Matthew Chen
a340c9ebdc Clean up ahead of CR.
// FREEBIE
2017-08-21 17:05:42 -04:00
Matthew Chen
4578a72ab2 Reorder where contact offers appear.
// FREEBIE
2017-08-21 17:05:42 -04:00
Matthew Chen
02c96b7b0e Rework the contact offers.
// FREEBIE
2017-08-21 17:05:42 -04:00
Matthew Chen
9e02524b0b Rework the contact offers.
// FREEBIE
2017-08-21 17:05:42 -04:00
Matthew Chen
c2f9d7dcb2 Rework the contact offers.
// FREEBIE
2017-08-21 17:05:42 -04:00
Matthew Chen
265bdce0ba Start reworking the contact offers.
// FREEBIE
2017-08-21 17:05:42 -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
Matthew Chen
5f2f8ec6d8 Start reworking the contact offers.
// FREEBIE
2017-08-21 17:05:42 -04:00
Michael Kirk
72fbb02028 aes-gcm via openssl
// FREEBIE
2017-08-21 16:37:16 -04:00
Matthew Chen
27e496ad06 Respond to CR.
// FREEBIE
2017-08-21 10:10:22 -04:00
Matthew Chen
1b055c485d Rework "cancel navigate back" logic.
// FREEBIE
2017-08-21 10:10:22 -04:00
Matthew Chen
25b0f79615 Rework "cancel navigate back" logic.
// FREEBIE
2017-08-21 10:10:22 -04:00
Matthew Chen
08347478a2 Implement alternative approach to veto-able back buttons.
// FREEBIE
2017-08-21 10:10:22 -04:00
Matthew Chen
9d8c396848 Add profile view to upgrade/nag workflow.
// FREEBIE
2017-08-21 10:10:22 -04:00
Matthew Chen
ffb4b3f9d2 Add profile view to registration workflow.
// FREEBIE
2017-08-21 10:10:22 -04:00
Michael Kirk
7c386b1d1e CR: RTL, trim profile names, ensure not empty
- RTL support with localizable format strings
- Trim decrypted profile names
- more rigorous empty check

// FREEBIE
2017-08-17 12:24:31 -04:00
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
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
Matthew Chen
a70bd3307d Show threads if possible.
// FREEBIE
2017-08-04 09:35:10 -04:00
Michael Kirk
8a4712bf4c Only access localNumber on AccountManager and cache it
// FREEBIE
2017-08-03 13:27:09 -04:00
Michael Kirk
357eb62502 [DEBUG-UI] Add avatar to (some) fake contacts
// FREEBIE
2017-08-03 13:18:36 -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
d9bc3ac806 Respond to CR.
// FREEBIE
2017-08-03 10:49:37 -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
138301975c Don’t dismiss call view controller to present other view.
// FREEBIE
2017-08-03 10:40:45 -04:00
Matthew Chen
791e270578 Terminate call if call view presentation is delayed.
// FREEBIE
2017-08-03 10:29:40 -04:00
Matthew Chen
634617b7d4 Terminate call if call view presentation is delayed.
// FREEBIE
2017-08-03 10:26:22 -04:00
Michael Kirk
81d7f28253 Timer to ensure call screen shown
// FREEBIE
2017-08-02 19:13:46 -04:00
Michael Kirk
c6069376d8 more logging
// FREEBIE
2017-08-02 19:13:06 -04:00
Matthew Chen
282ac4bb29 Add “share profile” row to conversation settings.
// 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
a3b16812ec Add convenience category for YapDatabaseConnection.
// FREEBIE
2017-08-02 10:38:23 -04:00
Matthew Chen
a748987d72 Add option to clear profile avatar.
// FREEBIE
2017-08-01 16:32:36 -04:00
Matthew Chen
03a4ebc4d8 Respond to CR.
// FREEBIE
2017-08-01 16:30:24 -04:00
Matthew Chen
8a8f3d81fc Clean up ahead of PR.
// FREEBIE
2017-08-01 16:17:59 -04:00
Matthew Chen
c331788c06 Modify the profile view to update profile manager state.
// FREEBIE
2017-08-01 16:17:59 -04:00
Matthew Chen
873f5208c4 Sketch out the profile view.
// FREEBIE
2017-08-01 16:17:59 -04:00
Matthew Chen
72ea096970 Sketch out the profile view.
// FREEBIE
2017-08-01 16:17:59 -04:00
Matthew Chen
b62ab3f666 Merge remote-tracking branch 'origin/hotfix/2.15.1' 2017-08-01 16:17:18 -04:00
Matthew Chen
99c948568b Remove iOS 9-only APIs from layout code.
// FREEBIE
2017-08-01 15:10:36 -04:00
Michael Kirk
249a3fcabc Show proper setting for CallKitPrivacy
// FREEBIE
2017-08-01 14:29:47 -04:00
Michael Kirk
742f8cf902 Avoid unnecessariy flashing avatars
Make avatar building sync

Tests on a iPhone5 with 1k threads, 3k contacts show no noticeable lag.

Profiling shows ~4% of usage goes to contact avatar building, but once
cached, even that goes towards zero.

// FREEBIE
2017-08-01 12:07:54 -04:00
Michael Kirk
092578045e [DEBUG-UI] create fake contact threads
// FREEBIE
2017-08-01 12:07:54 -04:00
Matthew Chen
63e20cd8bb Sketch out profile manager.
// FREEBIE
2017-08-01 11:41:55 -04:00
Matthew Chen
3c3bd3c914 Tweaks to registration views.
// FREEBIE
2017-07-31 11:02:56 -04:00
Matthew Chen
a0eead37c7 Ensure size of message mappings range increases monotonically.
// FREEBIE
2017-07-28 17:13:35 -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
6a5c6a9fc9 didBecomeActive kicks the processing queue
// FREEBIE
2017-07-28 17:12:47 -04:00
Matthew Chen
31d65c3d77 Fix RTL alignment of message footers.
// FREEBIE
2017-07-28 15:03:31 -04:00
Michael Kirk
feb1061c04 Fix spinner layout on iphone5
// FREEBIE
2017-07-28 15:00:48 -04:00
Matthew Chen
43f451e236 Remove errant assert.
// FREEBIE
2017-07-28 11:36:39 -04:00
Matthew Chen
5acb3714e9 Add debug UI to enable manual censorship circumvention.
// FREEBIE
2017-07-28 11:17:25 -04:00
Matthew Chen
75c7cc4abf Add debug UI to enable manual censorship circumvention.
// FREEBIE
2017-07-28 11:15:09 -04:00
Matthew Chen
d22e29ec09 Include local number when creating debug groups.
// FREEBIE
2017-07-28 11:03:02 -04:00
Matthew Chen
8f17730d9b Modify “create groups” debug UI to use current 1:1 contact.
// FREEBIE
2017-07-28 10:16:02 -04:00
Matthew Chen
653f7faca8 Add debug UI for creating groups.
// FREEBIE
2017-07-28 09:41:27 -04:00
Matthew Chen
1890039165 Hide empty conversations in home view.
// FREEBIE
2017-07-27 15:40:19 -04:00
Matthew Chen
103a7fab36 Hide empty conversations in home view.
// FREEBIE
2017-07-27 15:39:26 -04:00
Matthew Chen
bca736a2b7 Merge tag '2.13.4.0'
// FREEBIE
2017-07-27 15:04:03 -04:00
Matthew Chen
dd13119f12 Add more instrumentation to CallService.
// FREEBIE
2017-07-27 13:57:29 -04:00
Matthew Chen
904515994f Add more instrumentation to CallService.
// FREEBIE
2017-07-27 13:28:05 -04:00
Matthew Chen
465711c2cb Add script to extract and gather analytics event names.
// FREEBIE
2017-07-27 12:45:29 -04:00
Matthew Chen
f1807cd709 Add script to extract and gather analytics event names.
// FREEBIE
2017-07-27 12:29:05 -04:00
Matthew Chen
0cf9c01af2 Add script to extract and gather analytics event names.
// FREEBIE
2017-07-27 12:27:48 -04:00
Matthew Chen
8aff95c44e Add script to extract and gather analytics event names.
// FREEBIE
2017-07-27 12:26:02 -04:00
Matthew Chen
b4f348ad14 Add script to extract and gather analytics event names.
// FREEBIE
2017-07-27 12:26:02 -04:00
Matthew Chen
31ab9a00da Add script to extract and gather analytics event names.
// FREEBIE
2017-07-27 12:26:02 -04:00
Matthew Chen
6858a1e944 Fix assert in conversation view around nil title.
// FREEBIE
2017-07-27 12:08:21 -04:00
Matthew Chen
803e91c3ce Fix assert in conversation view around nil title.
// FREEBIE
2017-07-27 12:08:21 -04:00
Matthew Chen
4ac7600c07 Respond to CR.
// FREEBIE
2017-07-27 10:24:07 -04:00
Matthew Chen
d4af62adcc Instrument registration happy path with analytics.
// FREEBIE
2017-07-27 10:17:54 -04:00
Matthew Chen
f973af5a83 Streamline analytics properties.
// FREEBIE
2017-07-27 10:16:16 -04:00
Matthew Chen
013bf62f7c 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
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
d80f470c2c Respond to CR.
// FREEBIE
2017-07-26 12:39:43 -04:00
Matthew Chen
2e7fe5cfd5 Rework database observation in home and message views.
// FREEBIE
2017-07-26 12:17:08 -04:00
Matthew Chen
1f1a681180 Rework database observation in home and message views.
// FREEBIE
2017-07-26 12:17:08 -04:00
Matthew Chen
c1139a3a28 Fix many leaks in the view controllers.
// FREEBIE
2017-07-26 11:59:00 -04:00
Matthew Chen
f0cecfad11 Surface memory leaks by logging the deallocation of view controllers.
// FREEBIE
2017-07-26 11:59:00 -04:00
Matthew Chen
511cbbeaaf Make it easier to tap-to-edit group names in new group and update group vies.
// FREEBIE
2017-07-26 10:54:27 -04:00
Matthew Chen
863fd27abe Respond to CR.
// FREEBIE
2017-07-26 10:52:15 -04:00
Matthew Chen
8e51b5ade1 Clean up ahead of PR.
// FREEBIE
2017-07-26 10:01:43 -04:00
Matthew Chen
958a8b4c80 Instrument CallService.
// FREEBIE
2017-07-26 10:01:43 -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
Michael Kirk
c74a5c0740 CR: strong reference to migration job, clarify variable
// FREEBIE
2017-07-24 13:01:43 -04:00
Michael Kirk
a5f067936c migration to fix any half-registered users
// FREEBIE
2017-07-24 13:01:43 -04:00
Matthew Chen
97772a32ff Respond to CR.
// FREEBIE
2017-07-24 12:55:05 -04:00
Matthew Chen
9eaeba9af3 Address yet another edge cases around pasteboards that contain both textual and non-textual content, e.g. a gif and the URL of that gif.
// FREEBIE
2017-07-24 10:06:30 -04:00
Matthew Chen
ceb243b30b Always reload home view table when changing grouping.
// FREEBIE
2017-07-24 09:12:54 -04:00
Matthew Chen
03aacbd682 [SSK] Try applying national prefixes when parsing phone numbers.
// FREEBIE
2017-07-21 15:21:22 -04:00
Matthew Chen
fdac0305cb Update analytics macros.
// FREEBIE
2017-07-21 15:04:41 -04:00
Matthew Chen
14621e1288 Respond to CR.
// FREEBIE
2017-07-21 14:49:24 -04:00
Matthew Chen
34f7cd1a47 Clean up ahead of PR.
// FREEBIE
2017-07-21 14:49:12 -04:00
Matthew Chen
02c510691c Adapt number formatting to RTL.
// FREEBIE
2017-07-21 14:49:12 -04:00
Matthew Chen
5edec99fd6 Adapt number formatting to RTL.
// FREEBIE
2017-07-21 14:49:12 -04:00
Matthew Chen
04fb3642b2 Remove .xib for home view cells; adapter home view to RTL.
// FREEBIE
2017-07-21 14:49:12 -04:00
Matthew Chen
eaacac9d8b DRY up common table cell patterns.
// FREEBIE
2017-07-21 14:49:12 -04:00
Matthew Chen
96fd5e11e5 Adapt more UI elements to RTL.
// FREEBIE
2017-07-21 14:49:12 -04:00
Matthew Chen
c799e18c74 Adapt voice messages UI to RTL.
// FREEBIE
2017-07-21 14:49:12 -04:00
Matthew Chen
8005cf0227 Adapt conversation settings view to RTL.
// FREEBIE
2017-07-21 14:49:12 -04:00
Matthew Chen
d4e62efce5 Adapt call view to RTL.
// FREEBIE
2017-07-21 14:49:12 -04:00
Matthew Chen
e2125978de Adapt "new group" and "update group" views to RTL.
// FREEBIE
2017-07-21 14:49:12 -04:00
Matthew Chen
693e74e868 Adapt conversation settings view to RTL.
// FREEBIE
2017-07-21 14:49:12 -04:00
Matthew Chen
656cc47de5 Adapt registration views to RTL.
// FREEBIE
2017-07-21 14:49:12 -04:00
Matthew Chen
d4f012fbb7 Fix contact table cell and “add to block list” view.
// FREEBIE
2017-07-21 14:49:12 -04:00
Matthew Chen
e15432720c Add arabic translation; begin work on right-to-left layout.
// FREEBIE
2017-07-21 14:48:52 -04:00
Matthew Chen
a9ce1cde2f Simplify CallViewController.
// FREEBIE
2017-07-19 09:47:55 -04:00
Matthew Chen
149c64ce49 Refine call service.
// FREEBIE
2017-07-19 09:47:55 -04:00
Michael Kirk
46ddaa9cae fix: unregistered user shows "add to contacts"
// FREEBIE
2017-07-19 09:44:33 -04:00
Michael Kirk
17b1b70726 Remove verification debug UI
There is a more true-to-life way to set verification state - mark
someone as verified or default via the SN UI.

If they are marked as verified, you can mark them as no-longer-verified
by toggling a keychange in the debug UI

// FREEBIE
2017-07-19 09:43:30 -04:00
Michael Kirk
df0cf76603 Assert that mapping is set whenever accessing
// FREEBIE
2017-07-19 09:42:14 -04:00
Michael Kirk
1c9ce5eaf3 CR: Don't just build, but present, alert controller
// FREEBIE
2017-07-19 09:39:50 -04:00
Michael Kirk
5c66e5584c Adding to existing contact requires contact access
Previously we'd show an empty "list" of existing contacts.

// FREEBIE
2017-07-19 09:38:48 -04:00
Matthew Chen
8b60765627 Respond to CR.
// FREEBIE
2017-07-19 09:36:43 -04:00
Matthew Chen
81a4ebdaf5 Apply OWSTableViewController to more views.
// FREEBIE
2017-07-19 09:34:55 -04:00
Matthew Chen
dc3f07cb54 Apply OWSTableViewController to more views.
// FREEBIE
2017-07-19 09:34:55 -04:00
Michael Kirk
9287b8560c clean up comments per code review
// FREEBIE
2017-07-15 17:11:41 -04:00
Michael Kirk
fb5c17a6b4 minimize sound overlap
Because there is some asynchrony involved, there may be a blip during
the switch between sounds/audio sessions

// FREEBIE
2017-07-15 17:11:41 -04:00
Michael Kirk
e3faddedbc Disallow bluetooth when user has opted for local receiver
// FREEBIE
2017-07-15 17:11:41 -04:00
Michael Kirk
524ba80b75 WIP: have ensureAudioSession set preferred input
Call it all the time, but only mutate the AVAudioSession when necessary

TODO

Can't switch to iPhone

// FREEBIE
2017-07-15 17:11:41 -04:00
Michael Kirk
220cd345f6 add comments
// FREEBIE
2017-07-15 17:11:41 -04:00
Michael Kirk
ba97ff3f5f Label tweaks for device listing
// FREEBIE
2017-07-15 17:11:41 -04:00
Matthew Chen
d36e60b0e9 Respond to CR.
// FREEBIE
2017-07-14 20:46:36 -04:00
Matthew Chen
b6264383d3 Add possible fixes for the ‘empty home view’ issue.
// FREEBIE
2017-07-14 20:46:35 -04:00
Matthew Chen
90dabe1c81 Add possible fixes for the ‘empty home view’ issue.
// FREEBIE
2017-07-14 20:46:35 -04:00
Matthew Chen
f52814bb70 Add possible fixes for the ‘empty home view’ issue.
// FREEBIE
2017-07-14 20:46:35 -04:00