Commit Graph

1037 Commits

Author SHA1 Message Date
Matthew Chen
5ebe4c77cc Merge remote-tracking branch 'private/release/3.14.1' 2020-08-17 14:30:42 -03:00
Matthew Chen
7bbe1927a8 Fix issue around updating conversation thread. 2020-08-17 14:02:53 -03:00
Nora Trapp
7e66682837 Remove calling feature flag 2020-08-14 20:44:04 -07:00
Nora Trapp
1110491f6e Cleanup mute status icon 2020-08-14 20:44:04 -07:00
Nora Trapp
5a48ec066d Move disappearing timer status to subtitle 2020-08-14 20:44:03 -07:00
Nora Trapp
b035d35510 Add dedicated video call button 2020-08-14 20:44:03 -07:00
Nora Trapp
7ffcb089e4 Add haptic feedback to mention picker 2020-08-13 10:58:28 -03:00
Nora Trapp
5388aa01b8 Use common run loop mode for some timers 2020-08-13 10:45:32 -03:00
Matthew Chen
20078ee909 Fix stale thread model. 2020-08-11 18:57:31 -03:00
Matthew Chen
ddd31dbc19 Respond to CR. 2020-08-11 17:51:41 -03:00
Matthew Chen
6897884f7c Convert ContactsViewHelper to singleton. 2020-08-11 17:51:41 -03:00
Matthew Chen
73c8839061 Convert ContactsViewHelper to singleton. 2020-08-11 17:51:40 -03:00
Matthew Chen
b653fc5eef Respond to CR. 2020-08-11 17:43:51 -03:00
Matthew Chen
7406a67870 Fix conversation view edge cases. 2020-08-11 17:35:07 -03:00
Matthew Chen
82a2ab0740 Improve conversation open perf. 2020-08-08 02:04:49 -03:00
Michelle Linington
ad554877aa IOS-723: Crash when trying to send memoji from the emoji keyboard
Fixes a bug where a nil MessageBody was passed to a Swift initializer
expecting non-nil. To fix, OutgoingMessagePreparer.init will now accept
a nil MessageBody and process it correctly.
2020-08-07 12:21:00 -07:00
Michelle Linington
a660a81d0f IOS-668: Reorganize how ContactsUpdater interacts with CDS operations
- Removes ContactsUpdater singleton. It wasn't really tracking much
  state anyway
- Introduces ContactDiscoveryTask. This creates a
  ContactDiscoveryOperation (modern or legacy) and updates the
  SignalRecipients database on completion. Returns a promise.
- Begin migrating away from operation queues

PromiseKit is weird about priority propogation, so this shouldn't be
used yet. Since all then closures are asynced, priorities don't
propogate down to underlying queues. This means the a
ContactDiscoveryTask on the main queue will not boost the priority on
the ModernContactDiscoverOperation's owned operation queue
2020-08-06 12:55:32 -07:00
Nora Trapp
fde4fd87c1 Fix extraneous rendering of scroll down button when at the bottom 2020-08-05 10:21:49 -07:00
Nora Trapp
d6ad7868a3 PR Feedback 2020-08-04 14:18:10 -07:00
Nora Trapp
737f0e4861 Design feedback 2020-08-04 14:09:07 -07:00
Nora Trapp
01bcdd0e84 Add scroll to mention button 2020-08-04 14:09:06 -07:00
Nora Trapp
340f8366d9 Allow tapping mentions in message bubbles 2020-08-04 14:09:06 -07:00
Nora Trapp
a39750113f Full suppoort for ention send + receive 2020-08-04 14:08:30 -07:00
Nora Trapp
4696a4d993 Mention sending 2020-08-04 14:08:30 -07:00
Nora Trapp
74e5d719bb Add support for mentions to drafts 2020-08-04 14:08:29 -07:00
Matthew Chen
28b43544b3 Implement attachment upload v3. 2020-08-01 12:06:57 -03:00
Nora Trapp
90e1d54ce3 Add mention picker support to attachment flows 2020-07-30 11:23:45 -07:00
Nora Trapp
65ed060639 Refine MentionTextView, add cut/copy/paste support 2020-07-27 14:30:52 -07:00
Nora Trapp
ff17567a6b ConversationInputTextView subclasses MentionTextView 2020-07-27 14:30:52 -07:00
Matthew Chen
b9bbaf9d6a Ensure message request is dismissed if necessary. 2020-07-24 17:31:17 -03:00
Matthew Chen
e4a00f5584 Rework message requests for v2 groups. 2020-07-24 17:31:17 -03:00
Nora Trapp
0460d9cdea PR Feedback 2020-07-15 11:32:20 -07:00
Nora Trapp
719213e8d9 Render profile name changes in conversation 2020-07-14 19:18:28 -07:00
Matthew Chen
fc82a11ccf Clean up naming around profile fetches. 2020-07-08 11:04:01 -03:00
Nora Trapp
05d6b57616 Render memoji, bitmoji, etc. as stickers 2020-07-06 11:43:35 -07:00
Michelle Linington
753aabb829 IOS-605: ScrollDownButton continues to remain visible after jumping to bottom
This fixes a bug where the ScrollDownButton would continue to persist
even after jumping to the bottom.

This is due to undefined ordering in UIKit with how it handles
scrollViewDidScroll: and updating the collectionView's visible index
paths. We'd receive the final scrollViewDidScroll: before the visible
items were updated.

To fix this, we need to figure out what cell's are visible without
relying on UICollectionView's cell appearance to be up to date. This
instead uses the collection view layout's cell frames to determine if
they live in the visible content rect of the collection view. Since
layout must be available for the cell to be visible, this should be
correct.

Made some other minor changes around naming. Clarified that lastSortId
and lastIndexPath refer to the viewmodel's loaded window, not the
global thread state.
2020-07-01 09:41:31 -07:00
Matthew Chen
f6d5342765 Merge remote-tracking branch 'private/release/3.12.1' 2020-06-25 20:00:08 -03:00
Nora Trapp
6b53eb5ae8 Always re-create the message request dialog if necessarry, since the type of request may have changed 2020-06-25 19:05:09 -03:00
Nora Trapp
fc63f37329 New safety number sheet 2020-06-25 19:04:12 -03:00
Matthew Chen
43f568cb9f Merge remote-tracking branch 'private/release/3.12.0' 2020-06-24 15:06:49 -03:00
Nora Trapp
3d0bf09292 Remove unnecessary unread count calculation 2020-06-23 20:34:08 -07:00
Matthew Chen
b18ea23bf2 Respond to CR. 2020-06-23 10:17:15 -03:00
Matthew Chen
6acdeacdb9 Tweak conversation view configuration. 2020-06-23 10:16:38 -03:00
Nora Trapp
086a65ff7c Consolidate conversation scrolling logic 2020-06-19 11:54:31 -07:00
Nora Trapp
8b7772c7b8 Fall forward if there are no messages to fall back to when preserving scroll position 2020-06-18 16:25:04 -07:00
Nora Trapp
6105795cb3 PR Feedback 2020-06-18 16:25:04 -07:00
Nora Trapp
d0534ea642 Preserve conversation scroll position 2020-06-18 16:25:04 -07:00
Nora Trapp
c3238d7351 Merge branch 'release/3.11.0' 2020-06-16 20:48:47 -07:00
Michelle Linington
d164afee1e PR Feedback:
- Adopt dot syntax unless there's a good reason not to
- sortID -> sortId
2020-06-16 15:46:37 -07:00
Michelle Linington
2a73337ff9 IOS-575: Reduce unnecessary updates to lastSortID, unread flag
This change moves -lastVisibleSortID from a property to a method.
Instead of having to explicitly call an update method to recompute the
lastVisibleSortID, we'll just recompute it every time it's invoked.

This is an improvement because:
a. The computation wasn't very expensive
b. We were calling -updateLastVisibleSortID much more frequently than
   how often we actually read it.
c. We had to make sure we aggressively updated the lastVisibleSortID to
   make sure it was up to date when we actually read it.

By moving to something that's recomputed at the time of invocation, we
end up reducing unnecessary work for a more accurate result.

-updateLastVisibleSortId had one side-effect: clearing the unread
message flag. This responsibility is now moved to
-markVisibleMessagesAsRead. This seems to make more sense anyway.

Other changes:
- Adds an explicit clear-only way of updating the unread flag. This is
  only called from one place but it removes logic that might be unclear
  at the call site with a method name that makes more sense.
- Adds some debug assertions to existing code
- Adds a new ivar to track the last sortID reported to
  OWSReadReceiptManager
- Updates -markVisibleMessagesAsRead to adopt this new ivar. Minor
  spacing improvements to this method.
- Renames the method to clear the thread unread flag. This helps to
  differentiate from other similarly named symbols that refer to the
  ConversationViewController's unread flag.
2020-06-16 15:46:37 -07:00