Commit graph

2293 commits

Author SHA1 Message Date
Matthew Chen
7eeb326865 Fix minor build error.
// FREEBIE
2017-08-21 17:40:18 -04:00
Matthew Chen
ec3f099af1 Bump build from to 2.16.0.4.
// FREEBIE
2017-08-21 17:33:01 -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
9a70aef99f Bump build from to 2.16.0.3.
// FREEBIE
2017-08-21 17:17:33 -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
Michael Kirk
d6d403ce69 fix some tests
// 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
2f2902a762 Bump build from to 2.16.0.2.
// FREEBIE
2017-08-16 16:10:52 -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
7a03ab4e7c Bump build from to 2.16.0.1.
// FREEBIE
2017-08-16 16:02:19 -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
Matthew Chen
fde0ca6ed7 Update l10n strings.
// FREEBIE
2017-08-15 16:42:21 -04:00
Matthew Chen
80951349ea Bump version to 2.16.0.0.
// FREEBIE
2017-08-15 16:40:34 -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
69b75942fd Merge commit '2.15.3.2' 2017-08-11 07:55:09 -04:00
Michael Kirk
d29dd5c2b3 Bumping build.
Failed to bump build before tagging 2.15.3.1, so the 2.15.3.1 tag will
not be submitted, and we'll skip right to 2.15.3.2.

// FREEBIE
2017-08-11 07:53:51 -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
370ce5ba01 Merge branch 'hotfix/2.15.3' 2017-08-10 13:22:21 -04:00
Michael Kirk
4cf860cfe9 pull latest translations
// FREEBIE
2017-08-10 12:20:35 -04:00
Michael Kirk
46e5240f81 bump version
// FREEBIE
2017-08-10 12:19:06 -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
Michael Kirk
f99d4e9df9 Merge branch 'hotfix/2.15.2' 2017-08-04 13:11:53 -04:00
Michael Kirk
7836867780 pull latest translations
// FREEBIE
2017-08-04 12:38:55 -04:00
Michael Kirk
b29d87cb3e bump build
// FREEBIE
2017-08-04 12:33:55 -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
f8e153fb71 Bump build from to 2.15.2.1.
// FREEBIE
2017-08-02 18:15:20 -04:00
Matthew Chen
5c4019b9c5 Bump version to 2.15.2.0.
// FREEBIE
2017-08-02 14:19:39 -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
845c286b43 bump version
// FREEBIE
2017-08-01 14:29:02 -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
74009a3207 Modify l10n string extraction script to reflect SSK move.
// FREEBIE
2017-07-31 15:25:09 -04:00
Matthew Chen
3c3bd3c914 Tweaks to registration views.
// FREEBIE
2017-07-31 11:02:56 -04:00
Matthew Chen
1e002f7ef2 Bump build from to 2.15.0.4.
// FREEBIE
2017-07-28 17:14:17 -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
1c3dd8cac4 Bump build from to 2.15.0.3.
// FREEBIE
2017-07-27 15:46:22 -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
6dff283de4 Update l10n strings.
// FREEBIE
2017-07-27 15:15:53 -04:00
Matthew Chen
75fb55e018 Merge tag '2.14.1.2'
// FREEBIE
2017-07-27 15:09:51 -04:00
Matthew Chen
bca736a2b7 Merge tag '2.13.4.0'
// FREEBIE
2017-07-27 15:04:03 -04:00
Matthew Chen
3f805d31d5 Bump build from to 2.15.0.2.
// FREEBIE
2017-07-27 14:01:18 -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
f4fc6de6ed Bump build from to 2.15.0.1.
// FREEBIE
2017-07-26 14:05:58 -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
90945609e5 Bump version to 2.15.0.0.
// FREEBIE
2017-07-25 10:37:19 -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
Michael Kirk
e52248fe39 Localize JSQMessagesViewController within Signal
// FREEBIE
2017-07-21 14:16:41 -04:00
Michael Kirk
18ff072763 bump build
// FREEBIE
2017-07-19 17:15:01 -04:00
Michael Kirk
be731b7b2a sync translations
// FREEBIE
2017-07-19 15:55:08 -04:00
Michael Kirk
3cbab3fe34 bump build
// FREEBIE
2017-07-19 15:53:31 -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
7c6d900314 sync translations
// FREEBIE
2017-07-18 16:05:07 -04:00
Michael Kirk
33e9f2e62e bump version
// FREEBIE
2017-07-18 16:03:05 -04:00
Michael Kirk
f027d400ba Bump build
// FREEBIE
2017-07-15 19:30:47 -04:00
Michael Kirk
2d23e365cb sync translations
// FREEBIE
2017-07-15 17:25:11 -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
Matthew Chen
3f805cd4cd Add possible fixes for the ‘empty home view’ issue.
// FREEBIE
2017-07-14 20:46:35 -04:00
Matthew Chen
5e58079e13 Update l10n strings.
// FREEBIE
2017-07-14 20:44:44 -04:00
Matthew Chen
5633982262 Bump build from to 2.14.0.3.
// FREEBIE
2017-07-14 09:54:35 -04:00
Michael Kirk
b8ec353d77 Use recommended approach for speakerphone mode
From: https://developer.apple.com/library/content/qa/qa1754/_index.html

Q:  Can you explain the difference between calling the AVAudioSession method overrideOutputAudioPort: with the value AVAudioSessionPortOverrideSpeaker and using the category option AVAudioSessionCategoryOptionDefaultToSpeaker with setCategory:withOptions:error:.

A: The difference is that setting the AVAudioSessionPortOverride by calling overrideOutputAudioPort: is more transient than using the category option AVAudioSessionCategoryOptionDefaultToSpeaker.

Important: The use of both AVAudioSessionPortOverrideSpeaker and AVAudioSessionCategoryOptionDefaultToSpeaker are only applicable to the AVAudioSessionCategoryPlayAndRecord category.
Calling overrideOutputAudioPort: and setting the AVAudioSessionPortOverride to AVAudioSessionPortOverrideSpeaker is a way of temporarily overriding the output to play to the speaker. Any route change or interruption will cause the audio to be routed back to its normal route, following the last-in wins rule. Think of using overrideOutputAudioPort: in terms of what you might use to implement a Speakerphone button where you want to be able to toggle between the speaker (AVAudioSessionPortOverrideSpeaker) and the normal output route (AVAudioSessionPortOverrideNone).

Note: This property is intended to allow 3rd party applications to mimic the behavior of a Speakerphone button and therefore may change the input route as well as output route. For example, setting the AVAudioSessionPortOverride to AVAudioSessionPortOverrideSpeaker while a headset is plugged in will cause the route to change to built-in mic / built-in speaker.

// FREEBIE
2017-07-14 09:49:48 -04:00
Michael Kirk
fa42b4a45b Respect disappearing message timer from lockscreen
// FREEBIE
2017-07-14 09:48:46 -04:00
Matthew Chen
6c61e6040c Fix another call view leak.
// FREEBIE
2017-07-13 18:14:26 -04:00
Matthew Chen
90ad83d494 Bump build from to 2.14.0.2.
// FREEBIE
2017-07-13 17:23:28 -04:00
Michael Kirk
90c2324f99 pixel cleanup in bluetooth speaker image
// FREEBIE
2017-07-13 17:08:42 -04:00
Michael Kirk
b495b23420 more cleanup and commenting
// FREEBIE
2017-07-13 17:08:42 -04:00
Michael Kirk
03f1bbca62 Move state from CallViewController -> Call
I think whenever reasonable we prefer to consodlidate state on the call

// FREEBIE
2017-07-13 17:08:42 -04:00
Michael Kirk
4e11e90ebb cleanup
- remove dead code
- rename vars
- add coments

// FREEBIE
2017-07-13 17:08:41 -04:00
Michael Kirk
a59eb25aef extract dismiss string -> CommonStrings.dismissButton
// FREEBIE
2017-07-13 17:08:41 -04:00
Michael Kirk
20a8e72198 disable audio source images until we have icons
// FREEBIE
2017-07-13 17:08:41 -04:00
Michael Kirk
9bd68ed490 WIP: bluetooth shows audio route button instead of speakerphone
// FREEBIE

TODO

NEED
-[ ] icon in route picker
-[ ] commit cleanup

NICE
-[ ] present action sheet automatically when making outgoing bluetooth call
-[ ] left align icons
-[ ] audio is paused when switching between video mode (maybe existing behavior, not sure)
-[ ] Copy: iPhone/iPad/iPod instead of "iPhone Microphone"

DONE
-[x] remove "receiver" from options while in video mode
-[x] show available audio routes
-[x] select available audio routes
-[x] notification if availabe inputs change so we can update call screen
     mid call with available BT route
-[x] include speakerphone in choices
-[x] Enabled button shows active speakerphone. Should still show
     bluetooth picker.
-[x] toggle back and forth between audio devices
-[x] hide audio route button in video mode if no BT available
-[x] Fixed: When on speakerphone - switching to video mode goes back to bluetooth.
-[x] Fixed: When switching to video w/ bluetooth device connected there is no
     audio picker.
-[x] respect speakerphone/BT selection when in or toggling to/from video
-[x] do not hide audio route button when in video mode and bluetooth
     connected
-[x] Show which is currently selected audio route
-[x] switching to speakerphone no longer works
-[x] switching *back* to bluetooth no longer works
-[x] add proper bluetooth button for audio calls
-[x] add proper bluetooth button for video calls
2017-07-13 17:08:41 -04:00
Michael Kirk
109cb6cdb6 rename for clarity
// FREEBIE
2017-07-13 16:05:00 -04:00
Matthew Chen
ce048e21d2 Bump build from to 2.14.0.1.
// FREEBIE
2017-07-13 11:07:46 -04:00
Matthew Chen
ac616d6936 Reject the “call connected” promise immediately when clearing a call.
// FREEBIE
2017-07-12 18:12:27 -04:00
Matthew Chen
a58c71f4b8 Fix leak of call view.
// FREEBIE
2017-07-12 18:04:49 -04:00
Michael Kirk
b82aedc3a0 Assertion failures for unexpected promise state
These don't currently result in failed calls, but we should at least
know about it in debug.

// FREEBIE
2017-07-12 16:15:22 -04:00
Michael Kirk
438635393b Don't send ICE updates until after the CallOffer has been sent.
This ensures message ordering for clients that can't handle out of order
call messages (legacy iOS and Android).

Even when we revert the previous commit, to send ICE Updates sooner,
we'll want to keep this (until we're confident all clients can receive
out of order call messages)

// FREEBIE
2017-07-12 16:15:22 -04:00
Michael Kirk
d910da0157 Partial revert of: Send ICE updates immediately - 2dcfb4e3b8
That change makes it more likely that the remote client will receive an
ICE update before their peer connection client is set.

We want to ship the robustness fix (waitForPeerConnection in
handleRemoteAddedIceCandidate) before we have the caller start sending
ICE updates immediately, in a future release.

At that time, we can simply revert this commit.

// FREEBIE
2017-07-12 16:15:22 -04:00
Michael Kirk
2067697ed4 Add comment and clearer tests per CR
// FREEBIE
2017-07-12 16:06:35 -04:00
Michael Kirk
4f1ee98489 scrub any data that slips through to logs
Similar to phone number scrubbing, we leave a short prefix of the data
to help with debugging without leaking much data.

// FREEBIE
2017-07-12 16:06:35 -04:00
Matthew Chen
b7c2512eac Respond to CR.
// FREEBIE
2017-07-12 13:47:29 -04:00
Matthew Chen
81555d1225 Add “new contact” and “add to existing contact” buttons in 1:1 conversation settings view.
// FREEBIE
2017-07-12 13:18:14 -04:00
Matthew Chen
1e67bb52e3 Respond to CR.
// FREEBIE
2017-07-12 13:18:03 -04:00
Matthew Chen
2202fe70fe Fix broken tests.
// FREEBIE
2017-07-12 12:14:15 -04:00
Matthew Chen
f584c4b434 Fix broken tests.
// FREEBIE
2017-07-12 12:14:15 -04:00