Commit graph

336 commits

Author SHA1 Message Date
Fedor Indutny
fdbb2bfb36
Normalize UUID in ConversationModel.initialize 2022-02-02 13:41:29 -08:00
Evan Hahn
07968ea42b
Use isSameDay and isToday utilities 2022-02-02 10:27:44 -08:00
Evan Hahn
05e5786883
Increase fallback Retry-After time to 1 minute 2022-01-31 15:09:58 -06:00
Josh Perez
bf45182a39
New left pane search design 2022-01-27 16:12:26 -06:00
Fedor Indutny
6578679166
Improve performance of isEmojiOnlyText 2022-01-27 13:28:04 -08:00
Evan Hahn
8fa4cd68d5
Fix timeline item sizing bug, and test timeline logic 2022-01-27 12:10:24 -08:00
Evan Hahn
f9440bf594
Timeline date headers 2022-01-26 17:05:26 -06:00
Scott Nonnenberg
68a458ec4a
Honor preferContactAvatars field on AccountRecord 2022-01-25 09:44:45 -08:00
Evan Hahn
c1e3e87b99
Prohibit Chai expect or should; prefer assert 2022-01-19 11:19:08 -08:00
Evan Hahn
364f00f37a
Redesign device link screens 2021-12-16 16:02:22 +01:00
Evan Hahn
71e9498961
Remove ADM2 feature flag 2021-12-14 20:24:43 +01:00
Fedor Indutny
bbc13d058e
Update electron to 16.0.4 2021-12-09 09:06:04 +01:00
Evan Hahn
01549b11d1
Don't request video for invisible group call participants 2021-12-06 17:06:13 -06:00
Josh Perez
7affe313f0
Add image editor 2021-11-30 20:14:25 -06:00
Evan Hahn
67b17ec317
Hide "become a sustainer" button if you're already a sustainer 2021-11-30 17:29:57 +01:00
Evan Hahn
864f9c8631
Tweak badge image logic for new server responses 2021-11-18 23:26:38 +01:00
Fedor Indutny
c6ee6a038e
Add stream timeout for attachment downloads 2021-11-15 23:54:59 +01:00
Scott Nonnenberg
a024ee4b96
Allow stage and send of video, even if we can't get screenshot 2021-11-15 13:54:33 -08:00
Evan Hahn
f4e336836f
Add user badges to typing bubbles, refactor typing logic 2021-11-15 21:01:58 +01:00
Scott Nonnenberg
cbae7f8ee9
Search for username in compose mode 2021-11-11 17:17:29 -08:00
Evan Hahn
da8ec83871
Update name/description heights in badge dialog 2021-11-11 15:01:12 -08:00
Evan Hahn
5619eeca83
Upgrade Prettier to 2.4.1 2021-11-11 16:43:05 -06:00
Evan Hahn
7de340a104
Show your preferred badge in the left pane and avatar popup 2021-11-08 17:29:54 +01:00
Evan Hahn
f647c4e053
Display user badges 2021-11-02 16:01:13 -07:00
Fedor Indutny
663cd77eac
Use react-redux's batch instead of react's 2021-11-01 16:38:08 -07:00
Scott Nonnenberg
3190f95fac
Usernames: Create/update/delete in profile editor 2021-11-01 12:13:35 -07:00
Evan Hahn
8670a4d864
Retry outbound reactions for up to a day 2021-10-29 18:19:44 -05:00
Fedor Indutny
63fcdbe787
Use UUIDs in group database schema 2021-10-26 15:59:08 -07:00
Evan Hahn
74fde10ff5
Prefer import type when importing types 2021-10-26 14:15:33 -05:00
Scott Nonnenberg
191bfee18c
Show What's New dialog in app via Help -> Go to release notes 2021-10-22 17:41:45 -07:00
Evan Hahn
0faeda28f0
Tweaks to left pane snapping logic 2021-10-14 16:19:50 -05:00
Evan Hahn
35a54cdc02
Introduce a new design for the left pane 2021-10-12 16:59:08 -07:00
Scott Nonnenberg
bd380086a4
Send related emoji along with Sticker, fix SendMessage types 2021-10-05 17:10:08 -05:00
Evan Hahn
64fc234490
Use new audio device module in alpha and beta 2021-09-29 13:30:42 -05:00
Fedor Indutny
cd710bb8d2
Add jitter support to BackOff class 2021-09-28 15:12:43 -07:00
Evan Hahn
e32503eed4
Import AudioDevice and VideoFrameSource directly from RingRTC 2021-09-28 11:37:03 -05:00
Fedor Indutny
377cdb3281
Fix flaky TaskWithTimeout test 2021-09-28 09:31:12 -07:00
Fedor Indutny
af387095be
API to suspend/resume tasks with timeout 2021-09-27 11:22:46 -07:00
Josh Perez
1c3c971cf4 Moves DraftAttachments into redux 2021-09-24 16:03:32 -04:00
Fedor Indutny
af66a5b265
Truncate lastHeartbeat to day millis 2021-09-24 10:01:46 -07:00
Fedor Indutny
4ef0bf96cc
Uint8Array migration 2021-09-23 17:49:05 -07:00
Josh Perez
829e42ca6e
Move i18n setup to TypeScript 2021-09-17 20:30:08 -04:00
Evan Hahn
20be8a11fe
Read and write preferred reactions to storage 2021-09-15 11:59:51 -07:00
Evan Hahn
240585ef94
Allow duplicates in reaction palette 2021-09-13 10:04:45 -07:00
Evan Hahn
e2392433e0
Preferred reactions: store raw emoji, gate on feature flag 2021-09-09 16:47:30 -07:00
Evan Hahn
8064560a5f
Update to new provisioning URL scheme 2021-09-09 17:08:19 -05:00
Evan Hahn
f28456c160
Let users customize the preferred reaction palette 2021-09-09 09:29:01 -07:00
Evan Hahn
3e18a8a337
Don't ring large groups 2021-09-02 15:34:38 -07:00
Evan Hahn
1f45bce0a2
When a job fails, respect the Retry-After header if applicable 2021-09-02 17:31:21 -05:00
Evan Hahn
a85dd1be36
Retry outbound "normal" messages for up to a day 2021-08-31 13:58:39 -07:00
Evan Hahn
7f50fcdb54
Improve performance when rendering many emoji 2021-08-30 11:39:03 -05:00
Evan Hahn
6f242eca57
Handle signal.me links 2021-08-28 08:27:38 -05:00
Evan Hahn
9e9a815a2b
ESLint: allow for..of 2021-08-26 13:18:00 -05:00
Evan Hahn
f86f753df9
Add durations utility for computing durations 2021-08-26 09:10:58 -05:00
Evan Hahn
79c976668b
Receive rings for group calls 2021-08-20 09:06:15 -07:00
Fedor Indutny
80c1ad6ee3
Don't mutate state in TimelineItem 2021-08-19 13:14:41 -07:00
Josh Perez
91af0dad78
Faster preferences window 2021-08-18 13:08:14 -07:00
Evan Hahn
502dad8f6f
Handle maxGroupCallRingSize remote config flag 2021-08-17 09:01:27 -05:00
Evan Hahn
b054802758
Make isEditingAvatar impossible unless you're on the right step 2021-08-16 09:33:27 -05:00
Evan Hahn
b0750e5f4e
Show "unplayed" dot on incoming audio messages 2021-08-12 13:15:55 -05:00
Fedor Indutny
12c78c742f
Optimize rendering 2021-08-11 09:23:21 -07:00
Josh Perez
9078919545
Transcode heic/heif images 2021-08-09 13:06:21 -07:00
Scott Nonnenberg
7ce89414bf
Support for alpha build channel 2021-08-06 14:21:01 -07:00
Josh Perez
12d2b1bf7c
Avatar defaults and colors 2021-08-05 20:17:05 -04:00
Evan Hahn
6b290a0f0c
@mentions notifications 2021-08-05 07:35:33 -05:00
Fedor Indutny
21ffb7c054 Unseal envelope in a separate step for better logs 2021-08-02 14:17:56 -07:00
Evan Hahn
689542a9b4
Show additional data in debug log header 2021-07-30 09:43:16 -07:00
Evan Hahn
8cadc40975
Replace MessageModel#isUnread with isMessageUnread utility 2021-07-29 09:29:07 -05:00
Evan Hahn
b826097237
Show window titlebar in test 2021-07-28 16:46:25 -07:00
Fedor Indutny
1c1d0e2da0
Move to websocket for requests to signal server 2021-07-28 14:37:09 -07:00
Scott Nonnenberg
4b92e12f83
Group Details: Show unregistered users in member list 2021-07-28 13:52:49 -05:00
Evan Hahn
14929fb408
Show "unplayed" dot on outgoing audio messages 2021-07-27 10:42:25 -05:00
Evan Hahn
18140c4a9d
Retry outbound read syncs for up to 24 hours 2021-07-23 15:02:36 -07:00
Fedor Indutny
fdec47d637
Use single WebAPI instance across the app 2021-07-23 10:23:50 -07:00
Evan Hahn
1e10286210
Message details: group by send status, including viewed state 2021-07-20 14:56:50 -05:00
Evan Hahn
c4a09b7507
Refactor outbound delivery state, take 2
This reverts commit ad217c808d.
2021-07-19 17:44:49 -05:00
Josh Perez
cd35a29638
Edit profile 2021-07-19 12:26:06 -07:00
Fedor Indutny
c3bdf3d411
Show lightbox for GIFs 2021-07-14 16:39:52 -07:00
Fedor Indutny
8951665554
Clean up conversations with UUID as E164 2021-07-13 17:46:02 -07:00
Fedor Indutny
570fb182d4
Fully move to protobufjs 2021-07-13 11:54:53 -07:00
Fedor Indutny
ad217c808d
Revert "Refactor outbound delivery state"
This reverts commit 9c48a95eb5.
2021-07-12 16:51:45 -07:00
Evan Hahn
9c48a95eb5
Refactor outbound delivery state 2021-07-09 16:38:51 -05:00
Fedor Indutny
e4efa01073
Fix attachment downloads for zero cdnId 2021-07-09 13:12:29 -07:00
Fedor Indutny
ddbbe3a6b1
More protobufjs migration 2021-07-09 12:36:10 -07:00
Fedor Indutny
299fe2af36
More protobufjs use 2021-07-02 14:21:24 -05:00
Fedor Indutny
773aa9af19
Better emoji support in linkify/previews 2021-06-30 10:00:02 -07:00
Fedor Indutny
2cd4160422
Unify audio playback under App component 2021-06-29 12:58:29 -07:00
Fedor Indutny
d11283f0f1
Update RingRTC to v2.10.6 2021-06-29 09:39:53 -05:00
Evan Hahn
4495a1ac67
Add reduce iterables utility 2021-06-28 14:46:33 -07:00
Fedor Indutny
cd28e71bc6
Default disappearing message timeout fixes 2021-06-25 16:52:56 -07:00
Josh Perez
01eabf9ec6
Option to send photos as high quality 2021-06-25 11:08:16 -05:00
Fedor Indutny
c9b1ce6655
Use assert in normalizeUuid 2021-06-22 16:08:55 -07:00
Evan Hahn
9db19283ac
MessageController: return all messages by sent at, not just 1 2021-06-22 16:05:05 -07:00
Fedor Indutny
9f0c630574
Move to protobufjs in ts/groups.ts 2021-06-22 09:46:42 -05:00
Scott Nonnenberg
68f1023946
Move message.getPropsForBubble and friends to selectors 2021-06-17 10:15:10 -07:00
Fedor Indutny
8f5086227a
Enforce stronger types for ArrayBuffers and storage 2021-06-14 17:09:37 -07:00
Fedor Indutny
17e6ec468e
Faster WebSocket reconnects 2021-06-09 15:28:54 -07:00
Scott Nonnenberg
bff3f0c74a
Sender Key: Prepare for production 2021-06-08 14:51:58 -07:00
Josh Perez
d38a0042ba
Fix new link scenario where default color is not set 2021-06-07 15:17:44 -07:00
Josh Perez
df7f702dde
Update group name colors 2021-06-07 11:50:18 -05:00
Evan Hahn
eaf4036fc8
Compute provisioning URL in separate function 2021-06-07 09:27:02 -07:00
Evan Hahn
6c6eed0b1e
Don't show name collisions for system contacts 2021-06-02 10:24:22 -07:00
Josh Perez
6d7849e6c7
Colors update contact name colors 2021-06-01 16:37:12 -07:00
Evan Hahn
36c15fead4
Group name spoofing warning 2021-06-01 16:30:25 -07:00
Fedor Indutny
19f8042cd3
Universal Disappearing Messages 2021-06-01 13:45:43 -07:00
Fedor Indutny
6e19383a7d
Fix SMS-only check for unregistered convo 2021-06-01 13:10:19 -07:00
Fedor Indutny
33595646c1
Add user path to logging exceptions 2021-06-01 11:15:23 -07:00
Scott Nonnenberg
ee513a1965
Support for message retry requests 2021-05-28 12:11:19 -07:00
Josh Perez
28f016ce48
Conversation Colors 2021-05-28 09:15:17 -07:00
Evan Hahn
d4dc9b8e39 Message Requests: Add new "Report spam and block" button 2021-05-27 13:37:58 -07:00
Evan Hahn
7c7f7ee5a0 Add concat iterable utility 2021-05-20 17:37:19 -07:00
Evan Hahn
392822372b Iterables: add and use filter 2021-05-20 17:37:17 -07:00
Scott Nonnenberg
e6bab06510 Receive support for Sender Key
Co-authored-by: Fedor Indutny <79877362+indutny-signal@users.noreply.github.com>
2021-05-20 17:37:08 -07:00
Fedor Indutny
7fa730531a Improve experience for contacts without signal accounts 2021-05-20 17:37:08 -07:00
Evan Hahn
18abe93022 Remove many instances of deprecated url.parse 2021-05-20 17:37:07 -07:00
Evan Hahn
a8346c490e Fix inaccurate numbers on group details screen 2021-05-20 17:37:07 -07:00
Josh Perez
24b7790829
One SearchInput to rule them all 2021-05-10 20:50:43 -04:00
Fedor Indutny
4b566e0a19
Use fake timers in challenge_test.ts 2021-05-07 17:34:50 -07:00
Fedor Indutny
a3693a7f4a
Fix further flakiness in challenge tests on CI 2021-05-07 15:36:28 -07:00
Evan Hahn
d28678dbf9
Make it more difficult to blur avatars 2021-05-07 17:21:10 -05:00
Fedor Indutny
0ccc607100
Fix race conditions in challenge test 2021-05-07 13:59:46 -07:00
Fedor Indutny
470eab8352
Fix race condition in challenge test 2021-05-07 09:10:40 -07:00
Fedor Indutny
986d8a66bc
Show challenge when requested by server 2021-05-05 17:09:29 -07:00
Evan Hahn
8ef14e6f39
When incoming message should've been sealed sender, reply with profile key 2021-05-05 09:39:16 -07:00
Scott Nonnenberg
c5c667ab1b
Left pane: Ensure pinned conversations show only once 2021-05-04 17:16:59 -05:00
Scott Nonnenberg
fb00464033
Fine-tuning of conversation lists (compose, forward, left pane) 2021-05-04 09:17:32 -07:00
Evan Hahn
736075322c
Render disappearing message timers generically 2021-05-03 16:24:40 -07:00
Evan Hahn
05703c2719
Blur avatars of unapproved conversations 2021-04-30 14:40:25 -05:00
Evan Hahn
bbd7fd3854
Initial support for job queue 2021-04-29 18:02:27 -05:00
Evan Hahn
1238cca538 Ensure group details screen has the latest data 2021-04-29 14:27:38 -07:00
Evan Hahn
e7ef3de6d0 Profile name spoofing dialog 2021-04-29 14:27:35 -07:00
Scott Nonnenberg
86d2a4b5dd decrypt/encrypt with libsignal-client, remove libsignal-protocol-javascript 2021-04-29 14:27:35 -07:00
Evan Hahn
37ff4a1df4 Fix 1:1 message to/from in search results
See [#5161][0].

[0]: https://github.com/signalapp/Signal-Desktop/pull/5161
2021-04-29 14:27:35 -07:00
Josh Perez
353becffac
Various fixes for message forwarding 2021-04-28 15:44:48 -05:00
Josh Perez
d203f125c6
Adds message forwarding 2021-04-27 18:35:35 -04:00
Josh Perez
5e2d48cc2f
Do not populate left pane on initial link 2021-04-20 19:16:49 -04:00
Quentin Hibon
773fe1521c fix 2021-04-15 21:40:19 +02:00
Quentin Hibon
4568e4904a
Update ts/test-both/state/selectors/search_test.ts
Co-authored-by: Evan Hahn <69474926+EvanHahn-Signal@users.noreply.github.com>
2021-04-15 21:26:46 +02:00
Quentin Hibon
58d22048b9
Update ts/test-both/state/selectors/search_test.ts
Co-authored-by: Evan Hahn <69474926+EvanHahn-Signal@users.noreply.github.com>
2021-04-15 21:26:39 +02:00
Quentin Hibon
38074374f4 Add test 2021-04-10 01:30:16 +02:00
Josh Perez
6c0acd09df
Sync mute state 2021-04-09 11:19:38 -05:00
Evan Hahn
f615b1a75f Reject reactions with invalid number of graphemes 2021-04-08 23:53:18 -04:00
Josh Perez
9438b7b3fe
Fixes pinned conversations sync 2021-04-08 15:27:20 -04:00
Scott Nonnenberg
a1c534ec0c
Fix CDS fetches; use proper hashing mechanism 2021-04-07 14:27:40 -07:00
Evan Hahn
1a9c6b9385 Clean up iterable utilities 2021-04-05 18:08:50 -04:00
Evan Hahn
bd48dea613 Add enum parser utility 2021-04-05 18:08:50 -04:00
Kasia Kosturek
d20cc59a26
getInitials: handle more cases
See [#5029]][0].

[0]: https://github.com/signalapp/Signal-Desktop/pull/5029
2021-04-02 15:30:49 -05:00
rhklee
8b51f174d8
Remove backslash from search queries
Co-authored-by: Lee Randy <randy.lee@metronom.com>
Co-authored-by: Evan Hahn <69474926+EvanHahn-Signal@users.noreply.github.com>

See [#5053][0].

[0]: https://github.com/signalapp/Signal-Desktop/pull/5053
2021-04-02 15:29:54 -05:00
Fedor Indutny
6f7ecb141f
filterAndSortContacts should tokenize 2021-03-29 17:19:59 -05:00
Evan Hahn
f157ce2eec
Add "_test" suffix to environment test file 2021-03-29 16:26:49 -05:00
Fedor Indutny
746e99b8c2
Flush all watchers on empty queue 2021-03-25 17:00:03 -07:00
Evan Hahn
b44bf33256
Move audioPlayer duck test 2021-03-24 16:08:44 -07:00
Fedor Indutny
919259c960
Use non-subtle crypto in libsignal-protocol 2021-03-23 17:50:02 -07:00
Fedor Indutny
a75402d290
Add timestamp utilities with helpful names 2021-03-22 16:08:52 -05:00
Evan Hahn
b725ed2ffb Refresh profiles on app start (at most every 12 hours) 2021-03-19 16:57:36 -04:00
Fedor Indutny
fd8339e2ff Fix for UnregisteredUserError handling when fetching UUIDs 2021-03-19 16:57:36 -04:00
Evan Hahn
45dbe4d145 In left pane and "add group member", sort E164-only contacts to the bottom 2021-03-19 16:57:35 -04:00
Evan Hahn
b81a52bbdd New Group administration: Add users 2021-03-19 16:57:35 -04:00
Fedor Indutny
12d7f24d0f New UI for audio playback and global audio player
Introduce new UI and behavior for playing audio attachments in
conversations. Previously, playback stopped unexpectedly during window
resizes and scrolling through the messages due to the row height
recomputation in `react-virtualized`.

With this commit we introduce `<GlobalAudioContext/>` instance that
wraps whole conversation and provides an `<audio/>` element that
doesn't get re-rendered (or destroyed) whenever `react-virtualized`
recomputes messages. The audio players (with a freshly designed UI) now
share this global `<audio/>` instance and manage access to it using
`audioPlayer.owner` state from the redux.

New UI computes on the fly, caches, and displays waveforms for each
audio attachment. Storybook had to be slightly modified to accomodate
testing of Android bubbles by introducing the new knob for
`authorColor`.
2021-03-19 16:57:35 -04:00
Evan Hahn
9f5335b854 New Group administration: update title and avatar 2021-03-19 16:57:35 -04:00
Evan Hahn
ecc04d36de Disallow group names longer than 32 extended graphemes 2021-03-19 16:57:35 -04:00
Josh Perez
3cc6c5f5ad Fix for missing replacement text in bodyRanges 2021-03-19 16:57:35 -04:00
Scott Nonnenberg
c73e35b1b6 Support for translating Desktop sessions to libsignal-client sessions 2021-03-19 16:57:35 -04:00
Josh Perez
44dfd28017 Fix message retry and search results with mentions 2021-03-19 16:57:35 -04:00
Scott Nonnenberg
9e2411ce30 Remove getIsConversationEmptySelector in favor of messageCount 2021-03-19 16:57:35 -04:00
Scott Nonnenberg
7e629edd21 Move SignalProtocolStore to TypeScript 2021-03-19 16:53:52 -04:00
Evan Hahn
5de4babc0d Support for creating New Groups 2021-03-19 16:53:52 -04:00
Evan Hahn
06fb4fd0bc Add "new conversation" composer for direct messages 2021-03-19 16:53:51 -04:00
Evan Hahn
eb203ba929 Disable search keyboard shortcuts when main header isn't shown 2021-03-19 16:53:51 -04:00
Evan Hahn
bc37b5c907
Add an assertion when updating conversations; update cleanData 2021-02-04 11:54:03 -08:00
Scott Nonnenberg
a48b3e381e
Support for joining New Groups via invite links 2021-01-29 14:16:48 -08:00
Josh Perez
c0510b08a5
Introduce conversation details screen for New Groups
Co-authored-by: Chris Svenningsen <chris@carbonfive.com>
Co-authored-by: Sidney Keese <me@sidke.com>
2021-01-29 13:19:24 -08:00
Scott Nonnenberg
12c44d40a8
makeLookup: Allow for key of zero 2021-01-27 14:39:45 -08:00
Evan Hahn
a8787e7c9e
Convert logging infrastructure to TypeScript 2021-01-27 13:13:33 -08:00
Evan Hahn
8a72607fa7 Prefer type to interface and add an ESLint rule 2021-01-25 18:29:00 -08:00
Evan Hahn
fbfcdbf84e Group calling: add overflow area 2021-01-25 18:28:59 -08:00
Scott Nonnenberg
cbc6c29479 Finish in-redux conversation lookups, getPropsForSearchResult moved 2021-01-25 18:28:58 -08:00
Evan Hahn
8e7379a591 Move getDefaultConversation into a shared test folder 2021-01-25 18:28:58 -08:00
Evan Hahn
8c25ffd6f5 Link previews: show full size image less often 2021-01-11 14:23:09 -08:00
Evan Hahn
55091edefa Avoid unnecessary re-render on CHECK_NETWORK_STATUS 2020-12-17 12:12:52 -05:00
Evan Hahn
db0ebc5779
Update group membership for a group call when it changes 2020-12-09 15:21:34 -08:00
Evan Hahn
4aaf08ba49
Minor: fix year in license comment 2020-12-08 15:02:32 -05:00
Evan Hahn
0c039bf431
Add group calling events to the message timeline 2020-12-07 14:43:19 -06:00
Evan Hahn
a2f285d243
Put group calling behind a remote feature flag 2020-12-07 14:35:14 -06:00
Evan Hahn
a9367f48f1
Dark theme for calling device selection 2020-12-04 15:03:01 -08:00
Scott Nonnenberg
6832b8acca
Timeline: repair oldest/newest metrics if we fetch nothing 2020-12-04 14:41:40 -06:00