* 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
Previously ios was generating the asset for us from our vector (pdf),
but apparently it does a crappy job. Most notably on small thin lines
like our paperclip.
// FREEBIE
Also made identity key scanner appear faster. Previously we were
waiting for camera to initialize. Now we do this after the view has
loaded - with a black background, the affect is preferable than
lagging on the transition.
// FREEBIE
* Avoid intermittent crash in device manager via YapDatabaseModified
* Properly align refresh text when expecting new device
* Avoid glitchy activityIndicator while polling
* Expose edit mode toggle
Much of the code changes here were in the corresponding SSK update.
// FREEBIE
Ideally we'd be using file streams so we wouldn't have to load it all
into ram but none of the attachment uploading infrastructure takes
streams (yet!)
// FREEBIE
After provisioning a desktop client, you'll see messages sent from your
phone appear on your desktop client, and messages sent from the desktop
client appear on your phone.
* In the process extracted some of the Attachment processing logic out
of the giant MessagesManager.
* Some nullability annotations on affected files.
// 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
FIXES#1296
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
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
TSAnimatedAdapter is used when rendering GIFs. TSAnimatedAdapter
inherits from JSQMediaItem but does not provide a custom implementation
of the hash method. The default implementation of hash in JSQMediaItem
results in all messages of a given interaction type (incoming,
outgoing) sharing a cached bubble size. For this reason, JSQMediaItem
subclasses are required to implement hash (see
https://github.com/jessesquires/JSQMessagesViewController/issues/631).
This commit fixes issue #1275 by implementing hash in TSAnimatedAdapter
the same way TSPhotoAdapter does.
On older devices with lots of data, the orphan data cleaner can time
out. Here we're trading certainty that the migration completed for
confidence that the boot process doesn't time out.
// FREEBIE
The object is already cached & the waveform view constructed when scrolling,
so there's no need to re-create the view.
This doesn't fix the problem with the wave-form generation on the first
view of the message. That is a more critical problem in the underlying
SCWaveformView class which renders on the main thread instead of doing
it asynchronously.
FIXES#1258