Commit graph

195 commits

Author SHA1 Message Date
Michael Kirk df15c904bc Rework push registration
== Account Registration ==

Not complete until push tokens are uploaded

== Remote Notifications Registration ==

Extracted from PushManager

- wait for notification-settings registration to complete before
  requesting push tokens, otherwise it's possible token requests will
  be ignored.

- Less state required for push notification callbacks, specifically, we
  no longer need to ensure we've created a promise before the
  registration delegate methods get called.

- no more TOCFuture in Signal-iOS (still in SSK for now). It's not in
  cases of inexplicable behavior - one a recently, push notification
  premature free, in redphone, and more popular use, and I've seen two
  futures inexplicably being nil.  Instead, let's consolidate around
  PromiseKit for popularly used, maintained, strongly-typed futures.

- separate logic for registering for vanilla push/voip notifications
  (few dependencies) from responding to UILocalNotifications (lots of
  dependencies). Ultimately I'd like to consolidate the remaining
  UILocalNotifications logic with the existing NotificationsManager

== Misc ==

more debug logging
more uniform logging
remove stale logic around newly registered user

// FREEBIE
2017-10-12 12:02:22 -04:00
Matthew Chen 48e6cea207 Replace FLAnimatedImage with YYImage.
// FREEBIE
2017-10-02 13:37:32 -04:00
Matthew Chen 9f9ac746d1 Sketch out message metadata view.
* Show message metadata view from conversation view.
* Pull out MediaMessageView class.
* Track recipient read timestamps.
* Add per-recipient status to message metadata view.
* Add share button to message metadata view.

// FREEBIE
2017-09-25 17:25:49 -04:00
Matthew Chen b28c4b74b2 Pull out TSMessageDecrypter class.
// FREEBIE
2017-09-21 14:38:30 -04:00
Matthew Chen 80e5f281c6 Rename app preferences class.
// FREEBIE
2017-09-19 17:35:42 -04:00
Matthew Chen 400f536e37 Respond to CR.
// FREEBIE
2017-09-19 09:30:01 -04:00
Matthew Chen bb2a822f3f Clean up the data source class.
// FREEBIE
2017-09-11 10:20:48 -04:00
Matthew Chen b8573d7323 Apply OWSFail() in more places.
// FREEBIE
2017-09-11 10:20:48 -04:00
Matthew Chen 9dfebb2d4b Apply OWSFail() in more places.
// FREEBIE
2017-09-11 10:20:48 -04:00
Matthew Chen c21a7673c8 Rework preservation of attachment filenames.
// FREEBIE
2017-09-11 10:20:48 -04:00
Matthew Chen 0746b1300d Apply DataSource to message sender.
// FREEBIE
2017-09-11 10:20:48 -04:00
Matthew Chen 20e5013aae Convert DataSource to Objective-C.
// FREEBIE
2017-09-11 10:20:48 -04:00
Matthew Chen 69816cdf0e Convert DataSource to Objective-C.
// FREEBIE
2017-09-11 10:20:48 -04:00
Matthew Chen 2282733fa9 Add data source class.
// FREEBIE
2017-09-11 10:20:48 -04:00
Matthew Chen fc92293da3 Fix build break.
// FREEBIE
2017-09-06 13:32:47 -04:00
Michael Kirk 6911c8047e validate push settings on main thread
// FREEBIE
2017-09-06 13:32:47 -04:00
Matthew Chen cc048b3971 Respond to CR.
// FREEBIE
2017-08-30 12:46:21 -04:00
Matthew Chen 5fcf89dff1 Ignore "GIF of death."
// FREEBIE
2017-08-30 12:46:21 -04:00
Matthew Chen 8794880db8 Unbound message bubble cache size and DRY up cache logic.
// FREEBIE
2017-08-25 17:01:13 -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 14d472781f Respond to CR.
// FREEBIE
2017-08-21 17:13:36 -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 2e83643327 Don't consider registration complete until user registers their push
notification tokens.

// FREEBIE
2017-08-17 10:56:36 -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
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
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
Matthew Chen 1e67bb52e3 Respond to CR.
// FREEBIE
2017-07-12 13:18:03 -04:00
Matthew Chen f584c4b434 Fix broken tests.
// FREEBIE
2017-07-12 12:14:15 -04:00
Matthew Chen d639d6557e Add owsFail free function for swift.
// FREEBIE
2017-07-11 16:20:20 -04:00
Michael Kirk f681712ea0 Code Cleanup
- make some logging clearer
- remove noisy unhelpful logging
- clearer method names

// FREEBIE
2017-07-10 11:09:39 -05:00
Michael Kirk ff10f52779 remove unneccessary hack
Now that we have a nice system message design, we don't need to shoe
horn group updates into the TSCall adapter.

// FREEBIE
2017-07-05 11:51:18 -05:00
Michael Kirk bef3a56e50 DebugUI: create fake unread messages
helpful for printing unread indicator

// FREEBIE
2017-07-04 09:15:46 -04:00
Michael Kirk 964e558139 log when starting token sync in prod
// FREEBIE
2017-07-03 16:05:04 -05:00
Michael Kirk 4f3278db1e Fix layout of timestamp for system messages
Incorporate topLabelSize into cell size for system messages.

We are using the term "bubble size" to describe the interaction specific
views of a collection cell. It's a crappy name, but coincides with other
usage.

// FREEBIE
2017-06-19 09:16:37 -04:00
Matthew Chen 119f1f3429 Respond to CR.
// FREEBIE
2017-06-17 13:51:26 -04:00
Matthew Chen 6276dcb34c Fix “Invalid media attachments” crash.
// FREEBIE
2017-06-17 13:49:30 -04:00
Matthew Chen ab95b04e56 Respond to CR.
// FREEBIE
2017-06-17 13:47:10 -04:00
Matthew Chen bd440f0878 Respond to post-holiday code reviews.
// FREEBIE
2017-06-17 13:38:19 -04:00
Matthew Chen 91af4f93e1 Use reference cells for measurement.
// FREEBIE
2017-06-13 11:08:58 -04:00
Matthew Chen 1ef9ba0659 Clea up usage of fail macro.
// FREEBIE
2017-06-08 10:25:28 -04:00
Michael Kirk 1a3204bf46 create interaction in thread when missing call due to changed identity
// FREEBIE
2017-06-07 15:04:21 -04:00
Matthew Chen 15074cdb8f Clean up system message cells, make them tappable, etc.
// FREEBIE
2017-06-06 10:26:06 -04:00
Matthew Chen a013a7206e Rework and unify the system messages.
// FREEBIE
2017-06-06 10:15:56 -04:00
Matthew Chen 459c6c6ed4 Rework and unify the system messages.
// FREEBIE
2017-06-06 10:15:56 -04:00
Matthew Chen 9cdf907e20 Rework and unify the system messages.
// FREEBIE
2017-06-06 10:15:56 -04:00