Commit Graph

4915 Commits (04a52980a334e6f303c2b6498b2f62eec87ef6c7)

Author SHA1 Message Date
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 1459fad01a sort media gallery by sortId 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
Michael Kirk ae668ceca9 include sequence number in fake messages 7 years ago
Michael Kirk 306c6ade71 "Bump build to 2.30.1.0." 7 years ago
Matthew Chen 98630cca50 Respond to CR; add db utility methods to test base classes. 7 years ago
Matthew Chen 66fc389fba Get SSK tests building and running. 7 years ago
Matthew Chen 87836f506b Move more singletons to SSKEnvironment. 7 years ago
Matthew Chen b881bb467c Fix proto stream test. 7 years ago
Matthew Chen 8cf5f3e58f New grayscale palette. 7 years ago
Matthew Chen 29bb69032a DRY up the debounce of db extension version increment. 7 years ago
Matthew Chen 20de087441 Repair corrupt thread view. 7 years ago
Matthew Chen e8186a7005 Fix rebase breakage. Make environment properties mutable in tests. 7 years ago
Matthew Chen a7a05e9bbf Respond to CR. Rework how CallNotificationsAdapter adaptee is populated. 7 years ago
Matthew Chen e1db60c1c0 Rework creation of singletons. 7 years ago
Matthew Chen 0c6f6cdafd Fix compilation errors in Signal tests. 7 years ago
Matthew Chen b883209f91 Refine logging. 7 years ago
Michael Kirk 13856acb02 remove wrong import 7 years ago
Michael Kirk 966db1bd49 Get tests compiling by any means necessary
comment out and fail tests which don't compile
7 years ago
Michael Kirk fdc846cb55 remove test for deleted method 7 years ago
Michael Kirk 170eb63772 update old non-existant API usage 7 years ago
Michael Kirk 7a832e85ec remove wrong import 7 years ago
Michael Kirk 920a82564f Merge tag '2.29.3.3' 7 years ago
Michael Kirk 2ffca98075 "Bump build to 2.29.3.3." 7 years ago
Matthew Chen 9b94580dae Update assertions.
* Streamline precompiled headers.
* Remove obsolete assertions in Constraints.h.
7 years ago
Matthew Chen 6c8af5b541 Update cocoapods. 7 years ago
Matthew Chen 62c55c9cfb Fix broken tests. 7 years ago
Michael Kirk 770c19ea06 sync translations 7 years ago
Michael Kirk 7b709666b9 "Bump build to 2.29.3.2." 7 years ago
Michael Kirk df67e883f3 BlockList vs. "zero length" group names 7 years ago
Michael Kirk b447e68597 clarify post-unblock-group copy 7 years ago
Michael Kirk 24ea8262d5 consolidate blocked-group state tracking 7 years ago
Michael Kirk 0f9b0936df Use cached group details when rendering blocklist 7 years ago
Michael Kirk 8d51839a2a sync translations 7 years ago
Michael Kirk 7b664ee21b update translation comment 7 years ago
Michael Kirk e53766d809 "Bump build to 2.29.3.1." 7 years ago
Michael Kirk b09831d8d0 copy updates 7 years ago
Michael Kirk fd492f379a Use BlockListCache where possible 7 years ago
Michael Kirk 2eca462efc can view conversation settings for left group 7 years ago
Michael Kirk 2c49232db0 remove barely used getters
Lock contention on these methods is less important because we're not iterating
over their access, e.g. per tableViewCell
7 years ago
Michael Kirk 448936d156 BlockListCache
block manager synchronizes on self for coherent read/writes to blocking state
across threads, but we want to be able to have performant reads on the main
thread.
7 years ago
Michael Kirk 28d28cf2b6 remove unused code 7 years ago