Commit graph

1152 commits

Author SHA1 Message Date
Evan Hahn
f7d4f84736 Enable New Group settings for everyone; remove desktop.gv2Admin feature flag 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
11e9b971f0 Provide third HKDF parameter putRemoteAttestation 2021-03-19 16:57:35 -04:00
Fedor Indutny
8c9e556a22 Don't use useMemo() for AudioContext/Audio/Cache
`useMemo()` doesn't guarantee that the value won't be recomputed during
re-renders. Unfortunately, every time `AudioContext` is instantiated -
there is an audible click. This click happens during the change between
conversations and is very annoying.

Move both `AudioContext` instance to the
GlobalAudioContext's top-level declarations, and `Audio`/`WaveformCache`
to `useRef()`s.
2021-03-19 16:57:35 -04:00
Josh Perez
0bd3c78187 Do not batch single saveMessage calls after start-up 2021-03-19 16:57:35 -04:00
Evan Hahn
80e3582d01 Trim group titles when creating or editing
* Trim group titles when creating or editing

* Trim title in more places
2021-03-19 16:57:35 -04:00
Evan Hahn
2cd29e1b63 In Redux action, log error on failure to create group 2021-03-19 16:57:35 -04:00
Josh Perez
1622fdfa4e Improve conversation initial load times 2021-03-19 16:57:35 -04:00
Josh Perez
d85a43fe93 Replace bunyan with pino 2021-03-19 16:57:35 -04:00
Evan Hahn
b0bee86fd3 Error if encrypted group title is too long 2021-03-19 16:57:35 -04:00
Josh Perez
f07da67c60 Toggle between db in renderer and in main 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
Josh Perez
1ca4960924 Changes display of your own name to "You" 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
Josh Perez
468d491d34 Optimizations to the performance improvement changes 2021-03-19 16:57:35 -04:00
Evan Hahn
729d808f62 macOS: make conversation and main header draggable 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
Evan Hahn
934e0fa415 In <ContactPills>, use new "scrollToBottom" helper 2021-03-19 16:57:35 -04:00
Scott Nonnenberg
1ad01c7d36 Fix 'you created group' message pinned to bottom 2021-03-19 16:57:35 -04:00
Josh Perez
c313514f34 Auto healing unreferenced quotes 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
Evan Hahn
dab5386207 Update group limits error message 2021-03-19 16:57:35 -04:00
Josh Perez
230604b451 Fix for storage service profileSharing setting 2021-03-19 16:57:35 -04:00
Josh Perez
d82ce07942 Improve cold start performance 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
c9ffb7c014 Move SecretSessionCipher to TypeScript 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
Fedor Indutny
18fb2b806e Remove notification on reaction remove/change 2021-03-19 16:53:51 -04:00
Fedor Indutny
c4dc3f3bcb Make mention blot non-contenteditable 2021-03-19 16:53:51 -04:00
Evan Hahn
99bcad0bd9 Use missingCaseError in <CallingPipRemoteVideo> 2021-03-19 16:53:51 -04:00
Evan Hahn
8c951602b7 Add conversation header button hover states 2021-03-19 16:53:51 -04:00
Fedor Indutny
a2a0d56270 Ensure a theme setting value is saved on first startup 2021-03-19 16:53:51 -04:00
Josh Perez
12bba24dbd Improvements to Group Settings screen 2021-03-19 16:53:51 -04:00
Evan Hahn
dfa5005e7d Update conversation header design 2021-03-19 16:53:51 -04:00
Evan Hahn
d7d70da315 Fix typo in buildGroupProto error message 2021-03-19 16:53:51 -04:00
Scott Nonnenberg
d0e3a2ce29 background.ts/conversation_view.ts modules, Whisper.View/ToastView in TS 2021-03-19 16:53:51 -04:00
Scott Nonnenberg
2aa2aca9f2 A few bug fixes 2021-03-19 16:53:51 -04:00
Scott Nonnenberg
254cddc514 Move getPlaceholder to component that needs it 2021-03-19 16:53:51 -04:00
Jack Lloyd
c33fea35dc Fingerprint using SignalClient library 2021-03-19 16:53:51 -04:00
Evan Hahn
06fb4fd0bc Add "new conversation" composer for direct messages 2021-03-19 16:53:51 -04:00
Evan Hahn
8ee3bd9687 Create <Button> component and use it in <GroupV2JoinDialog> 2021-03-19 16:53:51 -04:00
Evan Hahn
c4551ca7ca Revoke object URLs in two error cases 2021-03-19 16:53:51 -04:00
Scott Nonnenberg
1ee47735d9 Add 'chat session refreshed' to timeline for every error 2021-03-19 16:53:51 -04:00
Scott Nonnenberg
733c86ee8e GroupV2: Log from/to revision when applying full group state 2021-03-19 16:53:51 -04:00
Scott Nonnenberg
98e7e65d25 Automatic session reset 2021-03-19 16:53:51 -04:00
Evan Hahn
fe187226bb Upgrade protobufjs to 6.10.2 2021-03-19 16:53:51 -04:00
Evan Hahn
6bbcf86772 Shorten searchConversations SQL query 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
515b713bfd Mark discoveredUnregisteredAt as optional 2021-03-19 16:53:51 -04:00
Scott Nonnenberg
b35f0f0d5c Debug Logs: Log response body when we fail to upload 2021-02-22 14:01:40 -08:00
Evan Hahn
3306c82992 Fix "URI malformed" crashes on Windows 2021-02-22 14:01:40 -08:00
Scott Nonnenberg
220d906422 Update google-libphonenumber to v3.2.17 2021-02-16 12:14:54 -08:00
Josh Perez
022a381397
onChangeTheme: Guard against uninitialized redux 2021-02-12 11:45:22 -08:00
Scott Nonnenberg
73d62a98e6 Fix composer reference in Ctrl-T shortcut handling 2021-02-12 10:38:58 -08:00
Scott Nonnenberg
bc0f4387fe Backwards compatibility updates for libsignal-client 2021-02-12 10:38:49 -08:00
Josh Perez
34285054f6
Manual download of attachments with no blurHash 2021-02-11 17:50:11 -08:00
Evan Hahn
4519aa4abf Allow PSD uploads over 6MB
You can't currently upload PSD files over 6MB. This is because its
mimetype is `image/vnd.adobe.photoshop`. We think this is an image, and
non-GIF images have a limit of 6MB.

To fix this, we could do one of two things:

1. Add a special case for PSD files
2. Increase the size limit for unsupported image types such as this

I went with the second option.

Tested this by:

- adding automated tests
- uploading a ~9 MB PSD file
- uploading a ~1 MB PNG
- uploading a ~27 MB PNG (which worked because it's converted to a smaller JPEG)
- uploading a ~50 MB text file
- trying to upload a ~500 MB text file (which failed, as expected)

Addresses [DESKTOP-1168][].

[DESKTOP-1168]: https://signalmessenger.atlassian.net/browse/DESKTOP-1168
2021-02-10 14:47:55 -08:00
Evan Hahn
92e5ccd764 When initializing Redux, add 2 missing properties to conversations slice 2021-02-10 14:47:55 -08:00
Scott Nonnenberg
9858ae0642 Honor messageKeysLimit, remove batching for session saves 2021-02-10 14:47:55 -08:00
Scott Nonnenberg
80871270c6 Handle group data from log endpoint with no groupChange 2021-02-10 14:47:55 -08:00
Evan Hahn
24f2363ebe Upgrade Sinon to latest version, v9.2.4 2021-02-10 14:47:55 -08:00
Scott Nonnenberg
e10ae03bb7
Create group link previews; don't open Signal links in browser first; allow ephemeral download of previously-error'd pack 2021-02-10 16:39:26 -06:00
Scott Nonnenberg
2957735a86
getMembersCount: Return undefined when conversation has no members 2021-02-09 18:00:16 -06:00
Scott Nonnenberg
e863aae0bf
Specify public key type in updatesPublicKey 2021-02-05 11:34:52 -06:00
Scott Nonnenberg
e8b6f15ff5 Remove unused lint-deps exception 2021-02-04 14:59:13 -08:00
Zachary DeRose
819554f6b3
Adjust MIMEType Predicate Signatures (#4832) 2021-02-04 14:46:30 -08:00
007
5fad43fcfb
fix: allow hyphen on search term (#4731) 2021-02-04 14:41:42 -08:00
Jacob Pyke
d93e66813d
Updated emoji completion to allow capital letters
Signed-off-by: JPyke3 <pyke.jacob1@gmail.com>
2021-02-04 14:40:26 -08:00
007
062a1f7dd9
Fix message input emoji focus close (#4727) 2021-02-04 14:37:47 -08:00
david yang
2501584db6
Add keyboard shortcut to match other MacOS Chat Apps (#4719)
MacOS Messages and WhatsApp (amongst other messaging apps) use this Cmd + Shift + [/] to switch between convos.  Would be great to have that in Signal as well.
2021-02-04 14:36:39 -08:00
Idan Moral
cd2c6351fc
Fixed a comment typo in Linkify.tsx (#4825) 2021-02-04 14:30:21 -08:00
Scott Nonnenberg
2f90d6aca9
Manually manage full-text search table 2021-02-04 12:46:55 -08:00
Jim Gustafson
245f8c665d
Update to RingRTC v2.9.2 2021-02-04 11:54:18 -08:00
Evan Hahn
bc37b5c907
Add an assertion when updating conversations; update cleanData 2021-02-04 11:54:03 -08:00
Evan Hahn
73a304faba
Add aria-label to incoming call bar buttons 2021-02-04 11:51:40 -08:00
Scott Nonnenberg
21611266e5
Cache: Store sourceUuid for message rehydration 2021-02-04 11:43:10 -08:00
Scott Nonnenberg
089e2864b3
Reduce unnecessary or overly verbose logging 2021-02-04 11:39:07 -08:00
Evan Hahn
38193e6591
Fix comment typo 2021-02-03 10:45:35 -06:00
Evan Hahn
8f1bb6f087
Don't render links (or link previews) for blocked or unapproved conversations 2021-02-02 11:09:53 -06:00
Josh Perez
267ae80442
UI fixes for conversation details screen 2021-02-01 14:57:42 -08:00
Evan Hahn
ddebbf8121
Hide title bar on macOS 2021-02-01 12:01:25 -08:00
Josh Perez
a096220990
Do not download media if in call 2021-01-29 14:58:28 -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
Evan Hahn
1268945840
Fix typing bubble in group chats 2021-01-27 19:41:41 -08:00
Josh Perez
1b38db2d79
Fixes rendering of about bio 2021-01-27 19:18:50 -05:00
Scott Nonnenberg
12c44d40a8
makeLookup: Allow for key of zero 2021-01-27 14:39:45 -08:00
Jack Lloyd
a769402c0c
Use the libsignal-client for curve operations 2021-01-27 14:39:09 -08:00
Evan Hahn
1da724edf2
Fix missing avatars in groups 2021-01-27 13:15:43 -08:00
Evan Hahn
a8787e7c9e
Convert logging infrastructure to TypeScript 2021-01-27 13:13:33 -08:00
Evan Hahn
10ace53845
Remove unnecessary query param for /v1/certificate/delivery endpoint 2021-01-27 11:10:00 -06:00
Evan Hahn
d50b02cc35
Remove implicit any from Redux store creation 2021-01-26 15:12:23 -08:00
Josh Perez
258bd55dd2 Show about info from contact profiles 2021-01-25 18:29:01 -08:00
Evan Hahn
c8b551edab Upgrade to Electron 11 2021-01-25 18:29:01 -08:00
Evan Hahn
f404904a49 Convert dock_icon.js to TypeScript 2021-01-25 18:29:01 -08:00
Evan Hahn
932e44e3bf Don't let quote thumbnails get taller than the quote itself 2021-01-25 18:29:01 -08:00
Evan Hahn
ca669a2638 Update Sharp to the latest version, v0.27.0 2021-01-25 18:29:01 -08:00