Commit graph

119 commits

Author SHA1 Message Date
RiseT
f29a0fe49b Change safety number strings to be singular
// FREEBIE
2016-11-30 20:11:41 -05:00
Michael Kirk
5a0141003d "No Contacts" screen uses new invite flow
fixes #1501

// FREEBIE
2016-11-30 15:03:18 -05:00
Michael Kirk
f0461891e0 Convert Localizable.strings tools to UTF-8 (#1420)
- Update translations
- Updated transifex scripts to convert appropriately
- Run script from any dir
- Check that target directories exist
- We're currently not pulling any strings from JSQMVC

UTF-8 is preferred since we can see diffs in GH and have sane merges.

// FREEBIE
2016-11-29 16:54:01 -05:00
Josh Schneier
896dd026d2 Remove DJWActionSheet 2016-11-29 10:20:56 -05:00
Michael Kirk
ed29b154b8 update translations
// FREEBIE
2016-11-26 15:19:03 -05:00
Michael Kirk
f30c733ef3 Custom contact picker for invite flow
Preferred to the system contact picker because:
1. removes "group" clutter from header, unlikely to be used much.
2. can select while searching
3. fixes unified contact problem where e.g.
   If only one of your contact has a phone number, they appear disabled
   when choosing to invite via messaging, even though the other linked
   contact *does* have a phone number.
4. label users w/o email so it's clearer why they can't be selected

Also:

* Twitter share-image was too tall

// FREEBIE
2016-11-26 14:43:42 -05:00
Michael Kirk
f9a60b622d Use cleaner signal link in invite email
// FREEBIE
2016-11-22 18:47:03 -05:00
Michael Kirk
06ca3c9290 Mail and Message invite flow
* Spruce up compose contact-picker
- Fix random sorting for contacts missing first or last name
- Add Avatar to contact picker
- de-dupe contacts

Better copy for INVALID_MESSAGE error.

// FREEBIE
2016-11-22 12:11:35 -05:00
Michael Kirk
584118a9fc compare safety numbers with clipboard (#1475)
* Compare safety numbers with clipboard

// FREEBIE
2016-11-21 11:06:37 -05:00
Michael Kirk
88d9ef987f Share dialog for Safety Numbers
// FREEBIE
2016-11-15 18:44:52 -05:00
Michael Kirk
7cae804217 Update translations, bump build.
// FREEBIE
2016-11-14 11:36:32 -05:00
Michael Kirk
c5be8f2d88 Don't include phone number in scannable safety number QR code
also fixes #1455

// FREEBIE
2016-11-14 09:12:24 -05:00
Michael Kirk
ddeadafc3b Don't show own addressbook info in settings
Some folks get the wrong idea and think Signal Service knows their name,
when really, we were just showing them the entry for the registered
phone number in their address book.

In any case, presumably the user already knows their name, so we don't
need to remind them.

// FREEBIE
2016-11-13 11:49:39 -05:00
Michael Kirk
c2aa17e362 Changed Safety numbers no longer block communication
When your partner changes their identity key (e.g. by reinstalling),
you'll see a notice alongside their message, but it will no longer
prevent the message from showing. aka "non blocking".

Existing users will be opted into the previous blocking behavior.

This is configurable for all users in Settings > Privacy.

// FREEBIE
2016-11-11 09:13:38 -05:00
Michael Kirk
368db7e553 [SSK] Only need to fetch prekey once
Plus related rate limit translations

// FREEBIE
2016-11-10 10:47:49 -05:00
Michael Kirk
49e5b19487 Update translations
// FREEBIE
2016-11-09 14:05:02 -05:00
Michael Kirk
b8fc4001ec Camera permission fixup
- remove unknown segue, otherwise couldn't compile project
- translated english strings
- added translation comments
- reused existing "dismiss" string
- deselected row after dismissing permissions alert in linked devices
  screen

// FREEBIE
2016-11-08 17:16:19 -05:00
Michael Kirk
c6a2fbff23 Tapping corrupted message opens "session reset" activity
This action was previously hidden under a secret longpress gesture in
the fingerprint view controller.

Ideally we'd never receive corrupted messages, but at the point we do,
our sessions are out of whack, and the only recovery option is to reset.
Let's help our users do that.

* Resetting session sends END_SESSION message

  Otherwise the remote side wouldn't know we reset the session and will
  send us a message on the old ratchet.

* Don't reset their identity key when resetting sender ratchet.

* Updated translations

// FREEBIE
2016-11-04 14:57:37 -04:00
Michael Kirk
1dd06a5e6c Fix registration flow / Keep push tokens in sync
* Separate registering an account from registering for push notifications
  * Allows us to complete registration without prompting user for
    notification settings.

UX Changes
----------
* Automatically keep push tokens in sync on startup.
  Push tokens *can* change, though they rarely do. It happens more often
  for people switching between appstore/beta builds.

  fixes #1174

* Show alert with registration failure
  * add secret 8-tap debug log gesture to registration flow

* Move registration to separate flow
  * don't see flash of inbox when first launching

* show useful error messages when given wrong code / no code

* remove background fetch
  We werent using it, but only relying on a side effect of it which is
  no longer necessary.

Code Changes
------------

* More registration logging.

* Install PromiseKit with carthage

  Our dependencies are not yet framework compatible, so we can't use
  cocoapods.

* Merge preferences util "category" into superclass.

  The immediate reason for this is Swift interop was assuming optional
  types were not optional, and exploding when a value was nil.

  This is clearer anyway, since we were treating it like a subclass, and
  it was the only thing using the class anyway.

* auto-genstrings now searches *.swift (and *.h, which was previously
  broken) for translateable strings.

// FREEBIE
2016-11-03 16:13:49 -04:00
Michael Kirk
f2ee006d5f Update translations
Bump version.

// FREEBIE
2016-10-28 10:52:43 -04:00
Matthew Douglass
bbfffdf79f Scanning an invalid QR code shows an error dialog
* From the error dialog you are able to back out of scanning or try again. Adds English localization for this message.

  Adds an extra flag in OWSQRCodeScanningViewController to make sure that we don’t handle captureResults when capture is disabled (this was racing before because the call to [capture stop] is async and that was causing the cancel case to present the error dialog multiple times.

  Fixes Signal-iOS#1347

* Fixes appearance of race with starting capture
  Also marks the capture variable as atomic since it is accessed on
  multiple threads.

// FREEBIE
2016-10-26 15:49:19 -04:00
Michael Kirk
40d6550fca Update translations
// FREEBIE
2016-10-26 15:22:35 -04:00
Michael Kirk
66f0f8cc95 [SSK] Better error messages when failing to send
// FREEBIE
2016-10-26 15:22:35 -04:00
Michael Kirk
689df1be37 Handle key change in group send
// FREEBIE
2016-10-26 15:22:35 -04:00
Michael Kirk
0e345dbbad Update translations
// FREEBIE
2016-10-26 15:22:35 -04:00
Michael Kirk
33f6a95520 Explain send failures for text and media messages
fixes #1231

Motivation
----------
Previously when messages failed to send, there was no reason given.
Furthermore, when media messages failed to send there was no indication
that any attempt to send the message even occurred, nor a retry
dialog.

UX Changes
----------
- Show "uploading" status for media
- Show specific error message in retry-send dialog
- Only scroll to bottom when new message is inserted
- Show specific errors when group creation fails

Code Changes
-----------
- Updated incorrect references to TSMessageAdapters which were actually
  references to OWSMessageData
- MessageSender was extracted from SSK MessagesManager
- access MessagesManager as property
- idiomatic init/properties for Env
- log contact intersections
- Move scroll-to-bottom animation to main thread.

// FREEBIE
2016-10-26 15:22:35 -04:00
Matthew Douglass
722c3a5e78 Create TSOutgoingMessage with info on group change
TSOutgoingMessage is created with details about the group changes so that we see more than just “Group Updated.”

* Customizes message for new group creation

  Replaces GROUP_UPDATED with GROUP_CREATED for a brand new group. Localized for English only.

* Updates to use fixed SignalServiceKit branch

// FREEBIE
2016-10-20 20:32:30 -04:00
Michael Kirk
802d2bfdff Revert "Create TSOutgoingMessage with info on group change"
Inadvertently stole credit for work done when squashing the commits.
Reverting and re-merging giving appropriate credit.

This reverts commit 8242c9e381.
2016-10-20 20:31:54 -04:00
Michael Kirk
8242c9e381 Create TSOutgoingMessage with info on group change
TSOutgoingMessage is created with details about the group changes so that we see more than just “Group Updated.”

* Customizes message for new group creation
  Replaces GROUP_UPDATED with GROUP_CREATED for a brand new group. Localized for English only.

* Updates to use fixed SignalServiceKit branch

// FREEBIE
2016-10-20 20:20:41 -04:00
Michael Kirk
15dcbbb06c re-pull translations after updating source
// FREEBIE
2016-10-20 13:27:38 -04:00
Michael Kirk
b9945b7e32 pull latest translations before updating source
// FREEBIE
2016-10-20 13:27:38 -04:00
Michael Kirk
16a30f2892 translate untranslated strings
// FREEBIE
2016-10-20 13:27:38 -04:00
Michael Kirk
8c062f93aa Refresh Localizable.strings with auto-genstrings
This shouldn't have any affect on behavior, we're just removing unused
strings, extracting comments, and re ordering.

Going forward we can use auto-genstrings to get a sensible diff without
having to manually add/remove/update strings and comments.

Thanks @nixnuex!

// FREEBIE
2016-10-20 13:27:38 -04:00
Michael Kirk
64f4eb73c5 Allow autogenstrings to find all strings
* Inline #define strings, so genstrings can find them
* Make all strings single line so they don't get truncated by auto-genstrings
* Properly quote LHS in strings file

// FREEBIE
2016-10-20 13:27:38 -04:00
nixnuex
722356db58 script to generate and merge global .strings file
* make auto-genstrings executable
2016-10-20 13:27:38 -04:00
Michael Kirk
bc9154f18f Bump version / update translations
// FREEBIE
2016-10-14 13:20:10 -04:00
Michael Kirk
7661b7f402 Consistent copy with other platforms
// FREEBIE
2016-10-12 09:30:25 -04:00
Michael Kirk
185cb24938 Update translations
// FREEBIE
2016-10-12 09:30:25 -04:00
Michael Kirk
2b2ebbe099 Tweak settings design
* lighter tint for icons, their bold stroke width makes them darker than
  the text
* Replace double hourglass icons with a single one. It aligns better,
  and the "small time" vs "big time" is confusing
* Add description of what disappearing messages do

// FREEBIE
2016-10-12 09:30:25 -04:00
Michael Kirk
dc0807297b Update translations
// FREEBIE
2016-10-12 09:30:25 -04:00
Michael Kirk
ee0cce75e8 Disappearing Messages
* Per thread settings menu accessed by tapping on thread title

  This removed the toggle-phone behavior. You'll be able to see the phone
  number in the settings table view.

  This removed the "add contact" functionality, although it was already
  broken for ios>=9 (which is basically everybody).

  The group actions menu was absorbed into this screen

* Added a confirm alert to leave group (fixes #938)

* New Translation Strings
* Extend "Add People" label to fit translations.
* resolved issues with translations not fitting in group menu

* Fix the long standing type warning where TSCalls were assigned to a TSMessageAdapter.

* Can delete info messages

  Follow the JSQMVC pattern and put UIResponder-able content in the
  messageBubbleContainer. This gives us more functionality *and* allows us
  to delete some code. yay!

  It's still not yet possible to delete phone messages. =(

* Fixed some compiler warnings.

* xcode8 touching storyboard. So long xcode7!

* Fixup multiline info messages.

  We were seeing info messages like "You set disappearing message timer to
  10" instead of "You set disappearing message timer to 10 seconds."

  Admittedly this isn't a very good fix, as now one liners feel like they
  have too much padding.

   If the message is well over one line, we were wrapping properly, but
  there's a problem when the message is *just barely* two lines, the cell
  height grows, but the label still thinks it's just one line (as evinced
  by the one line appearing in the center of the label frame. The result
  being that the last word of the label is cropped.

* Disable group actions after leaving group.

// FREEBIE
2016-10-12 09:30:25 -04:00
Michael Kirk
11a586a835 New Fingerprint Format
Rather than verifying eachothers keys separately, you now verify the
privacy with your recipient by sharing a single composite number or
QRCode.

This is a breaking change, in coordination with Desktop and Android.

UX
--

Fingeprint is no longer in line with identity key error. Instead you
have the option of going to the full-screen safety number verification
experience.

Overhauled fingerprint design
-----------------------------

* use same modal dismiss button as elsewhere
* remove fingerprint from settings.
* quick slide in animation vs slow fade
  * existing was painfully slow
  * blur effect is better metaphor for something slide over top
  * anyway there was a rendering glitch in the end of fade where
    underlying navbar would "snap" out

Also Fixed
----------
Always provide a name string for contact

* Centralize all the nil-checking
* Fall back to "unknown contact"

allow multi-line error messages

// FREEBIE
2016-10-12 09:30:25 -04:00
Michael Kirk
cc2a25b184 update translations
// FREEBIE
2016-09-30 10:22:12 -04:00
Michael Kirk
0c4f1d41b6 Fix contact sync in SSK (#1345)
* bump version
* update translations

// FREEBIE
2016-09-23 17:32:03 -04:00
Michael Kirk
d8be0b5d22 New translations
// FREEBIE
2016-09-14 13:26:55 -04:00
Michael Kirk
5200cccbe3 Update translations
* 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
2016-09-09 15:17:15 -04:00
Michael Kirk
7e67fb1939 Some style for the QR code scanner.
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
2016-09-07 22:43:19 -04:00
Michael Kirk
ef6784ed95 Device Manager
* List linked devices
* Adding a new device
* Removing a device

TODO: design on the QRScanner

// FREEBIE
2016-09-06 15:57:44 -04:00
Michael Kirk
84156698c4 Provision device from QRCode.
NEEDS DESIGN - will likely have an intermediate "device manager" screen.

* extracted QRCode Scanner into re-usable ViewController

// FREEBIE
2016-09-02 12:40:21 -04:00
Michael Kirk
f09af989b7 2.4 update translations (#1291)
// FREEBIE
2016-07-22 00:39:01 -07:00