Commit Graph

872 Commits

Author SHA1 Message Date
Matthew Chen
d23134fc91 Reduce cost of enumerating special messages. 2019-12-05 16:55:54 -03:00
Michael Kirk
a5c65f5656 capture screen: remove bottom gap for iPad pro 2019-12-05 10:50:47 -07:00
Michael Kirk
de8664c54e note to self avatar 2019-12-05 10:48:55 -07:00
Matthew Chen
80feb14435 Reduce cost of enumerating special messages. 2019-12-05 09:49:50 -03:00
Michael Kirk
97dcad7015 Fix sleep manager v. main thread 2019-11-22 18:18:56 -07:00
Nora Trapp
dbe3230a7e New long press message actions 2019-11-21 11:03:57 -08:00
Nora Trapp
87ecf90bee Merge branch 'release/3.0.0' 2019-11-20 16:46:39 -08:00
Nora Trapp
35cd3a4d64 Allow conforming to sync manager stuff in Swift 2019-11-19 18:07:51 -08:00
Michael Kirk
52b38f8769 redundantly clean up gallery items when clearing all content 2019-11-19 11:01:31 -07:00
Michael Kirk
ed3ad645fe debug ui sends valid galleries in fake message sends 2019-11-19 11:01:31 -07:00
Matthew Chen
748f3ec3b0 Merge remote-tracking branch 'private/release/3.0.0' 2019-11-18 21:12:54 -03:00
Nora Trapp
9486ab06b6 Fix cursor visiblity on CNContactViewController 2019-11-18 15:15:37 -08:00
Nora Trapp
1f78ae5bb0 Reaction cleanup 2019-11-14 13:24:55 -08:00
Matthew Chen
e46eefe50e Remove readReturningResult(). 2019-11-14 10:39:33 -03:00
Michael Kirk
698d0b062e Fix capture orientation
- only access interfaceOrientation on main thread
- capture initial image in lanscape when appropriate
2019-11-13 10:40:42 -03:00
Michael Kirk
3b1bcb5368 recreate sort order for synced conversations 2019-11-06 21:24:53 -07:00
Michael Kirk
a108c854a2 save sync job record attachments from orphan data cleaner 2019-11-04 14:06:54 -08:00
Michael Kirk
0fca274e62 Sync Groups and Contacts 2019-11-04 14:06:54 -08:00
Matthew Chen
a92a2f1c78 Cache frequently-used prefs. 2019-11-04 14:26:31 -03:00
Nora Trapp
65d54e7282 UIAlertController -> ActionSheetController 2019-10-28 14:43:59 -07:00
Nora Trapp
3987e7bafb Merge branch 'release/2.45.0' 2019-10-28 13:05:55 -07:00
Nora Trapp
2e3cd11499 Cleanup sneaky transaction during contact sort in FTS 2019-10-28 11:57:55 -07:00
Matthew Chen
233dab908e Merge remote-tracking branch 'private/release/2.45.0' 2019-10-25 14:34:36 -03:00
Matthew Chen
0924ef7359 Cache hasDimissedFirstConversationCue value. 2019-10-25 13:33:22 -03:00
Nora Trapp
0f98a2e10b Configuration and block list sync when linked. 2019-10-24 12:51:44 -07:00
Matthew Chen
b2dd31eb9c Merge remote-tracking branch 'private/release/2.45.0' 2019-10-24 15:42:39 -03:00
Matthew Chen
4d1d99454d Respond to CR. 2019-10-24 12:04:25 -03:00
Matthew Chen
cfd705c64e Message forwarding. 2019-10-24 12:04:25 -03:00
Matthew Chen
26435359ba Message forwarding. 2019-10-24 12:04:25 -03:00
Matthew Chen
412ae3bfc8 Message forwarding. 2019-10-24 12:04:25 -03:00
Matthew Chen
ae769ad5bd Respond to CR. 2019-10-21 16:55:06 -03:00
Matthew Chen
0a59581580 Respond to CR. 2019-10-21 16:50:00 -03:00
Matthew Chen
e7479567a4 Improve GRDB perf for FTS searches with many results. 2019-10-21 16:50:00 -03:00
Nora Trapp
473b88b497 Don't require ConversationViewController to maintain first responder status. 2019-10-17 11:41:58 -07:00
Matthew Chen
2abaf3b198 Refine storage modes. 2019-10-16 19:50:47 -03:00
Matthew Chen
9a3cbc573b Refine storage modes. 2019-10-16 16:28:28 -03:00
Michael Kirk
6ac93a6825 show matching contact before group 2019-10-08 16:16:46 -07:00
Michael Kirk
743e01e43c include note-to-self if missing from homeview search 2019-10-08 16:16:46 -07:00
Michael Kirk
4ce7f1d804 plumb through transactions 2019-10-08 16:16:46 -07:00
Matthew Chen
2fc954e54a Merge tag '2.44.0.15' 2019-10-08 18:10:45 -03:00
Matthew Chen
0b66346efa Retain last 2 digits of UUIDs. 2019-10-08 16:12:47 -03:00
Matthew Chen
c6a5e137f2 Scrub UUIDs from logs. 2019-10-08 15:49:33 -03:00
Nora Trapp
36cbf4cc61 Support iPad multi tasking 2019-10-05 16:57:44 -07:00
Matthew Chen
8b53f669ee Merge remote-tracking branch 'private/release/2.44.0' 2019-10-04 16:33:27 -03:00
Matthew Chen
a9e36810b4 Eagerly add system contacts to profile whitelist. 2019-10-04 15:12:04 -03:00
Michael Kirk
04e582fea2 update group avatar icon 2019-10-03 15:38:24 -04:00
Nora Trapp
baf8950efb Support all orientations on iPad 2019-10-03 11:55:03 -07:00
Matthew Chen
d8f99ab026 Merge remote-tracking branch 'private/release/2.44.0' 2019-09-27 17:10:34 -03:00
Matthew Chen
20683678b5 Store group avatars as data. 2019-09-27 16:25:53 -03:00
Michael Kirk
e6beb0e650 tweak sender avatar per design 2019-09-26 12:20:43 -07:00
Michael Kirk
95f2d511e1 font updates 2019-09-26 12:20:42 -07:00
Michael Kirk
515d673b6f new secondary colors for message bubbles 2019-09-26 12:20:42 -07:00
Matthew Chen
ebfd203f7d Merge remote-tracking branch 'private/release/2.44.0' 2019-09-25 10:05:16 -03:00
Michael Kirk
54812451f4 Update and apply palette. Consolidate dupes. 2019-09-24 15:12:51 -07:00
Michael Kirk
f63a64243a convert colors to Swift 2019-09-24 15:12:50 -07:00
Matthew Chen
6743b73c79 Protect audio waveform files from orphan data cleaner. 2019-09-24 17:18:23 -03:00
Nora Trapp
ab2ff4db32 Rewrite audio progress view in swift, add play/pause animation 2019-09-23 17:03:03 -07:00
Matthew Chen
6714932fca Add suppressBackgroundActivity feature flag. 2019-09-23 13:49:59 -03:00
Matthew Chen
b09da45672 Rework isStorageReady. 2019-09-23 13:04:39 -03:00
Matthew Chen
19f2be0e12 Fix build break. 2019-09-23 12:37:13 -03:00
Matthew Chen
d80a8b73d2 Improve logging around database file protection. 2019-09-23 12:25:24 -03:00
Matthew Chen
da6ade366f Protect databases from orphan clean up. 2019-09-23 12:24:13 -03:00
Matthew Chen
8e4cd299be Merge tag '2.43.0.17' 2019-09-23 12:19:18 -03:00
Matthew Chen
f3d252e5d5 Improve logging around missing or corrupt images. 2019-09-20 21:17:20 -03:00
Matthew Chen
e2a5e93116 Merge tag '2.43.0.10' 2019-09-19 12:40:59 -03:00
Matthew Chen
9f93b6c62e Fix build warnings around unknown enum values. 2019-09-18 17:34:07 -03:00
Michael Kirk
a3b866da17 fix note-to-self-search 2019-09-18 11:52:49 -07:00
Michael Kirk
965c1c91cc include note-to-self in compose search, even if no thread preexists 2019-09-18 11:52:49 -07:00
Matthew Chen
f56aae7ac9 Merge remote-tracking branch 'private/release/2.43.0'
# Conflicts:
#	SignalServiceKit/src/Util/FeatureFlags.swift
#	SignalServiceKit/tests/Storage/SDSDatabaseStorageObservationTest.swift
2019-09-16 14:41:22 -03:00
Nora Trapp
618dea7e9f Ensure ui styling is correct regardless of system theme 2019-09-16 10:26:00 -07:00
Matthew Chen
0389cdb730 Respond to CR. 2019-09-16 13:01:37 -03:00
Matthew Chen
9dea6069e4 Batched and unbatched enumerations. 2019-09-16 13:01:36 -03:00
Matthew Chen
6a529e792d Rework message configuration. Simplify change detection, ensure continuity for deleted threads. 2019-09-13 20:40:06 -03:00
Matthew Chen
5dc6cf5f8b Fix bug in orphan data cleaner. 2019-09-13 16:16:18 -07:00
Matthew Chen
c067858d1b Fix bug in orphan data cleaner. 2019-09-13 16:13:28 -07:00
Michael Kirk
c1f859f746 audible error logging is configurable, disabled by default 2019-09-13 10:31:17 -07:00
Michael Kirk
29315febee Merge tag '2.42.4.0' into release/2.43.0 2019-09-12 18:55:41 -07:00
Michael Kirk
2bae90d157 Merge tag '2.42.4.0' 2019-09-12 18:44:00 -07:00
Michael Kirk
4dbb7d0590 remove deleted contact threads from search results 2019-09-12 11:47:31 -07:00
Michael Kirk
bb316f711b Merge tag '2.42.1.1' into release/2.43.0 2019-09-05 14:52:59 -06:00
Nora Trapp
ccaa4e0e90 Fix avatar contact name when is disabled 2019-09-03 12:12:13 -07:00
Matthew Chen
7502dcc571 Avoid deadlock in TSAccountManager. 2019-08-30 14:39:45 -03:00
Matthew Chen
14b9ce025b Avoid deadlock in TSAccountManager. 2019-08-30 14:39:45 -03:00
Nora Trapp
129535f2d7 Merge branch 'release/2.42.0' 2019-08-29 15:21:40 -07:00
Nora Trapp
85beb08bde Put message request view behind a feature flag 2019-08-29 10:15:30 -07:00
Matthew Chen
6da987eb3a Remove YDB header usage. 2019-08-29 10:24:27 -03:00
Matthew Chen
d845ccd61b Respond to PR. 2019-08-29 09:34:03 -03:00
Matthew Chen
a5efaf8d16 Merge remote-tracking branch 'private/release/2.42.0' 2019-08-28 11:33:26 -03:00
Matthew Chen
753b49ea74 Address sticky keyboards on iOS 12. 2019-08-27 14:00:23 -03:00
Matthew Chen
79c13c0cf0 Modify contact avatar builder to handle "no address" case. 2019-08-27 13:53:48 -03:00
Matthew Chen
aab82a6753 Respond to CR; add a unit test around the "special messages" finder method. 2019-08-26 12:29:43 -03:00
Matthew Chen
203dc7272e Remove YDB usage. 2019-08-26 12:27:42 -03:00
Matthew Chen
f8e5c4f697 Remove YDB usage. 2019-08-26 12:27:42 -03:00
Matthew Chen
7e22d332b1 Remove YDB usage. 2019-08-26 12:27:42 -03:00
Michael Kirk
45c4066a80 Fix deadlock with thread.name
For contact threads, thread.name opened a sneaky transaction, which would
sometimes cause a deadlock.

This commit moves the name method to the contact manager and offers an explicit
transaction flavor. There is still a sneaky transaction flavor used in some
places where it's deemed dangerous to plumb through a transaction without
further scrutiny.
2019-08-23 18:45:23 -06:00
Matthew Chen
dd770f9f2d Use separate keyspec for GRDB. 2019-08-23 15:34:53 -03:00
Matthew Chen
47b000ec09 Remove YDB usage. 2019-08-22 09:32:00 -03:00
Nora Trapp
df63a9b827 Allow audio messages to play in the background. 2019-08-21 20:33:41 -07:00
Michael Kirk
4371c696dc Audible Debug Assertions in dev-qa builds 2019-08-21 09:01:43 -06:00
Michael Kirk
6deaead851 less likely to show review
Potentially showing the review request immediately after the user has sent a
message, may be too soon. Also, it involves some storage machinery.

Instead, we use the dumber "has shown home view controller n times", and have a
high n. This also has the benefit of requiring no persistent storage.
2019-08-21 08:44:49 -06:00
Michael Kirk
926e76270f Merge tag '2.42.0.8' 2019-08-20 09:52:18 -06:00
Michael Kirk
c0c81b5e53 fix errant deletion of non-orphaned profile avatars 2019-08-19 12:52:42 -06:00
Michael Kirk
dff1f40af6 Don't show "message request" for de-registered system contacts
Fixes:
Alice installs Signal
Bob sees "Alice is on Signal" notification
(everything is as expected until this point)

Alice uninstalls Signal
Bob sees message request in Alice's conversation
2019-08-19 12:46:14 -06:00
Matthew Chen
85756b0fe9 Merge remote-tracking branch 'private/release/2.42.0' 2019-08-16 13:21:38 -03:00
Matthew Chen
60d07dd4d7 Clean up ahead of PR. 2019-08-15 16:10:14 -03:00
Matthew Chen
d308c566af Address deadlocks in profile manager. 2019-08-15 16:10:14 -03:00
Matthew Chen
c4c054b4ca Fix spurious assert in orphan data cleaner. 2019-08-15 14:26:57 -03:00
Michael Kirk
34ba50bd02 broadcast media operation
Only upload once when sending to multiple via the camera first flow
2019-08-15 09:36:57 -06:00
Michael Kirk
b322d1a119 Merge tag '2.42.0.5' 2019-08-13 19:56:57 -06:00
Michael Kirk
bee54d1aea fixup compiler warnings 2019-08-13 16:58:06 -03:00
Matthew Chen
2a5683b843 Introduce storage coordinator. 2019-08-13 16:52:38 -03:00
Michael Kirk
82c99c4003 CR: rename for clarity 2019-08-12 15:11:40 -06:00
Michael Kirk
f3793f0f2a Consolidate OutgoingMessage preparation 2019-08-12 15:11:40 -06:00
Nora Trapp
6c64e94006 Only auto-share profile with empty threads. 2019-08-09 12:59:15 -07:00
Nora Trapp
36ce5d2940 PR feedback 2019-08-09 12:53:19 -07:00
Nora Trapp
28a4dfe3e6 Some small design tweaks. 2019-08-09 12:53:19 -07:00
Michael Kirk
4dc75aed3d fix warnings 2019-08-09 09:41:59 -06:00
Matthew Chen
a48ccccdd1 Remove more usage of primary storage. 2019-08-07 17:41:11 -03:00
Matthew Chen
eccfad0f46 Merge remote-tracking branch 'private/release/2.41.0' 2019-08-06 12:12:39 -03:00
Matthew Chen
e4b082746d Add GRDB support for full text search. 2019-08-02 15:42:34 -03:00
Michael Kirk
afd9d7781a Camera First flow 2019-08-02 09:26:23 -06:00
Matthew Chen
4f03f969fc Rework "view once" messages. 2019-08-01 16:13:37 -03:00
Nora Trapp
cfb5468b2c Don't force profiles for existing conversations until phone number privacy rolls out 2019-07-31 13:17:37 -07:00
Matthew Chen
bce0870d21 Fix rebase breakage. 2019-07-31 11:09:23 -03:00
Matthew Chen
1e363d2c65 Make uniqueId non-nil. 2019-07-31 10:50:59 -03:00
Matthew Chen
de56fec16b Remove usage of primary storage. 2019-07-29 17:25:58 -03:00
Nora Trapp
96bf655727 Profile name renders at same level as system contact name 2019-07-29 12:50:54 -07:00
Nora Trapp
2cfa9f68ca Add the thread to the profile whitelist anytime we send a message. 2019-07-29 12:40:09 -07:00
Nora Trapp
aedde9fde8 Remove profile banners 2019-07-29 12:40:09 -07:00
Nora Trapp
81783c253a Remove Contacts Offer 2019-07-29 12:40:09 -07:00
Matthew Chen
e77e03afb2 Remove usage of primary storage. 2019-07-29 15:30:10 -03:00
Matthew Chen
a3f3b164d4 Remove YDB connections. 2019-07-24 16:12:13 -03:00
Matthew Chen
8cf927ce6f Clean up ahead of PR. 2019-07-23 10:46:11 -03:00
Matthew Chen
0ee64cb1c0 Remove YDB connections. 2019-07-23 10:46:11 -03:00
Matthew Chen
bdf5ca2645 Remove YDB connections. 2019-07-23 10:46:10 -03:00
Michael Kirk
9e704be729 Merge tag '2.41.0.12' 2019-07-22 14:33:01 -06:00
Michael Kirk
5fd43b4880 fix album layout in landscape 2019-07-22 11:18:01 -06:00
Michael Kirk
0c6e6787ed update flag name for clarity 2019-07-22 09:12:09 -06:00
Nora Trapp
b1d6db7cd9 Cache naturalTextAlignment 2019-07-19 12:43:58 -07:00
Nora Trapp
3d1dd3dfe4 Remove rtlSafeAppend 2019-07-19 12:33:17 -07:00
Matthew Chen
3c3e84168a Respond to CR. 2019-07-19 15:37:53 -03:00
Matthew Chen
77b9500154 Convert interactions to BaseModel. 2019-07-19 15:25:28 -03:00
Matthew Chen
2fa913d021 Protect enqueue message sends from orphan data cleaner. 2019-07-19 14:36:46 -03:00
Matthew Chen
ebd45743c6 Convert interactions to BaseModel. Add typed 'any update with...' methods. 2019-07-18 15:44:36 -03:00
Matthew Chen
e9e013aec7 Conver user profiles to use BaseModel. 2019-07-16 10:40:09 -03:00
Nora Trapp
a323ff4ddf No more transitional_phoneNumber 2019-07-11 10:52:13 -07:00
Nora Trapp
9105b81e9a Replace a bunch of usages of localNumber with localAddress 2019-07-11 10:52:13 -07:00
Michael Kirk
67c6499aff Fix wrong type, add compiler error flag 2019-07-10 22:52:34 -06:00
Nora Trapp
ae17d61a05 Update quoted messages, per message expiration, and sync transcripts 2019-07-10 13:31:18 -07:00
Nora Trapp
90d4268878 PR Feedback 2019-07-10 13:27:37 -07:00
Nora Trapp
3c33f276f7 Maintain a SignalServiceAddress cache to allow for isEqual implementation 2019-07-10 13:27:36 -07:00
Nora Trapp
b9bb444276 Add UUID support to groups 2019-07-10 13:27:36 -07:00
Nora Trapp
a1f85fca30 Migrate profiles to support UUIDs 2019-07-02 11:19:50 -07:00
Michael Kirk
efafd6fb38 Create UUID message in DebugUI, rendering in homeview
ContactAvatarBuilder works with SignalServiceAddress

Currently this only functions with the GRDB adapter. There are other asserts
triggered in yap extensions.
2019-07-01 10:16:23 -06:00
Michael Kirk
0c944fe9f4 Incoming message has authorAddress 2019-06-27 14:22:13 -06:00
Nora Trapp
7d94af3287 Migrate TSContactThread to support UUIDs 2019-06-27 13:12:52 -07:00
Matthew Chen
c8359fc932 Convert message sending to use any transactions. 2019-06-25 16:00:58 -04:00
Matthew Chen
b86ab9f611 Migrate OWSDisappearingMessagesConfiguration to any. 2019-06-25 15:48:37 -04:00
Nora Trapp
34e8a7e4a0 PR Feedback 2019-06-25 10:31:23 -07:00
Nora Trapp
92f817d7fd Update callsites to use new contacts manager address interface 2019-06-25 10:30:52 -07:00
Matthew Chen
e26a8e1bd4 Convert attachments to be any-only. 2019-06-24 15:34:02 -04:00
Mateo Hernandez
45d1e2db96 Only escape % signs in notifications on iOS 9
iOS 10+ uses UNUserNotifications, which doesn't require escaping

Fixes: #4195
2019-06-24 12:00:47 -06:00
Michael Kirk
440f9458e2 Fix loss of precision compiler warnings 2019-06-19 10:13:22 -06:00
Matthew Chen
d418c5ac76 Migrate more key-value stores. 2019-06-19 11:02:32 -04:00
Matthew Chen
1d00c31fd0 Add feature flag around per-message expiration. 2019-06-18 15:25:33 -04:00
Matthew Chen
32ae3f4598 Fix rebase breakage. 2019-06-17 11:20:15 -04:00
Matthew Chen
3d59ac0992 Rework camera flow for one-off disappearing messages. 2019-06-17 11:17:52 -04:00
Matthew Chen
a62376b3f9 Remove sendingMediaWithOversizeText feature flag. 2019-06-17 11:17:52 -04:00
Matthew Chen
97cfb32d29 Rework camera flow for one-off disappearing messages. 2019-06-17 11:17:52 -04:00
Matthew Chen
04ac47089d Migrate preferences to use key-value store. 2019-06-17 11:13:15 -04:00
Nora Trapp
747ea3c7b2 Theme cursor colors 2019-06-14 09:30:17 -07:00
Michael Kirk
13cdb2abb8 Surface when you discover a friend has registered 2019-06-13 09:20:50 -05:00
PurplePlatypus
eb7f60ea1f Fix 3844 by telling AVAudioPlayer that we REALLY, seriously intend to play this file 2019-06-11 17:14:04 -07:00
Nora Trapp
dc77113a01 PR Feedback 2019-06-05 15:50:58 -07:00
Nora Trapp
7b9d3fe772 Allow scrubbing audio messages 2019-06-05 15:50:58 -07:00
Nora Trapp
b0be53cff2 Update group create/edit flow to better indicate you can add a photo 2019-06-05 08:59:22 -07:00
Matthew Chen
b8327ad7c8 Respond to CR. 2019-05-31 12:39:50 -04:00
Matthew Chen
af3e6187fc Add per-message expiration to models (code generated changes).
Add per-message expiration to models.

DRY up incoming message creation.
2019-05-31 12:39:50 -04:00
Matthew Chen
6e32c9a79f Remove "ephemeral media" model changes. 2019-05-29 11:53:42 -04:00
Matthew Chen
fc25251dd8 Merge remote-tracking branch 'private/release/2.40.0' 2019-05-29 10:56:24 -04:00
Michael Kirk
a837c75764 Simple send sans Yap 2019-05-28 17:31:53 -04:00
Michael Kirk
a344a0a2ca Fix crash with old empty threads creationDate is nullable
creationDate didn't always exist - we added it and did not backfill it. We
could backfill with a made up date, e.g. [NSDate
dateWithTimeIntervalSince1970:0], but I'm wary of putting surprising bogus data
in the db. Instead I've using an old date during sorting where it's not
surprising.
2019-05-24 15:21:13 -04:00
Matthew Chen
a55668755a Migrate more key value stores. 2019-05-23 09:57:05 -04:00
Michael Kirk
a245d6f446 fix compiler warning 2019-05-22 16:04:08 -04:00
Matthew Chen
745a384d7c Respond to CR. 2019-05-20 17:18:54 -04:00
Matthew Chen
a6629bfe63 Add EphemeralMedia model classes. 2019-05-20 17:05:49 -04:00
Michael Kirk
2ab50d28c6 require explicit default for getBool 2019-05-15 15:13:17 -06:00
Michael Kirk
fe65ff035f Sneaky Transaction audit for SDSKeyValueStore 2019-05-15 15:13:17 -06:00
Michael Kirk
ecb6c275f8 MessageSender API takes AnyTransaction 2019-05-14 10:44:55 -06:00
Michael Kirk
aa37cdbadd GRDB: Avoid assert when missing dynamic interactions
Triggered whenever entering a conversation
2019-05-13 12:48:45 -04:00
Matthew Chen
d3ff3df926 Ensure window frames. 2019-05-13 12:01:02 -04:00
Michael Kirk
02f6a99da7 AnyGalleryFinder 2019-05-10 17:55:26 -06:00
Matthew Chen
246131ebbd Fix "set unread" deadlock. 2019-05-09 13:39:23 -04:00
Matthew Chen
0024705254 Add sticker suggestions for emoji input. 2019-05-03 09:22:41 -04:00
Michael Kirk
3c7f994b34 DB updates UI
-[x] uiRead from Snapshot
-[x] update snapshot after writes
-[x] notify observers of change
-[x] external notifications
2019-05-02 14:22:53 -06:00
Michael Kirk
36370980d1 Merge tag '2.39.0.9' 2019-05-01 15:14:47 -06:00
Michael Kirk
fdbb5edf55 Fix wrong tint in media views with light theme enabled 2019-05-01 15:01:33 -06:00
Michael Kirk
dafa3f12be Merge tag '2.39.0.8' 2019-05-01 14:34:15 -06:00
Matthew Chen
d168b3e1dc Respond to CR. 2019-04-30 16:37:55 -04:00
Michael Kirk
54dc7802ad quieter logging 2019-04-30 09:10:13 -06:00
Matthew Chen
a81acfa788 Apply asAnyRead/Write convenience methods. 2019-04-30 10:11:19 -04:00
Matthew Chen
783858ea52 Remove extra semicolons. 2019-04-30 09:39:04 -04:00
Matthew Chen
4a57db7b0b Respond to CR. 2019-04-26 15:22:48 -04:00
Matthew Chen
a766f1e944 Send stickers. 2019-04-26 12:34:56 -04:00
Matthew Chen
dec4513f46 Send stickers. 2019-04-26 12:34:56 -04:00
Matthew Chen
c229f39012 Add sticker sync messages. 2019-04-22 10:26:09 -04:00
Michael Kirk
b52bfd88bc HomeView backed by GRDB 2019-04-18 10:11:40 -06:00
Matthew Chen
509bc57401 Update proto schema to reflect stickers. Sketch out the Sticker model classes. 2019-04-18 10:12:17 -04:00
Michael Kirk
baef0815b1 GRDB: info message text for interation previews 2019-04-17 15:43:40 -06:00
Matthew Chen
d5cf49be7f Apply key-value store to preference classes. 2019-04-17 15:45:24 -04:00
Matthew Chen
f5c04f3801 Respond to CR. 2019-04-16 09:08:45 -04:00
Michael Kirk
ee3697793a GRDB adapter for message mapping 2019-04-10 16:28:18 -06:00
Michael Kirk
30266bf65e autoformatted 2019-04-04 13:44:42 -06:00
Michael Kirk
64a0c4bfaa auto-migrate to Swift5 2019-04-04 13:44:42 -06:00
Matthew Chen
4188993fc5 Add accessibilityIdentifiers to 'new contact thread' view. 2019-03-25 09:31:19 -04:00
Matthew Chen
95e125d55e Simplify usage of accessibilityIdentifiers. 2019-03-25 09:31:19 -04:00
Michael Kirk
3850ca29b0 Bigger hack to fix problem with lesser hack.
There were two symptoms to this bad "leave app while dismissing keyboard"
state...

The first, most noticeable symptom was that the main window no longer respected
the device orientation. This was caused by UIKit temporarily disabling
autorotate during an interactive keyboard dismissal, and not cleaning up after
itself when we hid the window mid dismissal due to our screen protection
feature. This was solved previously in: ca0a555f8

The second symptom remained, and is solved by this commit. Wherein after
getting in this bad state, the interactive keyboard dismiss function behaves
oddly. Normally when interactively dismissing the keyboard in a scroll view,
the keyboard top follows your finger, until you lift up your finger, at which
point, depending on how close you are to the bottom, the keyboard should
completely dismiss, or cancel and return to its fully popped position. In the
degraded state, the keyboard would follow your finger, but when you lifted your
finger, it would stay where your finger left it, it would not complete/cancel
the dismiss.

The solution is, instead of only re-enabling autorotate, to use a higher level
private method which is called upon complete/cancellation of the interactive
dismissal. The method, `UIScrollToDismissSupport#finishScrollViewTransition`,
as well as re-enabling autorotate, does some other work to restore the UI to
it's normal post interactive-keyboard-dismiss gesture state.

For posterity here's the decompiled pseudocode:

```
/* @class UIScrollToDismissSupport */
-(void)finishScrollViewTransition {
    *(int8_t *)&self->_scrollViewTransitionFinishing = 0x0;
    [self->_controller setInterfaceAutorotationDisabled:0x0];
    [self hideScrollViewHorizontalScrollIndicator:0x0];
    ebx = *ivar_offset(_scrollViewNotificationInfo);
    [*(self + ebx) release];
    *(self + ebx) = 0x0;
    esi = *ivar_offset(_scrollViewForTransition);
    [*(self + esi) release];
    *(self + esi) = 0x0;
    return;
}
```
2019-03-21 10:37:54 -07:00
Matthew Chen
882dd16d7c Apply presentAlert() throughout codebase. 2019-03-21 10:55:04 -04:00
Matthew Chen
c9d62f47cc Respond to CR. 2019-03-21 10:26:38 -04:00
Matthew Chen
d7b1e65a71 Add accessibility identifiers to blocklist popups. 2019-03-21 10:08:25 -04:00
Matthew Chen
f1520d760e Add accessibility identifiers to other settings views. 2019-03-21 10:08:25 -04:00
Matthew Chen
b48e204b90 Add accessibility identifiers to notification settings views. 2019-03-21 10:08:25 -04:00
Michael Kirk
0b638f4831 link checks 2019-03-18 15:21:19 -07:00
Michael Kirk
78ce3583ed fix rotation issue 2019-03-18 15:17:13 -07:00
Matthew Chen
88c07fc534 Pinch to change text size in image editor text tool. 2019-03-13 11:41:44 -04:00
Michael Kirk
71dd4eb151 in-conversation search
- use MediaTime for computing benchmarks
2019-02-28 16:19:16 -07:00
Michael Kirk
870caaa84a simplify completion checking - make nonnull 2019-02-26 10:06:52 -07:00
Michael Kirk
13154fb828 allow long text with non-durable sends (SAE) 2019-02-26 10:06:52 -07:00
Matthew Chen
56e5feca46 Introduce ConversationSnapshot. 2019-02-26 10:55:44 -05:00
Michael Kirk
f1623b6037 missing nullability text 2019-02-25 13:27:49 -07:00
Michael Kirk
7e5256856c render media+longText message 2019-02-25 13:27:49 -07:00
Michael Kirk
b7989e9384 feature flag approval sending 2019-02-25 13:27:49 -07:00
Michael Kirk
bc4260b444 Send long-text with other attachments 2019-02-25 13:27:49 -07:00
Michael Kirk
a218d6c465 Send first chars of longtext in protobuf 2019-02-25 13:27:49 -07:00
Michael Kirk
680b844f3c Allow all windows to do landscape, fixes:
1. Remove undesirable animation from portrait->landscape when minimizizing in
   landscape and relaunching in landscape.

2. This also seems to fix the intermittently misplaced toolbar when launching
   in landscape. I believe this is a consequence of fix #1
2019-02-21 17:38:52 -07:00
Michael Kirk
fabd3996c2 pop view if message is deleted
- use global ui database connection
2019-02-21 16:18:14 -07:00
Matthew Chen
9402e088b2 Apply design feedback from Myles. 2019-02-21 14:16:31 -05:00
Matthew Chen
8ecad88674 Move the accessibility identifier macros into UIUtil.h. 2019-02-19 16:11:36 -05:00
Matthew Chen
73b36c5400 Respond to CR. 2019-02-12 10:03:32 -05:00
Michael Kirk
cc2e062b85 CR: clean up graphics context code 2019-02-07 08:43:12 -07:00
Michael Kirk
2323cc21f0 note-to-self avatar 2019-02-07 08:34:48 -07:00
Matthew Chen
12e57ecd25 Improve background screenshots v. orientation. 2019-01-31 10:14:06 -05:00
Matthew Chen
9149282e94 Resize link preview images if necessary. 2019-01-24 13:28:54 -05:00
Matthew Chen
4e7dbc486d Segment proxied content downloads. 2019-01-24 08:51:25 -05:00
Matthew Chen
3d757b492a Add link previews to conversation message bubbles. 2019-01-23 09:32:30 -05:00
Matthew Chen
977ee9ffe9 Merge remote-tracking branch 'private/release/2.34.0' 2019-01-22 11:10:04 -05:00
Matthew Chen
2dcc79fbca Fix issues around link previews. 2019-01-22 10:15:50 -05:00
Matthew Chen
8e44bf554c Respond to CR. 2019-01-22 09:42:25 -05:00
Matthew Chen
d775a70a89 Build link previews. 2019-01-22 09:42:25 -05:00
Matthew Chen
31ea64bdaf Build link previews. 2019-01-22 09:42:25 -05:00
Matthew Chen
7878c0fac8 Add feature flag for 'note to self'. 2019-01-18 17:22:12 -05:00
Michael Kirk
0c1b2e9f48 CR: remove unnecessary param, clearer code, comment typo 2019-01-17 09:47:01 -07:00
Michael Kirk
6e50a5353b rename for clarity 2019-01-16 17:06:37 -07:00
Michael Kirk
b4908e71e9 Use FTS for compose picker search 2019-01-16 14:39:35 -07:00
Matthew Chen
a477e01a4a Apply LinkPreview model. 2019-01-14 16:20:54 -05:00
Matthew Chen
bf0d92acfb Landscape layout in gif picker. 2019-01-10 12:04:12 -05:00
Matthew Chen
2ddde368ec Landscape orientation. 2019-01-09 15:22:55 -05:00
Matthew Chen
5adcbac5ef Landscape orientation. 2019-01-09 15:14:36 -05:00
Matthew Chen
9ab8bec2b1 Fix searching for 'note to self'. 2019-01-07 08:45:42 -05:00
Michael Kirk
af7ee5e1d1 address compiler breakage after rebase 2018-12-19 15:16:36 -07:00
Michael Kirk
5671fd2520 Revert "Revert 'new sort id'."
This reverts commit ebae75af00.
2018-12-19 15:16:36 -07:00
Matthew Chen
35b6f6cf12 Respond to CR. 2018-12-19 15:08:28 -05:00
Matthew Chen
db8bc58b6d Implement crop. 2018-12-19 14:48:37 -05:00
Matthew Chen
bd40aacd53 Purge dynamic interactions from database. 2018-12-18 10:55:54 -05:00
Matthew Chen
639dac4e26 Add stroke drawing to the image editor. 2018-12-18 10:53:41 -05:00
Michael Kirk
fd6a56b3af format bench in ms 2018-12-17 14:44:49 -07:00
Michael Kirk
6232b1ef67 CR: add debug asserts 2018-12-17 14:43:50 -07:00
Michael Kirk
81bc357bbb more robust handling of unsaved outgoing messages 2018-12-17 14:43:50 -07:00
Michael Kirk
668cc22af3 Perf: Insert outgoing message into conversation before save completes.
This was a huge savings - e.g. 50-70% of the time between tapping send and
rendering the message takes place in the save/postWriteTransaction blocks
2018-12-17 14:43:50 -07:00
Michael Kirk
67cc1027cc Fix compiler warnings 2018-12-17 14:43:21 -07:00
Michael Kirk
ac2c9cc521 Benchmark Events by ID 2018-12-13 14:32:27 -07:00
Matthew Chen
19a2bfeaad More conversation viewmodel perf improvements. 2018-12-13 11:50:55 -05:00
Matthew Chen
fea40d571c Move contact offers to Conversation view model. 2018-12-13 09:12:41 -05:00
Michael Kirk
c0cb7df10a rename hasEverHadMessage -> shouldThreadBeVisible 2018-12-12 08:46:15 -07:00
Michael Kirk
1a5c47df2f Fix SAE, limit max attachments 2018-12-05 13:56:34 -05:00
Matthew Chen
aeadea67e2 Send multiple attachments from the share extension. 2018-11-13 13:15:54 -05:00
Matthew Chen
7f89c90f16 Fix bug when sending non-body attachments (e.g. group avatars). 2018-11-13 13:15:11 -05:00
Matthew Chen
0e749d5521 Fix build break. 2018-11-13 10:24:49 -05:00
Matthew Chen
49c8e6db7d Merge remote-tracking branch 'origin/release/2.31.0' 2018-11-13 09:50:44 -05:00
Matthew Chen
4b213df950 Fix race in ProximityMonitoringManager. 2018-11-13 09:26:46 -05:00
Michael Kirk
0d7e94f2f6 Fix: Voice Messages don't restore audio to speaker when held up to the ear past
the voice notes duration.

Specifically:

- start a voice note
- hold to ear until complete
- remove from ear
- start another voice note (or the same one) with the phone away from your ear

You'd expect audio to play through the external speaker, but instead it comes
through the earpiece.

Based on the added logging, this seems to be an apple bug.
2018-11-12 20:12:08 -06:00
Michael Kirk
27cb91e9c8 Plumb through messageAlbumId so an Attachment knows what album (if any) it
belongs to.
2018-11-08 12:52:08 -06:00
Matthew Chen
60c5a84dd2 Fix issues in media gallery cells; Improve debug galleries. 2018-11-07 09:56:49 -05:00
Matthew Chen
c7d427029b Respond to CR. 2018-11-02 13:17:36 -04:00
Matthew Chen
f6591fac25 Add debug UI for multi-image sends. 2018-11-02 13:04:05 -04:00
Matthew Chen
d04f1e6e36 Add debug UI for multi-image sends. 2018-11-02 13:04:05 -04:00
Michael Kirk
85a4fc7b66 restore calling banner
The `statusBarDidChange` is called when entering but not leaving landscape mode
we we've got to update manually before showing the call banner.
2018-11-01 08:43:59 -06:00
Michael Kirk
19f2d0db48 WIP: Media Landscape Mode 2018-11-01 08:43:59 -06:00
Matthew Chen
40aa78e001 Merge remote-tracking branch 'origin/release/2.31.0' 2018-10-31 11:42:41 -04:00
Michael Kirk
cb9aa6304c find -E . -type f -regex ".*\.(m|h)" -exec sed -i "" -e "s/try_/throws_/" {} \; 2018-10-30 11:35:34 -06:00
Michael Kirk
3a6aafc454 Swift Exception wrap NSData+keyVersionByte 2018-10-30 11:35:34 -06:00
Michael Kirk
6968dbab17 Update UIDevice on main thread 2018-10-26 15:32:12 -06:00
Michael Kirk
5632bd2d83 Use reference counting to disable proximity monitoring after audio message
Multiple overlapping activities require proximity monitoring (namely,
CallViewController and listening to audio messages).

These activities can overlap arbitrarily, so we use a reference counting
strategy to keep proximity monitoring on as long as one of these activities is
active.
2018-10-26 15:32:12 -06:00
Matthew Chen
408008d3e7 Use different contact avatar assets depending on size of output. 2018-10-26 15:18:45 -04:00
Matthew Chen
4ea6d72008 Improve default avatar quality. 2018-10-26 15:18:45 -04:00
Matthew Chen
5b339a642b Respond to CR. 2018-10-25 15:39:16 -04:00
Michael Kirk
3560f3be5c Durable send operation
TODO
-[x] respect order of queue
-[x] replacements
  -[x] those w/o completion handler
  -[x] basic send+log operation persists
  -[x] send+ui completion
  -[x] share extension
  -[x] update state jobs
-[x] App Lifecyle
  -[x] settable
  -[x] Mark as ready on startup
  -[x] Fail appropriate jobs on startup

NICE TO HAVE
-[x] concurrent per senders
-[ ] longer retry (e.g. 24hrs)
-[ ] App Lifecyle
  -[x] retry failed jobs on startup?
  -[ ] reachability

DONE
-[x] basic passing test
-[x] datamodel
-[x] queue/classes
2018-10-25 11:54:59 -06:00
Matthew Chen
28f37a7a34 Update contacts cells' dependencies. 2018-10-25 09:48:57 -04:00
Michael Kirk
ce9ca1bdaa audio player type 2018-10-24 07:46:27 -06:00
Michael Kirk
3b4188f34b hoist audio session singleton to Environment 2018-10-24 07:46:25 -06:00