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
* 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
* 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
* Group actions bar button image was too big
Added image inset to resize.
// FREEBIE
* return blue line to neutral gray. (partial revert of 0c1a97a743)
// FREEBIE
* Podfile.lock corollary to updating SSL in b7813bdc9a
// FREEBIE
- Use single MessagesViewController. Goal: Being able to reuse that UI
for SplitViewController on iPad. Prevents unnecessary deallocations and
re-allocations.
- Remove custom archiving UI for default swipe right to left archive
action, like in iOS Mail.app.
- DynamicType for main view.
- Simplify API of MessagesViewController to prevent undefined behavior.
//FREEBIE
- 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.
- 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).
We’ve noticed that most people went to the App Store to leave really
bad reviews of the app and it is severely affecting our discoverability.
We will ask for a rating if we see you’ve been using the app for some
time. If you rate the app or decline to rate, that’s fine. We will
never bug you again!
1) Supporting `remoteRegistrationId` on sending messages. Now showing
warning before sending the message if key conflict exists. Fixes#574
2) Upgrading dependencies: adapting to new libPhoneNumber API.
3) Fixes race condition in database code.
4) Fixing ordering bug. Hopefully once and for good.
• updated iconography
• lines and sizing
• empty inbox and archive screen with wording
• bug fix on calling to self being enabled sometimes (doesn't crash either way, but makes little sense)
• call icons and group update icons incorporated (PR to JSQ must be merged to test; this will be two lines on the Signal-iOS side to remove if we decide not to go with icons)
• fingerprint screen working: accessible by long press from contact screen on contact title. long press on lower half of screen shreds key material after confirmation. new icons for scan and show.
• short press on contact title will show their phone number
• color updates to new palette for green, yellow and light blue
• Create button should be btnCompose--white
• Add people to be a tableview header (ask @helveticade for creatives)
• Send button = btnSend--blue
• Attachments button = btnAttachments--blue
• message footer changes from call to message as input
• Remove more button
• Empty State update with asset and new copy
• Default group name should be 'New Group' (UI only)
• loading view
• Update tab bar items with revised PDFs
• Blue outline around avatar-less contacts
• Replace swipe left actions with btnDelete--white asset
• Replace swipe right buttons with cellBtnMoveToArchive--blue and cellBtnMoveToInbox--blue respectively
• Done icon replaced with btnSignal in settings
• Settings: Swap blue and grey for Registered Number and Change (change doesn't look like a button)
• Settings: UI Switch on should be Signal Blue.
• Disable search ui + group button while downloading contacts
• new group: Create button should be btnCompose--white
• new group: Add people to be a tableview header
- Sublassing errors in case of expected behaviour
- When receiving a new message that was using a previously unknown
identity key, we search for any other messages that are encrypted with
the new accepted key and decrypt those too.
- Addressing some of the warnings we had before.