In coordination with Desktop and Android, iOS will be using all-numeric
fingerprints, aka "Safety Numbers".
Furthermore, the concept of verifying one identity and then the other
has been removed. Instead we ask users to exchange a single number, or
scan a single QR code. These credentials are built by combining the
users identities.
// FREEBIE
Initially we don't have device messages for our remote device. We need to send the empty device list to get the updated list of remote devices.
Introduced lots of dependency injection to make MessagesManager more testable.
// FREEBIE
* By providing a view extension for secondary devices we can use that in
a view mapping to power our devices view controller, and avoid any race
conditions with uncommitted transactions.
* Fix crash when you're not in your own contacts
* New device appears on top
* Don't show "edit" button unless there are devices, or rather, the helpers to do so.
* Fix glitchy refresh
Saving unchanged records was causing the tableview to redraw, which was
mostly invisible, except that if the refresh indicator were running, it
would twitch.
// FREEBIE
* new protobufs from libsignal-service-java@a1c93edc40e3ce201fa4e70339a3e6f4e197e319
* Makefile to build ObjC classes from *.proto
* refactored some touched code to minimize duplication
* removed unused protos
* deleted some dead code
* renamed method for clarity
// FREEBIE
Our pod SSKeychain was renamed to -> SAMKeychain to avoid collision with
the iOS10 library SSKeychain.
* log failure to write keychain (this seems to only happen on simulator)
* ensure we exit if we fail to set DB cipher key
// FREEBIE
What we *previously* refered to as attachments are actually just the
attachment's id (NSString). This has tripped me up a few too many
times.
Also, use generics with attachment id's array.
// FREEBIE
In theory, this should have already been handled by the
YapDatabaseRelationship extension via edges.
However, in practice, there were situations (cause unknown) where
interactions would exist without an edge to their corresponding thread.
Rather than being clever with the edge/callback machinery, now threads
explicitly delete all their interactions, and interactions delete all
their attachments (when applicable).
Also, a class to clean up spurious interactions / attachments
In the process:
- refactored TSYapDatabaseObject init to specify designated initializer
- added some testing niceties to TSYapDatabaseObject
// FREEBIE
- log errors
- forward declare where possible
- clang-format
- remove inaccurate file headers
- include Pods in Example app build target to get SignalServiceKit warnings
- Fix those warnings!
// FREEBIE
* Use SocketRocket pluggable policies
Pluggable policies are currently only in our fork, but pending upstream
PR: https://github.com/facebook/SocketRocket/pull/429
Also:
* rebased SocketRocket against latest upstream to incorporate bug fixes.
* adapt to new upstream API for error handling (vs previous exception throwing)
* renamed AFSecurityOWSPolicy -> OWSHTTPSecurityPolicy to differentiate
it from OSWWebSocketSecurityPolicy
* Follow conventional singleton pattern with onceToken
* bump xcode version to play nice with SWIFT_NAME in SocketRocket
// FREEBIE
We only support voice+text clients
* remove voice parameter since we always support voice
* test TSAttributes
Plus re-styled touched code:
* don't access ivars outside of init/dealloc
* remove unused code
// FREEBIE
While trying to pull in upstream changes to our fork of SocketRocket I
noticed we're publishing it/installing it from CocoaPods trunk, but
there's no need to do that.
Also, due to upstream refactoring, the actual included file has
changed.
// FREEBIE