Commit graph

123 commits

Author SHA1 Message Date
Matthew Chen 94daccc78e Fix fake contacts.
// FREEBIE
2017-09-01 15:24:27 -04:00
Michael Kirk 2cd2596ddc crashfix: thread.uniqueId is sometimes nil in production
fail early and print diagnostics

// FREEBIE
2017-09-01 12:56:50 -04:00
Michael Kirk bb8f6c1b73 crashfix: crash while accessing image property
assert on blind cast

// FREEBIE
2017-09-01 12:56:50 -04:00
Michael Kirk 2eaaba9082 crashfix: on addObject, presumably it's nil.
I'm not sure how this is happening, but this will prevent the crash and
give us additional diagnostic data in the cases where it is happening.

// FREEBIE
2017-09-01 12:56:50 -04:00
Matthew Chen 95eaa2c3bb Preserve scroll state across conversation view layout changes, if possible.
// FREEBIE
2017-08-31 15:21:29 -04:00
Matthew Chen b2c8ad2d29 Restore scroll state after resetting the conversation view's mapping.
// FREEBIE
2017-08-31 15:21:29 -04:00
Matthew Chen 7d32491968 Preserve scroll state across conversation view layout changes, if possible.
// FREEBIE
2017-08-31 15:21:27 -04:00
Matthew Chen fce2ad2793 Refine the "is scrolled to bottom" logic to better handle new conversations.
// FREEBIE
2017-08-30 13:00:02 -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 92a0fbe01b Fix yet another edge case around message view scroll state.
// FREEBIE
2017-08-29 13:30:56 -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 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 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
Matthew Chen d3d9e5dabc Fix scroll down button state.
// FREEBIE
2017-08-28 14:55:39 -04:00
Matthew Chen f2ae73e156 Remove obsolete "scrollLaterTimer" hack in messages view.
// FREEBIE
2017-08-25 17:01:13 -04:00
Matthew Chen 65db75a91d Fix group profile whitelist check.
// FREEBIE
2017-08-24 17:29:32 -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
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 68309eb00f Rework save/cancel buttons in profile view.
// FREEBIE
2017-08-23 13:31:06 -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 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 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 5f2f8ec6d8 Start reworking the contact offers.
// FREEBIE
2017-08-21 17:05:42 -04:00
Matthew Chen 25b0f79615 Rework "cancel navigate back" logic.
// FREEBIE
2017-08-21 10:10:22 -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 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
Matthew Chen 6c3662b944 Increase max conversation range length.
// FREEBIE
2017-08-16 17:07:18 -04:00
Matthew Chen b2360ace6e Fix layout glitch in messages view.
// FREEBIE
2017-08-16 10:38:29 -04:00
Matthew Chen 37ce388eb6 Add “add to profile whitelist” offer.
// FREEBIE
2017-08-04 15:23:02 -04:00
Matthew Chen 282ac4bb29 Add “share profile” row to conversation settings.
// FREEBIE
2017-08-02 10:50:44 -04:00
Matthew Chen a0eead37c7 Ensure size of message mappings range increases monotonically.
// FREEBIE
2017-07-28 17:13:35 -04:00
Matthew Chen 103a7fab36 Hide empty conversations in home view.
// FREEBIE
2017-07-27 15:39:26 -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 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 f0cecfad11 Surface memory leaks by logging the deallocation of view controllers.
// FREEBIE
2017-07-26 11:59:00 -04:00