Commit Graph

296 Commits (1111d5c2600f9418ad23ccee714ecc1c290e3400)

Author SHA1 Message Date
Michael Kirk b42f528713 Integrate with new contact discovery endpoint
Also:
* use system cookie parsing
* add AESGCM additional authenticated data parameter

// FREEBIE
7 years ago
Matthew Chen b197e4776e Respond to CR. 7 years ago
Matthew Chen 73eb0778c0 Add unit tests around byte parser. 7 years ago
Matthew Chen c3d47d3323 Respond to CR. 7 years ago
Matthew Chen 904ed1549e Add unit test around remote attestation. 7 years ago
Matthew Chen 460f7344ad Remote attestation. 7 years ago
Michael Kirk 12ef25420a Fixup SSK tests 7 years ago
Michael Kirk c19a8ce07e Fixup tests
// FREEBIE
7 years ago
Matthew Chen 1607aa7f57 Image content types. 7 years ago
Matthew Chen 527e2715d4 Elaborate the search tests. 7 years ago
Matthew Chen 5c42e4c59e Improve search query construction. 7 years ago
Matthew Chen a51e9b78b0 Improve search query construction. 7 years ago
Matthew Chen b5e0265758 Filter search index text. 7 years ago
Michael Kirk f57a5dbc77 Match searches for national number format
// FREEBIE
7 years ago
Michael Kirk c4b02a0ee8 fix tests - empty contact threads are intentionally excluded
// FREEBIE
7 years ago
Michael Kirk bcbe5901c2 cleanup test code
// FREEBIE
7 years ago
Michael Kirk 13c43c2520 search groups by member name, cleanup tests
// FREEBIE
7 years ago
Michael Kirk 3a03c4f74c WIP: message indexing 7 years ago
Michael Kirk b00e5a4fd9 Fuzzier search matching
-[] Backend
  -[] indexes e5.25
    -[x] wire up results: Contacts / Conversations / Messages actual: 3hr
    -[ ] group thread est: actual:
      -[x] group name actual: e.25
      -[ ] group member name: e.25
      -[ ] group member number: e.25
    -[ ] contact thread e.5
      -[ ] name
      -[ ] number
    -[ ] messages e1
      -[ ] content
-[] Frontend e10.75
  -[x] wire up VC's a.5
  -[x] show search results only when search box has content a.25
  -[] show search results: Contact / Conversation / Messages e2
   -[x] wire up matchs
   -[] style contact cell
   -[] style conversation cell
   -[] style messages cell
  -[] tapping thread search result takes you to conversation e1
  -[] tapping message search result takes you to message e1
  -[] show snippet text for matched message e1
  -[] highlight matched text in thread e3
  -[] go to next search result in thread e2
  -[] No Results page
  -[] Hide search unless pulled down
7 years ago
Michael Kirk f360bcfd35 Less confusing class names
-[] Backend
  -[] indexes e5.25
    -[x] wire up results: Contacts / Conversations / Messages actual: 3hr
    -[ ] group thread est: actual:
      -[x] group name actual: e.25
      -[ ] group member name: e.25
      -[ ] group member number: e.25
    -[ ] contact thread e.5
      -[ ] name
      -[ ] number
    -[ ] messages e1
      -[ ] content
-[] Frontend e10.75
  -[x] wire up VC's a.5
  -[x] show search results only when search box has content a.25
  -[] show search results: Contact / Conversation / Messages e2
   -[x] wire up matchs
   -[] style contact cell
   -[] style conversation cell
   -[] style messages cell
  -[] tapping thread search result takes you to conversation e1
  -[] tapping message search result takes you to message e1
  -[] show snippet text for matched message e1
  -[] highlight matched text in thread e3
  -[] go to next search result in thread e2
  -[] No Results page
  -[] Hide search unless pulled down
7 years ago
Michael Kirk 429af7854a WIP: Full Text Search
-[ ] indexes
  -[x] results: Contacts / Conversations / Messages
  -[ ] group thread
    -[x] group name
    -[ ] group member name
    -[ ] group member number
  -[ ] contact thread
    -[ ] name
    -[ ] number
  -[ ] messages
    -[ ] content
- [ ] show search results: Contact / Conversation / Messages
- [ ] tapping thread search result takes you to conversation
- [ ] tapping message search result takes you to message
- [ ] show snippet text for matched message
- [ ] highlight matched text in thread
- [ ] go to next search result in thread
7 years ago
Michael Kirk a6200a5600 update layout tests 7 years ago
Matthew Chen 3964b78ff7 Reduce usage of JSQ. 7 years ago
Matthew Chen f7abcc9064 Respond to CR. 7 years ago
Matthew Chen 6b39f73e65 Fix tests. 7 years ago
Matthew Chen 3b5ee662d6 Fix date comparators. 7 years ago
Matthew Chen 5ce39337ed Handle malformed protos. 7 years ago
Michael Kirk 13a432b9de Limit attachment caption length to 2k bytes
// FREEBIE
7 years ago
Matthew Chen 45cb1ec510 Clean up ahead of PR. 7 years ago
Matthew Chen abba24988c Rework how dates are formatted in home view. 7 years ago
Matthew Chen 9b5db80f23 Respond to CR. 7 years ago
Matthew Chen a561bf5e22 Fix database conversion tests. 7 years ago
Matthew Chen 9085609087 Fix interaction initializers and tests. 7 years ago
Michael Kirk 00e5e1b0d6 Fixup some tests
// FREEBIE
7 years ago
Matthew Chen 4746948dfe Respond to CR. 7 years ago
Matthew Chen f10b549940 Clean up ahead of PR. 7 years ago
Matthew Chen 68ba8976c5 Clean up ahead of PR. 7 years ago
Matthew Chen 76b4deffe4 Respond to CR. 7 years ago
Matthew Chen d6f4db1523 Rename TSStorageManager to OWSPrimaryStorage. 7 years ago
Matthew Chen 99aedca45f Strip out special casing for pre-iOS 9 users. 7 years ago
Matthew Chen 70ba1720d9 Filter unicode ordering letters. 7 years ago
Matthew Chen d648a258d1 Merge branch 'hotfix/2.19.7' 7 years ago
Matthew Chen abfd333a17 Address Indic script crash. 7 years ago
Michael Kirk 6f959ff292 CR: be more conservative about deriving key spec, clear old passphrase
after deriving key spec.

// FREEBIE
7 years ago
Michael Kirk d22fc664f2 more granular key access
// FREEBIE
7 years ago
Michael Kirk 426c9baa16 Key material changes
- For new installs, generate raw key-spec rather than derive it
- Adapt to separated concerns of the key derivation migration from the unencrypted header migration
- Reduce number of places where we delete/generate keying information
- Only store relevant keying material

// FREEBIE
7 years ago
Michael Kirk 938b9c85b8 Don't crash on clean install
Otherwise we'll error when retrieving non-existent password.

// FREEBIE
7 years ago
Michael Kirk 44bbaeef5a fixup test 7 years ago
Michael Kirk c4edb0b534 Fixup some tests
// FREEBIE
7 years ago
Matthew Chen 5cf89a0f3d Register all database views asynchronously. 7 years ago
Matthew Chen b3e6278a45 Clean up ahead of PR. 7 years ago
Matthew Chen 5d422e03d1 Add support for key specs. 7 years ago
Matthew Chen c5079ed3d7 Add support for key specs. 7 years ago
Matthew Chen 2773fcb5d9 Clean up ahead of PR. 7 years ago
Matthew Chen 149199138c Clean up ahead of PR. 7 years ago
Matthew Chen a05acd0174 Add protocol context to protocol kit. 7 years ago
Matthew Chen d0f1706a49 Modify YapDatabase to read converted database. 7 years ago
Michael Kirk acc97b197b Properly force checkpoint at end of conversion
// FREEBIE
7 years ago
Matthew Chen eadb64b75a Elaborate test suite around database conversion. 7 years ago
Matthew Chen 45e44ca085 Modify YapDatabase to read converted database, part 3. 7 years ago
Matthew Chen 173da64bc4 Modify YapDatabase to read converted database, part 1. 7 years ago
Matthew Chen 3b681aba36 Successfully convert database. 7 years ago
Matthew Chen cc15092eb7 Resolve issues around database conversion. 7 years ago
Michael Kirk 11a709a621 WIP: set plaintext header length
Fix test to try to convert test db, previously it was using the
non-existent TSStorage database.

// FREEBIE
7 years ago
Michael Kirk 71dc7f55d3 Copy DB setup / keying from Yap into conversion
// FREEBIE
7 years ago
Michael Kirk 05035e40a6 Fixup tests
// FREEBIE
7 years ago
Matthew Chen 1bff0f2b0e Incomplete commit starting work on loading databases for conversion. 7 years ago
Matthew Chen 5ba5b763e4 Add tests around database conversion. 7 years ago
Matthew Chen 9258b0883e Clean up TSStorageManager usage. 7 years ago
Matthew Chen f7bcf1d04d Fix tests. 7 years ago
Matthew Chen 99f0b9d3e8 Fix issues around statics. 7 years ago
Matthew Chen 53f51bcd0b Clean up ahead of PR. 7 years ago
Matthew Chen 69e0bcd308 Fix tests. 7 years ago
Matthew Chen 9e44a73068 Fix tests vs. SAE. 7 years ago
Matthew Chen e7bd33df45 Fix tests broken by SAE. 7 years ago
Matthew Chen 9da165b846 Continue conversion of app setup. 7 years ago
Matthew Chen ce899edf10 Respond to CR. 7 years ago
Michael Kirk 71bafcc8f0 Search SignalAccounts by profile name
...and fixup some tests
7 years ago
Matthew Chen ddf4bf28cc Load attachments for conversation view items using long-lived db connection. 8 years ago
Matthew Chen 0a926567ed Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 9cc4521d07 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen c8c09ec19c Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 7e585b72aa Fix tests broken by the JSQ rewrite.
// FREEBIE
8 years ago
Matthew Chen 3927815a35 Fix tests broken by the JSQ rewrite.
// 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
Matthew Chen 183f0f1ccd Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 80e5f281c6 Rename app preferences class.
// FREEBIE
8 years ago
Michael Kirk f6720f9afa properly clear all cached avatar images
// FREEBIE
8 years ago
Michael Kirk d6d403ce69 fix some tests
// FREEBIE
8 years ago
Matthew Chen 6ec756de44 Move profile manager to Signal.
// FREEBIE
8 years ago
Michael Kirk 2067697ed4 Add comment and clearer tests per CR
// FREEBIE
8 years ago
Michael Kirk 4f1ee98489 scrub any data that slips through to logs
Similar to phone number scrubbing, we leave a short prefix of the data
to help with debugging without leaking much data.

// FREEBIE
8 years ago
Matthew Chen 1e67bb52e3 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen 2202fe70fe Fix broken tests.
// FREEBIE
8 years ago
Matthew Chen f584c4b434 Fix broken tests.
// FREEBIE
8 years ago
Matthew Chen 0b28285deb Fix broken tests.
// FREEBIE
8 years ago
Michael Kirk d15da6e6d4 fix bubble calculator tests
// FREEBIE
8 years ago
Michael Kirk 82180f6a97 fix compilation problems
// FREEBIE
8 years ago
Matthew Chen 2bec1db541 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen d42588b957 Improve appearance of generic attachments and the attachment approval dialog.
// FREEBIE
8 years ago
Matthew Chen d12a582ee3 Rename source directories with a space in their name.
// FREEBIE
8 years ago
Michael Kirk 0b49037179 Remove some more RP related code
// FREEBIE
8 years ago
Matthew Chen 9db33a9651 Remove RedPhone code.
// FREEBIE
8 years ago
Michael Kirk 4b52a90c8e Fix test
//FREEBIE
8 years ago
Michael Kirk 6466e9f41f [SSK] Better logging for envelopes
Leave last 3 digits of recipientId when scrubbing logs.

This is in line with other Signal clients, and makes it possible to
trace interactions.

// FREEBIE
8 years ago
Michael Kirk 6036e20079 Filter high diacritical text, regardless of length
// FREEBIE
8 years ago
Michael Kirk da32570dc6 [SSK] remove convoluted dependency
Moved query method to PhoneNumberUtil since that's they only caller.
Moved corresponding tests to SSK

// FREEBIE
8 years ago
Matthew Chen a264d9aa9b Responding to CR.
// FREEBIE
8 years ago
Matthew Chen a226a4a1b3 Respond to CR.
// FREEBIE
8 years ago
Michael Kirk 3e651fb8df filter undisplayable text
// FREEBIE
8 years ago
Michael Kirk f37b8bac0f Fix test to use updated PeerConnectionClient API
// FREEBIE
8 years ago
Matthew Chen f4453eb995 Enable WebRTC-based audio and video calls by default.
// FREEBIE
8 years ago
Matthew Chen 3c3f782e7d Clean up prekey usage.
// FREEBIE
8 years ago
Matthew Chen 97001018ae Clean up prekey logic.
// FREEBIE
8 years ago
Matthew Chen ca76ec6f36 Respond to CR.
// FREEBIE
8 years ago
Matthew Chen d9bcd563b1 Avoid possible deadlock in PeerConnectionClient.
// FREEBIE
8 years ago
Matthew Chen b415b6142f Respond to CR, mainly by fixing broken tests.
// FREEBIE
8 years ago
Michael Kirk dbb29d7d7e Don't require recording permissions until call is ringing.
We do this by manually managing the RTCAudioSession.
Unfortunately to do this we have to include a couple of RTC headers not
exported by the default build of WebRTC.framework (see: Libraries/WebRTC)

// FREEBIE
8 years ago
Michael Kirk ca218ebb64 update call signatures for test fakes
// FREEBIE
8 years ago
Michael Kirk 32789bd960 Move RTCDataChannelDelegate to PeerConnectionClient
- minimizes CallService exposure to WebRTC

// FREEBIE
8 years ago
Michael Kirk 8998853aff Move RTCPeerConnectionDelegate to PeerConnectionClient
This makes sense as PeerConnectionClient is our interface to WebRTC

- Makes it easier to test PeerConnectionClient and CallService
- Allows us to shrink CallService class a bit (it's huge)

// FREEBIE
8 years ago
Daniel Rosado 76d01863db [Invite Flow] Use email address to collate contacts when no given or family name is provided
* Add tests to ContactsPicker collate contacts functionality
8 years ago
Michael Kirk 7bcf5190b4 Address some lingering emoji cropping
This is an expedient, but not good, "fix". Some messages are going to
have extra space at the bottom of the bubble. But, for the time being,
that's preferable to getting messages clipped.

// FREEBIE
9 years ago
Michael Kirk ddf0890408 Fix crash on nil message
// FREEBIE
9 years ago
Michael Kirk bd370f1de4 Fix cropped Chinese/Japanese messages
The earlier fix for the broken ios10 emoji font ended up breaking
messages for some users with a tall font.

Here we have a lighter touch - ensuring we don't touch messages that
don't use emoji.

Also, introduce a different approach to the fix, rather than trying to
compute the bounding rect of an appropriately attributed string, just
add an extra bit of height per line.

This approach isn't ideal for long messages with only one emoji line in
them, but the previous approach was incompatible with Chinese messages
that also contain emoji. See the new
`MesssagesBubblesSizeCalculatorTest.swift` for test cases considered.

// FREEBIE
9 years ago
Michael Kirk 1dd06a5e6c Fix registration flow / Keep push tokens in sync
* Separate registering an account from registering for push notifications
  * Allows us to complete registration without prompting user for
    notification settings.

UX Changes
----------
* Automatically keep push tokens in sync on startup.
  Push tokens *can* change, though they rarely do. It happens more often
  for people switching between appstore/beta builds.

  fixes #1174

* Show alert with registration failure
  * add secret 8-tap debug log gesture to registration flow

* Move registration to separate flow
  * don't see flash of inbox when first launching

* show useful error messages when given wrong code / no code

* remove background fetch
  We werent using it, but only relying on a side effect of it which is
  no longer necessary.

Code Changes
------------

* More registration logging.

* Install PromiseKit with carthage

  Our dependencies are not yet framework compatible, so we can't use
  cocoapods.

* Merge preferences util "category" into superclass.

  The immediate reason for this is Swift interop was assuming optional
  types were not optional, and exploding when a value was nil.

  This is clearer anyway, since we were treating it like a subclass, and
  it was the only thing using the class anyway.

* auto-genstrings now searches *.swift (and *.h, which was previously
  broken) for translateable strings.

// FREEBIE
9 years ago
Michael Kirk 33f6a95520 Explain send failures for text and media messages
fixes #1231

Motivation
----------
Previously when messages failed to send, there was no reason given.
Furthermore, when media messages failed to send there was no indication
that any attempt to send the message even occurred, nor a retry
dialog.

UX Changes
----------
- Show "uploading" status for media
- Show specific error message in retry-send dialog
- Only scroll to bottom when new message is inserted
- Show specific errors when group creation fails

Code Changes
-----------
- Updated incorrect references to TSMessageAdapters which were actually
  references to OWSMessageData
- MessageSender was extracted from SSK MessagesManager
- access MessagesManager as property
- idiomatic init/properties for Env
- log contact intersections
- Move scroll-to-bottom animation to main thread.

// FREEBIE
9 years ago
Michael Kirk 2ab6955967 More logging, scrub phone numbers from file logs (#1357)
Phone number are still logged in TTY for development.

// FREEBIE
9 years ago
Michael Kirk 84156698c4 Provision device from QRCode.
NEEDS DESIGN - will likely have an intermediate "device manager" screen.

* extracted QRCode Scanner into re-usable ViewController

// FREEBIE
9 years ago
Michael Kirk 9db3b0db27 Consistent and efficient media Delete/Copy/Save UX
copy/save/delete is accessed via longpress for all media messages, just
like for simple text messages.

Notes
-----
We don't support saving audio attachments as it's not clear where they should go.
(I don't think users expect them to end up in their iTunes library.)

There is still no UX for "pasting" media into Signal.

Removed the now redundant (and confusing) "share" button interface.

//FREEBIE
9 years ago
Michael Kirk a181d218cf extract and test contact searcher
// FREEBIE
9 years ago
Michael Kirk 1e0f0157c1 namespace ContactsManager -> OWSContactsManager
rename test class ContactManager->OWSContact_s_Manager
update docs

// FREEBIE
9 years ago
Frederic Jacobs 4034baedb9 Adapting to renaming. 9 years ago
Frederic Jacobs 1b02e186f8 Fixes #146 #147. 9 years ago
Frederic Jacobs 975cda312c Adding missing queue test.
The test wasn’t running because wasn’t prefixed with `test`.

//FREEBIE
9 years ago
Frederic Jacobs c6d44e59e2 TextSecureKit Refactoring
- Using same clang format file for old and new files.
- Moving out all TextSecure code to allow other clients (OS X, iOS) to
  integrate easily TextSecure functionality.
- Use TextSecure API to signup.
9 years ago
Frederic Jacobs 26f9207cab Bye Bye Bloomfilters
For reasons outlined in
https://whispersystems.org/blog/contact-discovery/ , Signal will no
more use bloom filters for RedPhone contact intersection.
10 years ago
Frederic Jacobs bbde7cd2a8 iOS 9 Support
- Fixing size classes rendering bugs.
- Supporting native iOS San Francisco font.
- Quick Reply
- Settings now slide to the left as suggested in original designed
  opposed to modal.
- Simplification of restraints on many screens.
- Full-API compatiblity with iOS 9 and iOS 8 legacy support.
- Customized AddressBook Permission prompt when restrictions are
  enabled. If user installed Signal previously and already approved
  access to Contacts, don't bugg him again.
- Fixes crash in migration for users who installed Signal <2.1.3 but hadn't signed up
  yet.

- Xcode 7 / iOS 9 Travis Support
- Bitcode Support is disabled until it is better understood how exactly
  optimizations are performed. In a first time, we will split out the
  crypto code into a separate binary to make it easier to optimize the
  non-sensitive code. Blog post with more details coming.
- Partial ATS support. We are running our own Certificate Authority at
  Open Whisper Systems. Signal is doing certificate pinning to verify
  that certificates were signed by our own CA. Unfortunately Apple's App
  Transport Security requires to hand over chain verification to their
  framework with no control over the trust store. We have filed a radar
  to get ATS features with pinned certificates. In the meanwhile, ATS is
  disabled on our domain. We also followed Amazon's recommendations for
  our S3 domain we use to upload/download attachments. (#891)
- Implement a unified `AFSecurityOWSPolicy` pinning strategy accross
  libraries (AFNetworking RedPhone/TextSecure & SocketRocket).
10 years ago
Frederic Jacobs ada07351e1 Support for `supportsVOIP` attribute.
- Deprecates RedPhone upgrade flow.
- Adds a generic upgrade dialog.
- Upgrades dependencies.
- Reorganizes `TSStorageManager` & TSNetworkManager imports.
10 years ago
Frederic Jacobs f6c0625c2c Removing unused imported classes.
//FREEBIE
10 years ago
Frederic Jacobs b6ef5f0b7f Bloomfilter moves to Cache folder
The bloom filter is not user generated content so Apple is not going to
let us store it into the Documents folder. Moving it to the Cache
folder.
10 years ago
Frederic Jacobs 456d1c479a Fixes #530 10 years ago
Frederic Jacobs 19ca10d431 Allows retry of failed downloads. 10 years ago
Christine Corbett 8a5c5efd73 Group avatar relationship for deletion. 10 years ago
Frederic Jacobs 884c960798 Closes #319 10 years ago
Frederic Jacobs bcd98f90ee Closes #263 10 years ago
Frederic Jacobs 5ccbc4131b Closes #315 10 years ago
Frederic Jacobs 7c658b2879 Enhancements in build configuration.
- Helps onboarding of new contributors because signup generates a fake
push token to register devices.
- Deleted Ad-Hoc configuration since no more HockeyApp distribution.
TestFlight uses default `AppStore release` build configuration.
10 years ago