Commit Graph

231 Commits

Author SHA1 Message Date
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
Michael Kirk
f41dfa509c Re-aquire first responder when necessary.
// FREEBIE
2018-01-19 15:05:50 -05:00
Michael Kirk
3ca5ec2726 Ensure media-library permissions when accessing media library
// FREEBIE
2018-01-18 13:37:11 -05:00
Michael Kirk
5dde17d939 Show approval/caption view in app.
ApprovalView/Captioning is shown for:
- Images/Videos from Library
- Images/Video from Camera
- Document Picker
- GIFs

Voice notes are intentionally not captionable.

Also, in main app, hide status bar when ApprovalView is presented

// FREEBIE
2018-01-17 18:19:48 -05:00
Michael Kirk
0c6a42003f clang-format after RI
// FREEBIE
2018-01-16 15:27:53 -05:00
Michael Kirk
a423fe8a0e WIP Merge tag '2.19.4.4'
- restore video playback in fullscreen

This was a large merge, so I'm opting to make some changes in separate
commits.
2018-01-16 15:25:58 -05:00
Matthew Chen
17907dca10 Clean up ahead of PR. 2018-01-12 10:23:54 -05:00
Matthew Chen
15b8e58324 Retain changes from session database branch. 2018-01-12 10:23:54 -05:00