Evan Hahn
902e48e308
Remove redundant listenTo calls in ConversationModel#fetchContacts
2021-03-29 13:43:31 -07:00
Scott Nonnenberg
7a3130a795
Re-render left pane and timeline items when group members change
2021-03-26 11:03:15 -07:00
Josh Perez
b31a44aa76
Do not continue writing after stream has closed
2021-03-26 09:48:46 -07:00
Evan Hahn
83593a3216
Add type to ConversationModel's contactCollection
...
Previously, this was `Backbone.Collection<WhatIsThis>`. Now, it's
`Backbone.Collection<ConversationModel>`.
A minor change, but an easy improvement that (luckily) had no
downstream effects.
2021-03-26 09:36:57 -07:00
Fedor Indutny
990e501850
First pass on CI support
2021-03-25 19:02:53 -07:00
Fedor Indutny
746e99b8c2
Flush all watchers on empty queue
2021-03-25 17:00:03 -07:00
Evan Hahn
de5943a5fb
Fix bug where we'd remove profileKeyCredentials incorrectly
2021-03-25 12:05:55 -07:00
Evan Hahn
afe135df0c
Hide long message attachments in quotes
2021-03-25 11:36:50 -07:00
Evan Hahn
6f404648d7
Prefer author ID to phone number for message menu trigger ID
2021-03-24 16:42:08 -07:00
Fedor Indutny
7a9a4a1404
Clicking first bars of the waveform should rewind
...
It is practically impossible to rewind audio prior to this commit. With
this commit - clicking first two bars will rewind the audio to its very
start instead of updating its current play time to a specific non-zero v
alue.
2021-03-24 16:08:57 -07:00
Evan Hahn
b44bf33256
Move audioPlayer duck test
2021-03-24 16:08:44 -07:00
Evan Hahn
77c306843d
Fix error on message details screen with audio messages
2021-03-24 15:06:12 -07:00
Fedor Indutny
5f9a75d9f4
journal_mode=WAL and synchronous=NORMAL for database
2021-03-24 14:35:06 -07:00
Scott Nonnenberg
2d8f237b76
Send to just-removed folks in groupv2 removal operations
2021-03-24 14:28:55 -07:00
Fedor Indutny
7c4e4c97e7
Cache identicons to avoid performance hit on app start
2021-03-24 08:59:56 -05:00
Fedor Indutny
919259c960
Use non-subtle crypto in libsignal-protocol
2021-03-23 17:50:02 -07:00
Scott Nonnenberg
2df7569389
saveMessages: Delete from messages_fts table even in insert case
2021-03-22 18:09:50 -07:00
Fedor Indutny
a75402d290
Add timestamp utilities with helpful names
2021-03-22 16:08:52 -05:00
Fedor Indutny
9fa3359477
Mark attachment as corrupted if audio load failed
...
Sending corrupted audio should not leave user with non-functional
UI. Mark attachment as corrupted and show generic attachment UI for it
instead.
2021-03-22 11:51:53 -07:00
Fedor Indutny
d6063d71e5
Change duration to countdown in MessageAudio
...
Message Audio UI should display remaining time not the duration of the
audio.
2021-03-22 11:15:59 -07:00
Josh Perez
e58975ec8b
Fix for multiple at-mentions
2021-03-19 16:57:36 -04:00
Fedor Indutny
6fec6b2646
Fix attachments not loading for stickers/long messages
2021-03-19 16:57:36 -04:00
Fedor Indutny
d7ec22fb0b
Save attachment button should download attachment if needed
2021-03-19 16:57:36 -04:00
Scott Nonnenberg
58cb9fba6b
Ensure we don't supply undefined to SyncMessage.Read protobuf
2021-03-19 16:57:36 -04:00
Evan Hahn
850e759579
Keeping profile data around longer in the face of errors
2021-03-19 16:57:36 -04:00
Evan Hahn
c97bb0feee
Auto-scroll the left pane less frequently
2021-03-19 16:57:36 -04:00
Evan Hahn
3d5f30560d
Clean up isSearching selector
2021-03-19 16:57:36 -04:00
Evan Hahn
358838a6bc
Style disabled <GroupTitleInput>
2021-03-19 16:57:36 -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
3eaa47ec72
Remove useless logic in MessageAudio
...
`isLoading` was initially used to avoid duplicate loads of the audio on
re-renders, but this has to be handled in GlobalAudioContext not in
MessageAudio.
2021-03-19 16:57:36 -04:00
Scott Nonnenberg
260d288fc2
groups/updateGroup: Fix use of incrementMessageCounter
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
Scott Nonnenberg
7ffc01f0b0
MessageReceiver: Restore queuing for in-order decryption
2021-03-19 16:57:36 -04:00
Scott Nonnenberg
0eec84391f
MessageReceiver: Be resilient to failed updateCache call
2021-03-19 16:57:36 -04:00
Fedor Indutny
f41ffda3e0
Update types: attachments may not have url
property
2021-03-19 16:57:36 -04:00
Fedor Indutny
05f59f3db1
Add download button and pending spinner for audio messages
2021-03-19 16:57:36 -04:00
Fedor Indutny
f98c3cba8c
Preliminary support for better performance testing
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
Fedor Indutny
529dd1a3cc
Show download button for pending Link Preview images
2021-03-19 16:57:36 -04:00
Scott Nonnenberg
98c9992705
Fix out-of-order message changes; remove isGroupV2, and double-update
2021-03-19 16:57:36 -04:00
Evan Hahn
2d051e2390
Check for conflicts with group IDs
2021-03-19 16:57:35 -04:00
Fedor Indutny
3a94d2c75e
Generate blurHash for outgoing link previews
2021-03-19 16:57:35 -04:00
Fedor Indutny
b93164a8c0
Reduce size of asar file and unpacked asar folder
2021-03-19 16:57:35 -04:00
Fedor Indutny
59d1159c06
Set attachmentDownloadQueue = undefined
on empty
2021-03-19 16:57:35 -04:00
Josh Perez
62e04a1bbd
Fix for unread syncs and ooo reactions
2021-03-19 16:57:35 -04:00
Evan Hahn
e09fb6cce4
Improve types in ConversationView#showConversationDetails
2021-03-19 16:57:35 -04:00
Fedor Indutny
021b54cb75
Fix sqlite3 threadpool exhaustion with db.serialize() on startup
2021-03-19 16:57:35 -04:00
Scott Nonnenberg
246ca86319
Chat Session Refreshed: Include schemaVersion to prevent later upgrade
2021-03-19 16:57:35 -04:00
Evan Hahn
746e6781ae
Fix styling for left pane: muted conversations and message requests
2021-03-19 16:57:35 -04:00
Josh Perez
d5f2492ce5
Fine tune the conversation load experience
2021-03-19 16:57:35 -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
58bdf36254
Use classical rotation scheme for log rotation
2021-03-19 16:57:35 -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
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