Commit graph

417 commits

Author SHA1 Message Date
Evan Hahn
b81a52bbdd New Group administration: Add users 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
d85a43fe93 Replace bunyan with pino 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
Evan Hahn
934e0fa415 In <ContactPills>, use new "scrollToBottom" helper 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
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
dfa5005e7d Update conversation header design 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
Evan Hahn
06fb4fd0bc Add "new conversation" composer for direct messages 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
eb203ba929 Disable search keyboard shortcuts when main header isn't shown 2021-03-19 16:53:51 -04:00
Scott Nonnenberg
220d906422 Update google-libphonenumber to v3.2.17 2021-02-16 12:14:54 -08:00
Scott Nonnenberg
9858ae0642 Honor messageKeysLimit, remove batching for session saves 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
e8b6f15ff5 Remove unused lint-deps exception 2021-02-04 14:59:13 -08:00
Scott Nonnenberg
089e2864b3
Reduce unnecessary or overly verbose logging 2021-02-04 11:39:07 -08:00
Evan Hahn
8f1bb6f087
Don't render links (or link previews) for blocked or unapproved conversations 2021-02-02 11:09:53 -06: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
Josh Perez
1b38db2d79
Fixes rendering of about bio 2021-01-27 19:18:50 -05:00
Evan Hahn
1da724edf2
Fix missing avatars in groups 2021-01-27 13:15:43 -08:00
Evan Hahn
10ace53845
Remove unnecessary query param for /v1/certificate/delivery endpoint 2021-01-27 11:10:00 -06: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
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
Evan Hahn
8a72607fa7 Prefer type to interface and add an ESLint rule 2021-01-25 18:29:00 -08:00
Evan Hahn
c85c073669 Update Bunyan to the latest version, v1.8.15 2021-01-25 18:29:00 -08:00
Evan Hahn
7884f4033e Patch over slow debug log rendering 2021-01-25 18:29:00 -08:00
Scott Nonnenberg
d1355d5874 Show 'you were removed from group' if dropped during migration 2021-01-25 18:29:00 -08:00
Evan Hahn
fbfcdbf84e Group calling: add overflow area 2021-01-25 18:28:59 -08:00
Evan Hahn
8e1391c70c Share group calling frame buffers to reduce memory usage 2021-01-25 18:28:59 -08:00
Evan Hahn
8ccf402497 Use consistent User-Agent when uploading debug logs 2021-01-25 18:28:59 -08:00
Josh Perez
2529e208c1 Move confirmation_dialog_view to ts and React
* Moves confirmation_dialog_view to ts and React

* showConfirmationDialog API
2021-01-25 18:28:58 -08:00
Evan Hahn
dd0ea6b3fe Upgrade TypeScript to the latest version, v4.1.3 2021-01-25 18:28:57 -08:00
Scott Nonnenberg
4eb49ff304 Fix a few issues with linking a new Desktop instance 2021-01-19 17:35:07 -08:00
Evan Hahn
8c25ffd6f5 Link previews: show full size image less often 2021-01-11 14:23:09 -08:00
Evan Hahn
0a35489696
Fix layout of "this person is in your contacts" tooltip 2021-01-11 13:43:21 -08:00
Evan Hahn
c87ffcd2e9
Call lobby: render local preview at camera's aspect ratio 2020-12-11 16:44:07 -08:00
Scott Nonnenberg
0506b79f6b
Quotes: Use authorId when navigating to original message 2020-12-11 12:06:04 -06:00
Scott Nonnenberg
3f58a9b762
Clean up UUID-handling to prepare for future 2020-12-09 17:26:37 -05:00
Scott Nonnenberg
5369950c1d
Don't promote archived sessions, more logging on error 2020-12-09 14:05:11 -08:00
Josh Perez
318013e83d
Handles safety number changes while in a call 2020-12-08 14:37:04 -05:00
Evan Hahn
0c039bf431
Add group calling events to the message timeline 2020-12-07 14:43:19 -06:00
Scott Nonnenberg
6832b8acca
Timeline: repair oldest/newest metrics if we fetch nothing 2020-12-04 14:41:40 -06:00
Evan Hahn
c85ea814b1
Group calling participants refactor 2020-12-02 10:14:03 -08:00
Evan Hahn
d1866a0e5d
Group calling: tell RingRTC about our rendered resolutions for perf 2020-12-01 17:52:01 -08:00
Josh Perez
81cc8a1211
Group Calling: blocking participants
Co-authored-by: Evan Hahn <evanhahn@signal.org>
2020-12-01 19:30:25 -06:00
Evan Hahn
bb5036364e
Prevent calling PiP from going off-screen 2020-12-01 11:21:47 -08:00
Evan Hahn
c7290309d3
Minor: remove a typecast from <CallingPip> 2020-12-01 11:57:46 -05:00
Evan Hahn
4c78a6c57f
Show toast when group call is reconnecting 2020-12-01 11:46:44 -05:00
Scott Nonnenberg
2b8ae412e0
New feature flag with ability to migrate GV1 groups 2020-12-01 10:42:35 -06:00
Josh Perez
34574583b6 Group calling: fix participant hover state 2020-11-23 14:49:32 -05:00
Evan Hahn
daef1feae8 Add list of participants to the lobby, and add basic blocking for max participants 2020-11-23 14:49:32 -05:00
Josh Perez
f8b4862ed5 Participant list improvements 2020-11-23 14:49:32 -05:00
Evan Hahn
6d53cb1740 Group calling: Peek into a group call 2020-11-23 14:49:32 -05:00
Josh Perez
6a6f8e28ce Group Calling: show participant name on hover 2020-11-23 14:49:31 -05:00
Josh Perez
5cc7c9a66a Group Calling: Improve mute state styling 2020-11-23 14:49:31 -05:00
Josh Perez
c6eafbb8d5 Fix tooltip bugs 2020-11-23 14:49:31 -05:00
Evan Hahn
05205c77cf In conversation header, only show video button for group calls 2020-11-23 14:49:31 -05:00
Evan Hahn
94178717c9 Group call video rendering performance improvements 2020-11-23 14:49:31 -05:00
Evan Hahn
b366967ca5 Upgrade to RingRTC v2.8.2 RC.6 2020-11-23 14:48:12 -05:00
Scott Nonnenberg
2c69f2c367 Support for GV1 -> GV2 migration 2020-11-23 14:48:12 -05:00
Scott Nonnenberg
26884432a2 Update TypeScript, Prettier and typescript-eslint for new TypeScript 3.8 syntax 2020-11-23 14:45:44 -05:00
Josh Perez
1f0c091e13 Group calling enhancements 2020-11-23 14:45:44 -05:00
Evan Hahn
c6e4c1d1a9 Add audio mute indicator for local preview and group remote participants 2020-11-23 14:45:44 -05:00
Evan Hahn
022c4bd0f4 Initial group calling support 2020-11-23 14:45:44 -05:00
Chris Svenningsen
24b70e6edd
CompositionInput: Proper RTL support 2020-11-20 16:03:16 -08:00
Sidney Keese
7af2284c6b
Composition area: Only paste HTML that originated in Signal
Co-authored-by: Chris Svenningsen <chris@carbonfive.com>
2020-11-11 17:01:45 -08:00
Chris Svenningsen
d593f74241
New contact popup when clicking on group member or avatar 2020-11-11 09:36:05 -08:00
Evan Hahn
957a1e0d07
Calling lobby: show your blurred avatar instead of other person's 2020-11-09 10:56:20 -08:00
Sidney Keese
91beef7797
Improve emoji blot and override clipboard behavior 2020-11-06 12:11:18 -08:00
Evan Hahn
3468de255d
Redux state: Allow multiple calls to be stored 2020-11-06 09:36:37 -08:00
Chris Svenningsen
fe298444fb
Bring up picker on backspace into mention 2020-11-05 13:18:42 -08:00
Chris Svenningsen
4def45b86a
Remove fuzzy @mention search 2020-11-04 14:04:48 -08:00
Evan Hahn
66da943f27
Call screen footer styling improvements 2020-11-04 11:56:03 -08:00
Chris Svenningsen
53c89aa40f Send @mentions 2020-11-04 13:03:13 -06:00
Chris Svenningsen
ff18063f89 Ensure emoji picker can insert without composition box focus 2020-11-04 13:03:13 -06:00
Evan Hahn
8bfaf598af Add license headers across the project 2020-11-04 13:03:13 -06:00
Evan Hahn
decc93532b Hide call buttons when on call 2020-11-04 13:03:13 -06:00
Chris Svenningsen
c408072576 Mark conversation as unread
Co-authored-by: Sidney Keese <sidney@carbonfive.com>
2020-11-04 13:03:10 -06:00
Evan Hahn
cb9a7f79d1 Rewrite Message model tests in TypeScript 2020-11-04 13:00:41 -06:00
Evan Hahn
8073ccd32c Rewrite <CallScreen> component with hooks 2020-11-04 13:00:41 -06:00
Evan Hahn
dd8a2435ea Add useRef() React Hook to lint rules 2020-11-04 13:00:40 -06:00
Sidney Keese
fbf93374c1 Replace Draft with Quill for composition area
Co-authored-by: Sidney Keese <sidney@carbonfive.com>
2020-11-04 13:00:40 -06:00
Scott Nonnenberg
fa2d300714 Show 'accept invite UI' for re-invite, calm progress spinner 2020-10-26 15:55:27 -07:00
Scott Nonnenberg
04b7a29229 Modern profile sharing in 1:1 and GroupV1 groups 2020-10-26 15:48:44 -07:00
Evan Hahn
60f2422e2a Consolidate sleep usages into a tested utility function 2020-10-26 15:48:44 -07:00
Evan Hahn
dd57963dab Outbound link previews: more lenient loading
Signed-off-by: Josh Perez <josh.p@signal.org>
2020-10-15 14:34:45 -04:00
Josh Perez
1507dea351
Move calling duration timer into redux state 2020-10-13 14:02:43 -07:00
Josh Perez
47cd1ddbff Fixes lint 2020-10-12 18:48:19 -04:00
Josh Perez
59a181bd30 Calling: Lobby 2020-10-12 18:10:08 -04:00
Scott Nonnenberg
b914b59969 Disable obsolete feature flags 2020-10-12 18:10:08 -04:00
Sidney Keese
c3ddedfde1 Reactions: skin tone support 2020-10-12 18:10:08 -04:00
Chris Svenningsen
6a7d45b6fc Pinned Chats 2020-10-12 18:10:08 -04:00
Evan Hahn
6e1a83ae4e Reject HTTP URLs when loading link previews 2020-10-12 18:10:08 -04:00
Evan Hahn
2637d90df0 Minor: remove two anys from <CallScreen> 2020-10-12 18:10:08 -04:00
Josh Perez
a581f6ea81 Calling: Picture-in-picture 2020-10-12 18:10:08 -04:00
Sidney Keese
866217a724 Delete For Everyone Send
Co-authored-by: Chris Svenningsen <chris@carbonfive.com>
2020-10-12 18:10:08 -04:00
Chris Svenningsen
63b2644cb4 Read Pinned Chats
Co-authored-by: Sidney Keese <sidney@carbonfive.com>
2020-10-12 18:10:08 -04:00
Evan Hahn
313faab774 Outbound link previews 2020-10-12 18:10:08 -04:00
Sidney Keese
7b6d8f55d6 Migrate textsecure to eslint
Co-authored-by: Chris Svenningsen <chris@carbonfive.com>
2020-10-12 18:10:07 -04:00
Scott Nonnenberg
4e223def29
Improved support for images with extreme ratios 2020-09-23 12:07:27 -04:00
Evan Hahn
eba1bf3100 Add software acknowledgments, link to them from About window 2020-09-21 15:42:51 -04:00
Josh Perez
64ba7b63d3 Fix lint 2020-09-21 15:42:51 -04:00
Josh Perez
22ba54ce5c Don't count muted convos in badge count by default 2020-09-21 15:42:51 -04:00
Chris Svenningsen
5364de90a4 migrate components stickers to eslint 2020-09-21 15:42:51 -04:00
Sidney Keese
2ade4acd52 Migrate util, types, state, sticker-creator to ESLint 2020-09-21 15:42:51 -04:00
Chris Svenningsen
372aa44e49 Migrate conversations to ESLint 2020-09-21 15:42:51 -04:00
Evan Hahn
b4f0f3c685 Upgrade node-fetch to v2.6.1 2020-09-21 15:42:51 -04:00
Chris Svenningsen
b13dbcfa77 Migrate components to eslint 2020-09-21 15:42:50 -04:00
Evan Hahn
6d2e994f9f Windows: mark downloads as "from the internet" 2020-09-21 15:42:50 -04:00
Josh Perez
9657c38987 @mentions receive support 2020-09-21 15:42:37 -04:00
Scott Nonnenberg
7ee6584d8b Fix linter: global state left on the regex causes problems 2020-09-21 15:42:36 -04:00
Josh Perez
d87335f5a6 Support server-determined build expiration 2020-09-09 17:34:57 -07:00
Scott Nonnenberg
7a02cc815d Support for new GroupV2 groups 2020-09-09 17:34:57 -07:00
Josh Perez
1ce0959fa1 Storage Service: Write 2020-09-09 17:34:57 -07:00
Chris Svenningsen
8a2c17f65f Apply new ESLint rules to legacy code 2020-09-09 17:34:57 -07:00
Ken Powers
8290881bd8 Support for Contact Discovery Service 2020-09-09 17:34:57 -07:00
Evan Hahn
2bedd41e57
Upgrade node-sass to v4.14.1 2020-09-04 11:35:42 -04:00
Scott Nonnenberg
003015f628 Sort exceptions.json 2020-09-04 09:39:17 -04:00
Sidney Keese
48df8ab3b1 ESLint Migration 2020-09-04 09:39:17 -04:00
Josh Perez
9eeb68a9a7 Blocking/Unblocking improvements for message requests 2020-09-01 17:11:16 -04:00
Chris Svenningsen
5b1536cc02 Initial move towards new ESLint config supporting TS
Co-authored-by: Sidney Keese <sidney@carbonfive.com>
2020-09-01 17:11:16 -04:00
Evan Hahn
2e1e6e847a Widen the set of link previews which can be received 2020-09-01 17:10:18 -04:00
Josh Perez
84e52c948b Mute conversations 2020-08-28 15:42:25 -04:00
Chris Svenningsen
e9cf5ba67c Remove react-styleguidist
Co-authored-by: Sidney Keese <sidney@carbonfive.com>
2020-08-28 15:42:25 -04:00
Chris Svenningsen
bcd4f6407f Migrate MessageDetail to Storybook 2020-08-28 15:42:25 -04:00
Chris Svenningsen
b9c5e7bf1d Migrate Message to Storybook 2020-08-28 15:42:25 -04:00
Josh Perez
8ab1013f70 Calling: Device Selection 2020-08-28 15:42:25 -04:00
Evan Hahn
aaed0db2e5 Verify sticker data in getDataFromLink 2020-08-28 15:42:25 -04:00
Josh Perez
25dabd56fd Outgoing call: Show safety number dialog if change detected 2020-08-28 15:42:24 -04:00
Evan Hahn
098bab2d5e Update to Lodash v4.17.20 2020-08-28 15:42:24 -04:00
Danny Lin
c8261814fd
Add setting to toggle notification attention drawing (#4457)
In many GNU/Linux setups, drawing attention when a notification arrives
causes the Signal window to steal focus immediately and interrupt the
user from what they were doing before the notification arrived. GNOME
Shell is the most prominent example of this behavior, but there are
likely other cases as well. Suddenly stealing focus on external events
like this can even pose a security problem in some cases, e.g. if the
user is in the middle of a typing a sudo password on one monitor while a
notification arrives and focuses Signal on another monitor. See #4452
for more information.

Disabling attention drawing entirely for Linux is also problematic
because some users rely on it as the sole indication of a new message,
as seen in #3582 and #3611.

Commit f790694559 improved the situation
by adding a hidden "--disable-flash-frame" command-line argument, but
this argument is undocumented and manually adding command-line arguments
to the application's .desktop file is not user-friendly.

This commit adds a settings option for whether to draw attention when a
new notification arrives to make it easy for all Linux users to obtain
the appropriate behavior without relying on an undocumented
command-line argument.

Fixes #4452.
2020-08-24 14:45:31 -07:00
Chris Svenningsen
d3d3c41f94
Convert <Avatar /> component to Storybook
Co-authored-by: Chris Svenningsen <chris@carbonfive.com>
Co-authored-by: Sidney Keese <me@sidke.com>
2020-08-13 13:53:45 -07:00
Scott Nonnenberg
67058e27bb
Safely generate cached conversation props on startup 2020-08-11 19:15:06 -04:00
Evan Hahn
b32445cd20
Upgrade node-fetch to latest version, v2.6.0 2020-08-11 14:23:37 -07:00
Scott Nonnenberg
81cb7730a5
Message Requests improvements 2020-08-06 20:50:54 -04:00
Scott Nonnenberg
57308d3104
Fixes several bugs 2020-08-04 21:13:19 -04:00
Scott Nonnenberg
d75eee015f Show notifications when a user's profile name changes 2020-07-30 13:27:44 -07:00
Scott Nonnenberg
bab59ba2a1 Force social graph to pull down updates after beta.11 install 2020-07-30 13:27:44 -07:00
Scott Nonnenberg
d07b8e82b2 First-class profile name rendering 2020-07-30 13:27:41 -07:00
Josh Perez
9433a1de99 Don't reset panel on close of recent media pane 2020-07-30 13:17:47 -07:00