Commit graph

108 commits

Author SHA1 Message Date
Matthew Chen 40aa78e001 Merge remote-tracking branch 'origin/release/2.31.0' 2018-10-31 11:42:41 -04:00
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
2018-10-25 11:54:59 -06:00
Matthew Chen 28f37a7a34 Update contacts cells' dependencies. 2018-10-25 09:48:57 -04:00
Matthew Chen c907721a18 Rotate profile key if blocklist intersects profile whitelist. 2018-10-11 13:02:02 -04:00
Matthew Chen 8ae200ac21 Fix build breakage around SignalCoreKit. 2018-10-01 09:07:40 -04:00
Matthew Chen 0125535d4d Pull out SignalCoreKit. 2018-10-01 09:06:40 -04:00
Matthew Chen ebae75af00 Revert 'new sort id'. 2018-09-27 19:40:51 -04:00
Michael Kirk 79add78d51 Merge branch 'release/2.30.1' 2018-09-27 13:03:35 -06:00
Matthew Chen da63731447 Respond to CR. 2018-09-27 09:07:03 -04:00
Matthew Chen 8db4595bdc Rework group avatars to reflect conversation colors. 2018-09-27 08:55:20 -04:00
Matthew Chen 25d56b30c1 Rework group avatars to reflect conversation colors. 2018-09-27 08:55:20 -04:00
Michael Kirk df61316495 minimize diff senderTimestamp -> timestamp 2018-09-26 09:52:33 -06:00
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.
2018-09-26 09:52:33 -06:00
Matthew Chen e1db60c1c0 Rework creation of singletons. 2018-09-19 15:11:26 -04:00
Matthew Chen 3a12446be8 Modify environment accessors to use our 'shared' convention. 2018-09-07 16:20:41 -04:00
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
2018-09-07 10:00:48 -06:00
Matthew Chen fac7f6932f Rename TSGroupMetaMessage enum values. 2018-09-04 09:30:01 -04:00
Matthew Chen 3a50377902 Apply OWS log functions in Objective-C. 2018-08-27 12:58:52 -04:00
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
2018-08-24 08:54:23 -06:00
Matthew Chen a76d488e8b Fix QA issues in theme. 2018-08-15 17:09:59 -04:00
Matthew Chen 22dda476bb Fix QA issues in theme. 2018-08-15 16:29:13 -04:00
Matthew Chen 2c9c028504 Clean up. 2018-08-09 09:51:23 -06:00
Matthew Chen 6dfe36f9b5 Respond to CR. 2018-08-08 15:49:22 -04:00
Matthew Chen dfc39b4a1d Tidy files. 2018-08-01 09:46:05 -04:00
Matthew Chen e6bc37d941 Tidy files. 2018-08-01 09:46:05 -04:00
Matthew Chen 8f55f53329 Tidy files. 2018-08-01 09:46:05 -04:00
Matthew Chen 579e88bdc2 Improve nullability handling for SignalAccount. 2018-08-01 09:22:56 -04:00
Michael Kirk 11db859e6b adapt to changes since RI 2018-07-23 16:19:23 -06:00
Michael Kirk 6e1c1a681b Merge tag '2.28.0.12' 2018-07-23 16:12:46 -06:00
Michael Kirk 1d4ead080b fix color behind navbar 2018-07-23 12:18:01 -06:00
Matthew Chen 48975eaac8 Respond to CR. 2018-07-20 15:37:47 -04:00
Matthew Chen 8862f9a531 Refine views. 2018-07-20 15:26:46 -04:00
Matthew Chen 2ecbf1bb65 Fix 'contact cell vs. message details layout' issue. 2018-06-21 17:16:50 -06:00
Matthew Chen 647d80d79d Unify the cell and avatar sizes. 2018-06-15 11:15:21 -04:00
Matthew Chen dd49c6225f Auto-size contact cells everywhere. 2018-06-15 10:01:16 -04:00
Michael Kirk 0cf751d34f Newly added group members should have expire time
Send expire timer with group info updates and in group updates that add a user.
2018-06-14 15:20:45 -04:00
Michael Kirk 29d08545e2 Use OWSNavigationController instead of UINavigationController
- [ ] document picker
- [ ] camera picker
- [ ] image picker
- [ ] restore "confirm to go back" behavior (interactive pop gesture?)

// FREEBIE
2018-05-24 12:28:20 -04:00
Michael Kirk 33eb4c38cd Centralize translucency configuration
// FREEBIE
2018-05-24 12:28:20 -04:00
Matthew Chen 9085609087 Fix interaction initializers and tests. 2018-04-05 09:36:52 -04:00
Michael Kirk 86553b62f9 keyboard pinning vs iPhoneX 2018-04-02 17:38:13 -04:00
Michael Kirk 6f1608f44b Conventional naming for out custom PureLayout methods.
This moves methods more in line with PureLayout conventions.

- Methods always specify if they pin to an edge vs margin

- `margin` is a reserved word which should only refer to layout margins.
  i.e. do not use it to refer to "inset" and "offset".

// FREEBIE
2018-04-02 17:02:32 -04:00
Matthew Chen 8e4f2ca0ed Rework proto schema changes for quoted replies.
Sketch out model changes for quoted replies.

Sketch out quoted reply input preview.

Send quoted messages protos.

Update models to reflect quoted messages.

Rework interaction initializers.

Rework interaction initializers.

Add debug UI methods for generating quoted reply variations.

Add debug UI methods for generating quoted reply variations.
2018-04-02 16:17:46 -04:00
Michael Kirk 394cc6637c Backport comments from translations
// FREEBIE
2018-03-26 10:12:04 -04:00
Matthew Chen d6f4db1523 Rename TSStorageManager to OWSPrimaryStorage. 2018-03-06 17:12:13 -03:00
Matthew Chen 85686d3144 Continue TSStorageManager refactor. 2017-12-19 11:41:30 -05:00
Matthew Chen 9a990b58e8 Respond to CR. 2017-12-19 11:38:25 -05:00
Matthew Chen f684482c54 Don't emit "user profile changed" notifications if nothing changed. 2017-12-11 12:28:28 -05:00
Michael Kirk d9cca77e23 update header references
// FREEBIE
2017-12-08 13:32:52 -05:00
Matthew Chen b4e8df79da Migrate environment to SignalMessaging. 2017-12-05 10:29:29 -05:00
Matthew Chen c817aa51b3 Migrate environment to SignalMessaging. 2017-12-05 10:28:46 -05:00