Commit Graph

1371 Commits (3139bac99456be9a314e000ea4d0b8c45e95c0a7)

Author SHA1 Message Date
Matthew Chen d2f2dd273a Fix edge cases in migrations. 7 years ago
Matthew Chen c62b5f9b55 Fix build break. 7 years ago
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
7 years ago
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
7 years ago
Matthew Chen 4746948dfe Respond to CR. 7 years ago
Matthew Chen 76b4deffe4 Respond to CR. 7 years ago
Matthew Chen 70d14c84c4 Clean up backup code. 7 years ago
Matthew Chen 08149005b1 Clean up backup code. 7 years ago
Matthew Chen 3f822e8ce3 Complete minimal backup MVP. 7 years ago
Matthew Chen 04c527a0f4 Implement backup import logic. 7 years ago
Matthew Chen aa546a02df Merge remote-tracking branch 'origin/release/2.22.0' 7 years ago
Michael Kirk 89f1779253 Remove PIN placeholder text
It's not always 6 digits, so it's a confusing placeholder

// FREEBIE
7 years ago
Matthew Chen 37d4c413d5 Clean up before merge. 7 years ago
Matthew Chen 0e0628a8dc Clean up ahead of PR. 7 years ago
Matthew Chen b65cc953ec Clean up ahead of PR. 7 years ago
Matthew Chen 0971bad4b2 Upload database and manifest files to CloudKit. 7 years ago
Matthew Chen c84bf81cf3 Export database for backup. 7 years ago
Matthew Chen 593f7da72d Upload test file to CloudKit. 7 years ago
Matthew Chen d06ad25d77 Sketch out incremental backup manager and settings view. 7 years ago
Matthew Chen b296cfb893 Sketch out incremental backup manager and settings view. 7 years ago
Michael Kirk c5ff9a94a0 Merge tag '2.22.0.3' 7 years ago
Michael Kirk 173008fba9 Clarify reminder view, touchup layout
Layout needs to be kept tight for small form factors, but it was overly
cramped on larger devices.

// FREEBIE
7 years ago
Collin B. Stuart 6f7b4a6e43 Strip media metadata.
- removes non-orientation metadata from image and video attachments

- option to disable the feature

// FREEBIE
7 years ago
Michael Kirk 319e0d808f Merge tag '2.21.0.14' into release/2.22.0 7 years ago
Michael Kirk bbdcd0c768 Call connection fixups
callUIAdapter is not a singleton (for better or for worse)

No one should hold a reference directly to it, but rather via the
CallService, which is a singleton

Wait a bit longer for initial call screen before terminating. Especially
first call can hit this limit.

When call *does* take too long to show, terminate properly to ensure
we're not left with a phantom call

// FREEBIE
7 years ago
Michael Kirk ec9538a3e4 Fix 2fa registration screen layout
Don't obscure message text on smaller form factors

Also, disable overzealous assert with non-callkit adapters. The adapter
is not a singleton, it gets rebuilt whenever call related privacy
settings are triggered.

// FREEBIE
7 years ago
Michael Kirk a885fb5dee Fix first reminder too early, offset bugs.
Schedule first reminder date relative to now, handle overflow

// FREEBIE
7 years ago
Michael Kirk a1de99f1f1 Merge tag '2.21.0.9' 7 years ago
Matthew Chen d6f4db1523 Rename TSStorageManager to OWSPrimaryStorage. 7 years ago
Michael Kirk 51ae936555 Ensure the user sees the experience upgrade
Don't mark it as seen until it is dismissed.

// FREEBIE
7 years ago
Michael Kirk 5739f074ae Show migration screen at first launch.
sort sounds alphabetically (other than Default/None)

// FREEBIE
7 years ago
Michael Kirk c2501d8d1e Don't migrate legacy users to use new audio tones
// FREEBIE
7 years ago
Michael Kirk d7fcac8a5a In-App notifications don't pause background audio
// FREEBIE
7 years ago
Michael Kirk 60a1cc5682 Make 2FA registration screen look like the rest of registration
// FREEBIE
7 years ago
Matthew Chen 7543a82858 Handle rate limits in registration flow. 7 years ago
Michael Kirk 07ee3ea843 Merge tag '2.21.0.5' 7 years ago
Michael Kirk 1d3831eccd Registration Lock reminder view
Also fixed: Don't lose PIN across registrations

// FREEBIE
7 years ago
Michael Kirk 54792ff461 Fix overzealous assert.
Sometimes we set values to nil - e.g. when re-registering through
debugUI

// FREEBIE
7 years ago
Michael Kirk 6077367e66 Notification sounds should respect silent switch
// FREEBIE
7 years ago
Michael Kirk e8f4a7bfe8 Merge tag '2.21.0.4' 7 years ago
Michael Kirk 4d65695bd1 Fix typo
// FREEBIE
7 years ago
Michael Kirk eca1648054 Don't "show" upgrade splash when receiving a voip notification
Wait until app is in the foreground to show upgrade splashes

// FREEBIE
7 years ago
Michael Kirk 1ff2f3f42e Merge tag '2.21.0.1' 7 years ago
Matthew Chen 06d16bdec5 Revert "Revert "Merge branch 'charlesmchen/debugLogs' into hotfix/2.20.1""
This reverts commit b1dd325ce8.
7 years ago
Michael Kirk 46d944740b Make default audio tone more prominent
Label Note as (default)
Move it to the second item in the list, just after "None"

// FREEBIE
7 years ago
Matthew Chen 59c745756a Clean up codebase. 7 years ago
Matthew Chen a87b79341f Respond to CR. 7 years ago
Matthew Chen baf6fcc535 Add 2FA registration view. 7 years ago
Matthew Chen 6ca55790d5 Cleanup. 7 years ago
Matthew Chen caeb97b466 Respond to CR. 7 years ago
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