This is part of unforking JSQMVC, but I'm only reformatting files
otherwise changed rather than reformatting the entire project for git
sanity.
This is intentionally a second commit so we can separate formatting
changes from code changes
* brace should drop after method definition (this is common across
almost all objc projects, and allows you to quickly differentiate
multi-line method signatures from their implementation.
* aligning consecutive assignments ongoingly muddies git history
// FREEBIE
Geting back on upstream fixes a couple bugs (see ##Bugfixes), and also
will make future updates easier.
The unforking process was basically this:
* move custom message types (Calls and DisplayedMessages) classes from our
custom JSQMVC fork into Signal-iOS.
* Move any method customization into our subclass. Including
ColletionView stuff, bubble sizing, and gesture behavior
Bug Fixes
---------
* Fix mis-sized incoming media bubbles.
Bubble size was being cached by interaction id. Which broke when
receiving an attachment. The problem is that incoming media messages
were initially the height of a "Downloading Attachment" info message.
Instead we use the mediaHash for media messages to expire the bubble
size when the media changes.
* fix missized bubble when MVC did appear
The MessagesViewController isn't sized correctly until ViewWillAppear.
This caused the first round of bubbles to be rendered incorrectly (they
assumed a larger container than they had). I think is reflected in the
current version of the app by a reflow occurring shortly after the view
appears.
Chores
------
* bump travis to build with xcode8
* specify RQV development team for device build. required by xcode 8 beta
Cleanup
------
* Refactor messageing XIB so that elements are hangning outside of
the views frame
* Fix compiler warning with explicit cast
* delete deprecated lineBreakmode, it's the default value anyway.
// FREEBIE
* Latest SocketRocket includes
* crash fixes.
* our new security policy management, so we don't have to
keep rebasing to incorporate updates.
* Adapt to policy renaming in SignalServiceKit
* bump XCode version to play nice with SWIFT_NAME
// 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
* compress non-GIF media as JPEG
There are some problems with this approach
- Potentially re-encoding files
- Lots of code in the controller
* Compress GIF > 5MB into static JPEG.
This isn't ideal, but a stopgap to prevent people from sending huge
GIFs, while also giving them *some* kind of feedback (e.g. a static jpeg
is sent rather than their being no indication to sender+recipient that
anything was attempted.)
* spell bmp correctly
// FREEBIE
FIXES#1222
Maybe this code was a vestige of a former way we were customizing the
back button. In any case, it's no longer required for swipe-to-pop
functionality.
// FREEBIE
4% of our crashes are from accessing latestContactsById with an invalid
address. This was partially addressed by assigning a value on init, but
it's still happening.
By converting the ivar to an atomic property we can avoid any funny
business that would happen when accessing this var while it's being
updated in a different thread.
Also, make sure we're copying to defensively strip mutability.
Also:
* bumped release target
* removed unused code
* dealloc at the top per style.
* Rebased OWS fork of SocketRocket against upstream
* Pulling in SocketRocket directly from OWS Github rather than going
through the motions of publishing a pod that only we use.
* Bump version
// 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
* CocoaPods 1.0 compatibility. Thanks to @brianherman and @orta for the Podfile changes, taken from PR #1156
* Modified Travis-CI to use the newer CocoaPods 1.0 as well.
* Performance improvements to Travis-CI to reduce build time by 50%-75%
Cherry-picked and conflicts resolved by @michaelkirk
* bump version
* pulled latest translations
* Register localizations with app.
- Persian (fa)
- Indonesian (id)
- Macedonian (Macedonia) (mk)
- Shona (sn)
- Galacian (gl)
(Project > Signal > Localizations > Add Localizations)
Generalized Macedonian locale since it seems like iOS doesn't support
the "Macedonia(Macedonia)" sub-locale
* disable farsi until proper RTL interface work is done
// FREEBIE
* modify script to fetch all uploaded translations.
Otherwise we don't always get the latest translations.
This might be because we're only fetching "reviewed" translations, but
so-far-so-good with unreviewed translations, and we don't have a real
"reviewing" hierachy in place anyway. This policy might change in the
future, but at least now it's not ambiguous.
// FREEBIE
* latest translations
* Fixes "New Message" --> "Invite contact" exception for iPhone devices that do not support SMS messaging
* fix SMS invite on empty inbox
This code appears in two contexts - (1) in an empty inbox , where no other view
controller is presented, and (2) in compose interface where a
search controller is presented, and must first be dismissed.
* only check SMS sending ability directly, (not device model)
This is better because:
1. sometimes iPhones can't send SMS
2. Sometimes iPads/iPods can send SMS
* correct localization key
* bump build
// FREEBIE
* all Signal users can send text messages, never hide texting toolbar.
//FREEBIE
* Fix composition box size when switching threads.
Partial revert of 2c83046ff6 which
introduced a shared reusable message view controller across threads.
2c83046ff6 resulted in several discovered
bugs so far (#1179, #1150, #1152, and maybe: #1146). It's pretty clear
at this point we're going against the grain of how
JSQMesageViewController is intended to be used, and since the nominal
purpose of this feature (iPad Layout) doesn't exist, we should revert to
the known good way of interacting with the MessageViewController,
creating a fresh instance per thread.
// FREEBIE
* bump release
//FREEBIE
* fix invite over sms alert
Could not present the sms invite alert controller because we were
already presenting the UISearchController
FIXES: #1182
// FREEBIE