Commit Graph

1371 Commits (3139bac99456be9a314e000ea4d0b8c45e95c0a7)

Author SHA1 Message Date
Matthew Chen a5128273ba Clean up ahead of PR. 7 years ago
Matthew Chen 055061ff5e Clean up ahead of PR. 7 years ago
Matthew Chen 4afedac68c Clean up ahead of PR. 7 years ago
Matthew Chen ea783a8ad5 Work on two-factor auth settings UI. 7 years ago
Matthew Chen e12a1e984a Work on two-factor auth settings UI. 7 years ago
Matthew Chen 1f6cbd399e Sketch out 2FA feature. 7 years ago
Michael Kirk a068b85734 Audio splashscreen artwork/copy
copy tweaks

// FREEBIE
7 years ago
Matthew Chen bf48ccd4ad Merge remote-tracking branch 'origin/hotfix/2.20.1' 7 years ago
Michael Kirk 37fdd407d4 CR: Add translation comment
// FREEBIE
7 years ago
Michael Kirk cf6dfe08bb Custom audio notifications upgrade experience
TODO: update art
7 years ago
Matthew Chen b1dd325ce8 Revert "Merge branch 'charlesmchen/debugLogs' into hotfix/2.20.1"
This reverts commit de5d17a396, reversing
changes made to d32e90c3d1.
7 years ago
Matthew Chen 579da1c768 Refine handling of unsafe filename characters. 7 years ago
Matthew Chen 47a6d844c9 Refine handling of unsafe filename characters. 7 years ago
Matthew Chen 920c2b1d76 Rework log upload. 7 years ago
Michael Kirk e020b0ff99 Persist default sound so we can use it for fallback notifications
// FREEBIE
7 years ago
Michael Kirk 5959cdf070 Simplify call privacy settings
We've long allowed users to configure what shows up in message
notifications:

- name: content (by default)
- just name (no content)
- generic notification (no name nor content)

Now we're dual purposing that setting to apply to calls. If someone
doesn't want to show names in the message notifications, presumably also
don't want that name showing up in the call log.

Also, since the earlier CallKit/iCloud issues had been addressed before
iOS11, we upgrade all iOS11 users to the more intuitive CallKit
interface.

Also: introduce "use system call logs" toggle when available. It will be
enabled by default, but we disable it for legacy users who'd explicitly
opted *out* of CallKit.

// FREEBIE
7 years ago
Matthew Chen 5b9ab0cf5d Auto-disable CallKit privacy in iOS 11 and later. 7 years ago
Matthew Chen 8f22facecc Respond to CR. 7 years ago
Matthew Chen 38ff82ab97 Rebrand OWSAudioPlayer. 7 years ago
Matthew Chen a16c2adda7 Rework conversation settings view. 7 years ago
Matthew Chen 32b87d0e58 Remove custom ringtones. 7 years ago
Matthew Chen efeb00643c Add title for the mute section in conversation settings view. 7 years ago
Matthew Chen ed95eec769 Preview sound settings in app settings and conversation settings views. 7 years ago
Matthew Chen 62af7ddc15 Add "none" option for sounds. Use AVPlayer for everything. 7 years ago
Matthew Chen 99aedca45f Strip out special casing for pre-iOS 9 users. 7 years ago
Matthew Chen e0144dab5f Improve sound settings view. 7 years ago
Matthew Chen 899799af92 Improve sound settings view. 7 years ago
Matthew Chen a44a117612 Add custom ringtone sounds. 7 years ago
Matthew Chen cd32895657 Add UI for editing per-thread notification sounds. 7 years ago
Matthew Chen 396fe82707 Add UI for editing per-thread notification sounds. 7 years ago
Matthew Chen dc8b8ca0bd Add per-thread custom notification sounds. 7 years ago
Matthew Chen a837c5d41b Custom notification sounds. 7 years ago
Matthew Chen 5c3f6b0ee5 Custom notification sounds. 7 years ago
Matthew Chen 81629a87df Fix build break. 7 years ago
Matthew Chen 152c570900 Respond to CR. 7 years ago
Matthew Chen 03670b4868 Rename the view horizon. 7 years ago
Matthew Chen fabbe46114 Clean up ahead of PR. 7 years ago
Matthew Chen 4e1e232825 Flush writes from other processes. 7 years ago
Matthew Chen 1ff4f85247 Improve handling of db modifications while conversation view is not observing. 7 years ago
Matthew Chen 5444fc73b0 Improve handling of db modifications while conversation view is not observing. 7 years ago
Matthew Chen 2ac7716771 Improve handling of db modifications while conversation view is not observing. 7 years ago
Michael Kirk e43d0b1b5a Fix "Share" for attachment with caption
// FREEBIE
7 years ago
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
7 years ago
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
7 years ago
Michael Kirk 7040437ca6 Handle nil date when formatting
// FREEBIE
7 years ago
Michael Kirk 6eb1ce682a Debug file browser
// FREEBIE
7 years ago
Michael Kirk 8dfe06e3f2 Ensure audio session is default after call is terminated.
Previously, we were enabling PlayAndRecord when a call ended due to the
CallService observer's "updateVideoTrack" callbacks.

// FREEBIE
7 years ago
Michael Kirk abb51b565a Don't de-activate audio sesion when other audio activities are happening
// FREEBIE
7 years ago
Matthew Chen ceaf028445 Always scroll to bottom after sending attachments. 7 years ago
Matthew Chen d648a258d1 Merge branch 'hotfix/2.19.7' 7 years ago
Matthew Chen abfd333a17 Address Indic script crash. 7 years ago
Matthew Chen 8fdc61c726 Fix failed status messages in message detail view. 7 years ago
Matthew Chen 4b62faf2f8 Aggressively nag iOS 8 users to upgrade iOS. 7 years ago
Michael Kirk c6e5d4369b Don't adjust inset when fully zoomed in.
On iOS11, when looking at the full-screen media details, if you'd zoomed
far enough that the media content is behind the status bar, tapping to
hide the status bar would cause an undesirable change in content offset.

// FREEBIE
7 years ago
Michael Kirk 19eb17b469 Fix bubble layout in message details
TextView size depends on the VC.view size, so it must be updated when
view is done laying out.

// FREEBIE
7 years ago
Matthew Chen 48b6c3dafb Refine message date/time formatting. 7 years ago
Michael Kirk a23f1b86ef nullability annotations for TSGroupModel
- add readonly where possible
- group members needn't be a mutable array

// FREEBIE
7 years ago
Michael Kirk 44678e3951 CR: weak capture and clearer comments
// FREEBIE
7 years ago
Michael Kirk debd556e09 Fix notification % escaping, debug UI
Consolidated the notifications debug UI (and fixed it) to make testing
this a bit easier.

// FREEBIE
7 years ago
Matthew Chen e3776015bb Respond to CR. 7 years ago
Matthew Chen 246a56e925 Respond to CR. 7 years ago
Matthew Chen 33686594e9 Tweak debug logging. 7 years ago
Matthew Chen ba42ac73d8 Revisit TODOs in the SAE work. 7 years ago
Michael Kirk 5793211a0a Fix "bubble disappears" when receiving read receipt
We re-create some constraints when `updateContent` is called, so
we need to ensure those constraints are configured by calling
`updateTextLayout`

// FREEBIE
7 years ago
Matthew Chen 862172072c Respond to CR. 7 years ago
Matthew Chen bd0f601792 Respond to CR. 7 years ago
Matthew Chen 6b357f9445 Respond to CR. 7 years ago
Matthew Chen 43765ef3b5 Respond to CR. 7 years ago
Matthew Chen bbd689bfd0 Add protocol context to protocol kit. 7 years ago
Matthew Chen d3e16583eb Add protocol context to protocol kit. 7 years ago
Matthew Chen 074046b98e Add protocol context to protocol kit. 7 years ago
Matthew Chen 71782e0369 Add protocol context to protocol kit. 7 years ago
Matthew Chen 122ef91e57 Add protocol context to protocol kit. 7 years ago
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
7 years ago
Michael Kirk 7734958eec Make "swipe for info" RTL compatible
// FREEBIE
7 years ago
Michael Kirk 54f7c298b7 Only initiate "show details" pan gesture when swiping back
// FREEBIE
7 years ago
Matthew Chen 11cdd2790e Fix layout of experience upgrade view on iPhone X. 7 years ago
Matthew Chen c67c46217f Fix layout of experience upgrade view on iPhone X. 7 years ago
Michael Kirk e39ca59eeb Merge tag '2.19.5.0' 7 years ago
Matthew Chen fa76e524c4 Respond to CR. 7 years ago
Matthew Chen 9c84bdb105 Add support for images as documents. 7 years ago
Matthew Chen 7ebeeda5f9 Clean up ahead of PR. 7 years ago
Matthew Chen 3609275c20 Handle malformed row updates. 7 years ago
Matthew Chen 6f7f1b3b08 Improve pre-migration testing tools. 7 years ago
Matthew Chen 9d101c3f53 Elaborate Debug & Internal UI. 7 years ago
Matthew Chen 32b3e89c54 Elaborate Debug & Internal UI. 7 years ago
Matthew Chen b3e6278a45 Clean up ahead of PR. 7 years ago
Matthew Chen 79ee6fa318 Add Debug UI around sharing UIImage. 7 years ago
Matthew Chen 069587b150 Add message approval view. 7 years ago
Matthew Chen 992e926142 Unpack oversize text messages if possible. 7 years ago
Matthew Chen b9bd21e73f Improve presentation of text attachments in attachment approval view. 7 years ago
Matthew Chen 0cc7f3e00e Clean up ahead of PR. 7 years ago
Michael Kirk 05035e40a6 Fixup tests
// FREEBIE
7 years ago
Michael Kirk 6491bb8956 Fix timer offset
// FREEBIE
7 years ago
Michael Kirk 886c0174a8 Rename color per code review
// FREEBIE
7 years ago
Michael Kirk baa312f449 Timer button with duration label
// FREEBIE
7 years ago
Michael Kirk 5c76d4c99c Stopwatch Asset instead of hourglass
// FREEBIE
7 years ago
Michael Kirk 3a5fa63cd6 Fix confirmation preview
// FREEBIE
7 years ago
Michael Kirk f41dfa509c Re-aquire first responder when necessary.
// FREEBIE
7 years ago
Michael Kirk 3ca5ec2726 Ensure media-library permissions when accessing media library
// FREEBIE
7 years ago
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
7 years ago
Michael Kirk 58558b36de Add clarifying comment.
// FREEBIE
7 years ago
Michael Kirk 94d58b88b8 Play video inline in approval view
Previously we launched the MPMoviePlayerController

// FREEBIE
7 years ago
Michael Kirk 0c6a42003f clang-format after RI
// FREEBIE
7 years ago
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.
7 years ago
Matthew Chen 0d5b5bc44c Respond to CR. 7 years ago
Matthew Chen 3de9a4ea55 Add debug UI actions around clearing and snapshotting session state. 7 years ago
Matthew Chen d81d85c386 Respond to CR. 7 years ago
Matthew Chen 17907dca10 Clean up ahead of PR. 7 years ago
Matthew Chen 15b8e58324 Retain changes from session database branch. 7 years ago
Michael Kirk 63c23b77d0 Cleanup presentation view, feels less blurry
// FREEBIE
7 years ago
Michael Kirk 1ef824029e Fix distorted images
// FREEBIE
7 years ago
Michael Kirk 3582ab42db Fix media detail presentation
- video view now scales during presentation
- no "swooping" when presenting large res images

// FREEBIE
7 years ago
Michael Kirk 7c2bfdfb1f rename: imageView -> mediaView
// FREEBIE
7 years ago
Michael Kirk 8851413b35 CR: cleanup, remove debug animation time, move constant
// FREEBIE
7 years ago
Michael Kirk e140ffc423 Fullscreen presentation touchups
"zoom" presentation now accounts for zoomScale.

Fix background flicker as status bar hides
Round corners during presentation/dismiss. Smooths transition a bit.

// FREEBIE
7 years ago
Michael Kirk 74e03aad01 Fix intermittent content offset problem
Using the CollectionView's frame to determine if we're at the bottom
doesn't make sense unless the collection view is correctly layed out.

// FREEBIE
7 years ago
Matthew Chen 59933ce1d6 Fix rebase breakage. 7 years ago
Matthew Chen 16f7317579 Complete backup restore/import. 7 years ago
Matthew Chen 272a90d269 Add import back up UI. Begin work on import backup logic. 7 years ago
Matthew Chen 857ca56ab6 Rework progress mode of export backup UI. 7 years ago
Matthew Chen 980b3d25a7 Rework "export backup" UI. 7 years ago
Matthew Chen ea945558c8 Show share UI for backups. 7 years ago
Matthew Chen 8769fb07cf Write backup to encrypted zip. 7 years ago
Matthew Chen 9e89502fdb Let users send to non-contacts, non-threads in SAE. 7 years ago
Matthew Chen 1839b10550 Retain changes from session database branch. 7 years ago
Matthew Chen e77c3e6717 Retain changes from session database branch. 7 years ago
Michael Kirk 74019b2ae4 Fix keyboard animation glitch after sending
// FREEBIE
7 years ago
Michael Kirk 1ec409ad2b CR: re-enable default keyboard toggle
// FREEBIE
7 years ago
Michael Kirk c91658119d CR: double tap zoom centers on tap location
// FREEBIE
7 years ago
Michael Kirk 8d2934d86e CR: remove unnecessary code, comments
// FREEBIE
7 years ago
Michael Kirk 412fe2735e Rename FullImageViewController -> MediaDetailViewController
// FREEBIE
7 years ago
Michael Kirk 8454e512d8 Use FullSreen media VC for message details
// FREEBIE
7 years ago
Michael Kirk c7c433c59c iOS8 compatability for video player 7 years ago
Michael Kirk 86d61eee30 Custom video player layer to avoid "double present/dismiss"
// FREEBIE
7 years ago
Michael Kirk 918e3f7dfe Videos play in full-screen media view controller, use modern movie
player.

// FREEBIE
7 years ago
Michael Kirk 81268012e5 Better keyboard management.
- fixes problems on iOS11.2 where emoji keyboard sometimes obscures text
  input.
- better animation for interactive pan gesture when viewing message
  details
- more intuitive swipe-to-dismiss keyboard in conversation view
- converge on one mnethod for dismissing keyboard in conversation view

- [ ] Pop keyboard, then hit attachment, dismisses keyboard, which is
      fine, but the content should immediately scroll down with the
      keyboard, instead it stays up, and scrolls down only once the
      attachment action sheet has been dismissed.

// FREEBIE
7 years ago
Matthew Chen 3a9886bb2b Send database action in debug UI. 7 years ago
sdkjfhsdkjhfsdlkjhfsdf 6e2d9c8141 identity change vs. share extension
// FREEBIE
7 years ago
sdkjfhsdkjhfsdlkjhfsdf 46930b9354 Fix crash when viewing non-attachment message details.
// FREEBIE
7 years ago
sdkjfhsdkjhfsdlkjhfsdf b87079d4b4 Sharing attachment shows progress / retry dialog
// FREEBIE
7 years ago
sdkjfhsdkjhfsdlkjhfsdf 38d94952f7 Shadow for Send button, clean up color accessors
// FREEBIE
7 years ago
sdkjfhsdkjhfsdlkjhfsdf 513e33b0fd Cleanup before code review
// FREEBIE
7 years ago
sdkjfhsdkjhfsdlkjhfsdf cf091758a5 Fix oversized text messages
// FREEBIE
7 years ago
sdkjfhsdkjhfsdlkjhfsdf 82aeee301d can delete text messages again
// FREEBIE
7 years ago
sdkjfhsdkjhfsdlkjhfsdf f5b9ae97ef fix insets for incoming vs outgoin
// FREEBIE
7 years ago
sdkjfhsdkjhfsdlkjhfsdf eeaea5fa01 better match for corner radius
// FREEBIE
7 years ago
sdkjfhsdkjhfsdlkjhfsdf 0ea3a36559 make sure captioned attachment doesn't grow too large
// FREEBIE
7 years ago
sdkjfhsdkjhfsdlkjhfsdf 2c20cb9e7b make sure mediaview isn't too tall in detail view
// FREEBIE
7 years ago
sdkjfhsdkjhfsdlkjhfsdf 411de65b40 TODO: Show caption in details
TODO:
- [ ] layout is shite

// FREEBIE
7 years ago
sdkjfhsdkjhfsdlkjhfsdf 0e9c9a9bb3 Separate gestures for text/vs media
// FREEBIE
7 years ago
sdkjfhsdkjhfsdlkjhfsdf 92477c78b7 cleanup before PR 7 years ago
Michael Kirk bce18637f0 render attachments with captions
// FREEBIE
7 years ago
Michael Kirk 3176cb5a62 text sizing correctly 7 years ago
Michael Kirk f8866c4e0b Fix some constraints, get other attachment types looking good
TODO
- [ ] message bubble sizes are not correct. Not always wide enough to
      fit their content.

// FREEBIE
7 years ago
Michael Kirk 76ca52f33c caption bubble properly sized, but all attachments make space now 7 years ago
Michael Kirk 3eb3c268a9 Towards a caption in message
TODO

- [ ] adjust height properly
- [ ] all media types
- [ ] include caption in message details
- [ ] gestures working on both independently
- [ ] perf benchmark

// FREEBIE
7 years ago
Michael Kirk e20f44024c WIP: Support sending attachment captions
Looks fine on other clients, but locally we don't display the caption.

// FREEBIE
7 years ago
Michael Kirk a5c5dd3f96 WIP, extract subclass 7 years ago
Matthew Chen 6b0e3508a5 Respond to CR. 7 years ago
Matthew Chen 9258b0883e Clean up TSStorageManager usage. 7 years ago
Matthew Chen 85686d3144 Continue TSStorageManager refactor. 7 years ago
Matthew Chen 9a990b58e8 Respond to CR. 7 years ago
Matthew Chen 5dcf4b3bbc Clean up ahead of PR. 7 years ago
Matthew Chen 137fe6fb8b Pull out OWSStorage base class for TSStorageManager. 7 years ago
Michael Kirk 157bf00410 Merge branch 'hotfix/2.19.3' 7 years ago
Michael Kirk e78edcde87 Only clear cache when user pulls-to-refresh
// FREEBIE
7 years ago
Michael Kirk 49196f8013 Spin activity indicator until contacts are fetched
// FREEBIE
7 years ago
Matthew Chen 3643414da1 Respond to CR. 7 years ago
Matthew Chen e45d63e862 Clean up ahead of PR. 7 years ago
Matthew Chen 0c9d9ba679 Fix issues around cross process db changes. 7 years ago
Michael Kirk 4f06518539 Merge tag '2.19.3.1' 7 years ago
Michael Kirk 1f8042685d Show loading cell when contacts are still loading.
// FREEBIE
7 years ago
Michael Kirk c07d7777cb Reinstate notification when SignalAccounts change
// FREEBIE
7 years ago
Michael Kirk 16448e2a0b Merge tag '2.19.3.0' 7 years ago
Michael Kirk 64e90d29fd CR: extract method, more asserts and annotations
// FREEBIE
7 years ago
Michael Kirk 7ea4b85a2a Persist signal accounts (and their embedded Contact)
// FREEBIE
7 years ago
Michael Kirk 8996741277 DocumentPicker converts to mp4 when necessary
// FREEBIE
7 years ago
Michael Kirk 031e40d090 Use SignalAttachment logic in conversation view too
// FREEBIE
7 years ago
Matthew Chen f684482c54 Don't emit "user profile changed" notifications if nothing changed. 7 years ago
Matthew Chen 74efcb9041 Rework thread safety in profile manager. 7 years ago
Matthew Chen 80ae5e0fcf Respond to CR. 7 years ago
Matthew Chen 11b4848530 Respond to CR. 7 years ago
Matthew Chen 84061cca9f Change image resizing/quality behavior, preferring smaller images in the common case. 7 years ago
Matthew Chen 125aabb0a3 Change image resizing/quality behavior, preferring smaller images in the common case. 7 years ago
Michael Kirk d9cca77e23 update header references
// FREEBIE
8 years ago
Matthew Chen b12f192c6f Respond to CR. 8 years ago
Matthew Chen 7a1e47cd26 Add asserts around Swift singletons. 8 years ago
Michael Kirk eca19e5874 Reconcile MediaMessageView zoom behavior with AppExtension
Previously it was predicated on UIApplication.shared

// FREEBIE
8 years ago
Michael Kirk 3eceb86371 Show alert if we fail to build the attachment
// FREEBIE
8 years ago
Michael Kirk a58f1f385c Share a photo from photos app
Shows the conversation picker, and sends the attachment to that
conversation.

There's still a lot TODO

-[ ] resolve JSQ dependency
-[ ] properly wait for app to load
-[ ] dismiss share extension after send is complete
-[ ] support non jpeg file types
-[ ] Fix device sleep manager

// FREEBIE
8 years ago
Matthew Chen 150f417a5e Clean up ahead of PR. 8 years ago
Matthew Chen 9da165b846 Continue conversion of app setup. 8 years ago
Matthew Chen 2eba371656 Clean up ahead of PR. 8 years ago
Matthew Chen b4e8df79da Migrate environment to SignalMessaging. 8 years ago
Matthew Chen 6d87df88aa Migrate environment to SignalMessaging. 8 years ago
Matthew Chen c817aa51b3 Migrate environment to SignalMessaging. 8 years ago
Michael Kirk 27ddf4a352 Cleanup before PR 8 years ago
Michael Kirk cd440b839f Consolidate search logic
// FREEBIE
8 years ago
Michael Kirk 766e579961 Share picker searches by profile name
Consolidate some of the share logic

// FREEBIE
8 years ago