* New bg (Bulgarian) localization!
* New sq (Albanian) localization!
* replace unfinished bg_BG localization with complete bg localization
* caps keys to make it easier to see missing localizations
* pull with newly pushed source keys
// 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
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
* 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
* Update translations (4 new translations!)
*New Translations*
- Persian (fa) (100%)
- Indonesian (id) (82%)
- Macedonian (Macedonia) (mk_MK) 100%
- Shona (sn) 98%
Inluded a script to pull translations that are >=80% complete
80% is completely arbitrary, but nicely bisects the current translation
efforts which fall into buckets of "over 80%" and "under 50%."
// FREEBIE
* final tx pull before push source
//FREEBIE
* tx pull, after updating source (plus some eager beavers already pushed new translations)
iStringVerify passes
* Make "add person" label more i18n flexible
This accommodates (e.g.) Italian, which was being truncated.
// FREEBIE
* Galician localization
Moitas grazas xesusmosquera!
// FREEBIE
* i18n for Unarchive action
started leaving hints for our translators. These are currently manually
redundantly duplicated in the source/strings file, in hopes of a more
automated future with genstrings.
// FREEBIE
* include iStringsVerify check in update-translations script
and pull latest translations after including UNARCHIVE action
// FREEBIE
* i18n GROUP_MEMBERS_HEADER
//FREEBIE
* pull translations
- 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).
Signal requires the AddressBook permission to use the app at the
moment. This avoids the edgecases where a user doesn’t allow access to
his address book and then tries to use the app. We’re also doing a
significantly better job at explaining why we need this permission to
the user.
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!
- Removes large confusing UX bar and related assets. Replaced with UISwitch.
- Enhanced user experience for missed calls.
- Fixes issue where missed call would appear as incoming call in call log.
- Fixing issues where PushKit handler not called on launch.
- Tap to reply to a message.
- Badges application with the number of unread messages.
- Pick up a phone call from lock screen, or decline it.
- Settings for notification sounds while app in foreground and text displayed on local notifications.
- Tested on jailbroken phone that correct files are getting encrypted
- Fixes#557
- Stores image file extension
- Addresses issue with deletion of debug logs
- Preventing user to browse in app if not registered with TS server