Commit Graph

339 Commits (d7e52367ff20a827fc00d4f1f8b34454a8b74005)

Author SHA1 Message Date
Matthew Chen d7e52367ff Create AppEnvironment. 7 years ago
Michael Kirk d6a6024f37 Update PromiseKit 7 years ago
Michael Kirk 92e8b117f5 fixup debug contacts 7 years ago
Matthew Chen f1d93d4472 Merge remote-tracking branch 'origin/release/2.30.2' 7 years ago
Matthew Chen c907721a18 Rotate profile key if blocklist intersects profile whitelist. 7 years ago
Matthew Chen a6eed30127 Add 'is ud' property to outgoing messages. 7 years ago
Matthew Chen cba8c67983 Add 'is ud' property to incoming messages. 7 years ago
Matthew Chen 21b383f4e2 Remove server GUID from TSIncomingMessage. 7 years ago
Matthew Chen ccb67f49a3 Fix issues in UD send & receive. 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 e1e355bfec fixup filebrowser 7 years ago
Matthew Chen 3eb84ed0e0 Move message processing singletons to SSKEnvironment. 7 years ago
Matthew Chen 580d0486b6 Respond to CR. 7 years ago
Matthew Chen 24d7a97616 Fix rebase breakage. 7 years ago
Matthew Chen 7d727b7ac9 Modify proto wrapper builders to require required fields. 7 years ago
Matthew Chen 3738155c81 Fix build breakage from SMK. 7 years ago
Matthew Chen 8ae200ac21 Fix build breakage around SignalCoreKit. 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
Michael Kirk 79add78d51 Merge branch 'release/2.30.1' 7 years ago
Matthew Chen 6715e3d1ad Respond to CR. 7 years ago
Matthew Chen b20cd57383 Rename OWSConversationColor. 7 years ago
Matthew Chen b3ad6e27dc Rework conversation message bubble colors; add "conversation colors" class. 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 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
Matthew Chen 0b7d269017 Rename DebugContactsUtils. 7 years ago
Matthew Chen bcee59f5e5 Add contact utils class. 7 years ago
Matthew Chen e1db60c1c0 Rework creation of singletons. 7 years ago
Michael Kirk 920a82564f Merge tag '2.29.3.3' 7 years ago
Michael Kirk b282d51da0 SyncMessages for blocked groups 7 years ago
Matthew Chen cc117b385c Modify environment accessors to use our 'shared' convention. 7 years ago
Matthew Chen 3a12446be8 Modify environment accessors to use our 'shared' convention. 7 years ago
Michael Kirk 01a6a3d98e avoid overflow in debug logging 7 years ago
Michael Kirk c7662b5a86 Step 2/2 %s/OWSAssert/OWSAssertDebug for existing previous assert semantics
Going forward, we want to prefer safer asserts, but we don't want to blindly
apply crashing asserts across the codebase
7 years ago
Matthew Chen fac7f6932f Rename TSGroupMetaMessage enum values. 7 years ago
Matthew Chen 7df8976559 Fix breakage in production builds. 7 years ago
Matthew Chen f473f60111 Apply OWS log functions in Objective-C. 7 years ago
Matthew Chen cc5a480baa Apply OWS log functions in Objective-C. 7 years ago
Matthew Chen 3a50377902 Apply OWS log functions in Objective-C. 7 years ago
Matthew Chen 713606271c Rename fail macros in Obj-C. 7 years ago
Matthew Chen 5b50e81b4f Rename fail macros in Swift. 7 years ago
Matthew Chen 7be8f30877 Apply -> Never. 7 years ago
Matthew Chen cf6f3841a8 Apply new Swift logging. 7 years ago
Michael Kirk 7e8b2e3034 Faster conversation presentation.
There are multiple places in the codebase we present a conversation.

We used to have some very conservative machinery around how this was done, for
fear of failing to present the call view controller, which would have left a
hidden call in the background. We've since addressed that concern more
thoroughly via the separate calling UIWindow.

As such, the remaining presentation machinery is overly complex and inflexible
for what we need.

Sometimes we want to animate-push the conversation. (tap on home, tap on "send message" in contact card/group members)
Sometimes we want to dismiss a modal, to reveal the conversation behind it (contact picker, group creation)
Sometimes we want to present the conversation with no animation (becoming active from a notification)

We also want to ensure that we're never pushing more than one conversation view
controller, which was previously a problem since we were "pushing" a newly
constructed VC in response to these myriad actions. It turned out there were
certain code paths that caused multiple actions to be fired in rapid succession
which pushed multiple ConversationVC's.

The built-in method: `setViewControllers:animated` easily ensures we only have
one ConversationVC on the stack, while being composable enough to faciliate the
various more efficient animations we desire.

The only thing lost with the complex methods is that the naive
`presentViewController:` can fail, e.g. if another view is already presented.
E.g. if an alert appears *just* before the user taps compose, the contact
picker will fail to present.

Since we no longer depend on this for presenting the CallViewController, this
isn't catostrophic, and in fact, arguable preferable, since we want the user to
read and dismiss any alert explicitly.

// FREEBIE
7 years ago
Matthew Chen 26001e49d1 Unify log tags. 7 years ago