Commit graph

78 commits

Author SHA1 Message Date
Matthew Chen 435a42bb3c Hide the edit menu for attachment until they are uploaded.
// FREEBIE
2017-04-11 18:07:38 -04:00
Matthew Chen ec129ea217 Improve attachment upload progress indicator.
* Should never show up for attachments in the failed state.
* Show show up without delay for attachments being sent.
* Show disappear when attachment upload fails in any way.

// FREEBIE
2017-04-11 17:41:05 -04:00
Michael Kirk 811a4ac4b5 add some missing asserts
// FREEBIE
2017-04-11 15:40:17 -04:00
Matthew Chen d85dfb8a4e Improve support for arbitrary attachments.
// FREEBIE
2017-03-30 09:20:45 -04:00
Matthew Chen 7b84019251 Respond to CR.
// FREEBIE
2017-03-29 14:49:26 -04:00
Matthew Chen 3d451846a6 Fix build break.
// FREEBIE
2017-03-29 14:37:14 -04:00
Matthew Chen b0aa71fd40 Apply DisplayableTextFilter to oversize text messages.
// FREEBIE
2017-03-29 14:34:42 -04:00
Matthew Chen 80fbc093d9 Handle oversize text messages and arbitrary attachments.
// FREEBIE
2017-03-29 14:34:21 -04:00
Matthew Chen 8a9206d7e7 Improve handling of incomplete and failed attachment downloads.
// FREEBIE
2017-03-29 12:36:40 -04:00
Matthew Chen 9db33a9651 Remove RedPhone code.
// FREEBIE
2017-03-29 12:25:33 -04:00
Michael Kirk 4b52a90c8e Fix test
//FREEBIE
2017-03-28 20:46:34 -04:00
Matthew Chen 26371499da Slightly tweak the appearance of the attachment upload progress bar.
// FREEBIE
2017-03-27 11:59:59 -04:00
Matthew Chen e031e3c389 Respond to CR.
// FREEBIE
2017-03-27 11:54:40 -04:00
Matthew Chen 7aef297a27 Cleanup copy to pasteboard of video and audio.
// FREEBIE
2017-03-27 11:51:51 -04:00
Matthew Chen 86abb43c30 Copy images to pasteboard as data, not UIImage.
// FREEBIE
2017-03-27 11:51:51 -04:00
Matthew Chen d320cef1a9 Fix play button for incoming video attachments.
// FREEBIE
2017-03-23 17:16:13 -04:00
Michael Kirk 6036e20079 Filter high diacritical text, regardless of length
// FREEBIE
2017-03-22 14:59:29 -04:00
Matthew Chen b9b81ca8ef Honor call privacy settings in call notifications.
// FREEBIE
2017-03-22 09:41:08 -04:00
Matthew Chen 97210b4073 Respond to CR.
// FREEBIE
2017-03-20 13:37:41 -04:00
Matthew Chen bf2db32f85 Respond to CR.
// FREEBIE
2017-03-20 12:55:35 -04:00
Matthew Chen 539e665589 Respond to CR.
// FREEBIE
2017-03-20 12:55:35 -04:00
Matthew Chen 9ae047a1da Add progress & disable media views while uploading attachments.
// 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 442546fba8 Align the message state indicators with the behavior on Android and desktop.
// FREEBIE
2017-03-20 12:55:35 -04:00
Matthew Chen 5a130703f9 Update conversation view title when group name changes.
// FREEBIE
2017-03-14 12:20:51 -03:00
Matthew Chen 081956c2b4 Update conversation view title when group name changes.
// FREEBIE
2017-03-14 12:20:51 -03:00
Kevin Beaulieu bc1b2fe473 Restrict default avatars to alphanumeric initials (#1519) (#1563) 2017-03-13 20:27:30 -04:00
Michael Kirk 3e651fb8df filter undisplayable text
// FREEBIE
2017-03-09 17:52:19 -05:00
Matthew Chen f4453eb995 Enable WebRTC-based audio and video calls by default.
// FREEBIE
2017-02-21 11:10:57 -05:00
Matthew Chen 04409e0cd3 Improve image scaling quality.
// FREEBIE
2017-02-17 12:45:21 -05:00
Matthew Chen 5bd44673ea Add sharing of attachments.
// FREEBIE
2017-02-17 09:39:58 -05:00
Matthew Chen 06a775b41a Improve the call status messages in conversation view.
// FREEBIE
2017-02-08 16:47:09 -05:00
Michael Kirk b6f098bfa7 Log when receiving unknown call datachannel message
// FREEBIE
2017-02-02 15:51:07 -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
Matthew Chen 2dac6c888a Update SignalServiceKit pod.
* Fetch messages when app becomes active.
2017-01-06 13:28:41 -05:00
Michael Kirk 727fb70806 Fix show error message when download fails
Previously we had our "queued" and "failed" logic backwards.

// FREEBIE
2016-12-09 15:58:11 -05:00
Michael Kirk 103f0450a1 Build avatar from contact initials even if they don't have a phone
number

The invite contact picker was rendering the "#" avatar for contacts who
had a name, but no phone number.

In some ways this approach is dumber. But since we have "surprising"
logic to set the contacts firstName to a phone number or maybe a company
name when contacts are built from ABContacts, this approach is more on
the level with the existing assumptions of what could be in that field
(which is to say, pretty much anything).

// FREEBIE
2016-12-04 14:03:12 -05:00
Russ Shanahan e7126f8c60 Less confusing "#" avatar for unknown Contact instead of "+"
For consistency with the Android and Desktop client behavior.

* Show a placeholder avatar when no image, initials (#1512)

  If all we know about the user is their phone number, their avatar image
  is rendered as a placeholder. Previously, it would render the first few
  characters of their phone number as if they were initials (eg. "+")

* Rename, extend OWSContactsManager methods (#1512)

  Rename from: nameStringForPhoneIdentifier
           to: displayNameForPhoneIdentifier

  Also, add:
  - (BOOL)nameExistsForPhoneIdentifier:(NSString *)identifier;

  Which reports whether there's any "name" for a contact.

* Remove unused typedefs

  These aren't used in the project anymore, and they were causing
  compiling warnings due to a lack of nullability indication.

* Resolve some OWSContactsManager nullability warnings

  Did a pass through all of the existing nullability warnings in
  OWSContactsManager. Tried to pick descriptors that best reflected the
  behavior of the methods.

// FREEBIE
2016-12-04 14:01:07 -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 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
Russ Shanahan b40f6acd01 Voiceover fix: Message author read as thread name (#1437) FREEBIE
There was a bug in voiceover mode. When reading messages, Voiceover
would read out "message author: message content" for each chat bubble,
but the message author was always the name of the chat. So if it was
a contact chat, every message would be read as if from the other party,
and if it was a group chat, every message would be from the title of
the group.

This patch looks up the display name for the given signal id so
Voiceover reads the correct name for each message. It will read "Me" if
the message is outgoing.
2016-11-17 13:31:46 -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 7bcf5190b4 Address some lingering emoji cropping
This is an expedient, but not good, "fix". Some messages are going to
have extra space at the bottom of the bubble. But, for the time being,
that's preferable to getting messages clipped.

// FREEBIE
2016-11-13 11:48:05 -05:00
Michael Kirk 28a2a4610c Fix compiler warnings.
// FREEBIE
2016-11-11 08:54:13 -05:00
Michael Kirk ddf0890408 Fix crash on nil message
// FREEBIE
2016-11-04 16:32:12 -04:00
Michael Kirk bd370f1de4 Fix cropped Chinese/Japanese messages
The earlier fix for the broken ios10 emoji font ended up breaking
messages for some users with a tall font.

Here we have a lighter touch - ensuring we don't touch messages that
don't use emoji.

Also, introduce a different approach to the fix, rather than trying to
compute the bounding rect of an appropriately attributed string, just
add an extra bit of height per line.

This approach isn't ideal for long messages with only one emoji line in
them, but the previous approach was incompatible with Chinese messages
that also contain emoji. See the new
`MesssagesBubblesSizeCalculatorTest.swift` for test cases considered.

// FREEBIE
2016-11-03 16:22:33 -04:00
Michael Kirk 62f9606bf5 Merge branch 'mkirk/fix-registration-without-background-modes#1329'
// FREEBIE
2016-11-03 16:19:21 -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