Commit Graph

3186 Commits (c2adf624eafadbe73f43f8c53a2b7de46418ce79)

Author SHA1 Message Date
Michael Kirk af5f549e49 Fix TableView layout for iPhoneX
// FREEBIE
8 years ago
Michael Kirk f441c6211d Format
// FREEBIE
8 years ago
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
8 years ago
Matthew Chen 4240b517d0 Respond to CR. 8 years ago
Matthew Chen fb1f3b5572 Rework quoted reply debug UI. 8 years ago
Matthew Chen 4915c127cb Rework quoted reply debug UI. 8 years ago
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.
8 years ago
Matthew Chen 1bea832faa Fix assert in bubble views. 8 years ago
Matthew Chen f7ea1678e7 Only resume lazy attachment restore in debug. 8 years ago
Matthew Chen f98c45603c Respond to CR. 8 years ago
Matthew Chen 31f062ed11 Bubble collapse. 8 years ago
Matthew Chen 12bcf887c1 Bubble collapse. 8 years ago
Matthew Chen 4f9085a761 Bubble collapse. 8 years ago
Matthew Chen 3ca2c08b06 Bubble collapse. 8 years ago
Matthew Chen 578f40d791 Bubble collapse. 8 years ago
Matthew Chen c8012d3891 Bubble collapse. 8 years ago
Matthew Chen 3d07dc7c5b Bubble collapse. 8 years ago
Matthew Chen 643c6385b5 Bubble collapse. 8 years ago
Matthew Chen 8d74c68f9d Bubble collapse. 8 years ago
Matthew Chen 8a74e10208 Bubble collapse. 8 years ago
Matthew Chen e0e8eafb5d Bubble collapse. 8 years ago
Matthew Chen 4a4e9d1ce2 Bubble collapse. 8 years ago
Matthew Chen 11819d9b8a Bubble collapse. 8 years ago
Matthew Chen e1e6606783 Bubble collapse. 8 years ago
Matthew Chen cb00b22870 Bubble collapse. 8 years ago
Matthew Chen 6525ccdb05 Bubble collapse. 8 years ago
Matthew Chen 75177ef00f Bubble collapse. 8 years ago
Matthew Chen d0cddfd22c Elaborate debug UI for messages. 8 years ago
Matthew Chen 3a5ba15d21 Elaborate debug UI for messages. 8 years ago
Matthew Chen 041b28dd79 Elaborate debug UI for messages. 8 years ago
Matthew Chen 469fb2644f Elaborate debug UI for messages. 8 years ago
Matthew Chen 8542a18f33 Elaborate debug UI for messages. 8 years ago
Matthew Chen a130760085 Elaborate debug UI for messages. 8 years ago
Matthew Chen 66a454ce4f Elaborate debug UI for messages. 8 years ago
Matthew Chen e874503f8d Elaborate debug UI for messages. 8 years ago
Matthew Chen 24cc6ec113 Elaborate debug UI for messages. 8 years ago
Matthew Chen c2e31540d7 Elaborate debug UI for messages. 8 years ago
Matthew Chen 68f3334e77 Elaborate debug UI for messages. 8 years ago
Matthew Chen 0dfa9cac7b Elaborate debug UI for messages. 8 years ago
Matthew Chen 4602ad9014 Respond to CR. 8 years ago
Matthew Chen 8254052bb2 Lazy restore attachments. 8 years ago
Matthew Chen cb8ee3536a Lazy restore attachments. 8 years ago
Matthew Chen 1dced463cb Lazy restore attachments. 8 years ago
Matthew Chen b2ac8f10e2 Lazy restore attachments. 8 years ago
Matthew Chen 3406d1562e Add local cache of backup fragment metadata. 8 years ago
Matthew Chen 61dc2c0249 Add local cache of backup fragment metadata. 8 years ago
Matthew Chen e88f5643f7 Add local cache of backup fragment metadata. 8 years ago
Matthew Chen 258cdab2df Don't cull CloudKit records for lazy restoring attachments. 8 years ago
Matthew Chen d0c691bb7f Lazy attachment restores. 8 years ago
Michael Kirk 4eadd84abc Don't obscure "Unlock" button with keyboard
// FREEBIE
8 years ago
Michael Kirk 425b35a2c1 Crash/UI fix fetching edge case
This could result in either not fetching the remaining data or a crash
depending on the exact shape of your data.

// FREEBIE
8 years ago
Michael Kirk 875321cecc Reflector configuration supports per-country code
Also update reflector hosts/policy

// FREEBIE
8 years ago
Matthew Chen 1424149a74 Start screen lock countdown if app is inactive for more than N seconds. 8 years ago
Matthew Chen eb9c65e975 Improve handling of local authentication errors. 8 years ago
Matthew Chen 72b602c3d8 Respond to CR. 8 years ago
Matthew Chen 930d89242d Clean up ahead of PR. 8 years ago
Matthew Chen 16af078425 Fix more edge cases in Screen Lock. 8 years ago
Matthew Chen c85e5b39b5 Fix more edge cases in Screen Lock. 8 years ago
Matthew Chen fe23f79d5f Respond to CR. 8 years ago
Matthew Chen feb5d68f83 Improve handling of unexpected failures in local authentication. 8 years ago
Michael Kirk 9adf79c546 Always remove metadata
// FREEBIE
8 years ago
Michael Kirk 1d95cd6977 Improve video scrubbing UX in PageView
// FREEBIE
8 years ago
Michael Kirk e4530a51bf Handle "current page view" deleted from tile
// FREEBIE
8 years ago
Michael Kirk 457d6c6d95 Don't scroll to bottom on load, since we scroll to focused when view
appears.

// FREEBIE
8 years ago
Michael Kirk 405edaa125 End select mode after hitting delete
// FREEBIE
8 years ago
Michael Kirk 6e3de94e99 code cleanup
// FREEBIE
8 years ago
Matthew Chen 664afdcac8 Fix edge case in screen lock UI. 8 years ago
Michael Kirk 394cc6637c Backport comments from translations
// FREEBIE
8 years ago
Matthew Chen 063e1ccb6f Fix edge cases around pincode-only unlock. 8 years ago
Matthew Chen 287daf5839 Fix edge cases around pincode-only unlock. 8 years ago
Michael Kirk 037546a2df Fade toolbars, keeping presentation image sharp
Don't fade presentation image until it's in place.

// FREEBIE
8 years ago
Michael Kirk 10fe10b987 Fix navbar flicker while media is presented
// FREEBIE
8 years ago
Michael Kirk c1de22d860 Avoid white flash while dismissing
// FREEBIE
8 years ago
Michael Kirk 13378501b0 Stop any video on dismiss
// FREEBIE
8 years ago
Michael Kirk ae892525dd don't fade "selected" badge
// FREEBIE
8 years ago
Michael Kirk 2edf8384cd iPhoneX layout for gallery
// FREEBIE
8 years ago
Michael Kirk 3de923bf6b Update footer items after delete scrolls you to next item in pager view
// FREEBIE
8 years ago
Michael Kirk 3058cb8733 Batch Delete
// FREEBIE
8 years ago
Michael Kirk 6c877403cf Fix delete from message details
// FREEBIE
8 years ago
Michael Kirk 6e20f5b654 Fix Delete
from conversation settings > tile > tap for details > delete

TODO:

- Don't dismiss pager, show next item
- dismiss pager if deleting last media

// FREEBIE
8 years ago
Matthew Chen faea31a8c5 Fix screen lock presentation logic. 8 years ago
Matthew Chen 0e00428da5 Fix screen lock presentation logic. 8 years ago
Matthew Chen b012efc12d Fix screen lock presentation logic. 8 years ago
Matthew Chen 19755fa5bf Refine 'Screen Lock'. 8 years ago
Matthew Chen 8899c7abda Refine 'Screen Lock'. 8 years ago
Matthew Chen 03845d0d98 Revert "Refine 'Screen Lock'."
This reverts commit 871dca4138.
8 years ago
Matthew Chen 871dca4138 Refine 'Screen Lock'. 8 years ago
Matthew Chen 5bc089837b Respond to CR. 8 years ago
Matthew Chen 2f39b2c222 Respond to CR. 8 years ago
Matthew Chen 28ce15885b Refine screen lock. 8 years ago
Matthew Chen bb596dba98 Add screen lock feature. 8 years ago
Matthew Chen 2d6d375e82 Add screen lock feature. 8 years ago
Matthew Chen cf0e6fce09 Add screen lock feature. 8 years ago
Matthew Chen 1f82891024 Add screen lock feature. 8 years ago
Matthew Chen b62736d7d4 Add screen lock feature. 8 years ago
Matthew Chen 1612642c26 Add screen lock feature. 8 years ago
Michael Kirk 1e59fbafd3 CR: method args shouldn't shadow properties
// FREEBIE
8 years ago
Michael Kirk d94f355c2c properly restore navigation bar after dismissing mid-video
// FREEBIE
8 years ago
Michael Kirk 6a4642ed9b Fix subsequent animation after swiping 8 years ago
Matthew Chen 8d689ec090 Properly cleanup content. 8 years ago
Matthew Chen d215499435 Show backup UI in release builds if backup is enabled. 8 years ago
Matthew Chen 6580f9112b Respond to CR. 8 years ago
Matthew Chen 439d7e62e6 Recycle backup fragments. 8 years ago
Matthew Chen 5de11d7355 Recycle backup fragments. 8 years ago
Matthew Chen bb07de2a3c Pull out "download and parse manifest" logic. 8 years ago
Michael Kirk b5503cc00a Handle empty media gallery
// FREEBIE
8 years ago
Michael Kirk f261fbcf05 Dynamic gallery label
// FREEBIE
8 years ago
Michael Kirk 6939b1749b remove gradient per myles
// FREEBIE
8 years ago
Michael Kirk 7754d3d94f Real assets
// FREEBIE
8 years ago
Michael Kirk 021c0db559 WIP: waiting on assets
// FREEBIE
8 years ago
Matthew Chen 34d79265a1 Respond to CR. 8 years ago
Matthew Chen 08ba7c85ed Clean up ahead of PR. 8 years ago
Matthew Chen 18d39f15f2 Clean up ahead of PR. 8 years ago
Matthew Chen 2c680cadad Clean up ahead of PR. 8 years ago
Matthew Chen 2ebd8668b4 Fix bugs in new db representation, add batch record deletion, improve memory management. 8 years ago
Matthew Chen fed524ba16 Rework database snapshot representation, encryption, etc. 8 years ago
Matthew Chen 0c81d5656f Rework database snapshot representation, encryption, etc. 8 years ago
Matthew Chen ca7c75a081 Rework database snapshot representation, encryption, etc. 8 years ago
Matthew Chen 1bbd41f725 Improve perf of database snapshots. 8 years ago
Michael Kirk 84ed75f60b Fix typo
// FREEBIE
8 years ago
Michael Kirk d9a2effff6 CR: remove "k" from non constant
// FREEBIE
8 years ago
Michael Kirk 352f5c1059 Prefer back button over dismiss
In some context this makes more sense, and it will never be confusing.

// FREEBIE
8 years ago
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
8 years ago
Matthew Chen 40416bcdcb Reduce Giphy page size. 8 years ago
Michael Kirk 2095cbb0c6 Update footer when returning to details via Tile view
// FREEBIE
8 years ago
Michael Kirk 428802aee8 Only try to stop video when it *is* a video
// FREEBIE
8 years ago
Michael Kirk 24eb4bf443 Stop any video whenever leaving PageView
// FREEBIE
8 years ago
Michael Kirk 10ee054d0c Avoid flicker when loading more on top
Adjusting content offset in the CollectionViewLayout.prepareLayout
method avoids a flicker vs. the previous way we were doing it.

// FREEBIE
8 years ago
Michael Kirk 19988a872a Improve scroll-jank on Gallery Tile View
- Don't fetch data unnecessarily
- Use CATransaction to avoid insertion animations. They are off screen
  anyway.

// FREEBIE
8 years ago
Michael Kirk 4c2d30a776 Memory warning clears MediaPageView cache
Doing so required MediaDetailView to retain GalleryItem, but because
GalleryItem is a swift struct, I had to envoke the Box dance.

// FREEBIE
8 years ago
Michael Kirk 13d6d72a6f per myles, use lighter blur
// FREEBIE
8 years ago
Michael Kirk 770ce1440e ConversationSettings must retain the gallery view
// FREEBIE
8 years ago
Michael Kirk f4e68e0dfb l10n
// FREEBIE
8 years ago
Michael Kirk fb4182c41f Ensure gallery is GC'd
// FREEBIE
8 years ago
Michael Kirk 96e5a8f4b7 One time thumbnail generation
// FREEBIE
8 years ago
Michael Kirk a0bd2c2324 OrphanDataCleaner shouldn't delete active thumbnails
// FREEBIE
8 years ago
Michael Kirk ae8dbeb8dd Access Media Gallery from conversation settings
// FREEBIE
8 years ago
Michael Kirk f733c07d07 comment cleanup
// FREEBIE
8 years ago
Michael Kirk 4aeff7ba67 Thumbnail generation
// FREEBIE
8 years ago
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
8 years ago
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
8 years ago
Michael Kirk e5b1c0c9b4 Fake media send
// FREEBIE
8 years ago
Matthew Chen 24cc95585f Respond to CR. 8 years ago
Matthew Chen 62da17a0cc Clean up ahead of PR. 8 years ago
Matthew Chen 54eecd5b1d Protect backup directories. 8 years ago
Matthew Chen b0d56dcd55 Clean up ahead of PR. 8 years ago
Matthew Chen cf13a780e9 Retry backup failures. 8 years ago
Matthew Chen 05db8e3f7f Retry backup failures. 8 years ago
Matthew Chen f164d5e94b Improve backup progress. 8 years ago
Matthew Chen 0bcbb5918b Improve backup progress. 8 years ago
Matthew Chen 59fc232128 Backup export needs to verify that we have a valid account. 8 years ago
Matthew Chen 2915c533b2 Streamline database configuration and cleanup. 8 years ago
Matthew Chen 061ce8cb13 Add database validity check. 8 years ago
Matthew Chen 3c2aae3b9c Backup import clears database contents. 8 years ago
Matthew Chen fc4a66365e Sketch out backup export UI. 8 years ago
Matthew Chen 91bf0bdb9f Sketch out backup export UI. 8 years ago
Matthew Chen 669a3610ab Fix attachments. 8 years ago
Matthew Chen d2f2dd273a Fix edge cases in migrations. 8 years ago
Matthew Chen 86aae78f1b Include migrations in backup. 8 years ago
Matthew Chen c62b5f9b55 Fix build break. 8 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
8 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
8 years ago
Matthew Chen 4746948dfe Respond to CR. 8 years ago
Matthew Chen eb263e265b Clean up ahead of PR. 8 years ago
Matthew Chen 68ba8976c5 Clean up ahead of PR. 8 years ago
Matthew Chen cc10dbf32f Clean up ahead of PR. 8 years ago
Matthew Chen b3ecc085d5 Clean up ahead of PR. 8 years ago
Matthew Chen 76b4deffe4 Respond to CR. 8 years ago
Matthew Chen 70d14c84c4 Clean up backup code. 8 years ago
Matthew Chen 08149005b1 Clean up backup code. 8 years ago
Matthew Chen 3f822e8ce3 Complete minimal backup MVP. 8 years ago
Matthew Chen f46ea0e87d Implement backup import logic. 8 years ago
Matthew Chen 30065493a3 Implement backup import logic. 8 years ago
Matthew Chen 5035cb040e Implement backup import logic. 8 years ago
Matthew Chen 04c527a0f4 Implement backup import logic. 8 years ago
Matthew Chen f53f1fb46a Add check for backup in cloud. 8 years ago
Matthew Chen 6cea2779d2 Stub out backup private key. 8 years ago
Matthew Chen 999321c067 Check for manifest in cloud. 8 years ago
Matthew Chen 90c8f5483b Clean up cloud after successful backup export. 8 years ago
Matthew Chen aa546a02df Merge remote-tracking branch 'origin/release/2.22.0' 8 years ago
Michael Kirk 89f1779253 Remove PIN placeholder text
It's not always 6 digits, so it's a confusing placeholder

// FREEBIE
8 years ago
Matthew Chen 37d4c413d5 Clean up before merge. 8 years ago
Matthew Chen b1ca550345 Clean up ahead of PR. 8 years ago
Matthew Chen 0e0628a8dc Clean up ahead of PR. 8 years ago
Matthew Chen b65cc953ec Clean up ahead of PR. 8 years ago
Matthew Chen 202a35fddd Only backup every N hours. 8 years ago
Matthew Chen fefba6c63e Don't download files from cloud when testing for their existence. 8 years ago
Matthew Chen c2751665c3 Only backup attachments once. 8 years ago
Matthew Chen 20587ba377 Upload attachments to cloud; upsert files to cloud. 8 years ago
Matthew Chen 0971bad4b2 Upload database and manifest files to CloudKit. 8 years ago
Matthew Chen c84bf81cf3 Export database for backup. 8 years ago
Matthew Chen b603a8dcbe Upload test file to CloudKit. 8 years ago
Matthew Chen 593f7da72d Upload test file to CloudKit. 8 years ago
Matthew Chen d06ad25d77 Sketch out incremental backup manager and settings view. 8 years ago
Matthew Chen b296cfb893 Sketch out incremental backup manager and settings view. 8 years ago
Michael Kirk c5ff9a94a0 Merge tag '2.22.0.3' 8 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
8 years ago
Collin B. Stuart 6f7b4a6e43 Strip media metadata.
- removes non-orientation metadata from image and video attachments

- option to disable the feature

// FREEBIE
8 years ago
Michael Kirk b8485b19bd Merge tag '2.21.0.15' into release/2.22.0 8 years ago
Michael Kirk c5fc671c31 Fix lost call transactions after rebuilding callUIAdapter
// FREEBIE
8 years ago
Michael Kirk 319e0d808f Merge tag '2.21.0.14' into release/2.22.0 8 years ago
Michael Kirk 3aebaefc31 A lighter touch for the fix-call connect.
Though it should be fine, reloading the callUIAdapter is a bit heavy
handed. And the current implementation is prone to being broken, since
we sometimes forget not to treat callUIAdapter as a singleton.

Longer term we can find a way to either: make callUIAdapter a true
singleton or possibly make callUIAdapter a private member of something
which *is* a true singleton.

Since we only *need* it to be reloaded the one time the migration runs
(or when a user changes settings which should be rare) it makes sense to
remove it from the happy path.

// FREEBIE
8 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
8 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
8 years ago
Michael Kirk a885fb5dee Fix first reminder too early, offset bugs.
Schedule first reminder date relative to now, handle overflow

// FREEBIE
8 years ago
Michael Kirk 2462ea0a3e Merge tag '2.21.0.10' into release/2.22.0 8 years ago
Michael Kirk c7871b28d4 Make sure any new call migration settings take effect on first launch
// FREEBIE
8 years ago
Michael Kirk 8dfc584c2c Try to keep-alive registration lock w/ bg fetch
If a user hasn't launched or received a message on Signal in a week,
they could inadvertently lose their registration lock.

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

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

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

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

// FREEBIE
8 years ago
Michael Kirk 6077367e66 Notification sounds should respect silent switch
// FREEBIE
8 years ago
Michael Kirk e8f4a7bfe8 Merge tag '2.21.0.4' 8 years ago
Michael Kirk 4d65695bd1 Fix typo
// FREEBIE
8 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
8 years ago
Michael Kirk 1ff2f3f42e Merge tag '2.21.0.1' 8 years ago
Matthew Chen 4834a85fb5 Add share option for debug logs. 8 years ago
Matthew Chen 256a300297 Integrate with logs service. 8 years ago
Matthew Chen 7b84afaaf1 Integrate with logs service. 8 years ago
Matthew Chen 4bbf0d9e3d Integrate with logs service. 8 years ago
Matthew Chen 06d16bdec5 Revert "Revert "Merge branch 'charlesmchen/debugLogs' into hotfix/2.20.1""
This reverts commit b1dd325ce8.
8 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
8 years ago
Matthew Chen 59c745756a Clean up codebase. 8 years ago
Matthew Chen c17a819366 Elaborate request factory. 8 years ago
Matthew Chen 0ca497846b Elaborate request factory. 8 years ago
Matthew Chen a87b79341f Respond to CR. 8 years ago
Matthew Chen baf6fcc535 Add 2FA registration view. 8 years ago
Matthew Chen 6ca55790d5 Cleanup. 8 years ago
Matthew Chen caeb97b466 Respond to CR. 8 years ago
Matthew Chen a5128273ba Clean up ahead of PR. 8 years ago
Matthew Chen 055061ff5e Clean up ahead of PR. 8 years ago
Matthew Chen 4afedac68c Clean up ahead of PR. 8 years ago
Matthew Chen ea783a8ad5 Work on two-factor auth settings UI. 8 years ago
Matthew Chen e12a1e984a Work on two-factor auth settings UI. 8 years ago
Matthew Chen 1f6cbd399e Sketch out 2FA feature. 8 years ago
Michael Kirk f0ca957a09 Fix remote video view
// FREEBIE
8 years ago
Michael Kirk a068b85734 Audio splashscreen artwork/copy
copy tweaks

// FREEBIE
8 years ago
Matthew Chen a71e00397f Fix build break related to Swift 4.1 syntax. 8 years ago
Matthew Chen bf48ccd4ad Merge remote-tracking branch 'origin/hotfix/2.20.1' 8 years ago
Michael Kirk 37fdd407d4 CR: Add translation comment
// FREEBIE
8 years ago
Michael Kirk cf6dfe08bb Custom audio notifications upgrade experience
TODO: update art
8 years ago
Matthew Chen b1dd325ce8 Revert "Merge branch 'charlesmchen/debugLogs' into hotfix/2.20.1"
This reverts commit de5d17a396, reversing
changes made to d32e90c3d1.
8 years ago
Matthew Chen e4ee3e0007 Revert "Respond to CR."
This reverts commit 45201d45ed.
8 years ago
Matthew Chen 45201d45ed Respond to CR. 8 years ago
Michael Kirk 9dfbf6e6bc Fix crash presenting settings dialog off main thread
// FREEBIE
8 years ago
Matthew Chen 579da1c768 Refine handling of unsafe filename characters. 8 years ago
Matthew Chen 47a6d844c9 Refine handling of unsafe filename characters. 8 years ago
Matthew Chen 7e1ae33167 Refine changes to debug logs. 8 years ago
Matthew Chen 920c2b1d76 Rework log upload. 8 years ago
Michael Kirk e020b0ff99 Persist default sound so we can use it for fallback notifications
// FREEBIE
8 years ago
Michael Kirk 658b8c3223 CR: typos and doc changes
// FREEBIE
8 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
8 years ago
Matthew Chen 5b9ab0cf5d Auto-disable CallKit privacy in iOS 11 and later. 8 years ago
Matthew Chen 8f22facecc Respond to CR. 8 years ago
Matthew Chen 38ff82ab97 Rebrand OWSAudioPlayer. 8 years ago
Matthew Chen a16c2adda7 Rework conversation settings view. 8 years ago
Matthew Chen 32b87d0e58 Remove custom ringtones. 8 years ago
Matthew Chen efeb00643c Add title for the mute section in conversation settings view. 8 years ago
Matthew Chen e54cf313e8 Use quiet versions of the notification sounds in foreground. 8 years ago
Matthew Chen ed95eec769 Preview sound settings in app settings and conversation settings views. 8 years ago
Matthew Chen 62af7ddc15 Add "none" option for sounds. Use AVPlayer for everything. 8 years ago
Matthew Chen 2c15606923 Respond to CR. 8 years ago
Matthew Chen 99aedca45f Strip out special casing for pre-iOS 9 users. 8 years ago
Michael Kirk 5f305f844f Send ICE updates immediately after sending CallOffer for faster call
connection.

For legacy reasons, the call sender used to wait until after receiving
the call answer before sending the ICE updates. The primary motivation
was that if the receiving user hadn't accepted a new identity change,
rather than just seeing one "Tap to Accept New Safety Number" messages
for a call, they'd see one for the call offer and then a dozen more as
ICE updates trickled in.

We changed that behavior long ago, and effectively all clients will
avoid that case, while sending ICE updates immediately will allow calls
to connect without having to wait for an additional serialized round
trip between the caller and call recipient.

// FREEBIE
8 years ago
Michael Kirk e8c5509f3a Respect system contact ringtones
If CallKit privacy is enabled, we'll always use the system default
ringer.

If CallKit privacy is *not* enabled we'll use any ringtone specified in
the for that contact in the address book, else fall back to the default

// FREEBIE
8 years ago
Matthew Chen e0144dab5f Improve sound settings view. 8 years ago
Matthew Chen 899799af92 Improve sound settings view. 8 years ago
Matthew Chen 5e8f3086de Update call sounds. 8 years ago
Matthew Chen a0f4723fa2 Update call sounds. 8 years ago
Matthew Chen a44a117612 Add custom ringtone sounds. 8 years ago
Matthew Chen cd32895657 Add UI for editing per-thread notification sounds. 8 years ago
Matthew Chen 396fe82707 Add UI for editing per-thread notification sounds. 8 years ago
Matthew Chen dc8b8ca0bd Add per-thread custom notification sounds. 8 years ago
Matthew Chen 9aa02489b8 Custom notification sounds in local notifications. 8 years ago
Matthew Chen a837c5d41b Custom notification sounds. 8 years ago
Matthew Chen 5c3f6b0ee5 Custom notification sounds. 8 years ago
Matthew Chen 5235f97953 Use background task while migrating. 8 years ago
Matthew Chen 81629a87df Fix build break. 8 years ago
Matthew Chen 152c570900 Respond to CR. 8 years ago
Matthew Chen 03670b4868 Rename the view horizon. 8 years ago
Matthew Chen fabbe46114 Clean up ahead of PR. 8 years ago
Matthew Chen 4e1e232825 Flush writes from other processes. 8 years ago
Matthew Chen 1ff4f85247 Improve handling of db modifications while conversation view is not observing. 8 years ago
Matthew Chen 5444fc73b0 Improve handling of db modifications while conversation view is not observing. 8 years ago
Matthew Chen 2ac7716771 Improve handling of db modifications while conversation view is not observing. 8 years ago
Michael Kirk e43d0b1b5a Fix "Share" for attachment with caption
// FREEBIE
8 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
8 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
8 years ago
Michael Kirk 7040437ca6 Handle nil date when formatting
// FREEBIE
8 years ago
Matthew Chen a4855acf44 Don't clear legacy db password until conversion completes. 8 years ago
Matthew Chen d91507d897 Improve the robustness of the migration logic. 8 years ago
Matthew Chen 14122dab54 Fix the storage failure alert. 8 years ago
Michael Kirk 6eb1ce682a Debug file browser
// FREEBIE
8 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
8 years ago
Michael Kirk 6eb1951ee6 Don't stop audio until after CallKit audio session is deactivated
// FREEBIE
8 years ago
Michael Kirk 707ab5f5a8 Minimize changes around call audio activity
// FREEBIE
8 years ago
Michael Kirk 4dd1c7813a Instrument calls to ensure audio session is maintained
// FREEBIE
8 years ago
Michael Kirk abb51b565a Don't de-activate audio sesion when other audio activities are happening
// FREEBIE
8 years ago
Matthew Chen 6935298f6f Improve handling of the not migrated case. 8 years ago
Matthew Chen ceaf028445 Always scroll to bottom after sending attachments. 8 years ago
Matthew Chen d648a258d1 Merge branch 'hotfix/2.19.7' 8 years ago
Matthew Chen abfd333a17 Address Indic script crash. 8 years ago
Matthew Chen 8fdc61c726 Fix failed status messages in message detail view. 8 years ago
Matthew Chen 6f28c75257 Fix glitch in batch processing of incoming messages. 8 years ago
Matthew Chen 4b62faf2f8 Aggressively nag iOS 8 users to upgrade iOS. 8 years ago
Michael Kirk 3d5f7e6bf3 Clean up logging
- tag all log lines for easier filtering
- use up-to-date database path

// FREEBIE
8 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
8 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
8 years ago
Matthew Chen 0944c2661e Respond to CR. 8 years ago
Matthew Chen 48b6c3dafb Refine message date/time formatting. 8 years ago
Michael Kirk a23f1b86ef nullability annotations for TSGroupModel
- add readonly where possible
- group members needn't be a mutable array

// FREEBIE
8 years ago
Michael Kirk cb8767d19e CR: duplicate comments, DRY
// FREEBIE
8 years ago
Michael Kirk 44678e3951 CR: weak capture and clearer comments
// FREEBIE
8 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
8 years ago
Matthew Chen e3776015bb Respond to CR. 8 years ago
Matthew Chen 246a56e925 Respond to CR. 8 years ago
Matthew Chen 33686594e9 Tweak debug logging. 8 years ago
Matthew Chen 44cbf142a1 Respond to CR. 8 years ago
Matthew Chen 3e8b08e19b Defer handling app delegate hooks until app is ready. 8 years ago
Matthew Chen ba42ac73d8 Revisit TODOs in the SAE work. 8 years ago
Matthew Chen 9c8178653d Revisit TODOs in the SAE work. 8 years ago
Matthew Chen 7c199faf8f Respond to CR. 8 years ago
Matthew Chen 98843cd45c Let users submit debug logs if app launch fails. 8 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
8 years ago
Matthew Chen 862172072c Respond to CR. 8 years ago
Matthew Chen bd0f601792 Respond to CR. 8 years ago
Matthew Chen 6b357f9445 Respond to CR. 8 years ago
Matthew Chen 43765ef3b5 Respond to CR. 8 years ago
Matthew Chen bbd689bfd0 Add protocol context to protocol kit. 8 years ago
Matthew Chen d3e16583eb Add protocol context to protocol kit. 8 years ago
Matthew Chen 074046b98e Add protocol context to protocol kit. 8 years ago
Matthew Chen 71782e0369 Add protocol context to protocol kit. 8 years ago
Matthew Chen 122ef91e57 Add protocol context to protocol kit. 8 years ago
Michael Kirk a1d3073705 Cannot open settings from share extension
// FREEBIE
8 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
8 years ago
Michael Kirk 7734958eec Make "swipe for info" RTL compatible
// FREEBIE
8 years ago
Michael Kirk 54f7c298b7 Only initiate "show details" pan gesture when swiping back
// FREEBIE
8 years ago
Michael Kirk e3469649f7 Fix receiving calls
// FREEBIE
8 years ago
Matthew Chen 11cdd2790e Fix layout of experience upgrade view on iPhone X. 8 years ago