Commit graph

551 commits

Author SHA1 Message Date
Evan Hahn
20be8a11fe
Read and write preferred reactions to storage 2021-09-15 11:59:51 -07:00
Fedor Indutny
c7e7d55af4
UUID-keyed lookups in SignalProtocolStore 2021-09-09 19:38:11 -07:00
Evan Hahn
cc52a94c76
Make sure RingRTC has our UUID 2021-09-07 09:21:17 -07:00
Evan Hahn
3e18a8a337
Don't ring large groups 2021-09-02 15:34:38 -07:00
Josh Perez
c6b4f14f3b
Fixes no group description unless admin 2021-08-26 16:12:07 -05:00
Evan Hahn
f86f753df9
Add durations utility for computing durations 2021-08-26 09:10:58 -05:00
Evan Hahn
0e7f641dc1
Let users ring members when starting a group call
Co-Authored-By: Josh Perez <60019601+josh-signal@users.noreply.github.com>
2021-08-25 16:42:51 -05:00
Josh Perez
4371996362
Reduce the amount of storage service conflicts 2021-08-23 19:17:36 -04:00
Evan Hahn
79c976668b
Receive rings for group calls 2021-08-20 09:06:15 -07:00
Josh Perez
e9308bbafb
New option for control over update downloads 2021-08-19 15:56:29 -07:00
Fedor Indutny
1cc7c5dc2d
Move getAlwaysRelayCalls to window.Events 2021-08-19 11:41:24 -07:00
Josh Perez
91af0dad78
Faster preferences window 2021-08-18 13:08:14 -07:00
Evan Hahn
b0750e5f4e
Show "unplayed" dot on incoming audio messages 2021-08-12 13:15:55 -05:00
Fedor Indutny
cc5da98565
Ignore empty e164 in storage service 2021-08-06 11:20:11 -07:00
Josh Perez
12d2b1bf7c
Avatar defaults and colors 2021-08-05 20:17:05 -04:00
Fedor Indutny
a001882d58
Change Phone Number notifications 2021-08-05 16:34:49 -07:00
Evan Hahn
6b290a0f0c
@mentions notifications 2021-08-05 07:35:33 -05:00
Evan Hahn
d0bf9f929b
Remove unused getExpiresAt function 2021-07-30 14:54:34 -05:00
Fedor Indutny
fdec47d637
Use single WebAPI instance across the app 2021-07-23 10:23:50 -07:00
Josh Perez
d9e90e9ea8
Improvements to shared library components 2021-07-21 13:45:41 -07:00
Josh Perez
cd35a29638
Edit profile 2021-07-19 12:26:06 -07:00
Scott Nonnenberg
a42c41ed01
Message Send Log to enable comprehensive resend 2021-07-15 16:48:09 -07:00
Fedor Indutny
570fb182d4
Fully move to protobufjs 2021-07-13 11:54:53 -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
Scott Nonnenberg
615ae1ccf7
Refactor SendMessage.ts to named parameters 2021-07-02 13:34:17 -05:00
Fedor Indutny
d11283f0f1
Update RingRTC to v2.10.6 2021-06-29 09:39:53 -05: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
Evan Hahn
03a187097f
Disappearing message cleanups 2021-06-16 17:20:17 -05:00
Fedor Indutny
562ab5a5a5
Fix syncing of "Off" setting for default timer 2021-06-15 10:06:53 -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
d4875fd8f4
Remove isPrivate, isMe, isGroupV1, isGroupV2 from model 2021-06-07 09:39:13 -07:00
Scott Nonnenberg
e0d613f1b6
Use correct timestamps for failed call events 2021-06-03 15:19:14 -05:00
Fedor Indutny
5b18bb8563
Fix storybook for calling sources modal 2021-06-03 12:52:11 -07:00
Fedor Indutny
56f0e1ba46
Make sure screen name is internationalized 2021-06-03 11:42:30 -07:00
Josh Perez
38d4595e3b
Fix camera setting when stopping screenshare 2021-06-02 13:41:28 -05:00
Fedor Indutny
19f8042cd3
Universal Disappearing Messages 2021-06-01 13:45:43 -07:00
Scott Nonnenberg
ee513a1965
Support for message retry requests 2021-05-28 12:11:19 -07:00
Evan Hahn
d4dc9b8e39 Message Requests: Add new "Report spam and block" button 2021-05-27 13:37:58 -07:00
Scott Nonnenberg
e6f1ec2b6b
Send support for Sender Key 2021-05-25 15:40:04 -07:00
Josh Perez
ceffc2380c Add screensharing behind a feature flag 2021-05-20 17:37:19 -07:00
Fedor Indutny
80da8bb47b Display SMS/MMS disclaimer in empty search results 2021-05-20 17:37:17 -07:00
Josh Perez
e0c324e4ba
Send/Receive support for reaction read syncs 2021-05-06 21:15:25 -04:00
Evan Hahn
8ef14e6f39
When incoming message should've been sealed sender, reply with profile key 2021-05-05 09:39:16 -07:00
Evan Hahn
bbd7fd3854
Initial support for job queue 2021-04-29 18:02:27 -05:00
Scott Nonnenberg
86d2a4b5dd decrypt/encrypt with libsignal-client, remove libsignal-protocol-javascript 2021-04-29 14:27:35 -07:00
Josh Perez
808c7dfb2d
Fixes storage service validation where id already ArrayBuffer 2021-04-28 15:01:29 -04:00
Josh Perez
5e2d48cc2f
Do not populate left pane on initial link 2021-04-20 19:16:49 -04:00
Evan Hahn
ea6562b7ac Merge branch 'hiqua-no_lower_limit_query' into next-beta 2021-04-14 14:14:57 -07:00
Josh Perez
a2a361f0bf
Extra validations for storage service 2021-04-09 16:12:05 -04:00
Josh Perez
6c0acd09df
Sync mute state 2021-04-09 11:19:38 -05:00
Evan Hahn
a82fa86176 Fetch sender certificates on-demand 2021-04-09 00:06:46 -04:00
Josh Perez
9438b7b3fe
Fixes pinned conversations sync 2021-04-08 15:27:20 -04:00
Josh Perez
e4db9358cf
Storage service logging same 2021-04-06 15:54:47 -07:00
Evan Hahn
a7c78b3b23 Storage service: save new AccountRecord fields to disk 2021-04-05 18:08:50 -04:00
AsamK
ea7a5449f1
Fix race condition which often prevented sending group call started message
The group call update message after starting a group call is currently only
sent in the onLocalDeviceStateChanged callback. But often the peekInfo is
not available yet when the connection state changes to Joined, effectively
preventing the group call update message to be sent.

This commit also sends the message in the onPeekChanged callback. It is still
only sent at most once, which is ensured by the updateMessageState check.

See [#5001][0].

[0]: https://github.com/signalapp/Signal-Desktop/pull/5001
2021-04-02 15:32:04 -05:00
Josh Perez
1264e6da2b Retain protections on gv1 records that match gv2 ids 2021-03-30 20:40:48 -04:00
Evan Hahn
b725ed2ffb Refresh profiles on app start (at most every 12 hours) 2021-03-19 16:57:36 -04:00
Fedor Indutny
11bcbded64 Storage Service fixes to prevent crashes on Android
* Merge report v1 group settings into local v2 group

The invariants of Storage Service mandate that the remote data always
takes precendence over the local data. We have to updated
blocked/whitelisted/... of the v2 group even if the record is for the v2
group. After doing such update - sync the manifest back to the Storage
Service with correct v2 record for the group.

* Repair errored records before uploading manifest

Fetch and re-attempt to merge errored records before uploading the
manifest. This is useful in the cases where we were not aware of the V1
group when the remote manifest was fetched, and became aware of it
before the new manifest is generated. In such scenario, we should fetch
the records for things we have failed on last time and attempt to merge
them with our data. If they are merged - we should not let their
storageIDs hang in the new manifest, which would cause group duplicates
and crashes on other clients.

* Create v1 group for storage service record

If we receive storage service record with v1 group that we didn't sync
yet (or just don't have for any other reason) - create it instead of
pushing it to `storage-service-error-records`.
2021-03-19 16:57:36 -04:00
Josh Perez
8dc8a64229 Storage sync before writing 2021-03-19 16:57:35 -04:00
Josh Perez
0fd0fac262 Check for conversation conflicts before writing 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
Evan Hahn
5de4babc0d Support for creating New Groups 2021-03-19 16:53:52 -04:00
Jim Gustafson
245f8c665d
Update to RingRTC v2.9.2 2021-02-04 11:54:18 -08:00
Evan Hahn
38193e6591
Fix comment typo 2021-02-03 10:45:35 -06:00
Scott Nonnenberg
cbc6c29479 Finish in-redux conversation lookups, getPropsForSearchResult moved 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
Evan Hahn
8ace4b6321 Improve window activity detection, improving notification delivery 2021-01-25 18:28:57 -08:00
Evan Hahn
7af68ff74d Minor: remove unused exports from calling service 2020-12-17 12:12:52 -05:00
Evan Hahn
c87ffcd2e9
Call lobby: render local preview at camera's aspect ratio 2020-12-11 16:44:07 -08:00
Evan Hahn
a237946ba0
Disable camera when quickly toggling the call lobby 2020-12-10 10:39:39 -08:00
Evan Hahn
db0ebc5779
Update group membership for a group call when it changes 2020-12-09 15:21:34 -08:00
Evan Hahn
a142cb522e
Send group call events to linked devices 2020-12-09 16:02:50 -06:00
Josh Perez
5b0e267fb2
Revs up the desktop.storageWrite2 feature flag 2020-12-08 16:16:40 -05: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
Evan Hahn
23fed9ce63
Group calling SFU URL should be configurable 2020-12-07 13:40:11 -06:00
Evan Hahn
6af78be51a
Fix logging when updating audio output device 2020-12-04 11:10:33 -08: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
Evan Hahn
b30b83ed57
Send group call update messages when joining/leaving a call 2020-12-01 17:49:08 -08:00
Evan Hahn
f3f2cb2b5e
Show active speaker in group calling PiP 2020-12-01 15:52:09 -08:00
Evan Hahn
7b6ad345ae Group calling: disable local camera when call disconnects 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
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
Vladimir Skuratovich
a0baa3e03f Notify RingRTC of Failed HTTP requests 2020-11-23 14:45:44 -05:00
Josh Perez
1f0c091e13 Group calling enhancements 2020-11-23 14:45:44 -05:00
Evan Hahn
022c4bd0f4 Initial group calling support 2020-11-23 14:45:44 -05:00
Jim Gustafson
ff0794e08b
Update to RingRTC v2.8.1 2020-11-11 15:10:41 -06:00
Sidney Keese
4d95f83007
Clean up transitional pinned chats 2020-11-09 12:30:05 -06:00
Sidney Keese
bba9df3149
Ensure incoming pinned conversations are not archived
Co-authored-by: Chris Svenningsen <chris@carbonfive.com>
2020-11-09 09:32:59 -06:00
Evan Hahn
3468de255d
Redux state: Allow multiple calls to be stored 2020-11-06 09:36:37 -08:00
Evan Hahn
b7a1ddf628 Remove runtime type checks from calling service 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
Chris Svenningsen
c408072576 Mark conversation as unread
Co-authored-by: Sidney Keese <sidney@carbonfive.com>
2020-11-04 13:03:10 -06:00
nsunderland1
2373209834
Don't enable webcam on audio call startup (#4602) 2020-11-02 16:47:18 -08:00
Scott Nonnenberg
cd9aee84f5
Always share profile on send; no profile sharing UI if no messages 2020-10-28 17:40:50 -07:00
Vladimir Skuratovich
a4c6003f34 Prefer audio device 0 if no device preference has been saved 2020-10-26 15:48:44 -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
Chris Svenningsen
fdc3476106 Fix a few pinned chat sync issues 2020-10-15 18:59:45 -04:00
Josh Perez
fac1f26ad2 Better logging for pin/unpin 2020-10-15 14:35:57 -04:00
Josh Perez
1507dea351
Move calling duration timer into redux state 2020-10-13 14:02:43 -07:00
Evan Hahn
0d83076799 Use more exact type for addCallHistory 2020-10-12 18:10:08 -04:00
Josh Perez
59a181bd30 Calling: Lobby 2020-10-12 18:10:08 -04:00
Josh Perez
c7308b485b Tidy up the storage service logs 2020-10-12 18:10:08 -04:00
Scott Nonnenberg
9002b21a6b Minimize downstream effects of storage sync 2020-10-12 18:10:08 -04:00
Scott Nonnenberg
b914b59969 Disable obsolete feature flags 2020-10-12 18:10:08 -04:00
Josh Perez
b879c73b86 Storage service write improvements 2020-10-12 18:10:08 -04:00
Scott Nonnenberg
d51a0b5ece GroupsV2: Better group invite behavior 2020-10-12 18:10:08 -04:00
Chris Svenningsen
cf9764c85a Consolidate checks for v2 Groups 2020-10-12 18:10:08 -04:00
Chris Svenningsen
6a7d45b6fc Pinned Chats 2020-10-12 18:10:08 -04:00
Evan Hahn
c57f7f1cdb Call requests: caller 2020-10-12 18:10:08 -04:00
Josh Perez
9510fd1eec Cleans up mute state after mute expires 2020-10-12 18:10:08 -04:00
Josh Perez
27759233e4 Storage Service Write: Improved conflict handling 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
333dc17c0a Proper call requests for callee 2020-10-12 18:10:07 -04:00
Sidney Keese
dabab60f56 Remove TSLint
Co-authored-by: Chris Svenningsen <chris@carbonfive.com>
2020-10-12 18:10:07 -04:00
Chris Svenningsen
b5df9b4067 Migrate messages, conversations, conversation_view, background to TS
Co-authored-by: Sidney Keese <sidney@carbonfive.com>
2020-10-12 18:10:07 -04:00
Jim Gustafson
80fe9b97d0
Add more logging for high level calling operations 2020-09-25 17:05:25 -04:00
Scott Nonnenberg
9f73b40d7a
MessageReceiver: Use UUID if we have it 2020-09-25 09:20:36 -05:00
Josh Perez
0fe7e30398 Storage Service: More logging 2020-09-21 15:42:51 -04:00
Peter Thatcher
3c9c581854 RingRTC: Update to v2.6.0 2020-09-21 15:42:50 -04:00
Evan Hahn
de66486e41 Add sound effect for notifications in Linux 2020-09-21 15:42:50 -04:00
Josh Perez
c25759ca3a
Storage Service Write: Tighten up validation 2020-09-10 15:37:20 -07:00
Scott Nonnenberg
4c98b4a96f
Introduce new remote flag for storage service write behavior 2020-09-10 13:59:59 -04:00
Josh Perez
d1d7e0aa99 Storage logging improvements and repeat limits for stop sync 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
Josh Perez
aeff7540c8 Calling type improvements 2020-09-04 14:41:07 -05:00
Sidney Keese
48df8ab3b1 ESLint Migration 2020-09-04 09:39:17 -04:00
Josh Perez
c2aa8eb82b Calling: Prevent video flicker when switching audio devices 2020-09-01 17:11:16 -04:00
Jim Gustafson
90bf0f4eea Update to RingRTC v2.5.1
Co-authored-by: Vladimir Skuratovich <vlad@signal.org>
2020-08-28 15:42:25 -04:00
Josh Perez
8ab1013f70 Calling: Device Selection 2020-08-28 15:42:25 -04:00
Scott Nonnenberg
d75eee015f Show notifications when a user's profile name changes 2020-07-30 13:27:44 -07:00
Jim Gustafson
2f015863ca Upgrade to RingRTC v2.4.0 2020-07-30 13:27:44 -07:00
Scott Nonnenberg
d07b8e82b2 First-class profile name rendering 2020-07-30 13:27:41 -07:00
Jim Gustafson
632cd0e87e Drop incoming calls if conversation is not 'accepted' 2020-07-30 13:18:36 -07:00
Scott Nonnenberg
901179440f Merge contacts when we discover split or duplicated contacts 2020-07-30 13:17:45 -07:00
Jim Gustafson
12745a2c79 Update to RingRTC v2.3.1 2020-07-30 13:10:05 -07:00
Jim Gustafson
e87a0103cc Use message age to expire old incoming calls 2020-07-30 13:10:05 -07:00
Jim Gustafson
870a0d2b65 Support RingRTC message sending queue 2020-07-30 13:10:05 -07:00
Peter Thatcher
d3a27a6442 Calling support 2020-07-30 13:08:47 -07:00
Scott Nonnenberg
9ab54b9b83 Move web_api.js and js/modules/crypto.js to TypeScript 2020-04-15 14:44:51 -07:00
Josh Perez
018dc34e47 Fix for fallback update dialog 2020-02-20 16:24:40 -08:00
Josh Perez
18fd44f504
Move all status/alert dialogs into the Left Pane 2020-02-12 13:30:58 -08:00