Commit Graph

238 Commits

Author SHA1 Message Date
Matthew Chen 6830d4e8cb Apply message bubble view to message details view. 2018-04-06 12:35:46 -04:00
Matthew Chen d99a2be005 Apply message bubble view to message details view. 2018-04-06 12:35:46 -04:00
Matthew Chen 9085609087 Fix interaction initializers and tests. 2018-04-05 09:36:52 -04:00
Michael Kirk bf401bad90 Send quoted messages
MVP

- [x] populate from menu
- [x] send quoted message

TODO

- [] thumbnail
- [] paperclip icon showing for text message
- [] cancel button asset
- [] fonts
- [] colors
- [] adjust content inset/offset when showing quote edit

NICE TO HAVE

- [] animate presentation
- [] animate dismiss
- [] non-paperclip icon for generic attachments

// FREEBIE
2018-04-04 10:59:04 -04:00
Michael Kirk d99054d895 Reply menu item
MVP

- [x] populate from menu
- [] send quoted message

TODO

- [] thumbnail
- [] paperclip icon showing for text message
- [] cancel button asset
- [] fonts
- [] colors
- [] adjust content inset/offset when showing quote edit

NICE TO HAVE

- [] animate presentation
- [] animate dismiss
- [] non-paperclip icon for generic attachments

// FREEBIE
2018-04-04 10:59:04 -04:00
Michael Kirk cfbbeca7ac WIP: QuotedMessagePreviewView
MVP

- [] populate from menu
- [] send quoted message

TODO

- [] thumbnail
- [] paperclip icon showing for text message
- [] cancel button asset
- [] fonts
- [] colors
- [] adjust content inset/offset when showing quote edit

NICE TO HAVE

- [] animate presentation
- [] animate dismiss
- [] non-paperclip icon for generic attachments

// FREEBIE
2018-04-04 10:59:03 -04:00
Matthew Chen c36297a9ad Elaborate 'quoted reply' variations in the Debug UI. 2018-04-03 13:42:21 -04:00
Michael Kirk 6f1608f44b Conventional naming for out custom PureLayout methods.
This moves methods more in line with PureLayout conventions.

- Methods always specify if they pin to an edge vs margin

- `margin` is a reserved word which should only refer to layout margins.
  i.e. do not use it to refer to "inset" and "offset".

// FREEBIE
2018-04-02 17:02:32 -04:00
Matthew Chen 8e4f2ca0ed Rework proto schema changes for quoted replies.
Sketch out model changes for quoted replies.

Sketch out quoted reply input preview.

Send quoted messages protos.

Update models to reflect quoted messages.

Rework interaction initializers.

Rework interaction initializers.

Add debug UI methods for generating quoted reply variations.

Add debug UI methods for generating quoted reply variations.
2018-04-02 16:17:46 -04:00
Matthew Chen 3ca2c08b06 Bubble collapse. 2018-04-02 10:07:15 -04:00
Matthew Chen 3d07dc7c5b Bubble collapse. 2018-04-02 10:07:15 -04:00
Matthew Chen 3a5ba15d21 Elaborate debug UI for messages. 2018-04-02 10:07:15 -04:00
Matthew Chen c2e31540d7 Elaborate debug UI for messages. 2018-04-02 10:06:45 -04:00
Michael Kirk 394cc6637c Backport comments from translations
// FREEBIE
2018-03-26 10:12:04 -04:00
Michael Kirk 00b5316976 Don't show the "All Media" button when viewing the slider from the
gallery via settings.

In this context it makes more sense for the user to hit the "dismiss"
button to get "back" to "All Media"

// FREEBIE
2018-03-20 11:12:11 -04:00
Michael Kirk ae8dbeb8dd Access Media Gallery from conversation settings
// FREEBIE
2018-03-19 14:22:03 -04:00
Michael Kirk dfd628250d Gallery performance
- [x] share uiDatabaseConnection to share cache
- [x] increase cache size
- [x] load less initially
- [x] lazy loading
  - [x] slider view
  - [x] tile view

// FREEBIE
2018-03-19 14:22:03 -04:00
Michael Kirk 985af76d0b WIP: All Media view
TODO

- [ ] label video/gif
- [ ] reasonable load perf
- [ ] reasonable scroll perf
- [ ] select / delete
- [ ] cancel share action from media details returns signal style

NICE TO HAVE

- [ ] fancy in/out animation from All Media <-> tiles
- [ ] label video thumbnail with duration stamp
- [ ] Other perf?
- [ ] dbModified?
- [ ] select / send
- [ ] darken section header a shade once it's "active"

DONE

- [x] tap to refocus on new media
- [x] generate test data
- [x] section headers
- [x] equal spacing around cells

// FREEBIE

WIP WIP extract datasouce to GalleryViewController

- [x] swipe through is broken
- [x] present animation
- [x] dismiss animation

// FREEBIE
2018-03-19 14:22:03 -04:00
Michael Kirk 4ac9a1019b Media page view controller
First pass at a swipe-through media view for conversations.

Future work could include

- title label per item
  - sender name
  - date/time
- photo rail
- include caption

// FREEBIE
2018-03-16 15:55:34 -04:00
Michael Kirk 88e1386720 Move frame to presentation logic, out of init
This no longer made sense now that we're using this in a
PageViewController we won't always be zooming from a particular frame.

TODO:

- why is background image all wonky?
- why aren't views created by the time it's presented? Is that a
regression? (how is self.view a MenuView if loadView hasn't been called)

// FREEBIE
2018-03-14 12:50:27 -04:00
Michael Kirk a1de99f1f1 Merge tag '2.21.0.9' 2018-03-06 16:43:33 -05:00
Matthew Chen d6f4db1523 Rename TSStorageManager to OWSPrimaryStorage. 2018-03-06 17:12:13 -03:00
Michael Kirk d7fcac8a5a In-App notifications don't pause background audio
// FREEBIE
2018-03-05 17:59:09 -05:00
Michael Kirk 07ee3ea843 Merge tag '2.21.0.5' 2018-03-05 09:54:06 -05:00
Michael Kirk 6077367e66 Notification sounds should respect silent switch
// FREEBIE
2018-03-03 11:33:31 -05:00
Matthew Chen baf6fcc535 Add 2FA registration view. 2018-03-02 10:55:00 -05:00
Matthew Chen 38ff82ab97 Rebrand OWSAudioPlayer. 2018-02-26 14:47:57 -05:00
Matthew Chen 81629a87df Fix build break. 2018-02-22 13:31:41 -05:00
Matthew Chen 152c570900 Respond to CR. 2018-02-22 12:07:11 -05:00
Matthew Chen 03670b4868 Rename the view horizon. 2018-02-22 11:46:08 -05:00
Matthew Chen fabbe46114 Clean up ahead of PR. 2018-02-22 11:46:08 -05:00
Matthew Chen 4e1e232825 Flush writes from other processes. 2018-02-22 11:46:08 -05:00
Matthew Chen 1ff4f85247 Improve handling of db modifications while conversation view is not observing. 2018-02-22 11:46:08 -05:00
Matthew Chen 2ac7716771 Improve handling of db modifications while conversation view is not observing. 2018-02-22 11:46:08 -05:00
Michael Kirk 5ba5d3f524 Remove "Share" from edit menu
Showing the share UI conflicts with the conversation views
inputAccessory toolbar.

Specifically:

- the long press menu acquires first responder
- tapping share presents the activity view
- at this point, the input toolbar is hidden
- launching a share extension hides the activity view, presents the
  share extension (could be the Signal share extension or another app's
  share extension)
- the conversation view (which is rendered behind the share extension)
  regains first responder, causing the input toolbar to appear above the
  share extension

One fix would be to re-implement an interface similar UIMenuController,
which does not require mucking with the responder chain, but that's
going to be more involved.

// FREEBIE
2018-02-22 08:57:58 -05:00
Michael Kirk d7f8c3e9d3 Ensure inputAccessory doesn't obscure the SN alert
This affects iOS 8, 9, and to a lesser degree iOS10.
On iOS11, presenting an alert causes the keyboard/inputAccessoryView to
temporarily dismiss.

// FREEBIE
2018-02-21 16:35:46 -05:00
Michael Kirk abb51b565a Don't de-activate audio sesion when other audio activities are happening
// FREEBIE
2018-02-16 14:00:15 -08:00
Matthew Chen ceaf028445 Always scroll to bottom after sending attachments. 2018-02-16 14:06:46 -05:00
Matthew Chen bd0f601792 Respond to CR. 2018-02-09 10:31:29 -05:00
Matthew Chen 43765ef3b5 Respond to CR. 2018-02-09 10:31:29 -05:00
Matthew Chen bbd689bfd0 Add protocol context to protocol kit. 2018-02-09 10:31:29 -05:00
Matthew Chen d3e16583eb Add protocol context to protocol kit. 2018-02-09 10:31:29 -05:00
Michael Kirk c646f76335 Garther audio concerns, clean up session when done
- sync speakerphone state manipulated from system call screen
  - Revert audio session after call failure, ensures media plays out of
    speaker after placing a failing call.
  - Replace notification with delegate pattern since we're already using
    delegate pattern here.
- Fixes voiceover accessibility after voice memo
- Avoid audio blip after pressing hangup
- Rename CallAudioSession -> OWSAudioSession
  Going to start using it for other non-call things since we want to
  gather all our audio session concerns.
- Resume background audio when done playing video
  - Extract OWSVideoPlayer which ensures audio is in proper state before
    playback
  - Move recording session logic to shared OWSAudioSession
  - Deactivate audio session when complete

// FREEBIE
2018-02-06 18:45:51 -08:00
Michael Kirk e39ca59eeb Merge tag '2.19.5.0' 2018-02-01 14:03:43 -08:00
Matthew Chen fa76e524c4 Respond to CR. 2018-01-30 10:15:15 -05:00
Matthew Chen 9c84bdb105 Add support for images as documents. 2018-01-30 10:12:08 -05:00
Matthew Chen 3609275c20 Handle malformed row updates. 2018-01-30 10:06:46 -05:00
Matthew Chen 069587b150 Add message approval view. 2018-01-25 13:27:16 -05:00
Matthew Chen 992e926142 Unpack oversize text messages if possible. 2018-01-25 13:26:10 -05:00
Michael Kirk baa312f449 Timer button with duration label
// FREEBIE
2018-01-22 10:28:51 -05:00