Commit graph

126 commits

Author SHA1 Message Date
Matthew Chen
eeb510b903 Respond to CR.
// FREEBIE
2017-05-24 09:33:17 -04:00
Matthew Chen
4ac78d9b41 Replace app settings segue.
// FREEBIE
2017-05-24 09:17:25 -04:00
Matthew Chen
7f3d76d8bb Convert the app settings view to OWSTableView.
// FREEBIE
2017-05-22 20:34:25 -04:00
Matthew Chen
4bb702fe0d Add support for manually activating censorship circumvention.
// FREEBIE
2017-05-22 20:34:25 -04:00
Matthew Chen
41deab12de Fix “two table views” bug in “show group members” view.
// FREEBIE
2017-05-09 16:59:31 -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
2bc1d44cd2 Respond to CR.
// 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
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
c8466912f0 Add muting of threads.
// FREEBIE
2017-04-19 09:57:12 -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
71007cc3d1 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
2e0c95c379 Respond to CR.
// FREEBIE
2017-04-03 17:49:06 -04:00
Matthew Chen
db31454320 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
Michael Kirk
9eb746a7a0 Fix crash when viewing changed safety numbers
Instantiate fingerprintVC programmatically since MVC was not built from
the storyboard and thus doesn't have it's storyboard-defined segues.

// FREEBIE
2017-03-31 14:53:28 -04:00
Matthew Chen
9db33a9651 Remove RedPhone code.
// FREEBIE
2017-03-29 12:25:33 -04:00
Michael Kirk
62073a14a5 Maintain AR when scaling avatar
// FREEBIE
2017-03-15 16:35:38 -04:00
Matthew Chen
27b515ea45 Add AttachmentApprovalViewController.
// FREEBIE
2017-03-14 10:23:17 -03:00
Matthew Chen
cd928cd9be Update MessagesViewController to use SignalAttachment.
// FREEBIE
2017-03-14 10:23:16 -03:00
Ian Henderson
58f1a71ce2 Separate safety number camera image into a separate image view so it can be properly centered.
Insted of using fixed image and text insets to try to center this image,
split the image out into a separate view and center it properly using a
constraint.  Touches still pass through to the button underneath.

Fixes #1622.  FREEBIE
2017-03-13 20:35:39 -04:00
Matthew Chen
e96692d702 Respond to CR.
// FREEBIE
2017-02-27 17:28:25 -05:00
Matthew Chen
a4093a5f7f Respond to CR.
// FREEBIE
2017-02-17 17:30:49 -05:00
Matthew Chen
654bdb1a85 Add WebRTC setting.
// FREEBIE
2017-01-17 10:20:04 -05:00
Matthew Chen
4a65a88512 Rework new call view.
// FREEBIE
2017-01-12 15:55:14 -05:00
Michael Kirk
947a637669 Sync "mute" controls between CallKit
In the process, extracted the CallDelegate to allow the
CAllViewController to observe useful call state properties (call.state
and call.isMuted)

// FREEBIE
2017-01-12 13:27:45 -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
490795ea3d Make disappearing messages button visible in German (#1536)
Because the button was missing an explicit width it was not being layed
out properly when it's label was sufficiently long.

// FREEBIE
2016-12-09 15:51:23 -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
2bac3e4280 Better fit for "delete account" button on iPhone5
- move invite button faaaaaaaar away from the "delete account" button.

// FREEBIE
2016-11-22 15:11:53 -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
Igor Ranieri Elland
e67af9d52b Make settings modal.
- Issue raised in #1453.
2016-11-17 13:57:18 -05:00
Michael Kirk
88d9ef987f Share dialog for Safety Numbers
// FREEBIE
2016-11-15 18:44:52 -05:00
Michael Kirk
4c5bc1ed6f Fix fingerprint Label copying
failed to update storyboard when class was renamed.

// FREEBIE
2016-11-10 10:27:11 -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
Jarosław Pawlak
c152c1c83a asking for camera permissions #1363 2016-11-08 16:28:24 -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
1e417ea93f Longpress to copy safety numbers
Nothing else to see here. =)

 ༼ つ ◕◡◕ ༽つ [swift]

// FREEBIE
2016-10-13 10:04:58 -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
b95112356c iOS 8 Fixups
* ContactsUI framework is not available on ios<9.
  And it never was, so this framework should not be "required".

* Fix conversation settings title font on ios8

* Fix fingerprint not displaying on ios8

* ios8 safety number indented on third line.

* Fix glitchy table cell animation (not ios8 specific)

  The defaut slide-under animation only looks good if you're using a
  standard table cell height, but our duration slider is taller than the
  rest of the table's cells.

  Plus add a little bottom padding to the slider cell

// 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
197933817c Fix height of network status on iphone5.
Abandon dynamic type since other (standard) table cells don't use it.

// FREEBIE
2016-09-17 13:51:34 -04:00
Michael Kirk
33f63e76d1 Fix devices icon intermittently showing
Because it was not rendering correctly in all cases, we're foregoing the
templated image, and using a colored asset.

// FREEBIE
2016-09-09 11:40:32 -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