Commit graph

708 commits

Author SHA1 Message Date
Matthew Chen
5ce39337ed Handle malformed protos. 2018-04-16 16:15:46 -04:00
Michael Kirk
13a432b9de Limit attachment caption length to 2k bytes
// FREEBIE
2018-04-13 17:57:09 -04:00
Matthew Chen
b8f8a3017a Apply design changes to home view. 2018-04-11 09:34:37 -04:00
Matthew Chen
ca1f8efdad Move 'never clear' view to proper subfolder. 2018-04-10 13:09:18 -04:00
Fredrik Lillejordet
3a47422b31 class reference in sources 2018-04-10 13:04:56 -04:00
Fredrik Lillejordet
d16bffe6c1 forget target reference to new class in PR 2018-04-10 13:04:22 -04:00
Michael Kirk
c56e8acc51 QuotedReplyModel from SSK->SignalMessaging
// FREEBIE
2018-04-09 12:47:56 -04:00
Matthew Chen
6830d4e8cb Apply message bubble view to message details view. 2018-04-06 12:35:46 -04:00
Matthew Chen
7f0fa1228e Extract message bubble view. 2018-04-06 12:32:09 -04:00
Matthew Chen
10b4ade55a Refine appearance of quoted reply message cells. 2018-04-05 10:24:42 -04:00
Michael Kirk
6874a9e28e Convert to swift
// FREEBIE
2018-04-04 10:59:04 -04:00
Michael Kirk
2580c690cb CR: Use LRU Cache for storing system sounds
// FREEBIE
2018-04-03 16:28:33 -04:00
Michael Kirk
00e5e1b0d6 Fixup some tests
// FREEBIE
2018-04-03 11:29:05 -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
c8012d3891 Bubble collapse. 2018-04-02 10:07:15 -04:00
Matthew Chen
cb00b22870 Bubble collapse. 2018-04-02 10:07:15 -04:00
Matthew Chen
041b28dd79 Elaborate debug UI for messages. 2018-04-02 10:07:15 -04:00
Matthew Chen
d0c691bb7f Lazy attachment restores. 2018-04-02 09:27:34 -04:00
Michael Kirk
4eadd84abc Don't obscure "Unlock" button with keyboard
// FREEBIE
2018-03-29 22:45:06 -04:00
Michael Kirk
875321cecc Reflector configuration supports per-country code
Also update reflector hosts/policy

// FREEBIE
2018-03-28 17:39:45 -04:00
Matthew Chen
cf0e6fce09 Add screen lock feature. 2018-03-22 15:49:31 -04:00
Matthew Chen
1612642c26 Add screen lock feature. 2018-03-22 15:49:31 -04:00
Michael Kirk
0025661a8d Extract GradientView
// FREEBIE
2018-03-20 17:29:35 -04:00
Matthew Chen
fed524ba16 Rework database snapshot representation, encryption, etc. 2018-03-20 11:23:56 -04:00
Matthew Chen
ca7c75a081 Rework database snapshot representation, encryption, etc. 2018-03-20 11:23:56 -04:00
Michael Kirk
ba2923bae3 remove unused category
// 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
Matthew Chen
76b4deffe4 Respond to CR. 2018-03-14 09:27:39 -03:00
Matthew Chen
30065493a3 Implement backup import logic. 2018-03-14 09:27:39 -03:00
Matthew Chen
04c527a0f4 Implement backup import logic. 2018-03-14 09:27:39 -03:00
Matthew Chen
593f7da72d Upload test file to CloudKit. 2018-03-12 16:40:07 -03:00
Matthew Chen
d06ad25d77 Sketch out incremental backup manager and settings view. 2018-03-12 16:40:07 -03:00
Matthew Chen
b296cfb893 Sketch out incremental backup manager and settings view. 2018-03-12 16:40:07 -03:00
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
2018-03-09 17:31:44 -05:00
Michael Kirk
a1de99f1f1 Merge tag '2.21.0.9' 2018-03-06 16:43:33 -05:00
Michael Kirk
79ee5ed216 Be more conservative about logging legacy users into "Recents"
// FREEBIE
2018-03-05 21:32:35 -05:00
Michael Kirk
1d3831eccd Registration Lock reminder view
Also fixed: Don't lose PIN across registrations

// FREEBIE
2018-03-05 09:53:09 -05:00
Michael Kirk
e8f4a7bfe8 Merge tag '2.21.0.4' 2018-03-03 11:04:11 -05:00
Michael Kirk
95011bdfed order messageReceived sounds in bundle
// FREEBIE
2018-03-03 09:54:04 -05:00
Matthew Chen
baf6fcc535 Add 2FA registration view. 2018-03-02 10:55:00 -05:00
Matthew Chen
e12a1e984a Work on two-factor auth settings UI. 2018-03-01 15:38:59 -05:00
Michael Kirk
fa37fdd300 Fix legacy sounds for voip pushes
This way users who were unknowingly upgraded in the night will continue
to hear the ka-klunk until they've seen the splash screen announcing the
feature.

// FREEBIE
2018-03-01 10:28:05 -05:00
Michael Kirk
e5ab6f101b Clean up audio files
- remove unused classic-ringtone
- move classic with the rest of the message sounds

// FREEBIE
2018-03-01 10:28:05 -05:00
Michael Kirk
cf6dfe08bb Custom audio notifications upgrade experience
TODO: update art
2018-02-27 15:14:20 -05:00
Michael Kirk
f1f7f87457 Use aifc files for all notification sounds so we can confidently copy
them over the statically named "NewMessage.aifc" which is used by
fallback notifications

// FREEBIE
2018-02-26 15:58:09 -05:00
Michael Kirk
e020b0ff99 Persist default sound so we can use it for fallback notifications
// FREEBIE
2018-02-26 15:41:35 -05:00
Matthew Chen
38ff82ab97 Rebrand OWSAudioPlayer. 2018-02-26 14:47:57 -05:00
Matthew Chen
306af29d6f Restore "sonar ping" for "call connecting." 2018-02-26 14:47:57 -05:00
Matthew Chen
32b87d0e58 Remove custom ringtones. 2018-02-26 14:47:57 -05:00
Matthew Chen
e54cf313e8 Use quiet versions of the notification sounds in foreground. 2018-02-26 14:46:17 -05:00
Matthew Chen
55b9aa4089 Preserve 'classic' Signal notification and ringtone for legacy users. 2018-02-26 14:46:17 -05:00
Matthew Chen
390cf3c80a Revive the 'classic' Signal notification and ringtone. 2018-02-26 14:46:17 -05:00
Matthew Chen
44e38709d6 Update minimum iOS version to 9.0. 2018-02-26 14:13:38 -05:00
Matthew Chen
710d164186 Update minimum iOS version to 9.0. 2018-02-26 14:13:38 -05:00
Matthew Chen
899799af92 Improve sound settings view. 2018-02-23 12:53:43 -05:00
Matthew Chen
5e8f3086de Update call sounds. 2018-02-23 12:53:43 -05:00
Matthew Chen
a44a117612 Add custom ringtone sounds. 2018-02-23 12:53:43 -05:00
Matthew Chen
9aa02489b8 Custom notification sounds in local notifications. 2018-02-23 12:53:42 -05:00
Matthew Chen
5c3f6b0ee5 Custom notification sounds. 2018-02-23 12:53:42 -05:00
Michael Kirk
6eb1ce682a Debug file browser
// FREEBIE
2018-02-18 16:24:29 -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
7ea1f3d926 Fix handling of file types in SAE. 2018-02-15 13:47:05 -05:00
Michael Kirk
debd556e09 Fix notification % escaping, debug UI
Consolidated the notifications debug UI (and fixed it) to make testing
this a bit easier.

// FREEBIE
2018-02-13 08:29:58 -08:00
Matthew Chen
122ef91e57 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
d22fc664f2 more granular key access
// FREEBIE
2018-01-31 16:08:03 -08:00
Matthew Chen
74cd37dd7c Clean up ahead of PR. 2018-01-25 13:27:17 -05:00
Matthew Chen
2af858c529 Add message approval view. 2018-01-25 13:26:39 -05:00
Matthew Chen
b9bd21e73f Improve presentation of text attachments in attachment approval view. 2018-01-25 13:24:22 -05:00
Matthew Chen
0cc7f3e00e Clean up ahead of PR. 2018-01-25 11:00:38 -05:00
Matthew Chen
c5079ed3d7 Add support for key specs. 2018-01-25 11:00:38 -05:00
Michael Kirk
468dedf581 Use debug configuration when building Signal for tests
allows proper step-through debugging of CocoaPods

// FREEBIE
2018-01-25 11:00:38 -05:00
Michael Kirk
6297137924 Disable optimizations when building tests for SignalMessaging
// FREEBIE
2018-01-25 11:00:38 -05:00
Matthew Chen
5ba5b763e4 Add tests around database conversion. 2018-01-25 11:00:38 -05:00
Matthew Chen
dc73342573 Convert databases if necessary. 2018-01-25 11:00:38 -05:00
Matthew Chen
6b51be75a5 Revert "Set preprocessor symbols for internal builds."
This reverts commit a91056c5e1.
2018-01-24 09:35:28 -05:00
Matthew Chen
a91056c5e1 Set preprocessor symbols for internal builds. 2018-01-24 09:34:23 -05:00
Michael Kirk
baa312f449 Timer button with duration label
// FREEBIE
2018-01-22 10:28:51 -05:00
Matthew Chen
4e15e9bf2c Add Signal "internal" scheme with DEBUG and INTERNAL flags set for signal project. 2018-01-18 13:19:01 -05:00
Matthew Chen
a21bc4f4b4 Convert SAE scheme to a shared scheme. 2018-01-18 13:19:01 -05:00
Michael Kirk
94d58b88b8 Play video inline in approval view
Previously we launched the MPMoviePlayerController

// FREEBIE
2018-01-16 17:57:14 -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
272a90d269 Add import back up UI. Begin work on import backup logic. 2018-01-11 10:42:57 -05:00
Matthew Chen
980b3d25a7 Rework "export backup" UI. 2018-01-11 10:42:27 -05:00
Matthew Chen
8769fb07cf Write backup to encrypted zip. 2018-01-11 10:40:49 -05:00
Matthew Chen
9e89502fdb Let users send to non-contacts, non-threads in SAE. 2018-01-10 17:56:30 -05:00
Michael Kirk
412fe2735e Rename FullImageViewController -> MediaDetailViewController
// FREEBIE
2018-01-08 01:10:32 -05:00
Michael Kirk
86d61eee30 Custom video player layer to avoid "double present/dismiss"
// FREEBIE
2018-01-08 01:10:32 -05:00
Michael Kirk
7d0acc94ff cleanup
// FREEBIE
2017-12-11 19:40:35 -05:00
Michael Kirk
65f79770ac rebase fixup 2017-12-11 14:11:58 -05:00
Michael Kirk
90e9b4a4f2 WIP - send all video types 2017-12-11 14:05:55 -05:00
Michael Kirk
d3e7c99a63 Attachment approval: cancel/confirm to top/bottom toolbars
- avoid double-submit by disabling after hitting send.
- Animate SAE dismissal as modal
  Requires hiding the load view
- attachment is centered in screen
- add gradient to ensure controls are visible
- Fix clamp constraints - I think this was a typo
  Otherwise we couldn't show an image which was 1" wide by 2" tall
- set max zoom, hide scroll indicators
- use media view
- slower panning feels right
- white send button
- can share GIF, static, and sort of video...
- Play button for attachment approval
  - move to image assets so we can use it in SAE
  - slightly larger button for full-screen approval view
  - don't launch redundant fullscreen UI for images when in approval view
- fix scrollOffset in AttachmentApproval
- consolidate view initialization logic in loadView and fix white background
- CR: more legible arithmetic

// FREEBIE
2017-12-11 13:58:03 -05:00
Matthew Chen
74efcb9041 Rework thread safety in profile manager. 2017-12-11 12:28:28 -05:00
Matthew Chen
911c4d380b Rework thread safety in profile manager. 2017-12-11 12:28:28 -05:00
Michael Kirk
ddd2004824 track dyload time 2017-12-08 13:35:19 -05:00
Michael Kirk
d9cca77e23 update header references
// FREEBIE
2017-12-08 13:32:52 -05:00
Michael Kirk
dd1795e337 fixup rebae 2017-12-07 17:12:03 -05:00
Michael Kirk
3ecf0a7537 Cancelling dismisses share extension, remove "import with signal"
Usinig the new ShareViewDelegate to dismiss the share extension, might
have broken the "import with signal" functionality. But because we
want to remove it anyway, I've done that now, rather than fix it up.

// FREEBIE
2017-12-07 17:12:03 -05:00
Matthew Chen
345323fe8a Add Estonian and Taiwanese Chinese localizations. 2017-12-07 14:46:12 -05:00
Matthew Chen
f7bcf1d04d Fix tests. 2017-12-07 14:44:38 -05:00
Matthew Chen
36703d3bbd Add asserts around Swift singletons. 2017-12-07 13:58:27 -05:00
Matthew Chen
8312614cf7 Respond to CR. 2017-12-07 13:53:13 -05:00
Matthew Chen
99f0b9d3e8 Fix issues around statics. 2017-12-07 12:34:02 -05:00
Michael Kirk
3f6f881d3f Use assets from duplicated main bundle
// FREEBIE
2017-12-07 10:14:30 -05:00
Michael Kirk
eca19e5874 Reconcile MediaMessageView zoom behavior with AppExtension
Previously it was predicated on UIApplication.shared

// FREEBIE
2017-12-07 10:14:30 -05:00
Michael Kirk
89b9887f1d Make DeviceSleepManager extension compatible
// FREEBIE
2017-12-07 10:13:47 -05:00
Michael Kirk
654d345469 remove null references to moved certificates 2017-12-07 10:13:06 -05:00
Michael Kirk
c52192295b fixup rebase. move jobs to proper dir 2017-12-07 10:13:06 -05:00
Michael Kirk
56fe9d057d Attachment Approval
// FREEBIE
2017-12-07 10:13:06 -05:00
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
2017-12-07 10:13:06 -05:00
Matthew Chen
848f055da1 Add SAE error views. 2017-12-06 21:38:53 -05:00
Matthew Chen
310cf1330d Continue conversion of app setup. 2017-12-06 10:38:57 -05:00
Matthew Chen
69e0bcd308 Fix tests. 2017-12-06 10:36:12 -05:00
Matthew Chen
9da165b846 Continue conversion of app setup. 2017-12-05 11:19:11 -05:00
Matthew Chen
ce899edf10 Respond to CR. 2017-12-05 10:44:11 -05:00
Matthew Chen
b4e8df79da Migrate environment to SignalMessaging. 2017-12-05 10:29:29 -05:00
Matthew Chen
a16058e477 Migrate environment to SignalMessaging. 2017-12-05 10:29:29 -05:00
Matthew Chen
6d87df88aa Migrate environment to SignalMessaging. 2017-12-05 10:29:28 -05:00
Matthew Chen
c817aa51b3 Migrate environment to SignalMessaging. 2017-12-05 10:28:46 -05:00
Michael Kirk
e3b0333b97 CR: Separate class files
// FREEBIE
2017-12-04 15:29:14 -05:00
Michael Kirk
cd440b839f Consolidate search logic
// FREEBIE
2017-12-04 13:53:10 -05:00
Michael Kirk
71bafcc8f0 Search SignalAccounts by profile name
...and fixup some tests
2017-12-04 12:52:59 -05:00
Michael Kirk
2af818b3ba Make SignalMessaging AppExtension safe
// FREEBIE
2017-12-04 12:50:28 -05:00
Matthew Chen
bf21d0c0ed Enable logging in SAE; rework log file management to include multiple log directories. 2017-12-01 12:55:47 -05:00
Matthew Chen
8cc33b3de1 Refine loading view of share extension. 2017-12-01 10:48:18 -05:00
Matthew Chen
f728f5c09b Incorporate l10n strings from main app into SAE. 2017-12-01 09:46:17 -05:00
Matthew Chen
074664f735 Revert "Modify l10n string extraction script to copy strings to SAE."
This reverts commit c61490c0b4.
2017-12-01 09:42:06 -05:00
Matthew Chen
efe0758e3d Revert "Modify l10n string download script to copy strings to SAE."
This reverts commit 9f31c048a2.
2017-12-01 09:41:59 -05:00
Matthew Chen
9f31c048a2 Modify l10n string download script to copy strings to SAE. 2017-12-01 09:41:14 -05:00
Matthew Chen
c61490c0b4 Modify l10n string extraction script to copy strings to SAE. 2017-12-01 09:41:14 -05:00
Matthew Chen
e7b32899cb Sketch out SAE load screen; make a number of infrastructure changes. 2017-12-01 09:37:52 -05:00
Matthew Chen
61b33b1a45 Make SignalMessaging a build dependency of the share extension. 2017-11-30 14:57:03 -05:00
Matthew Chen
2aafdcf577 Add app extension context, bridging header and PCH to app extension. 2017-11-30 14:57:03 -05:00
Matthew Chen
f896bf99d5 Update share extension capabilities. 2017-11-30 14:09:10 -05:00
Matthew Chen
8706d8f599 Update share extension capabilities. 2017-11-30 14:09:10 -05:00
Matthew Chen
66fae5bd54 Clean up ahead of PR. 2017-11-30 10:07:39 -05:00
Matthew Chen
cd11ec5698 Add app group, share keychain. Take a first pass at file migration to shared data directory. 2017-11-30 09:49:01 -05:00
Michael Kirk
961727814b Move pinning certificates into App
// FREEBIE
2017-11-29 13:58:27 -08:00
Michael Kirk
a11d83187b WIP: Framework-friendly - compiles but crashes on launch
// FREEBIE
2017-11-29 13:58:27 -08:00
Michael Kirk
b56f0e0d25 Pod setup for SignalMessaging framework
// FREEBIE
2017-11-29 13:58:27 -08:00
Michael Kirk
de028404bb Shared framework between app and extension
// FREEBIE
2017-11-29 13:58:27 -08:00
Michael Kirk
d96eb8932b ShareExtension template
Only modification was to target down to iOS9

(targeting iOS8 failed to build)

// FREEBIE
2017-11-29 13:58:27 -08:00
Matthew Chen
5ef9d53c91 Update conversation view UI to reflect unread state. 2017-11-21 17:53:52 -05:00
Matthew Chen
d9fcfdeeb7 Fix deadlock when responding to contacts sync messages. 2017-11-21 11:21:08 -05:00
Matthew Chen
9d4ec557dc Update l10n strings; add Persian l10n. 2017-11-16 13:35:54 -05:00
Matthew Chen
5e61307ce3 Don't ask for microphone permissions if app is not active.
// FREEBIE
2017-11-09 02:58:51 -05:00
Matthew Chen
2d21e2ae2c Fix build warnings from XCode 9. 2017-11-09 02:52:44 -05:00
Matthew Chen
3952f717a5 Add Burmese l10n.
// FREEBIE
2017-11-06 15:15:22 -05:00
Matthew Chen
e07a240ee5 Merge tag '2.18.0.9' 2017-11-03 14:23:47 -04:00
Michael Kirk
81cff837ae Include root certs from pki.goog
// FREEBIE
2017-11-03 13:55:12 -04:00
Michael Kirk
a30533e7b5 Add GTSGIAG3 to censorship circumvention trust store
openssl x509 -outform der -in GIAG3.pem -out GIAG3.crt

// FREEBIE
2017-11-03 11:24:57 -04:00
Michael Kirk
a63a767bf2 connecting ping quieter, ringer is louder
- outring: Raised gain on ringer, max is now  -0.6 dB
- outring: clipped hiss
- connecting-ping: reduced volume, max is now -17.8 dB

- remove unused audio files

// FREEBIE
2017-11-02 08:49:46 -04:00
Matthew Chen
9cc4521d07 Respond to CR.
// FREEBIE
2017-10-26 12:09:36 -04:00
Matthew Chen
bcf83a4c8e Rework handling of oversize text messages.
// FREEBIE
2017-10-26 11:56:03 -04:00
Matthew Chen
3927815a35 Fix tests broken by the JSQ rewrite.
// FREEBIE
2017-10-25 16:08:15 -04:00
Michael Kirk
d87f000051 Interactive/Cancelable slide left for details
// FREEBIE
2017-10-24 15:29:03 -07:00
Matthew Chen
722fc4d7a7 Fix size of message previews.
// FREEBIE
2017-10-24 17:12:26 -04:00
Matthew Chen
5cde74f505 Add Hebrew l10n.
// FREEBIE
2017-10-24 15:59:37 -04:00
Matthew Chen
9b57df67e0 Fix broken build.
// FREEBIE
2017-10-24 09:53:50 -04:00
Michael Kirk
1fee5d97e6 Merge branch 'release/2.18.0' 2017-10-23 16:02:11 -07:00
Michael Kirk
efd58022d0 bump version
// FREEBIE
2017-10-23 16:01:37 -07:00
Matthew Chen
bd5639baaf Linkify text messages.
// FREEBIE
2017-10-19 22:41:32 -04:00
Matthew Chen
032ec59d1c Respond to CR.
// FREEBIE
2017-10-16 21:05:29 -07:00
Matthew Chen
3723a4845f Restore message cell footers.
// FREEBIE
2017-10-16 20:41:14 -07:00
Matthew Chen
c2f07bb3d8 Restore message cell footers.
// FREEBIE
2017-10-16 20:41:14 -07:00
Michael Kirk
0f859d6b20 Merge branch 'release/2.18.0' 2017-10-16 12:27:20 -07:00
Michael Kirk
3080cb512b Compose View: collation index and group search
- Include table index for contacts
- Fix extra spacing in OWS table view
- Separate search results into contact/invite sections
- Include groups in search results when composing new message
- Compose Screen search matches on group member names

// FREEBIE
2017-10-16 12:22:02 -07:00
Matthew Chen
5621fe893c Clean up ahead of PR.
// FREEBIE
2017-10-12 16:23:48 -04:00
Matthew Chen
fb408f980c Remove JSQ.
// FREEBIE
2017-10-12 16:23:48 -04:00
Michael Kirk
df15c904bc Rework push registration
== Account Registration ==

Not complete until push tokens are uploaded

== Remote Notifications Registration ==

Extracted from PushManager

- wait for notification-settings registration to complete before
  requesting push tokens, otherwise it's possible token requests will
  be ignored.

- Less state required for push notification callbacks, specifically, we
  no longer need to ensure we've created a promise before the
  registration delegate methods get called.

- no more TOCFuture in Signal-iOS (still in SSK for now). It's not in
  cases of inexplicable behavior - one a recently, push notification
  premature free, in redphone, and more popular use, and I've seen two
  futures inexplicably being nil.  Instead, let's consolidate around
  PromiseKit for popularly used, maintained, strongly-typed futures.

- separate logic for registering for vanilla push/voip notifications
  (few dependencies) from responding to UILocalNotifications (lots of
  dependencies). Ultimately I'd like to consolidate the remaining
  UILocalNotifications logic with the existing NotificationsManager

== Misc ==

more debug logging
more uniform logging
remove stale logic around newly registered user

// FREEBIE
2017-10-12 12:02:22 -04:00
Matthew Chen
5999178e78 Remove FLAnimatedImage.
// FREEBIE
2017-10-10 09:50:13 -04:00
Michael Kirk
2e196e21c6 update third party dependencies
// FREEBIE
2017-10-06 17:56:29 -04:00
Michael Kirk
ff2f9ebaf0 fix compiling on 32bit.
// FREEBIE
2017-10-05 13:02:38 -04:00
Matthew Chen
a0c9a84390 Clean up ahead of PR.
// FREEBIE
2017-10-02 13:37:32 -04:00
Matthew Chen
789cea118d Pull out GifDownloader class.
// FREEBIE
2017-10-02 13:37:32 -04:00
Matthew Chen
3b9726a4fa Sketch out the GIF picker.
// FREEBIE
2017-10-02 13:37:32 -04:00
Matthew Chen
206f96c9af Sketch out GIF picker.
// FREEBIE
2017-10-02 13:37:32 -04:00
Matthew Chen
27e5a2f1b2 Sketch out GIF picker.
// FREEBIE
2017-10-02 13:37:32 -04:00
Matthew Chen
9710964e38 Sketch out the GIF manager.
// FREEBIE
2017-10-02 13:37:32 -04:00
Michael Kirk
e2445e6ed2 Fix RTL bubbles in conversation and message detail view
// FREEBIE
2017-09-28 16:34:10 -04:00
Matthew Chen
9f9ac746d1 Sketch out message metadata view.
* Show message metadata view from conversation view.
* Pull out MediaMessageView class.
* Track recipient read timestamps.
* Add per-recipient status to message metadata view.
* Add share button to message metadata view.

// FREEBIE
2017-09-25 17:25:49 -04:00
Matthew Chen
11cadf4200 Send, receive & show read receipts to senders/from receivers.
* Send read receipts to senders.
* Honor "send read receipts" preference.
* Process read receipts from recipients.
* Refactor "mark as read" logic.
* Serialize and apply recipient read receipts received before sync transcript.
* Show recipient read receipts in conversation view.

// FREEBIE
2017-09-22 14:24:17 -04:00
Matthew Chen
bd416176ae Add stress group to debug UI.
// FREEBIE
2017-09-22 00:31:13 -04:00
Matthew Chen
3eaeb4e0ec Add read receipts manager.
* Simplify read receipts plumbing.
* Rework incoming read receipts handling.
* Rework outgoing read receipts handling.
* Make "database view registration complete" check thread-safe.
* Don't send sync messages to self if no linked devices.

// FREEBIE
2017-09-21 16:23:03 -04:00
Matthew Chen
183f0f1ccd Respond to CR.
// FREEBIE
2017-09-19 17:45:18 -04:00
Matthew Chen
80e5f281c6 Rename app preferences class.
// FREEBIE
2017-09-19 17:35:42 -04:00
Matthew Chen
3367292ba0 Merge branch 'hotfix/2.16.1' 2017-09-19 17:25:24 -04:00
Matthew Chen
5be2014ec7 Create Flat UI rounded button class.
// FREEBIE
2017-09-12 14:45:57 -04:00
Matthew Chen
ab00342d67 Add modal activity indicator view.
// FREEBIE
2017-09-11 12:49:14 -04:00
Matthew Chen
69816cdf0e Convert DataSource to Objective-C.
// FREEBIE
2017-09-11 10:20:48 -04:00
Matthew Chen
2282733fa9 Add data source class.
// FREEBIE
2017-09-11 10:20:48 -04:00
Michael Kirk
0ec2ac862a Marquee label for callview controller
// FREEBIE
2017-09-11 10:01:21 -04:00
Michael Kirk
ad76155bdd audit/fix up supported l10ns (added km and lt)
As policy we don't include a language in Signal until it has at least
80% of strings translated. We don't currently remove languages that fall
below that threshold.

There are two things that must happen to add a localization in Signal.

1. Pull the Localizable.strings from transifex for each language, add
   them to git.
2. Add the localization to the Xcode project file

These four languages were in the repository (step 1) but not properly
added to the project file (step 2):

- khmer (km)
- lithuanian (lt)
- hebrew (he)
- persian (fa)

Of these, only khmer and lithuanian were sufficiently translated, so I
added them properly to the Xcode project file, making them available to
our users.

To make this process slightly easier to track in the future, I've
removed the insufficiently complete `he` and `fa` files from the
repository. Once they fall above 80% translated they will be
automatically downloaded by our sync-translations script, appearing as
new files, being the cue to the developer to add those new translations
to the project (step 2).

Note: the fa/he translations were never available to users, so we're not
going removing anyones existing functionality.

// FREEBIE
2017-09-11 09:55:31 -04:00
Matthew Chen
c106794fe8 Rename conversation view.
// FREEBIE
2017-09-06 14:13:18 -04:00
Matthew Chen
928525c31e Rename home view.
// FREEBIE
2017-09-06 13:59:39 -04:00
Matthew Chen
fd4f00fa4d Rename new contact thread view.
// FREEBIE
2017-09-06 13:55:01 -04:00
Michael Kirk
ae174d4a87 proper handling for multibyte characters
// FREEBIE
2017-09-01 18:15:02 -04:00
Matthew Chen
cc048b3971 Respond to CR.
// FREEBIE
2017-08-30 12:46:21 -04:00
Matthew Chen
5fcf89dff1 Ignore "GIF of death."
// FREEBIE
2017-08-30 12:46:21 -04:00
Matthew Chen
44f071bdfb Respond to CR.
// FREEBIE
2017-08-29 12:20:58 -04:00
Matthew Chen
6f5437ee0d Revisit the [UIScrollView _adjustContentOffsetIfNecessary] issue. Fix glitches in the initial scroll state in message view. Don't reset scroll state when returning to the message view.
// FREEBIE
2017-08-29 12:20:58 -04:00
Matthew Chen
7f717c0ca6 Revisit the [UIScrollView _adjustContentOffsetIfNecessary] issue. Fix glitches in the initial scroll state in message view. Don't reset scroll state when returning to the message view.
// FREEBIE
2017-08-29 12:20:58 -04:00
Michael Kirk
6c63009e9e Dedicated "Profile" debug section
// FREEBIE
2017-08-29 10:35:54 -04:00
Michael Kirk
526d5e33b9 Sync profile key to sibling devices when updating contact
// FREEBIE
2017-08-29 10:35:18 -04:00
Matthew Chen
2aaa9155de Add view to Crop and scale avatar.
// FREEBIE
2017-08-25 16:02:15 -04:00
Matthew Chen
2c301feeb7 Add view to Crop and scale avatar.
// FREEBIE
2017-08-25 16:02:15 -04:00
Michael Kirk
bde40a1f9c Ensure avatar upates right after profile change.
// FREEBIE
2017-08-25 12:40:19 -04:00
Michael Kirk
f6720f9afa properly clear all cached avatar images
// FREEBIE
2017-08-25 12:40:19 -04:00
Matthew Chen
14d472781f Respond to CR.
// FREEBIE
2017-08-21 17:13:36 -04:00
Matthew Chen
5f2f8ec6d8 Start reworking the contact offers.
// FREEBIE
2017-08-21 17:05:42 -04:00
Michael Kirk
72fbb02028 aes-gcm via openssl
// FREEBIE
2017-08-21 16:37:16 -04:00
Matthew Chen
08347478a2 Implement alternative approach to veto-able back buttons.
// FREEBIE
2017-08-21 10:10:22 -04:00
Michael Kirk
7c386b1d1e CR: RTL, trim profile names, ensure not empty
- RTL support with localizable format strings
- Trim decrypted profile names
- more rigorous empty check

// FREEBIE
2017-08-17 12:24:31 -04:00
Michael Kirk
3d9796db77 Debug actions for calling
For testing stale hangup/busy messages

Extracted MessageSender promise API
Moved call debug actions to their own page

// FREEBIE
2017-08-11 09:21:11 -04:00
Matthew Chen
6ec756de44 Move profile manager to Signal.
// FREEBIE
2017-08-04 09:45:33 -04:00
Matthew Chen
282ac4bb29 Add “share profile” row to conversation settings.
// FREEBIE
2017-08-02 10:50:44 -04:00
Matthew Chen
873f5208c4 Sketch out the profile view.
// FREEBIE
2017-08-01 16:17:59 -04:00
Matthew Chen
72ea096970 Sketch out the profile view.
// FREEBIE
2017-08-01 16:17:59 -04:00
Michael Kirk
d809a30fa2 fix tests
// FREEBIE
2017-07-28 17:17:19 -04:00
Michael Kirk
020bd48496 Fix tests
// FREEBIE
2017-07-28 14:57:21 -04:00
Matthew Chen
75c7cc4abf Add debug UI to enable manual censorship circumvention.
// FREEBIE
2017-07-28 11:15:09 -04:00
Matthew Chen
75fb55e018 Merge tag '2.14.1.2'
// FREEBIE
2017-07-27 15:09:51 -04:00
Matthew Chen
31ab9a00da Add script to extract and gather analytics event names.
// FREEBIE
2017-07-27 12:26:02 -04:00
Matthew Chen
1009b1ba77 Fix tests.
// FREEBIE
2017-07-26 13:26:49 -04:00
Matthew Chen
f0cecfad11 Surface memory leaks by logging the deallocation of view controllers.
// FREEBIE
2017-07-26 11:59:00 -04:00
Matthew Chen
863fd27abe Respond to CR.
// FREEBIE
2017-07-26 10:52:15 -04:00
Michael Kirk
a5f067936c migration to fix any half-registered users
// FREEBIE
2017-07-24 13:01:43 -04:00
Matthew Chen
04fb3642b2 Remove .xib for home view cells; adapter home view to RTL.
// FREEBIE
2017-07-21 14:49:12 -04:00
Matthew Chen
e15432720c Add arabic translation; begin work on right-to-left layout.
// FREEBIE
2017-07-21 14:48:52 -04:00
Michael Kirk
84e9c33f12 Optionally link Metal/MetalKit frameworks used by WebRTC
// FREEBIE
2017-07-19 15:52:42 -04:00
Michael Kirk
17b1b70726 Remove verification debug UI
There is a more true-to-life way to set verification state - mark
someone as verified or default via the SN UI.

If they are marked as verified, you can mark them as no-longer-verified
by toggling a keychange in the debug UI

// FREEBIE
2017-07-19 09:43:30 -04:00
Matthew Chen
81555d1225 Add “new contact” and “add to existing contact” buttons in 1:1 conversation settings view.
// FREEBIE
2017-07-12 13:18:14 -04:00
Michael Kirk
c0aa455714 fix tests
// FREEBIE
2017-07-12 09:44:11 -04:00
Michael Kirk
3eb90ba383 Disable singleton assert for tests
introduce a new build configuration, used by tests, which disables
singleton asserts

// FREEBIE
2017-07-11 16:36:50 -04:00
Michael Kirk
82180f6a97 fix compilation problems
// FREEBIE
2017-07-11 16:36:50 -04:00
Matthew Chen
d639d6557e Add owsFail free function for swift.
// FREEBIE
2017-07-11 16:20:20 -04:00
Matthew Chen
0244e134f5 Block device from sleeping during certain activities.
// FREEBIE
2017-07-06 17:35:47 -04:00
Matthew Chen
944cd7beef Show app update nag on launch if necessary.
// FREEBIE
2017-07-06 12:56:27 -04:00
Matthew Chen
284d55ef6c Rework the debug UI.
* Move debug stats to the about view.
* Convert about view to OWSTableView.
* Add DebugUIPage.
* Add non-thread Debug UI.

// FREEBIE
2017-07-04 11:57:13 -04:00
Matthew Chen
6a5fe94d59 Improve perf of attachment stream file path upgrade.
// FREEBIE
2017-06-21 10:38:41 -04:00
Michael Kirk
4f3278db1e Fix layout of timestamp for system messages
Incorporate topLabelSize into cell size for system messages.

We are using the term "bubble size" to describe the interaction specific
views of a collection cell. It's a crappy name, but coincides with other
usage.

// FREEBIE
2017-06-19 09:16:37 -04:00
Matthew Chen
c7426f9343 Avoid crashing on startup due to database view creation.
* Substitute unread view for unseen view until unseen view is ready.
* Register as many views as possible async.
* Perform blocking, safe migrations before async registration of views.
* Add debug settings view for internal app stats.
* Show blocking overlay until async registration of database views is complete.
* Convert version migrations to use AppVersions.

// FREEBIE
2017-06-15 13:44:30 -04:00
Matthew Chen
11ca51c95f Show verification state banner. Show verification state in conversation settings view.
// FREEBIE
2017-06-09 16:21:59 -04:00
Matthew Chen
58ebebc97f Move QR code scanning to a separate view.
// FREEBIE
2017-06-09 07:48:48 -04:00
Matthew Chen
3508feaec3 Convert FingerprintViewController to programmatic layout.
// FREEBIE
2017-06-08 14:55:26 -04:00
Michael Kirk
d77addc01e extract session state debug utils into section
// FREEBIE
2017-06-07 10:56:23 -04:00
Matthew Chen
b6ddea9eae Sketch out OWSIdentityManager.
// FREEBIE
2017-06-07 10:18:16 -04:00