Commit Graph

617 Commits (a130760085ded83b18b5eabc9b9e9e84d29f7b85)

Author SHA1 Message Date
Matthew Chen 9a990b58e8 Respond to CR. 7 years ago
Matthew Chen 1163e76dee Clean up ahead of PR. 7 years ago
Matthew Chen 9815bca825 Clean up ahead of PR. 7 years ago
Matthew Chen 5dcf4b3bbc Clean up ahead of PR. 7 years ago
Matthew Chen 137fe6fb8b Pull out OWSStorage base class for TSStorageManager. 7 years ago
Matthew Chen a29c4ce5d6 Pull out OWSStorage base class for TSStorageManager. 7 years ago
Matthew Chen a572285ad2 Respond to CR. 7 years ago
Matthew Chen 2cc3752901 Improve background task logic. 7 years ago
Matthew Chen c3b6de4f83 Improve background task logic. 7 years ago
Matthew Chen f9ce34f553 Improve background task logic. 7 years ago
Matthew Chen 5adf98788d Use background task during message processing. 7 years ago
Matthew Chen df8ded90b8 Use background task during attachment downloads. 7 years ago
Michael Kirk 157bf00410 Merge branch 'hotfix/2.19.3' 7 years ago
Michael Kirk e78edcde87 Only clear cache when user pulls-to-refresh
// FREEBIE
7 years ago
Michael Kirk f4e471e0db SignalAccount cache perf improvments
- only persist models that have changed
- remove duplicate contact SignalAccounts
- ensure serial execution of buildAccounts
- only buildSignalAccounts when intersection succeeds

// FREEBIE
7 years ago
Matthew Chen 3643414da1 Respond to CR. 7 years ago
Matthew Chen f57c12f34d Update YapDatabase. 7 years ago
Matthew Chen 571840b1dc Update YapDatabase. 7 years ago
Matthew Chen 609536fcb1 Include build version in logging. 7 years ago
Michael Kirk 16448e2a0b Merge tag '2.19.3.0' 7 years ago
Michael Kirk 64e90d29fd CR: extract method, more asserts and annotations
// FREEBIE
7 years ago
Michael Kirk 336c92ddab remove cached display name machinery, cleanup
// FREEBIE
7 years ago
Michael Kirk 7ea4b85a2a Persist signal accounts (and their embedded Contact)
// FREEBIE
7 years ago
Michael Kirk 56f1bf0305 cleanup 7 years ago
Matthew Chen b9b3eb0541 Clean up ahead of PR. 7 years ago
Matthew Chen 429312523f Simplify OWSUserProfile's "apply changes" logic using model diffing. 7 years ago
Matthew Chen f684482c54 Don't emit "user profile changed" notifications if nothing changed. 7 years ago
Matthew Chen 97ce1a6675 Rework user profile saves; block SAE if no local user profile key. 7 years ago
Matthew Chen 791743a5f0 Fix order of operations in SAE setup. 8 years ago
Matthew Chen f148003fb3 Convert logTag to property. 8 years ago
Matthew Chen 99f0b9d3e8 Fix issues around statics. 8 years ago
Michael Kirk 0429836ff9 CR: rename keyWindow -> keyReferenceView, split long line
// FREEBIE
8 years ago
Michael Kirk eca19e5874 Reconcile MediaMessageView zoom behavior with AppExtension
Previously it was predicated on UIApplication.shared

// FREEBIE
8 years ago
Michael Kirk 3eceb86371 Show alert if we fail to build the attachment
// FREEBIE
8 years ago
Michael Kirk 89b9887f1d Make DeviceSleepManager extension compatible
// FREEBIE
8 years ago
Michael Kirk a58f1f385c Share a photo from photos app
Shows the conversation picker, and sends the attachment to that
conversation.

There's still a lot TODO

-[ ] resolve JSQ dependency
-[ ] properly wait for app to load
-[ ] dismiss share extension after send is complete
-[ ] support non jpeg file types
-[ ] Fix device sleep manager

// FREEBIE
8 years ago
Matthew Chen 69e0bcd308 Fix tests. 8 years ago
Matthew Chen f5353fc7d5 Clean up ahead of PR. 8 years ago
Matthew Chen 150f417a5e Clean up ahead of PR. 8 years ago
Matthew Chen 022b2f93dd Respond to CR. 8 years ago
Matthew Chen e94ef01d72 Respond to CR. 8 years ago
Matthew Chen 9da165b846 Continue conversion of app setup. 8 years ago
Matthew Chen ce899edf10 Respond to CR. 8 years ago
Matthew Chen b4e8df79da Migrate environment to SignalMessaging. 8 years ago
Matthew Chen a16058e477 Migrate environment to SignalMessaging. 8 years ago
Matthew Chen 6d87df88aa Migrate environment to SignalMessaging. 8 years ago
Matthew Chen c817aa51b3 Migrate environment to SignalMessaging. 8 years ago
Michael Kirk 06f52deaf9 address some additional compiler warnings 8 years ago
Michael Kirk 23d3006fd8 remove unused code
// FREEBIE
8 years ago
Michael Kirk 08c324f948 Fix compiler warnings around ambiguous macro redefinition.
LMK if there's a better way to do this, which doesn't involve requiring
modules.

// FREEBIE
8 years ago
Michael Kirk 2af818b3ba Make SignalMessaging AppExtension safe
// FREEBIE
8 years ago
Michael Kirk 0138777343 New @available syntax avoids compiler warnings
// FREEBIE
8 years ago
Michael Kirk f96b7bc27c CNContact doesn't exist before iOS9
// FREEBIE
8 years ago
Michael Kirk 0dec643b94 update header to match implementation atomicity
// FREEBIE
8 years ago
Michael Kirk 5e7ca89930 Proper function prototypes
// FREEBIE
8 years ago
Matthew Chen bf21d0c0ed Enable logging in SAE; rework log file management to include multiple log directories. 8 years ago
Michael Kirk 336d59a6ce restore chrono timestamp
make SSK compatible with c++ by using non-modular imports, which
requires disambiguating our ddLog variable.

// FREEBIE
8 years ago
Matthew Chen e7df2511a4 Register CrossProcessNotifier. 8 years ago
Matthew Chen 64762eb427 Observe YapDatabaseModifiedExternallyNotification. 8 years ago
Matthew Chen 62cf9b1dd5 Respond to CR. 8 years ago
Matthew Chen d17ccadea2 Use AppContext to resolve share extension FIXMEs. 8 years ago
Matthew Chen e712e8bfc4 Use AppContext to resolve share extension FIXMEs. 8 years ago
Matthew Chen 4c31d99498 Respond to CR. 8 years ago
Matthew Chen ffa69b3502 Add application context class. 8 years ago
Matthew Chen 8d4e9b4565 Respond to CR. 8 years ago
Matthew Chen 779e89fe74 Clean up ahead of PR. 8 years ago
Matthew Chen 7429e1968c Clean up ahead of PR. 8 years ago
Matthew Chen edaf65223a Migrate to shared data NSUserDefaults. 8 years ago
Matthew Chen cd11ec5698 Add app group, share keychain. Take a first pass at file migration to shared data directory. 8 years ago
Michael Kirk 336aa13520 Avoid overzealous assert
// FREEBIE
8 years ago
Michael Kirk 2072359a72 add todo 8 years ago
Michael Kirk e9796600c6 disable some asserts for now
// FREEBIE
8 years ago
Michael Kirk 961727814b Move pinning certificates into App
// FREEBIE
8 years ago
Michael Kirk a11d83187b WIP: Framework-friendly - compiles but crashes on launch
// FREEBIE
8 years ago
Michael Kirk c5b0f7cd01 framework compatible CocoaLumberjack import
With previous import style, the `LOG_ASYNC_ENABLED, LOG_LEVEL_DEF`
macros were not being defined.

@import style module includes are handled differently in ObjC++, causing
problems with out millisecondTimeStamp implementation. Rather than
address that problem head on, I simple reimplemented our millisecond
timestamp method in objective-c, removing our single ObjC++ file.

// FREEBIE
8 years ago
Michael Kirk 7894a58769 FIXME: Changes to get share extension compiling
This was a slash and burn approach, and breaks existing functionality.
We need to address all of these before merging.

// FREEBIE
8 years ago
Matthew Chen 829464baaf Remove concurrency limitations from signal service. 8 years ago
Matthew Chen ba88da60ca Use dedicated db connection for recipient identities. 8 years ago
Matthew Chen 9b4ac4073f Improve robustness around unknown country codes. 8 years ago
Matthew Chen d9fcfdeeb7 Fix deadlock when responding to contacts sync messages. 8 years ago
Matthew Chen 9b197fad03 Fix deadlock when responding to contacts sync messages. 8 years ago
Matthew Chen d8ae5841d6 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen b3d17ea192 Improving handling of edge cases in conversation view. 8 years ago
Matthew Chen 45c7d80d97 Improving handling of edge cases in conversation view. 8 years ago
Matthew Chen 6d4a05bbea Improving handling of edge cases in conversation view. 8 years ago
Matthew Chen 2642f6fcea Fix group creation. 8 years ago
Matthew Chen 21e9f57cbe Imitate Android's behavior of delaying local notifications based on incoming sync messages. 8 years ago
Matthew Chen 2d8a7b03d0 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen d7b0424c75 Don't back up profile pics, attachments or gifs.
// FREEBIE
8 years ago
Matthew Chen 2f84e0c426 Fix calling; be explicit about which messages should be saved. 8 years ago
Matthew Chen 19ba564f80 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 00feb14b10 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 5eea0347b5 Rework the "update with..." methods to avoid re-saving deleted models. 8 years ago
Matthew Chen 94b59c326e Rework the "update with..." methods to avoid re-saving deleted models. 8 years ago
Matthew Chen c6160a5a1e Rework the "update with..." methods to avoid re-saving deleted models. 8 years ago
Matthew Chen 69fa80b890 Don't resurrect zombies. 8 years ago
Matthew Chen fce52841f9 Don't resurrect zombies. 8 years ago
Matthew Chen 5c90bc72df Never request contacts permission if app is in the background. 8 years ago
Matthew Chen cc0e58365e Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 0abdbffe1f Improve handling of attachment edge cases. 8 years ago
Matthew Chen bac3bd4b68 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 518f15155a Respond to CR.
// FREEBIE
8 years ago
Matthew Chen efcd42012c Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 071dbd4414 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 8b65246619 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen e1b32315de Fix assert after registration.
// FREEBIE
8 years ago
Matthew Chen 5541be784f Fix build warnings from XCode 9. 8 years ago
Matthew Chen 6e840ff956 Fix build warnings from XCode 9. 8 years ago
Matthew Chen a6bfc0a60e Fix build warnings from XCode 9. 8 years ago
Matthew Chen 2d21e2ae2c Fix build warnings from XCode 9. 8 years ago
Matthew Chen da7338580c Merge tag '2.18.1.0' 8 years ago
Michael Kirk e82a3f3ddf respond to CR
// FREEBIE
8 years ago
Michael Kirk 8ef9e96b91 Avoid group-sync deadlock by making post-upload save async
// FREEBIE
8 years ago
Michael Kirk 98fd15fae7 Avoid groupsync deadlock - pass in transaction
// FREEBIE
8 years ago
Matthew Chen 8b6265f1b5 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 4d57402367 Ensure attachments always have a valid content type.
// FREEBIE
8 years ago
Matthew Chen e07a240ee5 Merge tag '2.18.0.9' 8 years ago
Michael Kirk 81cff837ae Include root certs from pki.goog
// FREEBIE
8 years ago
Michael Kirk 6c13d46be2 use manually specified censorship host
// FREEBIE
8 years ago
Michael Kirk 11e07370a9 more logging
// FREEBIE
8 years ago
Michael Kirk a30533e7b5 Add GTSGIAG3 to censorship circumvention trust store
openssl x509 -outform der -in GIAG3.pem -out GIAG3.crt

// FREEBIE
8 years ago
Michael Kirk 295646e5fa Rebase cleanup
// FREEBIE
8 years ago
Michael Kirk 0706edf42a Generate new registrationId on re-register
In order for others to know they should start a new session with us, we
need to change our registration id.

To achieve this, I consolidated all the Account related attributes on
TSAccountManager - luckily they were already in the proper collection, I
just moved the API to hang on the AccountManager instead of a TSStorage
category extension.

Also:

@synchronize access to `registrationId`

// FREEBIE
8 years ago
Michael Kirk 58d4c95362 Re-register without losing your messages in Debug-UI
// FREEBIE
8 years ago
Matthew Chen 1fa75ead5d Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 74096fc2c2 Don't send sync messages to self if no linked devices.
// FREEBIE
8 years ago
Matthew Chen db8a381960 Merge remote-tracking branch 'origin/release/2.18.0' 8 years ago
Michael Kirk cf9874302b Remove unecessary subdata for unpadded attachment
// FREEBIE
8 years ago
Michael Kirk ce51d2da3e Example (disabled) padding strategy for attachment sender
The padding strategy the sender uses can change without needing to
update the receiver, so long as we continue to record the unpadded
length of the attachment in the attachment pointer.

// FREEBIE
8 years ago
Michael Kirk cbbb376860 Handle receiving padded attachments
Don't send padded attachments yet.

// FREEBIE
8 years ago
Michael Kirk 259695a9fd Attachments require digest or show explanatory error.
// FREEBIE
8 years ago
Michael Kirk 6eeb78157a Include size in attachment pointer
// FREEBIE
8 years ago
Matthew Chen 3927815a35 Fix tests broken by the JSQ rewrite.
// FREEBIE
8 years ago
Matthew Chen bf8d694eb4 Rework attachment approval UI.
// FREEBIE
8 years ago
Matthew Chen d04f9111db Rework attachment approval UI.
// FREEBIE
8 years ago
Michael Kirk 68e755ade9 Merge branch 'release/2.18.0' 8 years ago
Michael Kirk 0cd56d4bcc On iOS11 doc picker requires system appearance.
Otherwise nav items are illegible.

// FREEBIE
8 years ago
Matthew Chen 4dabb71815 Fix "can't send same GIF twice" issue.
// FREEBIE
8 years ago
Matthew Chen fb4d43d542 Fix "can't send same GIF twice" issue.
// FREEBIE
8 years ago
Matthew Chen e3868df69a Move write of incoming messages off main thread.
// FREEBIE
8 years ago
Matthew Chen 8704722f90 Don't start expiration of incoming messages until attachments are downloaded.
// FREEBIE
8 years ago
Matthew Chen 227fd5280d Resize conversation view cells as necessary.
// FREEBIE
8 years ago
Michael Kirk 0f859d6b20 Merge branch 'release/2.18.0' 8 years ago
Michael Kirk 3080cb512b Compose View: collation index and group search
- Include table index for contacts
- Fix extra spacing in OWS table view
- Separate search results into contact/invite sections
- Include groups in search results when composing new message
- Compose Screen search matches on group member names

// FREEBIE
8 years ago
Matthew Chen fb408f980c Remove JSQ.
// FREEBIE
8 years ago
Michael Kirk b2efb722d2 Log timestamp of sent messages
This is really helpful when cross referencing debug logs with the
recipient. (We already log timestamps on the receiving side).

// FREEBIE
8 years ago
Michael Kirk 9a7e3cb9d8 Register for manual message fetching when unable to obtain push tokens
// FREEBIE
8 years ago
Michael Kirk df15c904bc Rework push registration
== Account Registration ==

Not complete until push tokens are uploaded

== Remote Notifications Registration ==

Extracted from PushManager

- wait for notification-settings registration to complete before
  requesting push tokens, otherwise it's possible token requests will
  be ignored.

- Less state required for push notification callbacks, specifically, we
  no longer need to ensure we've created a promise before the
  registration delegate methods get called.

- no more TOCFuture in Signal-iOS (still in SSK for now). It's not in
  cases of inexplicable behavior - one a recently, push notification
  premature free, in redphone, and more popular use, and I've seen two
  futures inexplicably being nil.  Instead, let's consolidate around
  PromiseKit for popularly used, maintained, strongly-typed futures.

- separate logic for registering for vanilla push/voip notifications
  (few dependencies) from responding to UILocalNotifications (lots of
  dependencies). Ultimately I'd like to consolidate the remaining
  UILocalNotifications logic with the existing NotificationsManager

== Misc ==

more debug logging
more uniform logging
remove stale logic around newly registered user

// FREEBIE
8 years ago
Michael Kirk 703d4df9e5 Avoid phantom notifications for group info requests
// FREEBIE
8 years ago
Joshua Lund 8ff14a3f6a Enable censorship circumvention in Qatar.
// FREEBIE
8 years ago
Matthew Chen 0c46b770e9 Ignore group info requests if sender and recipient aren't both known group members.
// FREEBIE
8 years ago
Matthew Chen 13a6657991 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 2a5a0929e6 Create & access groups more carefully.
// FREEBIE
8 years ago
Matthew Chen 380ed0f82b Create & access groups more carefully.
// FREEBIE
8 years ago
Matthew Chen a31b1aeea6 Respond to "sync block list" request.
// FREEBIE
8 years ago
Michael Kirk 462a6e4456 Persist read receipts to proper collection
// FREEBIE
8 years ago
Michael Kirk 2125dbe72c CR: Avoid potential transaction nesting
also clean up description method

// FREEBIE
8 years ago
Michael Kirk 5d62741a3c Sync read receipt configuration upon set
// FREEBIE
8 years ago
Michael Kirk ab5b090338 Sync read receipt config to linked devices
// FREEBIE
8 years ago
Michael Kirk be197621ac Add read receipts field/configuration protos
Also converge with Android protos where possible

// FREEBIE
8 years ago
Michael Kirk a2421d5b3e Fix "unknown attachment" notifications
The transaction in which the attachments were created hasn't been
committed yet.

// FREEBIE
8 years ago
Matthew Chen 08e560f969 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 0a081f7dcc Use longer delay when batch processing incoming messages.
// FREEBIE
8 years ago
Matthew Chen 69c9a5a49b Use longer delay when batch processing incoming messages.
// FREEBIE
8 years ago
Matthew Chen 46d2b7a891 Refine read receipt processing cycle.
// FREEBIE
8 years ago
Matthew Chen 6b3c0377cf Refine read receipt processing cycle.
// FREEBIE
8 years ago
Matthew Chen c3dca21a69 More thread safety fixes.
// FREEBIE
8 years ago
Matthew Chen 65957c932d Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 8b15dba4e7 Fix "mark as read on linked device".
// FREEBIE
8 years ago
Matthew Chen facbc56062 Move more work off the main thread.
// FREEBIE
8 years ago
Matthew Chen 9573e0e16d Move more work off the main thread.
// FREEBIE
8 years ago
Matthew Chen 1df1144e43 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 33376f66d2 Simplify processing of messages from linked devices.
// FREEBIE
8 years ago
Matthew Chen 9b5affb390 Send silent messages where appropriate.
// FREEBIE
8 years ago
Matthew Chen d557817bb4 Format message statuses with date if possible.
// FREEBIE
8 years ago
Matthew Chen 834ad3f8e1 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 01bda556c8 Fix class rename.
// FREEBIE
8 years ago
Matthew Chen 6b8c9b6bcf Iterate the names of the incoming message queue extensions.
// FREEBIE
8 years ago
Matthew Chen eec0efa3c8 Fix class rename.
// FREEBIE
8 years ago
Matthew Chen a4d285f50d Respond to CR.
// FREEBIE
8 years ago
Matthew Chen aa7329013d Handle new-style delivery receipts.
// FREEBIE
8 years ago
Matthew Chen 25c40ea3cf Handle new-style delivery receipts.
// FREEBIE
8 years ago
Matthew Chen ee13084d5c Respond to CR.
// FREEBIE
8 years ago
Matthew Chen ffe44e68be Refactor linked device read receipts.
// FREEBIE
8 years ago
Matthew Chen 16d4256e99 Address deadlocks in profile manager.
// FREEBIE
8 years ago
Matthew Chen 19e010645e Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 9f9ac746d1 Sketch out message metadata view.
* Show message metadata view from conversation view.
* Pull out MediaMessageView class.
* Track recipient read timestamps.
* Add per-recipient status to message metadata view.
* Add share button to message metadata view.

// FREEBIE
8 years ago
Matthew Chen f001e8c225 Respond to CR.
// FREEBIE
8 years ago
Michael Kirk ce2a4422e3 fix desktop linking for some users
// FREEBIE
8 years ago
Matthew Chen b74da07f7e Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 825503210b Remove extraneous database view.
// FREEBIE
8 years ago
Matthew Chen 11cadf4200 Send, receive & show read receipts to senders/from receivers.
* Send read receipts to senders.
* Honor "send read receipts" preference.
* Process read receipts from recipients.
* Refactor "mark as read" logic.
* Serialize and apply recipient read receipts received before sync transcript.
* Show recipient read receipts in conversation view.

// FREEBIE
8 years ago
Matthew Chen f2d19ffe09 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 7268bde506 Add stress group to debug UI.
// FREEBIE
8 years ago
Matthew Chen bd416176ae Add stress group to debug UI.
// FREEBIE
8 years ago
Matthew Chen 77e0c9664c Respond to CR.
// FREEBIE
8 years ago
Matthew Chen edd63164d7 Fix build breaks.
// FREEBIE
8 years ago
Matthew Chen 874ebf7038 Use private queues in message decrypter and batch processor.
// FREEBIE
8 years ago
Matthew Chen 077b74a0aa Fix handling of edge cases around groups.
// FREEBIE
8 years ago
Matthew Chen 2b0b49b7f6 Don't batch message decryption.
// FREEBIE
8 years ago
Matthew Chen bfb03c0db4 Fix message processing edge cases.
// FREEBIE
8 years ago
Matthew Chen 35a2470cb7 Post notifications asynchronously.
// FREEBIE
8 years ago
Matthew Chen 1c8dbcd223 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 3eaeb4e0ec Add read receipts manager.
* Simplify read receipts plumbing.
* Rework incoming read receipts handling.
* Rework outgoing read receipts handling.
* Make "database view registration complete" check thread-safe.
* Don't send sync messages to self if no linked devices.

// FREEBIE
8 years ago
Matthew Chen 2cfa24ba7b Respond to CR.
// FREEBIE
8 years ago
Matthew Chen b28c4b74b2 Pull out TSMessageDecrypter class.
// FREEBIE
8 years ago
Matthew Chen f1b7d895e2 Modify precommit script to clean up includes and forward declarations.
// FREEBIE
8 years ago
Matthew Chen 993df25f3f Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 46f17a02cb DRY up decryption logic.
// FREEBIE
8 years ago
Matthew Chen e39b9169b9 Decrypt and process messages in batches.
// FREEBIE
8 years ago
Matthew Chen 9987ebb3c0 Decrypt and process messages in batches.
// FREEBIE
8 years ago
Matthew Chen 023c804a61 Decrypt and process messages in batches.
// FREEBIE
8 years ago
Matthew Chen fa353259c3 Process messages in a single transaction (wherever possible).
// FREEBIE
8 years ago
Matthew Chen 6fce2c26b7 Process messages in a single transaction (wherever possible).
// FREEBIE
8 years ago
Matthew Chen afc753e7ed Add batch message processor.
// FREEBIE
8 years ago
Matthew Chen c498e4b354 Decouple message decryption and processing.
// FREEBIE
8 years ago
Matthew Chen bfd50a9e0e Make "database view registration complete" check thread-safe.
// FREEBIE
8 years ago
Matthew Chen 8a4d67a6e4 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 183f0f1ccd Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 74b2f30523 Revert "Modify read receipt photos to support sending read receipts to both linked devices and senders."
This reverts commit 37e67179c8a8d6ebfdfa124ef0c1229f220ed11d.
8 years ago
Matthew Chen a7546aee63 Modify read receipt photos to support sending read receipts to both linked devices and senders.
// FREEBIE
8 years ago
Matthew Chen 39a961e376 Rework incoming read receipts handling.
// FREEBIE
8 years ago
Matthew Chen 2b1ea19960 Modify read receipt photos to support sending read receipts to both linked devices and senders.
// FREEBIE
8 years ago
Matthew Chen 0e7eaf7c62 Modify read receipt photos to support sending read receipts to both linked devices and senders.
// FREEBIE
8 years ago
Matthew Chen a5ece18e6c Fix build break.
// FREEBIE
8 years ago
Matthew Chen 400f536e37 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 872ce17dd6 Clean up data source temp files when complete.
// FREEBIE
8 years ago
Matthew Chen 05b1818874 Don't "scroll to bottom" when messages are sent from desktop.
// FREEBIE
8 years ago
Matthew Chen d3ad0950ba Clean up the data source class.
// FREEBIE
8 years ago
Matthew Chen 9dfebb2d4b Apply OWSFail() in more places.
// FREEBIE
8 years ago
Matthew Chen c21a7673c8 Rework preservation of attachment filenames.
// FREEBIE
8 years ago
Matthew Chen 0746b1300d Apply DataSource to message sender.
// FREEBIE
8 years ago
Matthew Chen b95b5f69de Apply DataSource to message sender.
// FREEBIE
8 years ago
Matthew Chen 20e5013aae Convert DataSource to Objective-C.
// FREEBIE
8 years ago
Matthew Chen 69816cdf0e Convert DataSource to Objective-C.
// FREEBIE
8 years ago
Michael Kirk 2eaaba9082 crashfix: on addObject, presumably it's nil.
I'm not sure how this is happening, but this will prevent the crash and
give us additional diagnostic data in the cases where it is happening.

// FREEBIE
8 years ago
Matthew Chen bb1681f965 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen cc048b3971 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen d032339472 Modify debug builds to use production service.
// FREEBIE
8 years ago
Michael Kirk 01d0117f9b provisioning cipher: Fix memory leak, handle failure
Explicitly malloc'd buffer should either be explicitly free'd or
ownership given to NSData via `freeWhenDone:YES`

Instead I opted to avoid the explict malloc altogether, and avoided some
unnecessary allocations.

Also made sure encryption failures propogate to error handler

// FREEBIE
8 years ago
Michael Kirk 1f7b6f61c6 Regression test for provisioning cipher
// FREEBIE
8 years ago
Michael Kirk bdb75fa596 infer when group has been whitelisted on linked device
// FREEBIE
8 years ago
Matthew Chen b00db33d12 Don't ignore attachments.
// FREEBIE
8 years ago
Michael Kirk 3ffb321e2a fix assert
// FREEBIE
8 years ago
Michael Kirk d71b7684a6 cleanup logging
// FREEBIE
8 years ago
Michael Kirk ec0cf36abb Don't print empty bubbles.
e.g. if we add another "invisible" flag message in the future we want to
be able to roll it out immediately.

// FREEBIE
8 years ago
Michael Kirk 69e8ca8eac Handle receiving profile key messages
(don't print empty bubble)

// FREEBIE
8 years ago
Michael Kirk 9c56660618 profile key flag and debug action
// FREEBIE
8 years ago
Michael Kirk 0feb966a1c comment cleanup / code formatting
// FREEBIE
8 years ago
Michael Kirk 6cde79c568 Assert profile key length on sending/receiving
// FREEBIE
8 years ago
Michael Kirk 6235e7fe5c Don't send profile key with every sync message since we explicitly sync
upon update/create.

Following Signal-Android's lead here.

// FREEBIE
8 years ago
Michael Kirk 526d5e33b9 Sync profile key to sibling devices when updating contact
// FREEBIE
8 years ago
Michael Kirk 46919e4702 Add own profile key to multidevice provisioning message
// FREEBIE
8 years ago
Michael Kirk 1f3d2d1ed6 Send any profile key in contact sync
// FREEBIE
8 years ago
Michael Kirk f0a57edde0 proto update: multiDevice profileKey sync
Also:

- minimize diff between Signal-Android's protos
- comment whereever we diverge from Signal-Android

// FREEBIE
8 years ago
Michael Kirk 1e51bf4899 extract event names
// FREEBIE
8 years ago
Michael Kirk 251e206b6d profiles vs. censorship circumvention
// FREEBIE
8 years ago
Michael Kirk bde40a1f9c Ensure avatar upates right after profile change.
// FREEBIE
8 years ago
Matthew Chen 703b348091 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen a9b55675cd Add assert to ensure that we don't use write transactions before sync database view registration is complete.
// FREEBIE
8 years ago
Matthew Chen 97f74ca5b4 Only use staging service in debug builds.
// FREEBIE
8 years ago
Matthew Chen a825fad47b Start reworking the contact offers.
// FREEBIE
8 years ago
Matthew Chen 98eb4693c5 Rework the contact offers.
// FREEBIE
8 years ago
Michael Kirk 0ab958f03a cleanup per codereview
- reference OWS OpenSSL
- clarify comments
- fix typo

// FREEBIE
8 years ago
Michael Kirk 0f9f26a577 handle remote user's profile key has changed
// FREEBIE
8 years ago
Michael Kirk 72fbb02028 aes-gcm via openssl
// FREEBIE
8 years ago
Matthew Chen 164bf19b47 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 622c0c3f5f * Add debug UI tools for clearing and logging the profile whitelist.
* Auto-add new contact threads to profile whitelist when local user sends first message to that thread.
* Ensure dynamic interactions have a non-negative timestamp even if the conversation was empty.
* Only call updateMessageMappingRangeOptions _after_ beginLongLivedReadTransaction and updating messageMappings.
* Improve documentation around how to avoid corrupt mappings in conversation view.
* Fix edge cases around large initial range sizes.
* Always treat dynamic interactions as read.
* Rebuild the “unseen” database views to remove dynamic interactions (see above).

// FREEBIE
8 years ago
Matthew Chen d476bc286d * Add debug UI tools for clearing and logging the profile whitelist.
* Auto-add new contact threads to profile whitelist when local user sends first message to that thread.
* Ensure dynamic interactions have a non-negative timestamp even if the conversation was empty.
* Only call updateMessageMappingRangeOptions _after_ beginLongLivedReadTransaction and updating messageMappings.
* Improve documentation around how to avoid corrupt mappings in conversation view.
* Fix edge cases around large initial range sizes.
* Always treat dynamic interactions as read.
* Rebuild the “unseen” database views to remove dynamic interactions (see above).

// FREEBIE
8 years ago
Michael Kirk 97afa4d48a verification on decrypt
// FREEBIE
8 years ago
Michael Kirk 135243e383 CR: variable rename, better comments, fix up tests
// FREEBIE
8 years ago
Michael Kirk 7499b3aaf0 Avatar API integration / WIP crypto scheme
Crypto Scheme:

- Name (un)padding
- WIP AES-GCM (funtioning, but need to verify against android
  implementation, and tag functionality)

Changes to avatar API:

- hard code avatar domain (cdn.signal.org)
- avatar form hands out new avatar key, invalidating old avatar
- preliminary aes-gcm integration

Also:

- New type to represent AES128 keys, rather than passing around opaque
  data blobs everywhere, we can use the compiler to help us make sure
  we're passing compliant keying material.

- Started using factory pattern for API requests. This is intended to be
  a lighter weight way to implement new API requests, rather than the
  current 1-method class ceremony.

// FREEBIE
8 years ago
Michael Kirk fc3f9ae396 Replace server sent avatar URL with hardcoded
// FREEBIE
8 years ago
Michael Kirk 9fdc3202af White listing must happen on main thread
followup to: ee613e4889

Again, this solves a crash, but we'll want to revisit the perf
implications.

// FREEBIE
8 years ago
Michael Kirk a3ae22c84f Upload profile avatar to service
WIP, this currently lacks crypto pending further discussion.

// FREEBIE
8 years ago
Michael Kirk 45a1f534ba Rename method to make way for new method.
No behavioral changes.

// FREEBIE
8 years ago
Michael Kirk 72b3f3779b Discard GroupInfoRequest from unknown group
// FREEBIE
8 years ago
Michael Kirk ee613e4889 Can only set whitelist on main thread
As written solves a crash, but we'll probalby want to revisit the perf
implications.

// FREEBIE
8 years ago
Michael Kirk e07ed50170 define avatar form URL
// FREEBIE
8 years ago
Matthew Chen e01fbc247e Refine profile logic.
// FREEBIE
8 years ago
Matthew Chen 21304c18a6 Once we've shared our profile key with a user (perhaps due to being a member of a whitelisted group), make sure they're whitelisted.
// FREEBIE
8 years ago
Matthew Chen 98def41782 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 823927685d Update profile on service.
// FREEBIE
8 years ago
Matthew Chen 83e2fbe28c Rework where profile key is attached in photos.
// FREEBIE
8 years ago
Matthew Chen b5fdc05b91 Move profile key to data, call, sync and null protos.
// FREEBIE
8 years ago
Matthew Chen 37ce388eb6 Add “add to profile whitelist” offer.
// FREEBIE
8 years ago
Michael Kirk ed4de7e8af Simplify code / pre-cache localNumber
Now that localNumber is read from a dedicated dbConnection we don't have
to worry about it blocking.

// FREEBIE
8 years ago
Michael Kirk f99d4e9df9 Merge branch 'hotfix/2.15.2' 8 years ago
Michael Kirk 3856f3dfb1 Improve asserts/logging
// FREEBIE
8 years ago
Matthew Chen 6ec756de44 Move profile manager to Signal.
// FREEBIE
8 years ago
Matthew Chen 540a0a8e48 Refine UserProfile class. Move local user properties to UserProfile.
// FREEBIE
8 years ago
Michael Kirk 935b51aa19 Fixup tests
// FREEBIE
8 years ago
Michael Kirk 01e808febe localNumber persistance from Category -> TSAccountManager
Following the pattern that singleton methods for effectively global
state should get/set on their own dedicated dbConnection for consistency
and to avoid being blocked by unrelated writes.
8 years ago
Michael Kirk 8a4712bf4c Only access localNumber on AccountManager and cache it
// FREEBIE
8 years ago
Matthew Chen 43b3abe321 Merge branch 'hotfix/2.15.2' 8 years ago
Matthew Chen 539490ee19 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 9c5934359e Don’t dismiss call view controller to present other view.
// FREEBIE
8 years ago
Matthew Chen 791e270578 Terminate call if call view presentation is delayed.
// FREEBIE
8 years ago
Matthew Chen 6f03c2d92f Don’t hide threads if they are a group thread, or if they have _ever_ had a message.
// FREEBIE
8 years ago
Matthew Chen c603a2651d Rework how user profiles are updated and persisted. Persist other user’s profiles. Load and cache other user’s profile avatars.
// FREEBIE
8 years ago