Commit Graph

58 Commits

Author SHA1 Message Date
Matthew Chen
fdd3c513ca Rework Groups v2 & CDS feature flags. 2020-08-11 17:45:04 -03:00
Matthew Chen
3992df3be2 Improve Debug UI for cloning groups. 2020-06-11 13:11:08 -03:00
Matthew Chen
ba801f05ce Label the "slow write transactions" logging with the source of the transaction. 2020-06-07 10:37:55 -03:00
Matthew Chen
28157b5560 De-bounce database observation. 2020-06-05 11:40:43 -03:00
Matthew Chen
f2f48be174 Add debug UI to thrash interaction/thread writes. 2020-06-05 11:40:43 -03:00
Matthew Chen
0d95310eaf Send invalid group updates from the debug UI. 2020-05-15 18:14:46 -03:00
Ehren Kret
4738201be1 Add CDN key and number to AttachmentPointer proto message 2020-04-09 12:47:23 -07:00
Matthew Chen
9ce3a42f74 Rename GroupManager methods. 2020-02-21 12:31:45 -03:00
Matthew Chen
892ce5c135 Rework message processing to handle groups v2. 2020-01-17 17:34:37 -03:00
Matthew Chen
72f912dce3 Versioned profile changes, etc. 2020-01-08 13:54:54 -03:00
Matthew Chen
29150102cb Revert group and profile changes. 2019-12-11 20:41:54 -08:00
Matthew Chen
6c09ec5794 Clean up group manager. 2019-12-05 13:44:56 -03:00
Matthew Chen
05c8e674ee Rework new group new creation & group updates. 2019-12-05 12:37:22 -03:00
Matthew Chen
3d88f68cfb Rework new group new creation & group updates. 2019-12-04 15:40:54 -03:00
Matthew Chen
0bfb397f45 Don't auto-add local user to member list when creating a group model. 2019-11-08 16:50:57 -03:00
Matthew Chen
f97b33ffaa Add GroupManager. 2019-11-07 15:03:42 -03:00
Matthew Chen
d813419afa Fix TSMessageStorageTests. 2019-10-01 13:37:04 -03:00
Matthew Chen
20683678b5 Store group avatars as data. 2019-09-27 16:25:53 -03:00
Michael Kirk
82c99c4003 CR: rename for clarity 2019-08-12 15:11:40 -06:00
Michael Kirk
f3793f0f2a Consolidate OutgoingMessage preparation 2019-08-12 15:11:40 -06:00
Matthew Chen
76a9185239 Excluse Debug UI from release builds. 2019-08-09 21:16:25 -03:00
Matthew Chen
a48ccccdd1 Remove more usage of primary storage. 2019-08-07 17:41:11 -03:00
Matthew Chen
de56fec16b Remove usage of primary storage. 2019-07-29 17:25:58 -03:00
Matthew Chen
289b15f17f Convert threads to BaseModel. 2019-07-16 13:50:21 -03:00
Nora Trapp
ae17d61a05 Update quoted messages, per message expiration, and sync transcripts 2019-07-10 13:31:18 -07:00
Nora Trapp
b9bb444276 Add UUID support to groups 2019-07-10 13:27:36 -07:00
Matthew Chen
12f816b040 Remove @required from proto enums. 2019-05-29 11:05:01 -04:00
Michael Kirk
691209e25e Decrypt Messages with AnyTransaction
- Migrate protocol stores to KVStores
- Introduce AnyDatabaseQueue
- Move messaging pipeline to AnyTransactions
- Migrate specialized PushDecrypt job to generic JobQueue
2019-05-21 16:20:22 -04:00
Michael Kirk
ecb6c275f8 MessageSender API takes AnyTransaction 2019-05-14 10:44:55 -06:00
Matthew Chen
c229f39012 Add sticker sync messages. 2019-04-22 10:26:09 -04:00
Matthew Chen
f893980468 Add debug UI function to make group with unregistered users. 2018-11-02 12:59:16 -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
c907721a18 Rotate profile key if blocklist intersects profile whitelist. 2018-10-11 13:02:02 -04:00
Matthew Chen
7d727b7ac9 Modify proto wrapper builders to require required fields. 2018-10-01 09:08:23 -04:00
Matthew Chen
3738155c81 Fix build breakage from SMK. 2018-10-01 09:08: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
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
7df8976559 Fix breakage in production builds. 2018-08-30 10:07:34 -04:00
Matthew Chen
cc5a480baa Apply OWS log functions in Objective-C. 2018-08-27 12:58:52 -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
2c9c028504 Clean up. 2018-08-09 09:51:23 -06:00
Matthew Chen
6be3d2e42d Code generate Swift wrappers for protocol buffers. 2018-08-03 14:05:20 -04:00
Matthew Chen
d6f4db1523 Rename TSStorageManager to OWSPrimaryStorage. 2018-03-06 17:12:13 -03:00
Michael Kirk
a23f1b86ef nullability annotations for TSGroupModel
- add readonly where possible
- group members needn't be a mutable array

// FREEBIE
2018-02-13 09:50:01 -08:00
Matthew Chen
9258b0883e Clean up TSStorageManager usage. 2017-12-19 11:41:31 -05:00
Matthew Chen
85686d3144 Continue TSStorageManager refactor. 2017-12-19 11:41:30 -05:00