Commit graph

668 commits

Author SHA1 Message Date
Matthew Chen
904ed1549e Add unit test around remote attestation. 2018-07-23 13:13:02 -04:00
Matthew Chen
48975eaac8 Respond to CR. 2018-07-20 15:37:47 -04:00
Michael Kirk
9e348f2a27 update ubsan 2018-07-19 13:41:15 -06:00
Michael Kirk
ef9a0880ae Fix analyzer warnings 2018-07-18 10:24:08 -06:00
Michael Kirk
baacebc956 Enable (quick) static analyzer for normal builds
// FREEBIE
2018-07-18 10:24:08 -06:00
Michael Kirk
77997639f5 Use CurrentAppContext instead of compiler flag to affect test behavior 2018-07-18 10:24:08 -06:00
Michael Kirk
c19a8ce07e Fixup tests
// FREEBIE
2018-07-17 18:17:17 -06:00
Michael Kirk
7b85410136 per design: MessageStatus 1pt below baseline 2018-07-17 10:06:08 -06:00
Michael Kirk
82fdd5b883 Split out generic action sheet components
Keep the message specific components separte, so we could re-use the
MenuActionsViewController.
2018-07-13 13:00:27 -06:00
Michael Kirk
0c4cae133b milestone: route one real action (copy text) 2018-07-13 13:00:27 -06:00
Michael Kirk
aa98963fd9 Abandonded: separate window pattern
Hiding the old window, caused keyboard to resign first responder.
2018-07-13 13:00:27 -06:00
Michael Kirk
6037a440c9 wire up window mgmt 2018-07-13 13:00:27 -06:00
Matthew Chen
8d72bb032e Rework unread indicators. 2018-07-11 16:43:39 -04:00
Matthew Chen
d42ff03ecd Tweak disappearing messages indicator. 2018-07-11 15:38:49 -04:00
Matthew Chen
8b3bdb88f3 Revert "Merge branch 'charlesmchen/tweakCalls'"
This reverts commit 3e0233ea60, reversing
changes made to 74ce3012cf.
2018-07-11 15:34:16 -04:00
Michael Kirk
61cb19ef6b trigger sync when colors updates 2018-07-10 13:25:38 -06:00
Matthew Chen
1a9a5016fe Tweak calls. 2018-07-09 11:08:53 -04:00
Michael Kirk
0f34f76611 Merge tag '2.27.1.1' 2018-07-03 18:19:01 -06:00
Michael Kirk
b47062831f Don't block "register" button on iPad registration
On short devices, add a toolbar with a "dismiss" button to the number pad.
2018-07-03 18:11:14 -06:00
Matthew Chen
92332c2b69 Rework contact share buttons. 2018-07-03 18:33:25 -04:00
Michael Kirk
16df4f589e conversation colors
// FREEBIE
2018-06-29 11:52:41 -06:00
Matthew Chen
1e2a498806 Tweak media view gradients. 2018-06-29 12:32:41 -04:00
Matthew Chen
35dc348551 Move conversation style. 2018-06-28 13:26:17 -04:00
Matthew Chen
a34719ce69 Tweak color palette. 2018-06-28 13:18:35 -04:00
Matthew Chen
9cc3a3b7b3 Add body media shadows. 2018-06-27 16:51:30 -04:00
Matthew Chen
cbacda87ca Introduce message cell footer view. 2018-06-26 13:25:07 -04:00
Matthew Chen
33b1628c26 Rename to ConversationStyle. 2018-06-26 10:20:26 -04:00
Matthew Chen
ac6f78a5fc Tweak message cells. 2018-06-25 09:26:41 -04:00
Matthew Chen
2ecbf1bb65 Fix 'contact cell vs. message details layout' issue. 2018-06-21 17:16:50 -06:00
Matthew Chen
20b1a2606e Outage detection. 2018-06-20 17:50:50 -04:00
Matthew Chen
010c10cb0c Show re-registration in app settings. 2018-06-20 14:54:16 -04:00
Matthew Chen
c8fee4efa7 Add swift logging to SSK. 2018-06-13 13:56:55 -04:00
Michael Kirk
ffea3a020f WIP: FTS - wired up Search VC
-[] Backend
  -[] indexes e5.25
    -[x] wire up results: Contacts / Conversations / Messages actual: 3hr
    -[ ] group thread est: actual:
      -[x] group name actual: e.25
      -[ ] group member name: e.25
      -[ ] group member number: e.25
    -[ ] contact thread e.5
      -[ ] name
      -[ ] number
    -[ ] messages e1
      -[ ] content
-[] Frontend e10.75
  -[x] wire up VC's a.5
  -[x] show search results only when search box has content a.25
  -[] show search results: Contact / Conversation / Messages e2
  -[] tapping thread search result takes you to conversation e1
  -[] tapping message search result takes you to message e1
  -[] show snippet text for matched message e1
  -[] highlight matched text in thread e3
  -[] go to next search result in thread e2
2018-06-11 09:58:36 -04:00
Michael Kirk
429af7854a WIP: Full Text Search
-[ ] indexes
  -[x] results: Contacts / Conversations / Messages
  -[ ] group thread
    -[x] group name
    -[ ] group member name
    -[ ] group member number
  -[ ] contact thread
    -[ ] name
    -[ ] number
  -[ ] messages
    -[ ] content
- [ ] show search results: Contact / Conversation / Messages
- [ ] tapping thread search result takes you to conversation
- [ ] tapping message search result takes you to message
- [ ] show snippet text for matched message
- [ ] highlight matched text in thread
- [ ] go to next search result in thread
2018-06-11 09:58:36 -04:00
Matthew Chen
d17c3906e7 Disable CloudKit; leave iCloud capability enabled for "iCloud documents" service used by document picker. 2018-06-06 08:48:58 -06:00
Matthew Chen
4122e59ced Revert "Disable iCloud capability."
This reverts commit 5cf2b39050.
2018-06-06 08:40:56 -06:00
Matthew Chen
5cf2b39050 Disable iCloud capability. 2018-06-05 21:33:35 -06:00
Matthew Chen
3964b78ff7 Reduce usage of JSQ. 2018-06-01 17:44:18 -04:00
Matthew Chen
6bc145ce3a Fix more build warnings. 2018-06-01 17:37:06 -04:00
Matthew Chen
62273a60af Respond to CR. 2018-05-30 15:10:19 -04:00
Matthew Chen
caad6f796e Clean up ahead of PR. 2018-05-30 15:05:02 -04:00
Matthew Chen
28f7142a59 Auto-migration to Swift 4. 2018-05-30 15:05:02 -04:00
Michael Kirk
29d08545e2 Use OWSNavigationController instead of UINavigationController
- [ ] document picker
- [ ] camera picker
- [ ] image picker
- [ ] restore "confirm to go back" behavior (interactive pop gesture?)

// FREEBIE
2018-05-24 12:28:20 -04:00
Michael Kirk
0e87cbe7a5 WIP navbar resize
-[ ] CallScreen
  -[x] functional button
  -[ ] needs design
  -[ ] disable other contact call buttons while in call
-[ ] iOS11
  -[x] resize nav content
  -[ ] background showing at top of all vc's
  -[] iPhoneX
    -[x] use differently sized banner for now
    -[] mimic X system design
-[ ] iOS10
  -[x] resize nav content
  -[ ] animation glitch while push/pop
-[ ] iOS9

// FREEBIE
2018-05-24 12:28:20 -04:00
Michael Kirk
91cd1af3f9 Extract ReturnToCallViewController
// FREEBIE
2018-05-24 12:28:20 -04:00
Michael Kirk
a7252544b0 WIP: custom navbar
TODO:

Use custom navcontroller everywhere - no more UINavigationController

listen to notification for when call starts/ends and sizeToFit.
2018-05-24 12:28:20 -04:00
Matthew Chen
f436fc19c2 Make contact share "bubble/card" reflect share contents. 2018-05-16 17:19:05 -04:00
Michael Kirk
0c469764f1 re-use contact picker for "add to existing"
Required refactor of contact picker to be presented non-modally.

TODO: merge emails, address, display names

// FREEBIE
2018-05-10 11:31:22 -04:00
Matthew Chen
44ceee5849 Add contact share actions to conversation view and improve phone number parsing. 2018-05-08 17:22:34 -04:00
Matthew Chen
50c49baca8 Update design of 'approve contact share' view. 2018-05-07 16:18:22 -04:00
Michael Kirk
77fc5571fb Implement avatar sending
// FREEBIE
2018-05-07 12:08:41 -04:00
Michael Kirk
5ba5e98260 Show downloaded contact avatar in thread
// FREEBIE
2018-05-07 12:08:41 -04:00
Matthew Chen
2c6f18fa6e Clean up ahead of PR. 2018-05-04 18:13:22 -04:00
Matthew Chen
7a9acce504 Add contact share approval view. 2018-05-04 18:13:22 -04:00
Matthew Chen
0c745dd989 Add contact share approval view. 2018-05-04 18:13:22 -04:00
Matthew Chen
2738bcbc58 Create contact view. 2018-05-03 14:09:54 -04:00
Michael Kirk
f782ea97df Use loading screen whenever launch is slow.
Previously we had to manually account for each version that had a DB
change.

// FREEBIE
2018-05-03 09:11:51 -04:00
Michael Kirk
5c0c01dea2 Contact picking
// FREEBIE
2018-05-02 11:06:09 -04:00
Matthew Chen
7e35a7e7d7 Sketch out rendering of contact shares in conversation view. 2018-05-02 10:51:59 -04:00
Michael Kirk
b1bff71145 WIP moving to stackview backed header view in conversation view
- iOS10 with large titles doesn't truncate
2018-04-26 11:18:18 -04:00
Matthew Chen
5773b45345 Respond to CR. 2018-04-25 10:49:19 -04:00
Matthew Chen
4b83b4afc5 Rework outgoing message state. 2018-04-25 10:49:19 -04:00
Matthew Chen
7345ab2e4e Add window manager. Move call view to a separate window. 2018-04-25 09:56:53 -04:00
Matthew Chen
1395a6c37b Respond to CR. 2018-04-24 11:42:04 -04:00
Michael Kirk
5f2b38c50b Introduce Thread view model
// FREEBIE
2018-04-21 19:21:18 -04:00
Matthew Chen
08d36aa862 Add screen lock UI to SAE. 2018-04-20 16:39:35 -04:00
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
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
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
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