Commit graph

324 commits

Author SHA1 Message Date
Michael Kirk
4e93bec230 black masking style for avatar cropper
- cancel/done buttons
- no navbar for modal edit
- vertically center image

// FREEBIE
2017-09-05 16:36:42 -04:00
Matthew Chen
5fcf89dff1 Ignore "GIF of death."
// FREEBIE
2017-08-30 12:46:21 -04:00
Matthew Chen
ac3743f810 Fix RTL layout of system message cells.
// FREEBIE
2017-08-29 16:26:23 -04:00
Michael Kirk
bde40a1f9c Ensure avatar upates right after profile change.
// FREEBIE
2017-08-25 12:40:19 -04:00
Michael Kirk
041c5a4a11 CR: setNeedsLayout
// FREEBIE
2017-08-24 14:44:14 -04:00
Michael Kirk
f49e122567 listen for profile names change notifications
// FREEBIE
2017-08-23 17:09:43 -04:00
Michael Kirk
fd99354673 profile name vs. verified in ContactTableViewCell
// FREEBIE
2017-08-23 16:42:22 -04:00
Matthew Chen
ae1908c40c Show "share profile with group" banner.
// FREEBIE
2017-08-21 17:49:54 -04:00
Matthew Chen
7eeb326865 Fix minor build error.
// FREEBIE
2017-08-21 17:40:18 -04:00
Matthew Chen
02c96b7b0e Rework the contact offers.
// FREEBIE
2017-08-21 17:05:42 -04:00
Matthew Chen
c2f9d7dcb2 Rework the contact offers.
// FREEBIE
2017-08-21 17:05:42 -04:00
Matthew Chen
265bdce0ba Start reworking the contact offers.
// FREEBIE
2017-08-21 17:05:42 -04:00
Matthew Chen
a825fad47b Start reworking the contact offers.
// FREEBIE
2017-08-21 17:05:42 -04:00
Matthew Chen
98eb4693c5 Rework the contact offers.
// FREEBIE
2017-08-21 17:05:42 -04:00
Matthew Chen
5f2f8ec6d8 Start reworking the contact offers.
// FREEBIE
2017-08-21 17:05:42 -04:00
Michael Kirk
4511b4015f Clarify where we use the profile name
Add some hints to differentiate profile name usage from a name pulled
from the contacts.

// FREEBIE
2017-08-17 12:24:31 -04:00
Michael Kirk
16c646a939 Use profile name/image when available.
Refactored the ContactAvatarBuilder to clarify intent of the two
methods. One is only used for non-signal contacts in the Invite flow.
The other should be used for any signal contacts so we have a single
consistent way of generating the avatar initials.

// FREEBIE
2017-08-07 16:50:55 -04:00
Matthew Chen
37ce388eb6 Add “add to profile whitelist” offer.
// FREEBIE
2017-08-04 15:23:02 -04:00
Michael Kirk
742f8cf902 Avoid unnecessariy flashing avatars
Make avatar building sync

Tests on a iPhone5 with 1k threads, 3k contacts show no noticeable lag.

Profiling shows ~4% of usage goes to contact avatar building, but once
cached, even that goes towards zero.

// FREEBIE
2017-08-01 12:07:54 -04:00
Matthew Chen
31d65c3d77 Fix RTL alignment of message footers.
// FREEBIE
2017-07-28 15:03:31 -04:00
Matthew Chen
14621e1288 Respond to CR.
// FREEBIE
2017-07-21 14:49:24 -04:00
Matthew Chen
e2125978de Adapt "new group" and "update group" views to RTL.
// FREEBIE
2017-07-21 14:49:12 -04:00
Matthew Chen
d4f012fbb7 Fix contact table cell and “add to block list” view.
// FREEBIE
2017-07-21 14:49:12 -04:00
Matthew Chen
e15432720c Add arabic translation; begin work on right-to-left layout.
// FREEBIE
2017-07-21 14:48:52 -04:00
Michael Kirk
a59eb25aef extract dismiss string -> CommonStrings.dismissButton
// FREEBIE
2017-07-13 17:08:41 -04:00
Matthew Chen
d639d6557e Add owsFail free function for swift.
// FREEBIE
2017-07-11 16:20:20 -04:00
Matthew Chen
8f3b837a65 Add a reminder that you are in archive view.
// FREEBIE
2017-07-11 16:01:19 -04:00
Michael Kirk
f681712ea0 Code Cleanup
- make some logging clearer
- remove noisy unhelpful logging
- clearer method names

// FREEBIE
2017-07-10 11:09:39 -05:00
Michael Kirk
bef3a56e50 DebugUI: create fake unread messages
helpful for printing unread indicator

// FREEBIE
2017-07-04 09:15:46 -04:00
Michael Kirk
da7dae8163 CR: rename longpress->longPress
// FREEBIE
2017-06-20 17:31:12 -04:00
Michael Kirk
c70b1e9681 Make system messages deletable
// FREEBIE
2017-06-20 17:18:19 -04:00
Michael Kirk
4f3278db1e Fix layout of timestamp for system messages
Incorporate topLabelSize into cell size for system messages.

We are using the term "bubble size" to describe the interaction specific
views of a collection cell. It's a crappy name, but coincides with other
usage.

// FREEBIE
2017-06-19 09:16:37 -04:00
Michael Kirk
1125e2ac99 System messsages can show timestamp
added the JSQCollectionViewCell cellTopLabel to the system message
layout

// FREEBIE
2017-06-19 09:14:52 -04:00
Matthew Chen
ab95b04e56 Respond to CR.
// FREEBIE
2017-06-17 13:47:10 -04:00
Matthew Chen
bd440f0878 Respond to post-holiday code reviews.
// FREEBIE
2017-06-17 13:38:19 -04:00
Matthew Chen
6f1f1fac80 Improve handling of group creation failures.
// FREEBIE
2017-06-13 15:09:47 -04:00
Matthew Chen
55b86eba28 Use reference cells for measurement.
// FREEBIE
2017-06-13 11:13:28 -04:00
Matthew Chen
83b03c0047 Use reference cells for measurement.
// FREEBIE
2017-06-13 11:08:58 -04:00
Matthew Chen
91af4f93e1 Use reference cells for measurement.
// FREEBIE
2017-06-13 11:08:58 -04:00
Matthew Chen
389305e2b9 Fix build warnings.
// FREEBIE
2017-06-13 10:42:35 -04:00
Matthew Chen
7d7b6689c4 Tweak verification state messages.
// FREEBIE
2017-06-09 17:16:27 -04:00
Matthew Chen
11ca51c95f Show verification state banner. Show verification state in conversation settings view.
// FREEBIE
2017-06-09 16:21:59 -04:00
Matthew Chen
3508feaec3 Convert FingerprintViewController to programmatic layout.
// FREEBIE
2017-06-08 14:55:26 -04:00
Matthew Chen
869cdfd12c Add verification state change messages.
// FREEBIE
2017-06-08 10:44:23 -04:00
Matthew Chen
bc63a72c25 Add verification state change messages.
// FREEBIE
2017-06-08 10:44:23 -04:00
Matthew Chen
1ef9ba0659 Clea up usage of fail macro.
// FREEBIE
2017-06-08 10:25:28 -04:00
Matthew Chen
15074cdb8f Clean up system message cells, make them tappable, etc.
// FREEBIE
2017-06-06 10:26:06 -04:00
Matthew Chen
2d76f2beb9 Respond to CR.
// FREEBIE
2017-06-06 10:15:56 -04:00
Matthew Chen
b3c42f0c3e Rework and unify the system messages.
// FREEBIE
2017-06-06 10:15:56 -04:00
Matthew Chen
a013a7206e Rework and unify the system messages.
// FREEBIE
2017-06-06 10:15:56 -04:00
Matthew Chen
459c6c6ed4 Rework and unify the system messages.
// FREEBIE
2017-06-06 10:15:56 -04:00
Matthew Chen
9cdf907e20 Rework and unify the system messages.
// FREEBIE
2017-06-06 10:15:56 -04:00
Matthew Chen
2cbf1e1d05 Rework and unify the system messages.
// FREEBIE
2017-06-06 10:15:56 -04:00
Matthew Chen
713d31ea6a Rework appearance of the unread indicator.
// FREEBIE
2017-06-05 16:25:25 -04:00
Matthew Chen
c8fc47c08c Rework appearance of the unread indicator.
// FREEBIE
2017-06-05 16:25:25 -04:00
Matthew Chen
a847a5c86b Fix layout of unread indicator cell subtitle.
// FREEBIE
2017-06-05 16:25:25 -04:00
Matthew Chen
dab8ddb37d Rework appearance of the unread indicator.
// FREEBIE
2017-06-05 16:25:25 -04:00
Michael Kirk
76fafbce54 not using ibdesignable and it sometimes crashes interface builder. =/
// FREEBIE
2017-05-30 13:07:34 -07:00
Michael Kirk
ea08faa550 remove default avatar image, we should always specify
// FREEBIE
2017-05-30 13:07:34 -07:00
Michael Kirk
52aa8a3744 require explicit avatar diameter
This will help us get crisper text in our generated avatars.

// FREEBIE
2017-05-30 13:07:34 -07:00
Michael Kirk
b11f8affa7 Use AvatarImageView
Conistently apply avatar style

* contact picker
* conversation settings
* home view

// FREEBIE
2017-05-30 13:07:34 -07:00
Matthew Chen
7afcad81c6 Fix data type issue around losing millisecond precision in message expiration times.
// FREEBIE
2017-05-30 10:05:53 -04:00
Matthew Chen
19390abc41 Refine the unseen indicators.
* Fix sizing of the unread indicator cells.
* Fix conflicts between paging and “load window” of conversation view and unseen indicator.
* Modify unseen indicator to indicate whether there are more unseen messages and safety number changes.
* Fix conflicts between modifying the “load window” size and updating the dynamic interactions.
* Clear the “bubble size calculator” cache whenever the view changes size.
* Improve the scrolling behavior around “load more messages”.
* Improve management of “load window” size.
* Fix issues around caching of bubble sizes.

// FREEBIE
2017-05-30 10:05:22 -04:00
Matthew Chen
ada4880dc3 Add a database view for dynamic interactions.
// FREEBIE
2017-05-30 10:05:21 -04:00
Michael Kirk
bb25d2beb6 IdentityKeyStore changes
1) Always accept keys from incoming messages

2) Block sending only if it's a recent change, or if always
   block is enabled

// FREEBIE

// FREEBIE
2017-05-24 18:01:24 -07:00
Matthew Chen
6550680f60 Fix glitch in unread indicator layout.
// FREEBIE
2017-05-22 20:31:45 -04:00
Matthew Chen
867eb7d741 Convert CountryCodeViewController.
// FREEBIE
2017-05-22 20:23:53 -04:00
Matthew Chen
e4f31b5e40 Rename attachment source filename property.
// FREEBIE
2017-05-19 17:21:31 -04:00
Matthew Chen
0983448c74 Add unread indicator.
// FREEBIE
2017-05-19 14:30:27 -04:00
Matthew Chen
6164f65f0a Add unread indicator.
// FREEBIE
2017-05-19 14:30:27 -04:00
Matthew Chen
ac458cc7ad Add unread indicator.
// FREEBIE
2017-05-19 14:30:27 -04:00
Michael Kirk
f87696cc6c do not use phone data detectors
The actions offered by the phone number data detectors are confusing
within the context of a messaging app - e.g. people might assume that
the "call" action correspons to a Signal call.

// FREEBIE
2017-05-17 09:25:53 -04:00
Michael Kirk
cb1c843979 Fix disclosure icon direction on iOS9
// FREEBIE
2017-05-15 11:34:35 -04:00
Matthew Chen
1b99fd1df4 Respond to CR.
// FREEBIE
2017-05-12 09:46:54 -04:00
Matthew Chen
ea34cec0d9 Clean up ahead of PR.
// FREEBIE
2017-05-12 09:46:54 -04:00
Matthew Chen
96e155c75e Rework appearance of voice messages and audio attachments.
// FREEBIE
2017-05-12 09:46:54 -04:00
Michael Kirk
0b6962cdd0 contacts reminder in compose view
// FREEBIE
2017-05-09 16:21:30 -04:00
Matthew Chen
2f3831e04b Respond to CR.
// FREEBIE
2017-05-09 10:45:20 -04:00
Matthew Chen
716aa772f6 Always sync and log push tokens. Apply OWSAlerts in more places.
// FREEBIE
2017-05-09 10:04:48 -04:00
Matthew Chen
b47337c0ba Respond to CR.
// FREEBIE
2017-05-08 14:24:32 -04:00
Matthew Chen
34a7f9cba5 Respond to CR.
// FREEBIE
2017-05-08 14:24:32 -04:00
Michael Kirk
fbcda40400 rename class, extract color
per code review

// FREEBIE
2017-05-08 11:15:45 -04:00
Michael Kirk
a58a71f8f4 no contacts banner -> system settings 2017-05-08 11:15:45 -04:00
Matthew Chen
0c4351a908 Use SignalAccount class to sync contacts.
// FREEBIE
2017-05-05 20:57:35 -04:00
Matthew Chen
1b99671e0e Clean up ahead of PR.
// FREEBIE
2017-05-05 10:42:42 -04:00
Matthew Chen
363d84fd2d Update “new conversation” view to use OWSTableView, contacts view helper, etc.
// FREEBIE
2017-05-05 10:42:42 -04:00
Michael Kirk
b24cf29189 don't request contacts until necessary
Most commonly this will be after hitting the "compose" button

But also we'll do it in the SignalViewController once you've received a
message.

- get rid blocking contacts nag
- use Contacts framework simplifies logic
- remove dead AB code

// FREEBIE
2017-05-04 09:47:04 -04:00
Matthew Chen
6801963a1b Add SignalAccount class.
// FREEBIE
2017-05-02 09:28:50 -04:00
Matthew Chen
93700f1044 Extract labels for phone numbers.
// FREEBIE
2017-05-02 09:28:50 -04:00
Matthew Chen
61f59067b6 Improve contact-related views.
* Add support for contacts with more than one Signal account using ContactAccount class.
* Use OWSTableViewController in contact-related views.
* Let users add non-contacts to groups.
* Improve the "new group" and "edit group" views.
* Add utility methods for displaying alerts.
* Warn users before discarding unsaved changes in "edit group" view.
* Pull out "contact view helper" to de-duplicate common logic among contact-related views.
* Pull out "group view helper" to de-duplicate common logic among group-related views.
* Pull out new base class for view used to add accounts to groups or the block list.

// FREEBIE
2017-05-02 09:28:02 -04:00
Matthew Chen
8a8b10b688 Respond to CR.
// FREEBIE
2017-04-26 15:55:01 -04:00
Matthew Chen
5c0c9b533e Respond to CR.
// FREEBIE
2017-04-26 13:29:56 -04:00
Matthew Chen
9779527cf2 Let users edit group name and avatar by tapping on them in group settings view.
// FREEBIE
2017-04-21 17:00:14 -04:00
Matthew Chen
210802994e Respond to CR.
// FREEBIE
2017-04-21 14:19:30 -04:00
Matthew Chen
03a97cdd70 Only the last cell associated with a media adapter should clear its views.
// FREEBIE
2017-04-21 14:17:44 -04:00
Michael Kirk
70d235a670 Choose arbitrary attachments from iCloud/GDrive/Dropbox/etc
// FREEBIE
2017-04-20 18:49:30 -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
d65e398450 Respond to CR.
// FREEBIE
2017-04-19 11:47:47 -04:00
Matthew Chen
b2664158b1 Pause animated gifs when offscreen; clean up media views more aggressively.
// FREEBIE
2017-04-19 11:45:06 -04:00
Matthew Chen
e36b5a4602 Improve group members view.
// FREEBIE
2017-04-19 11:37:27 -04:00
Matthew Chen
27aeb425e4 Round avatar icons.
// FREEBIE
2017-04-07 11:58:15 -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
8867b2882e Tweak appearance of contact cell.
// FREEBIE
2017-04-05 21:37:26 -04:00
Michael Kirk
78705d3ac1 right align blocked indicator
// FREEBIE
2017-04-05 17:23:23 -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
a7296db1fe Add contacts list to “add blocked number” view.
// FREEBIE
2017-04-04 09:12:11 -04:00
Matthew Chen
9db33a9651 Remove RedPhone code.
// FREEBIE
2017-03-29 12:25:33 -04:00
Matthew Chen
36ea273475 Slightly tweak the appearance of the attachment upload progress bar.
// FREEBIE
2017-03-27 11:59:59 -04:00
Matthew Chen
bf2db32f85 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
e34d529620 Prevent system edge swipe gestures from showing/hiding call controls.
// FREEBIE
2017-02-03 12:29:32 -05:00
Matthew Chen
699b364ec7 Show/hide call view controls in remote video mode if user taps screen.
// FREEBIE
2017-01-30 14:04:57 -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
Michael Kirk
e7bc2e86db Show email as name when contact has no name
// FREEBIE
2016-12-09 15:12:13 -05:00
Michael Kirk
243ff190bc Fix crash in group listing / new group views
The broken code addressed in 8211d4584f
was duplicated a couple of places. This commit ferrets out the rest of
them and centralizes the logic in the ContactsManager.

// FREEBIE
2016-12-04 22:58:02 -05:00
Michael Kirk
8211d4584f Don't explode when missing first name
// FREEBIE
2016-12-04 14:01:08 -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
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
7120ca1192 Make sure we're laying out contact cell after assigning avatar
// FREEBIE
2016-11-22 16:55:07 -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
d3c2f44aeb Exclude extra data detectors.
Data detectors work by matching local text against a series of local
matchers. No network activity is required. Some of the data detectors
are really useful (e.g. a link, or being able to copy a phone number).

Some aren't very useful, e.g. pop culture references, and seeing things
underlined is giving people the false impression that their data is
being inspected remotely.

// FREEBIE
2016-11-14 08:58:22 -05: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
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
Michael Kirk
49de772997 Fix slow reloading conversation view. (#1397)
Fix animation memory leak exacerbated every time you reload a
conversation with expiration timers.

Stop animation on cells that aren't currently being displayed. This is
relatively minor compared to the above, but still, no reason to waste
cycles.

// FREEBIE
2016-10-15 16:41:40 -04:00
Michael Kirk
5b01976466 Fix hidden incoming audio
Missed bottom constraint when customizing incoming message bubbles to
include timer icon in footer.

// FREEBIE
2016-10-14 19:10:37 -04:00
Michael Kirk
1e417ea93f Longpress to copy safety numbers
Nothing else to see here. =)

 ༼ つ ◕◡◕ ༽つ [swift]

// FREEBIE
2016-10-13 10:04:58 -04:00
Michael Kirk
04f5c3ce22 Slow the timer animation down a bit.
fixes #1384

// FREEBIE
2016-10-13 10:04:58 -04:00
Michael Kirk
607262df6a Remove observers on dealloc (#1379)
// FREEBIE
2016-10-12 12:50:03 -04:00
Michael Kirk
7106eee4a3 Call notifications are deletable
// FREEBIE
2016-10-12 09:30:25 -04:00
Michael Kirk
405990a7d5 Don't select or copy info message text.
// FREEBIE
2016-10-12 09:30:25 -04:00
Michael Kirk
023e62e6a6 fix reused cell starts blinking too early
There are dispatch_async's waiting to be fired on some re-used cells.

// FREEBIE
2016-10-12 09:30:25 -04:00
Michael Kirk
94a23021f8 Size error messages correctly.
* calculate size of info message using the info message font.
* offset by the info message header

There were instances of lines getting cropped, or an extra line being
added. The previous, more conservative, solution was to just make every
bubble too big, but it looked terrible.

// 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
be0556f68a fix "last active" date
// FREEBIE
2016-09-21 12:53:17 -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
7c3a07960f Device manager fixes
* Avoid intermittent crash in device manager via YapDatabaseModified
* Properly align refresh text when expecting new device
* Avoid glitchy activityIndicator while polling
* Expose edit mode toggle

Much of the code changes here were in the corresponding SSK update.

// FREEBIE
2016-09-06 17:16:42 -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
Brandon Cheng
583d3e82ad Alternative solution for requiring direct taps for launching media view (#1235) (#1261)
// FREEBIE
2016-07-21 10:23:39 -07:00
Michael Kirk
835021b0d3 Fix extra tall error messages by rendering timestamp (#1268)
We were ocassionally seeing extra tall error messages. This is because,
when appropriate, we were adding the space for a timestamp, but then
never actually rendering the time stamp.

So now:

- Error Messages aren't rendered too-tall
- Error Messages get a printed timestamp when appropriate

// FREEBIE
2016-07-20 11:59:18 -07:00
Michael Kirk
f8d65ab0f5 Post JSQMVC code cleanup
* formatting
* referencing TODOS
* remove unnecessary logging

// FREEBIE
2016-07-14 23:15:06 -07:00
Michael Kirk
1a4b38e34b Modernize init, dealloc, dicts
* Use NS_DESIGNATE_INTIALIZER to ensure we're setting all the variables we need to be in OWSCall
* no need to nil properties in dealloc on ARC
* use declarative dictionaries for legability

// FREEBIE

use declarative dictionaries for clarity
2016-07-14 23:15:06 -07:00
Michael Kirk
e930574b1b rename our custom JSQ classes to OWS so it's clear what is/not our code.
This was done as part of unforking JSQMessagesViewController, but is
intentionally a separate commit so we can separate formatting changes
from code changes in git history.

* Import frameworks like:
    #import <FrameworkName/HeaderName.h>
* instead of:
    #import "HeaderName.h"

// FREEBIE
2016-07-14 23:15:06 -07:00
Michael Kirk
933281f234 format objc.
This is part of unforking JSQMVC, but I'm only reformatting files
otherwise changed rather than reformatting the entire project for git
sanity.

This is intentionally a second commit so we can separate formatting
changes from code changes

* brace should drop after method definition (this is common across
  almost all objc projects, and allows you to quickly differentiate
  multi-line method signatures from their implementation.
* aligning consecutive assignments ongoingly muddies git history

// FREEBIE
2016-07-14 23:15:06 -07:00
Michael Kirk
4d320d6015 Unfork JSQMessagesViewController
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
2016-07-14 23:15:05 -07:00
Michael Kirk
62633ff7f4 remove unused code
// FREEBIE

dot notation is only for property access

// FREEBIE

remove unused code
2016-06-28 08:58:29 -07:00
Michael Kirk
1e0f0157c1 namespace ContactsManager -> OWSContactsManager
rename test class ContactManager->OWSContact_s_Manager
update docs

// FREEBIE
2016-06-28 08:58:29 -07: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
53793e3c0f Fixes #950 2015-11-29 02:03:52 +01:00
Frederic Jacobs
f6c0625c2c Removing unused imported classes.
//FREEBIE
2015-07-27 16:19:08 +02:00
Frederic Jacobs
9569a9b9c6 Multiple visual enhancements and repo cleanup.
- Revising iconography to stick to v2.0 design.
- Multiple bug fixes based on testers feedback
- Integration with system addressbook
- Removing unused assets.
2015-02-18 18:20:02 +01:00
Frederic Jacobs
7242680464 Contact ordering and graying out RedPhone-only users. 2015-01-31 02:26:38 -10:00
Christine Corbett
6d2acb70fc in message view compose, ability to call
• RedPhone contacts which aren't TextSecure contacts are disabled from starting conversation via compose.
2015-01-26 14:33:50 -10:00
Christine Corbett
ccdc4b5d17 Redesign implementation.
Result of stashed commits by @corbett and @abolishme
2015-01-24 16:28:34 -10:00
Frederic Jacobs
402df72306 Attachments handling
- Sends image rotated
- If message is delete, delete the attachment db object and file
- Delete attachment from detail view
2015-01-04 11:30:26 +01:00
dtsbourg
91e0b66424 Addresses multiple UI issues.
- New Contact spacing to let user tap call/message icons
- Handeling error messages, delivery receipts, timestamps
2015-01-04 11:30:23 +01:00
Frederic Jacobs
b22579d8f8 Settings and thread fixes. 2015-01-04 11:30:22 +01:00
Frederic Jacobs
b58d2fb864 Integrating deletion of threads. 2015-01-04 11:30:22 +01:00
dtsbourg
84e12a39c9 ContactDetail: Link notes 2015-01-04 11:30:22 +01:00
dtsbourg
e48ea52924 ContactDetail: Fix crash on parsedPhoneNumbers 2015-01-04 11:30:21 +01:00
dtsbourg
95c14ddefb General: Unused views cleanup 2015-01-04 11:29:27 +01:00
Frederic Jacobs
43af8c18e3 Merging UI code with some basic TextSecureKit code. 2015-01-04 11:28:38 +01:00
dtsbourg
a60bc8be92 Initial Message UI 2015-01-04 11:28:38 +01:00
Frederic Jacobs
510831d701 Auto-layout enhancements + Submit Debug Logs 2014-10-05 19:18:18 +02:00
Craig Gidney
f1de95ab06 Recursively added dot syntax, translating more terms when they were encountered in the dif
FREEBIE
2014-09-12 07:21:17 +02:00
Craig Gidney
baaef78323 Using dot syntax for local*, all*, full*, first*, last*, to*, encodedAs*, copy*
FREEBIE
2014-09-07 11:43:53 -07:00
Craig Gidney
4cd30f32ed Using getter syntax for shared*, is*, and has* 2014-08-19 00:14:19 -04:00
Craig Gidney
9e36872644 Using dot syntax for count and length 2014-08-13 21:13:24 -04:00
Craig Gidney
1e9a3e9a46 Ran "Edit -> Refactor -> Convert to Modern Objective-C Syntax"
- dictionaryWithObject -> @{key: val}
- objectAtIndex -> a[i]
- numberWithBool/Int/etc -> @1, @(val)
- Reverted friendly fire on ProtocolBuffers
- Did not do ANY other changes (including changes to make more refactorings succeed)
//FREEBIE
2014-08-13 12:36:36 +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
44bd921db2 Changes for arm64 and Clang redefined-types 2014-07-17 02:02:09 +02:00
Frederic Jacobs
6373507108 initial commit 2014-05-06 19:41:08 +02:00