Commit Graph

1176 Commits (62cf05cd8b2a5746c6b74ef0f923dca849779a2f)

Author SHA1 Message Date
Michael Kirk 87bfdbb72c Sender Rail 7 years ago
Matthew Chen 2e50cc1f2d Respond to CR. 7 years ago
Matthew Chen 84d6f61d53 Fix glitches in conversation media view. 7 years ago
Michael Kirk fa82d43e6c put custom image picker behind feature flag 7 years ago
Michael Kirk 97e9871f19 remove unnecessary implicitly unwrapped optional 7 years ago
Michael Kirk 2a1c62f6f5 remove unused delegate method declaration 7 years ago
Michael Kirk 24f97f1229 compiler warning: discard result explicitly 7 years ago
Matthew Chen 6f64a809f3 Tap on album item. 7 years ago
Matthew Chen b475695f54 Respond to CR. 7 years ago
Matthew Chen 34b4ea377f Revise media progress views. 7 years ago
Matthew Chen 15c42642e0 Apply invalid and rety assets. 7 years ago
Matthew Chen 9d1579a480 Update caption indicator asset. 7 years ago
Matthew Chen cd224a1590 Render single media as albums. 7 years ago
Matthew Chen 82fb766c27 Respond to CR. 7 years ago
Matthew Chen 654325c6dc Add download progress indicators. 7 years ago
Matthew Chen a26086b303 Show attachment upload progress indicators. 7 years ago
Matthew Chen c1a5e1e258 Rename to media album. 7 years ago
Matthew Chen 3daf7d4744 Add OWSAttachmentDownloads. 7 years ago
Michael Kirk 42bf267607 fixup plumbing for incoming messages/synced transcripts 7 years ago
Michael Kirk 57681bd6f3 Gallery supports album messages 7 years ago
Matthew Chen 02a9cc9181 Remove stroke on album items. 7 years ago
Matthew Chen 9a44f24bc1 Reduce typing indicators. 7 years ago
Matthew Chen f382cd770e Fix build break. 7 years ago
Matthew Chen 777e2b9251 Rename to media album. 7 years ago
Matthew Chen 2dfd4b2c0d Rename to media album. 7 years ago
Michael Kirk 3ff3779f17 CR: remove unnecessary assert 7 years ago
Matthew Chen c7c02f03d1 Display caption indicators for media albums in conversation view. 7 years ago
Michael Kirk 7cef41f8e2 Multi-approval 7 years ago
Matthew Chen 57de089118 Add support for album captions to models. 7 years ago
Matthew Chen 60c5a84dd2 Fix issues in media gallery cells; Improve debug galleries. 7 years ago
Matthew Chen 88a1186e4e Restore XCode 9 compatability. 7 years ago
Matthew Chen cdfd2779a3 Fix a couple small bugs in the typing indicators. 7 years ago
Matthew Chen 5aa6467d20 Fix issues in media gallery cells. 7 years ago
Matthew Chen f45693ec34 Respond to CR. 7 years ago
Matthew Chen 736d7c7351 Fix media gallery cell edge cases. 7 years ago
Matthew Chen d538301632 Fix media gallery cell edge cases. 7 years ago
Matthew Chen 34e85dd90e Fix media gallery cell edge cases. 7 years ago
Matthew Chen ee3bdca336 Fix media gallery cell edge cases. 7 years ago
Matthew Chen cfcb6cb15b Clean up ahead of PR. 7 years ago
Matthew Chen 0c76e1c02d Use ConversationMediaView to simplify media rendering in conversation view cells. 7 years ago
Matthew Chen f2c0a6f7dd Clean up ahead of PR. 7 years ago
Matthew Chen c89bdd2a15 Modify MediaGalleryCellView to handle animated images and videos. 7 years ago
Matthew Chen 2c9a556786 Remove overzealous assert in ConversationViewModel. 7 years ago
Matthew Chen cf057e3af3 Modify MediaGalleryCellView to handle still images. 7 years ago
Matthew Chen ec6de40bd9 Modify MessageBubbleView to support media galleries. 7 years ago
Matthew Chen 0341f5dc2b Modify ConversationViewItem to support media galleries. 7 years ago
Matthew Chen f2c0985907 Add 'is valid media?' method. 7 years ago
Michael Kirk 4c5d46e8f8 Custom photo picker, respects theme/call banner
- share GridViewCell
- Multiple image selection, with feature flag, cant currently approve multiple
7 years ago
Matthew Chen 2ca32fddcc Preserve ordering in incremental diffs. 7 years ago
Matthew Chen aa5e6b456e Preserve ordering in incremental diffs. 7 years ago
Matthew Chen af249de681 Fix race in CVM startup. 7 years ago
Matthew Chen 47fda2e377 Add debug UI for multi-image sends. 7 years ago
Matthew Chen ecba67b511 Add debug UI for multi-image sends. 7 years ago
Matthew Chen 22c922bf5b Respond to CR. 7 years ago
Matthew Chen 650469c6a7 Respond to CR. 7 years ago
Matthew Chen 4088bebe05 Clean up ahead of PR. 7 years ago
Matthew Chen 94eaed0024 Fix rebase breakage. 7 years ago
Matthew Chen 37ae4ef360 Add typing indicator animation. 7 years ago
Matthew Chen 63d88ef5cb Sketch out TypingIndicatorCell. 7 years ago
Matthew Chen eedc9f9a26 Sketch out "typing indicators" interaction and cell. 7 years ago
Michael Kirk 77bd9b8852 Extract most Gallery functionality from the gallery NavigationController.
By not overriding the initializer for an OWSNavigationController subclass,
we can use the dynamic disaptch intialization chain.

The root difficulty here is that super.init(navBarClass:) wants to call
self.init(nibNam)
7 years ago
Matthew Chen 834bba8880 Respond to CR. 7 years ago
Matthew Chen 32d3eed7ba Add ConversationViewModel. 7 years ago
Matthew Chen 3d0e7386a4 Respond to CR. 7 years ago
Matthew Chen a98c82645c Start work on typing indicators.
* Update proto schema to reflect typing indicators.
* Sketch out OWSTypingIndicatorMessage.
* Add "online" to the service message params.
* Sketch out logic to send typing indicator messages.
* Sketch out OWSTypingIndicators class.
7 years ago
Matthew Chen 40aa78e001 Merge remote-tracking branch 'origin/release/2.31.0' 7 years ago
Michael Kirk 3d9cd4f4ed CR: comments and code clarity 7 years ago
Michael Kirk cb9aa6304c find -E . -type f -regex ".*\.(m|h)" -exec sed -i "" -e "s/try_/throws_/" {} \; 7 years ago
Michael Kirk 3a6aafc454 Swift Exception wrap NSData+keyVersionByte 7 years ago
Michael Kirk 3560f3be5c Durable send operation
TODO
-[x] respect order of queue
-[x] replacements
  -[x] those w/o completion handler
  -[x] basic send+log operation persists
  -[x] send+ui completion
  -[x] share extension
  -[x] update state jobs
-[x] App Lifecyle
  -[x] settable
  -[x] Mark as ready on startup
  -[x] Fail appropriate jobs on startup

NICE TO HAVE
-[x] concurrent per senders
-[ ] longer retry (e.g. 24hrs)
-[ ] App Lifecyle
  -[x] retry failed jobs on startup?
  -[ ] reachability

DONE
-[x] basic passing test
-[x] datamodel
-[x] queue/classes
7 years ago
Michael Kirk e20df022c8 always show footer for in-progress sending 7 years ago
Michael Kirk ce9ca1bdaa audio player type 7 years ago
Michael Kirk 3b4188f34b hoist audio session singleton to Environment 7 years ago
Michael Kirk 3d022adf4e WIP: audio activities 7 years ago
Matthew Chen 0b4ed1175d Create AppEnvironment. 7 years ago
Matthew Chen f1d93d4472 Merge remote-tracking branch 'origin/release/2.30.2' 7 years ago
Matthew Chen 0b41e5e240 Rework profile fetch to reflect UD changes. 7 years ago
Michael Kirk f243914fe5 NSTemporaryDirectory -> OWSTemporaryDirectory/AccessibleAfterFirstAuth
Remove redundant move - AFNetworking alread moves the CFNetwork tmp file for
us.
7 years ago
Michael Kirk 006021ea41 Fix: group color change doesn't immediately apply
Because we were fetching a new thread instance, instead of updating the
existing thread instance, classes which were bound to the old thread instance
weren't updating. This affected the HeaderView.AvatarView.thread and the
ConversationStyle.thread.
7 years ago
Matthew Chen 0125535d4d Pull out SignalCoreKit. 7 years ago
Michael Kirk 06eae47e09 ConversationViewItem -> protocol 7 years ago
Matthew Chen ebae75af00 Revert 'new sort id'. 7 years ago
Joshua Lund 97d0543cef String cleanup:
* Made our Title Case usage a little more consistent.
* Standardized on the ellipses special character.
* Rephrased a few buttons and descriptions.
7 years ago
Michael Kirk 79add78d51 Merge branch 'release/2.30.1' 7 years ago
Matthew Chen 1c1d305a71 Respond to CR. 7 years ago
Matthew Chen cbaf40d4ce Respond to CR. 7 years ago
Matthew Chen d161e5ff3d Add inner shadows to media thumbnails. 7 years ago
Matthew Chen b3ad6e27dc Rework conversation message bubble colors; add "conversation colors" class. 7 years ago
Matthew Chen 25d56b30c1 Rework group avatars to reflect conversation colors. 7 years ago
Michael Kirk c21020d7e7 Use received date for footer-collapse supression 7 years ago
Michael Kirk 6f8eddc955 unread indicator uses sortId
- removed timestamp parameter. This wasn't totally obvious, previously we were tracking two pieces of state

1. `unreadIndicator.firstUnseenTimestamp`:
    the first unseen timestamp for a conversation that exists in the database
2. `unreadIndicator.timestamp`:
    the timestamp of the first interaction *after* the unread indicator that fits in the loading window

We don't actually need to track `2` because it was only used in a comparison like:

   viewItem.interaction.timestampForSorting >= unreadIndicator.timestamp

But by definition, unreadIndicator.firstUnseenTimestamp is always less than or
equal to unreadIndicator.timestamp. Put into terms of the `sortId` corallary,
the sortId of the first unseen interaction in the database is always less than
or equal to the sortId of the first unseen interaction that fits in the loading
window.

In other words, there's no situation where

   viewItem.interaction.sortId >= unreadIndicator.firstUnseenSortId
7 years ago
Michael Kirk 3240e0d9d0 Be explicit about receivedAt time
We were often using `timestampForLegacySorting`, which is convoluted for when
we actually just want received time.

In some sense this is a superficial change, but it's part of auditing that
we've completed moved away from timestampForLegacySorting.
7 years ago
Michael Kirk b281b37637 replace thread.lastMessageDate/archivalDate -> thread.lastSortId, thread.archivedAsOfSortId
Update migration accordingly

Date shown on home view cell is message.receivedAt
7 years ago
Michael Kirk 90aa593dcd sortId vs. Read status 7 years ago
Michael Kirk d6d6c4fca4 ConversationVC - lastSeenSortId 7 years ago
Michael Kirk ab55e85304 step 1: timestampForSorting audit, change signature
No change in functionality in this commit, I just broke the signature to have a
systematic audit of the callsites. Added TODO's with the plan for each call.
7 years ago
Michael Kirk df61316495 minimize diff senderTimestamp -> timestamp 7 years ago
Michael Kirk 00d0d1e002 Remove legacy Error backdating - no changes in functionality
Historically we would backdate the SN change messages, but since adopting
non-blocking SN changes long ago, they're already sorted properly by creation
time, so backdating has been unnecessary for a while.

I also audited that all other error messages are saved directly after creation.

I applied deprecation attributes as appropriate as I audited.
7 years ago
Michael Kirk eef1368ad3 Timestamp audit step1: change signature
There is no change in functionality in this commit.

Apart from clarifying what the timestamp means (it's the timestamp of the
*sender*), this intentionally breaks all the call sites, so I could have a sane
way to thoroughly audit wherever we're passing in timestamps, to see where
we're depending on them to affect sort order.

For the sake of a cleaner diff of meaningful changes, instead of "fixing"
everything in this commit, I've just added comments and renamed signatures.
7 years ago
Matthew Chen 72562920ed Fix author conversation colors. 7 years ago