Commit Graph

377 Commits (e20f44024cc1dd14030357659a3488b71154cbdd)

Author SHA1 Message Date
Matthew Chen d355b45bae Reduce relayout and reload churn; respond to dynamic type changes.
// FREEBIE
8 years ago
Matthew Chen c2608785e1 Reduce relayout and reload churn; respond to dynamic type changes.
// FREEBIE
8 years ago
Matthew Chen 4dc6934fc7 End text editing if we leave conversation view.
// FREEBIE
8 years ago
Matthew Chen bd5639baaf Linkify text messages.
// FREEBIE
8 years ago
Matthew Chen bf80e6dd36 Fix broken message cell layout.
// FREEBIE
8 years ago
Matthew Chen 45ba79d296 Auto-load more message if user scrolls near the top of the conversation.
// FREEBIE
8 years ago
Matthew Chen f28abbc2a1 Revert from numeric to default keyboard after message send.
// FREEBIE
8 years ago
Matthew Chen 4dabb71815 Fix "can't send same GIF twice" issue.
// FREEBIE
8 years ago
Matthew Chen fb4d43d542 Fix "can't send same GIF twice" issue.
// FREEBIE
8 years ago
Matthew Chen f3102e2761 Fix presentation animation of new "attachment approval" state of input toolbar.
// FREEBIE
8 years ago
Matthew Chen 0fe76aaab8 Move "attachment approval" into input toolbar.
// FREEBIE
8 years ago
Matthew Chen 06eb794db6 Simplify and fix edge cases around long pressing on system message cells.
// FREEBIE
8 years ago
Matthew Chen 37841d9b67 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 4a94d039e8 Restore the input toolbar's placeholder text.
// FREEBIE
8 years ago
Matthew Chen c47573334b Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 3b945a9da2 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 88c874e4e6 Clean up ahead of PR.
// FREEBIE
8 years ago
Matthew Chen 257f8249bf Cull cached cell media outside a load window.
// FREEBIE
8 years ago
Matthew Chen 65efa7f836 Lazy load, eagerly unload & cache cell media.
// FREEBIE
8 years ago
Matthew Chen e77292c2a9 Add contentWidth property to ConversationViewCell.
// FREEBIE
8 years ago
Matthew Chen b269c72acb Respond to CR.
// FREEBIE
8 years ago
Matthew Chen f36ecbdfa6 Button locations in input toolbar should reflect RTL.
// FREEBIE
8 years ago
Matthew Chen cec614706e Button locations in input toolbar should reflect RTL.
// FREEBIE
8 years ago
Matthew Chen 2ec8522355 Fix the input toolbar.
// FREEBIE
8 years ago
Matthew Chen b9f6bbb369 Clean up ahead of PR.
// FREEBIE
8 years ago
Matthew Chen 163e66dd4f Restore "load more messages" functionality.
// FREEBIE
8 years ago
Matthew Chen ed350f8ea6 Add vertical scroll indicator to conversation view.
// FREEBIE
8 years ago
Matthew Chen 032ec59d1c Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 01691b7ade Ensure attachment masking is updated to reflect cell relayout.
// FREEBIE
8 years ago
Matthew Chen 212d5dd112 Clean up ahead of PR.
// FREEBIE
8 years ago
Matthew Chen ae27d062f6 Clamp content aspect ratio.
// FREEBIE
8 years ago
Matthew Chen b6a61afd5c Clean up ahead of PR.
// FREEBIE
8 years ago
Matthew Chen 46dc0acdfb Fix media cropping.
// FREEBIE
8 years ago
Matthew Chen 132d5b3408 Clean up ahead of PR.
// FREEBIE
8 years ago
Matthew Chen e91599d986 Restore message cell footers.
// FREEBIE
8 years ago
Matthew Chen 3723a4845f Restore message cell footers.
// FREEBIE
8 years ago
Matthew Chen c2f07bb3d8 Restore message cell footers.
// FREEBIE
8 years ago
Matthew Chen 227fd5280d Resize conversation view cells as necessary.
// FREEBIE
8 years ago
Matthew Chen f7bd813c9f Restore the date headers to the conversation view cells.
// FREEBIE
8 years ago
Michael Kirk 0f859d6b20 Merge branch 'release/2.18.0' 8 years ago
Michael Kirk 3080cb512b Compose View: collation index and group search
- Include table index for contacts
- Fix extra spacing in OWS table view
- Separate search results into contact/invite sections
- Include groups in search results when composing new message
- Compose Screen search matches on group member names

// FREEBIE
8 years ago
Matthew Chen 7c82f6d448 Add workaround for bug in iOS 11.1 beta around hit area of custom back buttons.
// FREEBIE
8 years ago
Matthew Chen 49501a5d1b Respond to CR.
// FREEBIE
8 years ago
Matthew Chen b1624d6818 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen b833976b77 Clean up ahead of PR.
// FREEBIE
8 years ago
Matthew Chen 5621fe893c Clean up ahead of PR.
// FREEBIE
8 years ago
Matthew Chen fb408f980c Remove JSQ.
// FREEBIE
8 years ago
Michael Kirk 796be18c56 enable gif picker
// FREEBIE
8 years ago
Matthew Chen 380ed0f82b Create & access groups more carefully.
// FREEBIE
8 years ago
Matthew Chen cef1f9186d Fix the scroll down button margins.
// FREEBIE
8 years ago
Matthew Chen fd9188415f Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 801734a938 Clean up ahead of PR.
// FREEBIE
8 years ago
Matthew Chen 5b70116209 Unify the "message was sent" logic in conversation view. Ensure "message sent" sounds are played after sending attachments.
// FREEBIE
8 years ago
Matthew Chen a65a4b133c Clean up ahead of PR.
// FREEBIE
8 years ago
Matthew Chen 2dfd7aa0e9 Actually send GIFs.
// FREEBIE

SQUASH ME.

SQUASH ME.
8 years ago
Matthew Chen 62ba5701f6 Sketch out GIF picker.
// FREEBIE
8 years ago
Matthew Chen 27e5a2f1b2 Sketch out GIF picker.
// FREEBIE
8 years ago
Matthew Chen dbe2c6aa76 Fix scroll down button.
// FREEBIE
8 years ago
Matthew Chen f99ce23e69 Fix wrongful "add to contacts offer" issue.
// FREEBIE
8 years ago
Matthew Chen 6abc4bed90 Increase hot area of scroll down button.
// FREEBIE
8 years ago
Michael Kirk e2445e6ed2 Fix RTL bubbles in conversation and message detail view
// FREEBIE
8 years ago
Michael Kirk c3bb8a0190 on main thread, per CR
// FREEBIE
8 years ago
Michael Kirk 5704bf1765 message bubbles for message detail view controller
// FREEBIE
8 years ago
Michael Kirk e77a7e09bb Fix assert for empty thread
// FREEBIE
8 years ago
Matthew Chen d557817bb4 Format message statuses with date if possible.
// FREEBIE
8 years ago
Matthew Chen af7fd60d76 Fix NPE in conversation view.
// FREEBIE
8 years ago
Michael Kirk bfaa7f2e0c On iOS11 doc picker requires system appearance.
Otherwise nav items are illegible.

// FREEBIE
8 years ago
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
8 years ago
Matthew Chen 315c1d7dc4 Hide all read receipts in UI if not enabled.
// FREEBIE
8 years ago
Matthew Chen 11cadf4200 Send, receive & show read receipts to senders/from receivers.
* Send read receipts to senders.
* Honor "send read receipts" preference.
* Process read receipts from recipients.
* Refactor "mark as read" logic.
* Serialize and apply recipient read receipts received before sync transcript.
* Show recipient read receipts in conversation view.

// FREEBIE
8 years ago
Matthew Chen c92c6de7b9 Add stress group to debug UI.
// FREEBIE
8 years ago
Matthew Chen 7268bde506 Add stress group to debug UI.
// FREEBIE
8 years ago
Matthew Chen bd416176ae Add stress group to debug UI.
// FREEBIE
8 years ago
Matthew Chen 35a2470cb7 Post notifications asynchronously.
// FREEBIE
8 years ago
Matthew Chen b28c4b74b2 Pull out TSMessageDecrypter class.
// FREEBIE
8 years ago
Matthew Chen f1b7d895e2 Modify precommit script to clean up includes and forward declarations.
// FREEBIE
8 years ago
Matthew Chen fa353259c3 Process messages in a single transaction (wherever possible).
// FREEBIE
8 years ago
Matthew Chen 6fce2c26b7 Process messages in a single transaction (wherever possible).
// FREEBIE
8 years ago
Matthew Chen 80e5f281c6 Rename app preferences class.
// FREEBIE
8 years ago
Matthew Chen c0f5bda2be Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 400f536e37 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 872ce17dd6 Clean up data source temp files when complete.
// FREEBIE
8 years ago
Matthew Chen 92a2fd6b69 Avoid NPEs when entering conversation view.
// FREEBIE
8 years ago
Matthew Chen 541966aaf6 Fix NPEs when profiles change while entering conversation view.
// FREEBIE
8 years ago
Matthew Chen 2c68b06412 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 05b1818874 Don't "scroll to bottom" when messages are sent from desktop.
// FREEBIE
8 years ago
Matthew Chen 48121e5eac Don't "scroll to bottom" when messages are sent from desktop.
// FREEBIE
8 years ago
Matthew Chen 5be2014ec7 Create Flat UI rounded button class.
// FREEBIE
8 years ago
Matthew Chen ab00342d67 Add modal activity indicator view.
// FREEBIE
8 years ago
Matthew Chen 9dfebb2d4b Apply OWSFail() in more places.
// FREEBIE
8 years ago
Matthew Chen c21a7673c8 Rework preservation of attachment filenames.
// FREEBIE
8 years ago
Matthew Chen b95b5f69de Apply DataSource to message sender.
// FREEBIE
8 years ago
Matthew Chen 20e5013aae Convert DataSource to Objective-C.
// FREEBIE
8 years ago
Matthew Chen 69816cdf0e Convert DataSource to Objective-C.
// FREEBIE
8 years ago
Matthew Chen 2282733fa9 Add data source class.
// FREEBIE
8 years ago
Matthew Chen 26a6e76f3c Rework conversation view header.
// FREEBIE
8 years ago
Matthew Chen b626fb5bf8 Rework conversation view header.
// FREEBIE
8 years ago
Matthew Chen 644f435b16 Rework conversation view header.
// FREEBIE
8 years ago
Matthew Chen c106794fe8 Rename conversation view.
// FREEBIE
8 years ago
Matthew Chen 928525c31e Rename home view.
// FREEBIE
8 years ago
Michael Kirk 83ca34edbe Fix sending images taken on iOS11 camera.
Convert .heic to .jpg upon sending

// FREEBIE
8 years ago
Michael Kirk ecf8ca093f [JSQMVC] iOS11 compatability
// FREEBIE
8 years ago
Matthew Chen 6a2d14ad2a Refine message view's initial range size.
// FREEBIE
8 years ago
Matthew Chen a1cb2c015e Refine message view's initial range size.
// FREEBIE
8 years ago
Matthew Chen 94daccc78e Fix fake contacts.
// FREEBIE
8 years ago
Michael Kirk 2cd2596ddc crashfix: thread.uniqueId is sometimes nil in production
fail early and print diagnostics

// FREEBIE
8 years ago
Michael Kirk bb8f6c1b73 crashfix: crash while accessing image property
assert on blind cast

// FREEBIE
8 years ago
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
8 years ago
Matthew Chen 95eaa2c3bb Preserve scroll state across conversation view layout changes, if possible.
// FREEBIE
8 years ago
Matthew Chen b2c8ad2d29 Restore scroll state after resetting the conversation view's mapping.
// FREEBIE
8 years ago
Matthew Chen 7d32491968 Preserve scroll state across conversation view layout changes, if possible.
// FREEBIE
8 years ago
Matthew Chen fce2ad2793 Refine the "is scrolled to bottom" logic to better handle new conversations.
// FREEBIE
8 years ago
Matthew Chen b9908997c9 Remain scrolled to bottom after presenting the keyboard in messages view.
// FREEBIE
8 years ago
Matthew Chen 92a0fbe01b Fix yet another edge case around message view scroll state.
// FREEBIE
8 years ago
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
8 years ago
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
8 years ago
Michael Kirk ab84cbd670 use messageSender property now that the class relies on it in multiple
places.

(due to rebase)

// FREEBIE
8 years ago
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
8 years ago
Matthew Chen d3d9e5dabc Fix scroll down button state.
// FREEBIE
8 years ago
Matthew Chen f2ae73e156 Remove obsolete "scrollLaterTimer" hack in messages view.
// FREEBIE
8 years ago
Matthew Chen 65db75a91d Fix group profile whitelist check.
// FREEBIE
8 years ago
Michael Kirk 96f0ab215c wip 8 years ago
Michael Kirk fd99354673 profile name vs. verified in ContactTableViewCell
// FREEBIE
8 years ago
Michael Kirk e54e1d11c0 show profile name snippet in inbox and conversation settings
// FREEBIE
8 years ago
Matthew Chen b28a6bab26 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 57b76b3411 Ensure message view range is properly truncated with view is configured.
// FREEBIE
8 years ago
Matthew Chen 68309eb00f Rework save/cancel buttons in profile view.
// FREEBIE
8 years ago
Matthew Chen 5e6f5804c1 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 584ddab0b9 Show "share profile with group" banner.
// FREEBIE
8 years ago
Matthew Chen ae1908c40c Show "share profile with group" banner.
// FREEBIE
8 years ago
Matthew Chen 9dfeb132cb Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 1e43e93371 Observe profile changes in conversation view.
// FREEBIE
8 years ago
Matthew Chen 14d472781f Respond to CR.
// FREEBIE
8 years ago
Matthew Chen a340c9ebdc Clean up ahead of CR.
// FREEBIE
8 years ago
Matthew Chen 265bdce0ba Start reworking the contact offers.
// FREEBIE
8 years ago
Matthew Chen a825fad47b Start reworking the contact offers.
// FREEBIE
8 years ago
Matthew Chen 5f2f8ec6d8 Start reworking the contact offers.
// FREEBIE
8 years ago
Matthew Chen 25b0f79615 Rework "cancel navigate back" logic.
// FREEBIE
8 years ago
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
8 years ago
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
8 years ago
Matthew Chen 0b14f87575 Improve comments about mapping consistency in conversation view.
// FREEBIE
8 years ago
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
8 years ago
Matthew Chen 6c3662b944 Increase max conversation range length.
// FREEBIE
8 years ago
Matthew Chen b2360ace6e Fix layout glitch in messages view.
// FREEBIE
8 years ago
Matthew Chen 37ce388eb6 Add “add to profile whitelist” offer.
// FREEBIE
8 years ago
Matthew Chen 282ac4bb29 Add “share profile” row to conversation settings.
// FREEBIE
8 years ago
Matthew Chen a0eead37c7 Ensure size of message mappings range increases monotonically.
// FREEBIE
8 years ago
Matthew Chen 103a7fab36 Hide empty conversations in home view.
// FREEBIE
8 years ago
Matthew Chen 6858a1e944 Fix assert in conversation view around nil title.
// FREEBIE
8 years ago
Matthew Chen 803e91c3ce Fix assert in conversation view around nil title.
// FREEBIE
8 years ago
Matthew Chen d80f470c2c Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 2e7fe5cfd5 Rework database observation in home and message views.
// FREEBIE
8 years ago
Matthew Chen 1f1a681180 Rework database observation in home and message views.
// FREEBIE
8 years ago
Matthew Chen f0cecfad11 Surface memory leaks by logging the deallocation of view controllers.
// FREEBIE
8 years ago
Matthew Chen fdac0305cb Update analytics macros.
// FREEBIE
8 years ago
Matthew Chen 14621e1288 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 02c510691c Adapt number formatting to RTL.
// FREEBIE
8 years ago
Matthew Chen 5edec99fd6 Adapt number formatting to RTL.
// FREEBIE
8 years ago
Matthew Chen c799e18c74 Adapt voice messages UI to RTL.
// FREEBIE
8 years ago
Matthew Chen 693e74e868 Adapt conversation settings view to RTL.
// FREEBIE
8 years ago
Matthew Chen d36e60b0e9 Respond to CR.
// FREEBIE
8 years ago
Michael Kirk a59eb25aef extract dismiss string -> CommonStrings.dismissButton
// FREEBIE
8 years ago
markus.fassbender 422336db32 fixes compiler warnings FREEBIE 8 years ago
Matthew Chen 0244e134f5 Block device from sleeping during certain activities.
// FREEBIE
8 years ago
Matthew Chen 07c8eb54b7 Prevent "scroll to button" button from blipping.
// FREEBIE
8 years ago
Michael Kirk c6cd0bbcae Always show timestamp after unread indicator
// FREEBIE
8 years ago
Michael Kirk bef3a56e50 DebugUI: create fake unread messages
helpful for printing unread indicator

// FREEBIE
8 years ago
Matthew Chen f7c81bae9d Show the “scroll down” button if user scrolls up, even if there are no unread messages.
// FREEBIE
9 years ago
Matthew Chen eff1974eeb [SSK] Reduce chattiness of logs; increase log file sizes.
// FREEBIE
9 years ago
Matthew Chen a039aac36d Improve UX for multiple “no longer verified” members of a group.
// FREEBIE
9 years ago
Matthew Chen b39c4905c3 Invalid message adapter cache when app becomes visible.
// FREEBIE
9 years ago
Michael Kirk 11fa08470d [JSQ] Fix: can't dismiss keyboard after sending
// FREEBIE
9 years ago
Michael Kirk 8898f4a6d4 CR: future proof view placement if we change hierarchy
// FREEBIE
9 years ago
Michael Kirk c70b1e9681 Make system messages deletable
// FREEBIE
9 years ago
Michael Kirk fbba2f5dd7 colocate CollectionViewDelegate methods
// FREEBIE
9 years ago
Matthew Chen de453b2960 Respond to CR.
// FREEBIE
9 years ago
Matthew Chen 5796bbd858 Max out the unread count at 99.
// FREEBIE
9 years ago
Michael Kirk 0419d35f12 CR: rename method
not always resized when used

// FREEBIE
9 years ago
Michael Kirk 8fc2289152 prefer becomeFirstResponder
Feels a little more reasonable than interecepting canBecomeFirstResponder

// FREEBIE
9 years ago
Michael Kirk b4d3e8e744 Fix: tapping input obscures last messages
// FREEBIE
9 years ago
Matthew Chen d01a52758b Respond to CR.
// FREEBIE
9 years ago
Matthew Chen 0d07e0222f Avoid stale mapping in conversation view.
// FREEBIE
9 years ago
Matthew Chen 331a1e90e3 Avoid stale mapping in conversation view.
// FREEBIE
9 years ago
Matthew Chen f6f08891eb Avoid stale mapping in conversation view.
// FREEBIE
9 years ago
Matthew Chen d4a6a35ee3 Avoid stale mapping in conversation view.
// FREEBIE
9 years ago
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
9 years ago
Michael Kirk 1125e2ac99 System messsages can show timestamp
added the JSQCollectionViewCell cellTopLabel to the system message
layout

// FREEBIE
9 years ago
Matthew Chen 104a548eb2 Ensure message mapping is up-to-date when app returns from background.
// FREEBIE
9 years ago
Matthew Chen e14b9b511d Respond to CR.
// FREEBIE
9 years ago
Matthew Chen 8649b26033 Don’t auto-scroll after “loading more messages” unless we have “more unseen messages”.
// FREEBIE
9 years ago
Matthew Chen ab95b04e56 Respond to CR.
// FREEBIE
9 years ago
Matthew Chen 90c4ba27bf Respond to post-holiday code reviews.
// FREEBIE
9 years ago
Matthew Chen bd440f0878 Respond to post-holiday code reviews.
// FREEBIE
9 years ago
Michael Kirk 1661e8dc34 assume contact in 1:1 thread
// FREEBIE
9 years ago
Michael Kirk a41b10a695 ignore tap on legacy non-blocking SN change message
// FREEBIE
9 years ago
Matthew Chen 35d68c6180 Fix "writes on long-lived read connection" issue.
// FREEBIE
9 years ago
Matthew Chen f71f33c2a6 Respond to CR.
// FREEBIE
9 years ago
Matthew Chen c7426f9343 Avoid crashing on startup due to database view creation.
* Substitute unread view for unseen view until unseen view is ready.
* Register as many views as possible async.
* Perform blocking, safe migrations before async registration of views.
* Add debug settings view for internal app stats.
* Show blocking overlay until async registration of database views is complete.
* Convert version migrations to use AppVersions.

// FREEBIE
9 years ago
Matthew Chen 6f1f1fac80 Improve handling of group creation failures.
// FREEBIE
9 years ago
Matthew Chen a73c6ede60 Tweak verification UI.
* Add “tap for options” to verification banner copy.
* Add close button to banners.
* Always use shield icon for verification row in conversation settings view.
* Add action sheet to verification banner.

// FREEBIE
9 years ago