Commit graph

323 commits

Author SHA1 Message Date
Michael Kirk 70d235a670 Choose arbitrary attachments from iCloud/GDrive/Dropbox/etc
// FREEBIE
2017-04-20 18:49:30 -04:00
Michael Kirk 5c39d623a6 tweaked copy per @RiseT
// FREEBIE
2017-04-19 19:36:26 -04:00
Michael Kirk d9e3e87735 New downloading progress view (#2006)
Replace previous "scary" warning-style attachment notifications with
something less alarming.

Includes file name and file type emoji when discernable.

// FREEBIE
2017-04-19 18:50:27 -04:00
Matthew Chen e36b5a4602 Improve group members view.
// FREEBIE
2017-04-19 11:37:27 -04:00
Matthew Chen 499c8d0bc1 Add muting of threads.
// FREEBIE
2017-04-19 09:57:12 -04:00
Matthew Chen c8466912f0 Add muting of threads.
// FREEBIE
2017-04-19 09:57:12 -04:00
Matthew Chen d614073795 Respond to CR.
// FREEBIE
2017-04-17 18:05:47 -04:00
Michael Kirk da8596c1ba Check microphone permissions: Clean up
* copy tweaks
* use "settings" instead of "privacy settings" for button text
* include comments in NSLocalizedString param so they can be extracted with genstrings
* style dismiss action as "cancel"

// FREEBIE
2017-04-14 10:46:40 -04:00
Christoph Hagen 70efb5e9ec Check microphone permissions before starting a call 2017-04-14 10:46:18 -04:00
Matthew Chen 7f5847d2d5 Improve file size formatting in attachment approval dialog.
// FREEBIE
2017-04-12 16:53:28 -04:00
Matthew Chen 267462c584 Show block indicator in home view.
* Improve thread safety of home view cells.

// FREEBIE
2017-04-12 11:55:37 -04:00
Matthew Chen 878704cb12 Create block offer when non-contacts send you a message.
// FREEBIE
2017-04-12 08:38:54 -04:00
Matthew Chen 0a8c9e5622 Respond to CR.
// FREEBIE
2017-04-11 18:04:44 -04:00
Matthew Chen 4e3fbac107 Add explanation messages to the “block user alert” and the block section of the 1:1 conversation settings view.
// FREEBIE
2017-04-11 18:00:01 -04:00
Michael Kirk ca768d071a repeat phone number in header, next to back button
1. Putting it near the back-button suggests the user can change it by
   going back.

2. The existing title "Verify" didn't add any value.

// FREEBIE
2017-04-11 13:34:47 -04:00
Michael Kirk fb53a3258d clarify what to do on the verification screen
// FREEBIE
2017-04-11 13:34:47 -04:00
Matthew Chen 372d6b9bfd Don’t let user block themselves.
// FREEBIE
2017-04-07 13:02:30 -04:00
Matthew Chen df58a01330 Revert "Fix i18n key."
This reverts commit 0ba81588ed.
2017-04-07 12:09:08 -04:00
Matthew Chen 0ba81588ed Fix i18n key.
// FREEBIE
2017-04-06 22:09:23 -04:00
Michael Kirk 8c5ceffe17 sync translations
// FREEBIE
2017-04-06 21:19:19 -04:00
Matthew Chen 19d8f6cf01 Improvements around contact cells.
* Improve handling of accessory views/types.
* Use contact cell in “new/edit group” view.
* Don’t hide blocked contacts and group members in “new/edit group” view.
* Let users “unblock-to-add” blocked contacts in “new/edit group” view.

// FREEBIE
2017-04-06 20:59:07 -04:00
Matthew Chen 8823b2884a Refine the “block list” view.
// FREEBIE
2017-04-05 21:58:51 -04:00
Michael Kirk 4494a95a62 Block list is two words. Update code/comments/constants
// FREEBIE
2017-04-05 17:37:08 -04:00
Matthew Chen e0c7457eca Refine appearance of “add to block list” view.
// FREEBIE
2017-04-05 13:47:56 -04:00
Matthew Chen b3d6a82c4f Show blocked users in “add to block list” view.
// FREEBIE
2017-04-05 13:27:29 -04:00
Matthew Chen 7273e6faa5 Respond to CR.
// FREEBIE
2017-04-05 12:18:01 -04:00
Matthew Chen 99a1b4e9f4 Revert unintended l10n changes.
// FREEBIE
2017-04-05 12:18:01 -04:00
Matthew Chen c500e7890f Improve completion handling of block actions.
// FREEBIE
2017-04-05 12:18:01 -04:00
Matthew Chen 9c9060203e Block actions in message view for blocked group conversations.
* Add block status indicator view.

// FREEBIE
2017-04-05 12:18:01 -04:00
Matthew Chen 253776d65c Respond to CR.
// FREEBIE
2017-04-05 09:09:14 -04:00
Matthew Chen 54cd8cfa3c Add blacklist controls to 1:1 conversation view.
// FREEBIE
2017-04-05 09:09:13 -04:00
Matthew Chen a7296db1fe Add contacts list to “add blocked number” view.
// FREEBIE
2017-04-04 09:12:11 -04:00
Matthew Chen 5a234e34d9 Filter incoming and outgoing messages using the blacklist.
// FREEBIE
2017-04-03 18:05:05 -04:00
Matthew Chen 2e0c95c379 Respond to CR.
// FREEBIE
2017-04-03 17:49:06 -04:00
Matthew Chen 271cc6f07e Sketch out BlockListViewController and AddToBlockListViewController.
// FREEBIE
2017-04-03 17:49:06 -04:00
Matthew Chen 4649fcfd20 Add "oversize test message" view.
// FREEBIE
2017-03-30 09:51:49 -04:00
Matthew Chen d85dfb8a4e Improve support for arbitrary attachments.
// FREEBIE
2017-03-30 09:20:45 -04:00
Matthew Chen 80fbc093d9 Handle oversize text messages and arbitrary attachments.
// FREEBIE
2017-03-29 14:34:21 -04:00
Matthew Chen 9db33a9651 Remove RedPhone code.
// FREEBIE
2017-03-29 12:25:33 -04:00
Matthew Chen b90416f472 Show alerts with relevant error messages when attachment-related errors occur.
// FREEBIE
2017-03-27 09:22:12 -04:00
Matthew Chen b9b81ca8ef Honor call privacy settings in call notifications.
// FREEBIE
2017-03-22 09:41:08 -04:00
Matthew Chen f0e7e635f2 Respond to CR.
// FREEBIE
2017-03-20 12:55:35 -04:00
Matthew Chen 3dc7f2528f Align the message state indicators with the behavior on Android and desktop.
// FREEBIE
2017-03-20 12:55:35 -04:00
Matthew Chen 029ae00bb2 Align the message state indicators with the behavior on Android and desktop.
// FREEBIE
2017-03-20 12:55:35 -04:00
Matthew Chen e6e4290fa9 Limit size of outgoing text messages.
// FREEBIE
2017-03-16 14:43:18 -03:00
Michael Kirk 861e074c15 clarify call integration copy
// FREEBIE
2017-03-15 15:27:28 -04:00
Matthew Chen 27b515ea45 Add AttachmentApprovalViewController.
// FREEBIE
2017-03-14 10:23:17 -03:00
Michael Kirk 3e651fb8df filter undisplayable text
// FREEBIE
2017-03-09 17:52:19 -05:00
Michael Kirk 505aaa3795 tweak copy
// FREEBIE
2017-03-03 14:59:01 -05:00
Michael Kirk bb9d96efc3 pull latest translations
// FREEBIE
2017-03-03 14:56:01 -05:00
Michael Kirk 9b2eb80392 Code review on new-features
* use page view controller
* UIPageControl instead of arrows for idiomatic swiping
* Nudge title lower
* better hit area for dismiss
* use darker blue for text
* Open privacy settings from callkit update screen
* tweak copy
* latest translations

// FREEBIE
2017-03-02 22:09:33 -05:00
Michael Kirk 6aa6f4895b Combine callkit sections
// FREEBIE
2017-03-02 15:01:55 -05:00
Michael Kirk b371e627c4 one-time carousel of changes
// FREEBIE
2017-03-02 14:37:50 -05:00
Matthew Chen 012dd3d192 Add “nag” to call settings view that prods the user to change their privacy settings after calls.
// FREEBIE
2017-02-27 17:19:36 -05:00
Matthew Chen a20a21867e Respond to CR.
// FREEBIE
2017-02-24 23:02:17 -05:00
Matthew Chen 065d383c15 Add and honor the “CallKit Privacy” setting.
// FREEBIE
2017-02-24 23:01:09 -05:00
Michael Kirk 4b8a5f8ccb TURN-only option, and for unknown caller
Now, by default, we only use TURN for incoming calls from unknown
contacts. We will potentially directly connect for outgoing calls and
for incoming calls from known contacts.

Optionally, the user can disable direct connection altogether, at the
cost of some call quality.

// FREEBIE
2017-02-24 11:21:52 -08:00
Darren W bf3a673443 Add accessibility labels for the Create New Group and Settings navigation bar buttons. FREEBIE. 2017-02-21 09:25:56 -05:00
Matthew Chen 353fa57544 Rework messages view's navigation bar.
// FREEBIE
2017-02-17 12:58:47 -05:00
Matthew Chen 2fb89ae8b4 Merge remote-tracking branch 'origin/release/2.7.1'
// FREEBIE
2017-02-17 12:40:08 -05:00
Matthew Chen ed0c16855d Respond to CR.
// FREEBIE
2017-02-17 09:42:52 -05:00
Matthew Chen 5bd44673ea Add sharing of attachments.
// FREEBIE
2017-02-17 09:39:58 -05:00
Matthew Chen 927eed7a15 Remove “beta” copy from WebRTC calling setting UI.
// FREEBIE
2017-02-15 20:17:38 -05:00
Matthew Chen 6a3b462541 Add save/copy menu to the image attachment view.
// FREEBIE
2017-02-13 16:09:27 -05:00
Matthew Chen 6cf454b3b4 Improve rate-limiting error message in registration and code verification views.
// FREEBIE
2017-02-13 15:59:07 -05:00
Matthew Chen ef8735e238 Respond to CR.
// FREEBIE
2017-02-13 12:11:41 -05:00
Matthew Chen cf828dc1cf Rework “verify code” view.
* Ensure all controls visible at all times, on all form factors, even with keyboard active.
* Improve focus (i.e. auto-focus textfield on arrival and after errors).
* Move to programmatic view creation and layout.
* Improve spacing and sizing.
* Replace “change number” button with “back” button.
* Submit code with return key.
* Improve copy for clarity.

// FREEBIE
2017-02-13 11:42:45 -05:00
Matthew Chen 06a775b41a Improve the call status messages in conversation view.
// FREEBIE
2017-02-08 16:47:09 -05:00
Michael Kirk 108720c2e7 End outgoing call with "No Answer" after 2 minutes
// FREEBIE
2017-02-08 10:33:43 -05:00
Matthew Chen 734dec12e9 Respond to CR.
// FREEBIE
2017-02-07 17:33:13 -05:00
Matthew Chen c43063e1d6 Add “interstitial call view” that is shown during lengthy “webrtc supported” check.
// FREEBIE
2017-02-07 17:17:06 -05:00
Michael Kirk dc9ffe40e5 Better translation comments
in response to some confusion received from translators

// FREEBIE
2017-02-07 16:59:20 -05:00
Matthew Chen 80963d88f0 Respond to CR. Remove colon from call view status prefix.
// FREEBIE
2017-02-06 15:43:14 -05:00
Matthew Chen 9a08449d83 Add “signal” copy to call view.
// FREEBIE
2017-02-06 12:36:55 -05:00
Michael Kirk 007d9aca7e Latest translations
// FREEBIE
2017-02-03 14:41:51 -05:00
Matthew Chen 4f9ce0c0e2 Respond to CR.
// FREEBIE
2017-02-02 22:46:10 -05:00
Matthew Chen 26b3be4ec5 Improve "new conversation" view.
* Add "search by phone number" to "no contacts" mode.
* Coordinate "invite flow", "invite by SMS" and "new conversation with non-contact" to ensure only one (at most) is shown.
* Show "new conversation with non-contact" IFF phone number is known to correspond to a signal account.

// FREEBIE
2017-02-02 22:32:16 -05:00
Matthew Chen 3ae85ce2d8 Add button to start a new conversation with non-contact based on phone number in search field.
// FREEBIE
2017-02-02 22:32:16 -05:00
Michael Kirk 2a9aa4c852 users can opt out of CallKit
// FREEBIE
2017-02-02 19:09:37 -05:00
Michael Kirk 08425853cf re-use shared call strings
// FREEBIE
2017-02-02 17:42:23 -05:00
Michael Kirk 7e825648ef Show alert when trying to call a non-signal contact from Contacts.
// FREEBIE
2017-02-01 19:22:25 -05:00
Matthew Chen c8e5884087 Respond to CR.
// FREEBIE
2017-01-30 15:54:31 -05:00
Matthew Chen da53368bc2 Show alert when user tries to activate local video without camera permissions.
// FREEBIE
2017-01-30 14:08:53 -05:00
Michael Kirk fff061ff3f Make sure WebRTC preferences are synced *every* call
This slows the UI, but only for people who have locally opted into
WebRTC calls, and the alternative is that users are likely to have stale
settings the first time a pair of people opt-in.

// FREEBIE
2017-01-27 14:33:12 -05:00
Matthew Chen 654bdb1a85 Add WebRTC setting.
// FREEBIE
2017-01-17 10:20:04 -05:00
Michael Kirk 647b2b37e9 WIP: WebRTC calling
* Ensure NotificationsManager has dependencies
    Otherwise it's easy to mess up the order of the required dependencies.
* move AccountManager into Environment, it's heavy to construct

// FREEBIE
2017-01-12 09:56:05 -05:00
Thomas Guillet d7b27a4021 Refactor ContactsPicker to show a clean search bar
* Replace UITableviewController to UIViewController
* Create a custom xib file
2017-01-09 11:45:43 +01:00
Michael Kirk 94d37d9c55 Warn user about re-registering existing signal number
* show better errors if it *does* happen.
  If someone tries to send from their old device, they'll see a
  depressing, but sensible warning message.
* new translations

// FREEBIE
2016-12-16 11:48:33 -06:00
Josh Schneier 89730f2b85 Improve accessibility a bit 2016-12-09 15:10:25 -05:00
Michael Kirk 273b3a3ac7 Update translations
// FREEBIE
2016-12-01 16:14:31 -05:00
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 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 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 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
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 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 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
Michael Kirk 7661b7f402 Consistent copy with other platforms
// 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 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 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
Michael Kirk c4209e793a Don't use "we" in error message copy.
per @RiseT on transifex

// FREEBIE
2016-07-21 10:36:23 -07:00
Panos Sakkos c5f6b7b7bd Improved error message when network doesn’t allow to access Signal port.
Fixes #130

FREEBIE
2016-07-21 10:36:07 -07:00
Michael Kirk 9db3b0db27 Consistent and efficient media Delete/Copy/Save UX
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
2016-07-18 09:20:48 -07:00
Michael Kirk 992dbe586a Fix crash on unknown attachment (#1249)
// FREEBIE
2016-07-07 17:13:51 -07:00
Michael Kirk 496f8117f9 Update translations (#1172)
* 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
2016-05-08 17:17:37 -07:00
Michael Kirk 91d7ca2f53 Remove reference to + button, which was removed in #950.
Fixes #1080
Closes #1092
//FREEBIE
2016-03-27 20:10:50 +02:00
Frederic Jacobs 2c83046ff6 Closes #990.
- 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
2015-12-26 18:12:13 +01:00
Frederic Jacobs a7ec383a7b Fixes #984 Fixes #948.
A future improvement could be to store the usage data in the encrypted
database than in the NSUserDefaults that are more vulnerable to
forensics.
2015-12-24 15:40:50 +01:00
Adam Kunicki da97349d41 Add subtitle to Screen Security setting to explain its function.
Closes #1014
Fixes  #993
2015-12-24 11:26:48 +01:00
Frederic Jacobs c6d44e59e2 TextSecureKit Refactoring
- 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.
2015-12-22 23:41:10 +01:00
Frederic Jacobs 047262b95a Fixing typo in restrictions string. 2015-10-31 23:43:16 +01:00
Frederic Jacobs bbde7cd2a8 iOS 9 Support
- 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).
2015-10-31 04:45:55 +01:00
Frederic Jacobs f2e58de164 Bump up version number & fetch latest translations.
//FREEBIE
2015-08-24 22:24:03 +02:00
Frederic Jacobs c95f190140 Require AddressBook permission.
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.
2015-08-24 01:47:25 +02:00
Frederic Jacobs 0090030f3d Adding rating code
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!
2015-08-24 00:28:50 +02:00
Frederic Jacobs 2d5d8db721 Fixes #871
//FREEBIE
2015-08-23 00:13:04 +02:00
Frederic Jacobs fd3e75b51d Bumping up version number & pulling localizations
//FREEBIE
2015-06-08 00:00:36 +02:00
Frederic Jacobs cd0fb8bc51 Fixing graphical glitch in tread with images. 2015-06-07 22:41:59 +02:00
Frederic Jacobs 57f86008d1 UX and Notifications fixes
- 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.
2015-06-07 22:38:28 +02:00
Frederic Jacobs 93de0a4326 UX improvements in how failed messages can be resent. 2015-06-07 19:33:27 +02:00
Frederic Jacobs 0f45294221 Reliability enhancements for notifications. 2015-05-12 22:43:32 +02:00
Frederic Jacobs 1550c61216 Addressing issues with background decryption.
- Simplifying background timeout strategy for reliabilty.
- Adding Notifications settings.
- Dropping support for VOIP Push < 8.2 because buggy.
2015-05-06 12:36:40 +02:00
Frederic Jacobs 13448bdb2d Notifications enhancements.
- 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.
2015-04-28 02:15:37 +02:00
Frederic Jacobs 82a9029c37 Fixes #713 2015-03-21 17:53:39 +01:00
Frederic Jacobs ff82f60e05 Fixes #674 2015-03-16 11:35:25 +01:00
Frederic Jacobs 4873b9538b Bumping up release number to 2.0.1
(also fetches latest translations)
2015-03-03 02:49:08 +01:00
Frederic Jacobs 456d1c479a Fixes #530 2015-02-28 11:40:00 +01:00
Frederic Jacobs 311a758d27 Preparing release
- Incrementing build number
- Fetching latest translations
- Pod lock
2015-02-21 12:11:49 +01:00
Frederic Jacobs 3ade708040 Fixes based on corbett and abolishme's feedback 2015-02-21 12:10:28 +01:00
Frederic Jacobs 9872bed428 Addressing some storage related fixes.
- 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
2015-02-20 22:59:38 +01:00
Christine Corbett 1ede61f272 Localizing the TextSecure component of Signal. 2015-02-20 19:31:44 +01:00
Christine Corbett ccdc4b5d17 Redesign implementation.
Result of stashed commits by @corbett and @abolishme
2015-01-24 16:28:34 -10:00
Christine Corbett 71320a690c Bypass ratchet and network to discuss with self.
Closes #314 #305 #274

Reviewed-by: @FredericJacobs
2015-01-11 13:53:50 +01:00
Frederic Jacobs 35a2762c5f Starting background fetching of messages. 2015-01-04 11:30:23 +01:00
Frederic Jacobs 510831d701 Auto-layout enhancements + Submit Debug Logs 2014-10-05 19:18:18 +02:00
Frederic Jacobs 611f5c5f0b Closes #138 2014-09-02 18:48:48 +02:00
Frederic Jacobs 619b53cb0b Screen security feature. Closes #31 2014-08-09 18:27:26 +02:00
Frederic Jacobs aca4733ac0 Multiple fixes
- Make logging optional if desired
- HTTPS external URLs
- Clean app data when re-registering
- If registration future fails, bring back user interaction
2014-08-09 01:01:05 +02:00
Frederic Jacobs 60fb869baa Closes #80 #37
- Use of new Keychain Access attribute
- Error management (notifying the user) when opening app without
required push and microphone permission
- Enforcing APNID are sent to server, retry later if not able to reach
server
2014-08-01 01:53:58 -04:00
Frederic Jacobs 9465423c72 Transitioning off custom preference files 2014-07-30 21:03:20 -04:00
Frederic Jacobs 19ff47e278 Closes #27 2014-07-21 06:02:41 -10:00
Frederic Jacobs 0941d485c9 New wording for support features 2014-07-19 13:00:52 -10:00
Frederic Jacobs cc0075eba2 Fixing typo in strings 2014-07-17 02:11:58 +02:00
Frederic Jacobs 930a601fb3 Localized challenge alertview 2014-07-03 15:00:59 +02:00
Frederic Jacobs 7661740160 Localized sign up messages and gist log upload 2014-07-03 03:12:34 +02:00
Frederic Jacobs c69747e48b Production logging & sign up error handling 2014-06-30 17:14:33 +02:00
Frederic Jacobs 6373507108 initial commit 2014-05-06 19:41:08 +02:00