Commit Graph

49 Commits (b57fab5558fb6eca43343a30fa8c39b34837469b)

Author SHA1 Message Date
Audric Ackermann 77a3a7417d
Session 1.7.5 (#2094)
* Added message requests disabled for now

* no longer showing empty space for conversations moved from list.

* Added syncing accepting of contact between running instances.

* Adding blocking of individual requests and syncing of block to devices. Added approval by replying to a message.

* fixed typos for translations and method name.

* Blocking, accepting on click and accepting on msg send
working across clients.

* adding setting of active_at to hide unapproved messages.

* adding feature flag for config message receiving

* fix archlinux pw unused issue

on archlinux, the appimage links to the system sqlite by default which
does not support sqlcipher

* hide activeAt = 0 convo from search results

Fixes #2033

* opengroup messages from blocked user are dropped

Fixes #2019

* opengroup messages from blocked user are dropped

Fixes #2019

* dismiss a call when answered from another of our devices

* add data-testid for leftpane sections and edit profile dialog

* update turn servers

* cleanup sessionprotobuf

* move the state of calling to its own slice

* no video track by default and will be turn ON if asked to

* message request refactoring.

* create offer and answer ourselves and do not use the negotiation needed

event.

this event is causing us to loop in negotiation needed when each side
try to create one, gets the answer and so on...

* auto select the first audio input on connection success webrtc

* add a way to choose the audioouput/mute a webrtc call

* mute audio from bg when video is in fullscreen

this is to avoid having two times the remote sound playing
one in the bg and one in the fullscreen

* Adding improvements to message request handling.

* Only updating approval when it is a true value as we consider a block a decline.

* Linting and formatting.

* More formatting and linting

* fixing merge conflicts

* linting and formatting changes

* darken a bit the green of sent message box in light theme

* disable deduplication based serverId+sender

only use the serverTimestamp+sender for searching because
serverId+sender might have false positive

* Fixing up block all logic.

* speed up fetching closed group's members avatar

* Applying PR changes.

* cleanup props passing of avatar and name with a custom hook

* fix a bug releasing the decrypted attachment blobs too early


* Adding trigger logic for conversation filtering of requests.

* Fixing rimraf transpile bug. Adding PR fixes - icon buttons.

* Minor call tweaks (#2051)

* show missed-call,started-call and answered call notification in chat

* fix types for createLastMessageUpdate

* show incoming dialog if we have a pending call when enable call receptio

* simplify a bit the avatar component

* move disableDrag to a custom hook

* speed up hash colors of avatarPlaceHolders

* fixup text selection and double click reply on message

* keep avatar decoded items longer before releasing memory

* add incoming/outgoing/missed call notification

also, merge that notification with the timer and group notification
component

* hangup call if no answer after 30sec

* refactor SessionInput using hook + add testid field for recovery

* disable message request feature flag for now

* fix merge issue

* force loading screen to be black instead of white

for our dark theme user's eyes safety

* Fetch translations (#2056)

* show missed-call,started-call and answered call notification in chat

* fix types for createLastMessageUpdate

* show incoming dialog if we have a pending call when enable call receptio

* simplify a bit the avatar component

* move disableDrag to a custom hook

* speed up hash colors of avatarPlaceHolders

* fixup text selection and double click reply on message

* keep avatar decoded items longer before releasing memory

* add incoming/outgoing/missed call notification

also, merge that notification with the timer and group notification
component

* hangup call if no answer after 30sec

* refactor SessionInput using hook + add testid field for recovery

* disable message request feature flag for now

* fix merge issue

* force loading screen to be black instead of white

for our dark theme user's eyes safety

* add type for i18n to run update after crowdin  fetch with tools/updateI18nKeysType.py

* update to latest translations

* Open group regex fixes (#2058)

* Open group URL regex fixes

- Capital letters in room tokens were not being accepted (it eventually
  gets lower-cased internally, which works fine, but that happens
  *after* the URL is tested for acceptability).
- `-` in room was not being allowed (it is and always has been on SOGS,
  session-android, and session-ios).
- single-letter room ids are valid, but only 2+ letter ids were being
  accepted.
- complete URL regex wasn't anchored so something like
  `garbagehttps://example.com/room?public_key=<64hex>moregarbage` was
  being accepted in the GUI input (it fails later when other code tries
  to parse it as a URL).
- removed `m` modifier from open group regex: without anchors it wasn't
  doing anything anyway, but *with* anchors it would still allow
  leading/trailing garbage if delineated by newlines.
- public key regex was accepting g-z letters, and not accepting A-F.
- various regex cleanups:
  - use non-capture groups (?:...) rather than capturing groups (...)
  - avoid repetition in host segment matching
- tightened up host pattern matching a bit:
  - DNS host segments have a max length of 63
  - Limit port max length to 5, and disallow starting with 0

* Show an error when the open group URL is invalid

It's quite disconcerting when you have a bad open group URL and try to
add it and the join button just "doesn't work" without any feedback at
all.  Fix it to show an error message.  (There is already an i18n entry
for this because this same message is thrown if the URL can't be parsed
later on).

* Add call duration (#2059)

* add call duration once connected

* close incoming call dialog if endCall from same sender

* disable message request toggle if featureFlag is OFF

* Cleanup message request (#2063)

* close incoming call dialog if endCall from seame sender

* disable message request toggle if featureFlag is OFF

* cleanup UI of message requests

* mark all existing conversations as approved in a migration

* fix regex with conversationID for opengroups

* Various UI fixes (#2070)

* cleanup unused convo json fields in db

* display a toast if the user is not approved yet on call OFFER received

* enable CBR for calls

* do not update active_at on configMessage if !!active_at

* remove mkdirp dependency

* disable call button if focused convo is blocked

* quote: do not include the full body in quote, but just the first 100

* click on the edit profile qr code padding

* Allow longer input for opengroup join overlay

Fixes #2068

* Fix overlay feature for start new session button

* make ringing depend on redux CALL status

* turn ON read-receipt by default

* keep read-receipts disabled by default (#2071)

* refactor most of the components to outside of their Session folder (#2072)

* refactor most of the components to outside of their Session folder

* finish moving overlay and memberListItem to react hook

* fix bug with kicked member len >2 not being displayed

also sort admins first in UpdateGroupMembers dialog

* fix admin leaving text of groupNotification

* add a useFocusMount hook to focus input fields on mount

* make click avatar convo item open only user dialog

* cleanup config default.json

* make sure to use convoController to build sync message

* disable showing pubkey on opengroups

* add a pause on audio playback

Fixes #2079

* Minor styling fix for large amount of message requests (#2080)

* Minor styling fix for large amount of message requests

* Vertical center fix for message request banner.

* removing top margin from banner again.

* reactify group updates text bubble from redux store (#2083)

* add crown icon for closed group admins (#2084)

* disable call for now + fix left pane actions overflow (#2085)

* Fix attachment dl freeze (#2086)

* fix attachment download freezing app for some opengroups

* make registration page work with smaller height

* Unban UI (#2091)

* adding basic functionaliy for unbanning a user

* merge ban and unban user dialog in to one dialog

Co-authored-by: warrickct <warrickct@gmail.com>

* use React Provider for convoListItem (#2088)

this is to avoid passing down the prop to all the components

* fix closed group updates undefined on no names (#2092)

Co-authored-by: Warrick Corfe-Tan <warrickct@gmail.com>
Co-authored-by: Jason Rhinelander <jason@imaginary.ca>
Co-authored-by: Warrick <wcor690@aucklanduni.ac.nz>
4 years ago
Audric Ackermann c8aa73626e
do not load right panel data unless it is visibl 4 years ago
Audric Ackermann 1f99f2f71c
use attachment name when we have one for file saving 5 years ago
Audric Ackermann 12d40aa94e
Fix attachment extension vnd (#1628)
* allow openoffice document extension and don't use

* allow opendocument to be shared with the extension rather than mimetype

Fixes #1593

* allow message without padding

* add test for odt files
5 years ago
Audric Ackermann f704708524
fix bug with extension not being send if we don't have contenttype set 5 years ago
Audric Ackermann 02fb5783a4
remove regionCode and PhoneNumber.ts 5 years ago
Audric Ackermann 273eedc6a9 remove hasSignalAccount and Sealed Sender unused 5 years ago
Audric Ackermann 72c96ea998
remove most of the SessionProtocol unused stuff
- prekeys
- SessionCipher
- LokiCipher
- endSession and the reset Session logic
- what we called Sessionprotocol manager (to keep track of session with
everyone)
5 years ago
Audric Ackermann 979a9058e3
remove verified number - related features (partial) 5 years ago
Audric Ackermann 6afe893359
fix up a few test 5 years ago
Audric Ackermann 55fa65fc31
override attachments name on upload 5 years ago
Audric Ackermann a7c4ce77a1
enable back attachments download on context menu 5 years ago
Audric Ackermann 53433261d9
remove outgoing_message.js and everything related to it 5 years ago
Audric Ackermann 319fcb6a6d rename saved attachment to session-... rather than signal- 6 years ago
Mikunj a8a959b326 Merge branch 'development' into signal-1.24 7 years ago
sachaaaaa ce4105f529 Fix node tests 7 years ago
Mikunj 8808100796 Merge signal-1.24.0
# Conflicts:
#	.github/PULL_REQUEST_TEMPLATE.md
#	background.html
#	config/default.json
#	config/production.json
#	js/models/conversations.js
#	js/models/messages.js
#	js/views/conversation_view.js
#	js/views/inbox_view.js
#	js/views/settings_view.js
#	main.js
#	package.json
#	test/index.html
#	ts/components/conversation/ContactName.tsx
#	yarn.lock
7 years ago
Mikunj 12ce0140de Left pane changes.
Merge commit 'b3ac1373fa64117fe2a9ccfddf3712f1826c06d9' into signal-1.23

# Conflicts:
#	_locales/en/messages.json
#	background.html
#	js/background.js
#	js/conversation_controller.js
#	js/models/conversations.js
#	js/models/messages.js
#	js/views/conversation_list_item_view.js
#	js/views/conversation_list_view.js
#	js/views/conversation_search_view.js
#	js/views/inbox_view.js
#	libtextsecure/account_manager.js
#	package.json
#	stylesheets/_global.scss
#	stylesheets/_index.scss
#	stylesheets/_modules.scss
#	test/_test.js
#	test/index.html
#	test/models/conversations_test.js
#	test/views/conversation_search_view_test.js
#	ts/components/ConversationListItem.tsx
#	ts/components/MainHeader.tsx
#	ts/components/conversation/ConversationHeader.tsx
#	ts/components/conversation/ResetSessionNotification.tsx
7 years ago
Mikunj 48c4ed1a29 Partial Merge commit 'bf904ddd129ceba8fa363ccf6d10ecd256c65f63' into signal-1.23
# Conflicts:
#	_locales/en/messages.json
#	app/sql.js
#	js/background.js
#	js/conversation_controller.js
#	js/models/conversations.js
#	js/views/inbox_view.js
#	main.js
7 years ago
Mikunj e343a04eea Merge commit '18b5b7c046436f2defab2e20407e22da180bf97b' into signal-1.22
# Conflicts:
#	app/sql.js
#	background.html
#	config/default.json
#	js/background.js
#	js/models/conversations.js
#	js/models/messages.js
#	js/modules/data.js
#	js/signal_protocol_store.js
#	js/views/conversation_search_view.js
#	libtextsecure/message_receiver.js
#	libtextsecure/sendmessage.js
#	main.js
#	package.json
#	preload.js
#	test/index.html
#	ts/components/Avatar.tsx
#	ts/components/conversation/ConversationHeader.md
#	ts/components/conversation/ConversationHeader.tsx
7 years ago
Scott Nonnenberg 22f7a352f9 updateLastMessage: If we don't update last text, clear it 7 years ago
Derek Meer 7727dc093e Hides the "Hide menu bar" option on MacOS (#2903)
The "Hide menu bar" option is only applicable to Windows and some Linux distros,
where the menu bar is attached to the Signal window. Therefore, this commit
ensures that it doesn't show up on MacOS. It includes a setting,
isHideMenuBarSupported(), to control the option's appearance. This
commit also includes the tests to make sure isHideMenuBarSupported()
works correctly.

Fixes #2705
7 years ago
Scott Nonnenberg a2fca80759 Conversation.updateLastMessage: Properly clear timestamp/status 7 years ago
Scott Nonnenberg b3ac1373fa Move left pane entirely to React 7 years ago
Scott Nonnenberg bf904ddd12 On attachment save include date, include album index 7 years ago
Scott Nonnenberg 1d2c3ae23c Download attachments in separate queue from message processing 7 years ago
Mikunj 6bd2d3962e Linted files 7 years ago
Beaudan 6863f7e51a Small fix for strange bug where timezone would be different in the past for regular user vs sudo 7 years ago
Beaudan eb7a0dbb3a Fix failing tests except for problematic spellcheck package 7 years ago
Scott Nonnenberg 643739f65d
Responding to feedback on the updated visuals (#2549)
* Conversation List Item: timestamp bold only when convo has unread

* Preserve the positioning of overlays on re-entry into convo

* ConversationListItem: Handle missing and broken thumbnails

* Shorten timestamp in left pane for better Android consistency

* Update convo last updated if last was expire timer change

But not if it was from a sync instead of from you or from a contact.

* Make links in quotes the same color as the text

* MediaGridItem: Update placeholder icon colors for dark theme

* Ensure turning off timer shows 'Timer set to off' in left pane

* ConversationListItem: Show unread count in blue circle

* Add one pixel margin to blue indicator for text alignment

* Ensure replies to voice message can bet sent successfully
7 years ago
Scott Nonnenberg 675e34fc8d New React component: ConversationListItem, installed in left pane
When collecting a conversation's last message, we grab that message's
status as well (if outgoing) and show it.
7 years ago
Scott Nonnenberg 2988da0981 Turn on all of Microsoft's recommend lint rules
Biggest changes forced by this: alt tags for all images, resulting in
new strings added to messages.json, and a new i18n paramter/prop added
in a plot of places.

Another change of note is that there are two new tslint.json files under
ts/test and ts/styleguide to relax our rules a bit there. This required
a change to our package.json script, as manually specifying the config
file there made it ignore our tslint.json files in subdirectories
8 years ago
Scott Nonnenberg 8cb1f1f532 Fall back on givenName/familyName if no displayName/organization 8 years ago
Daniel Gasienica 16bc1d34c6 Message schema 6: Change classification of media and documents
For an easier implementation, we change our original definition of
`initializeAttachmentMetadata`. This means we have to re-run it marked as
version 6 and mark schema version 5 as deprecated as its definition has changed.
8 years ago
Daniel Gasienica 63bd9dcc61 Add tests for `Attachment.isVisualMedia` 8 years ago
Daniel Gasienica 53918d68de Add `Attachment.isFile` definition 8 years ago
Daniel Gasienica 15759f0db5 Normalize package naming 8 years ago
Daniel Gasienica 5789b3eb75 Add `Attachment.isVoiceMessage` 8 years ago
Daniel Gasienica fa4c3fda2b Extract common MIME types 8 years ago
Daniel Gasienica 5d230d3778 Add `Settings.isNotificationGroupingSupported`
See: https://github.com/electron/electron/issues/11189
8 years ago
Daniel Gasienica ecf23b6b2e Disable audio notifications on Windows 7 and lower 8 years ago
Daniel Gasienica a102016ed8 Port `Settings` and `OS` to TypeScript 8 years ago
Daniel Gasienica 1dd87ad197 Format all source code using Prettier 8 years ago
Daniel Gasienica 4a5e61eaf4 Implement `Attachment.save` 8 years ago
Daniel Gasienica f36f206a01 Use `IndexablePresence` for `hasFileAttachments` and `hasVisualMediaAttachments`
Reduces index size, makes it easier to debug using IndexedDB inspector, and
hopefully improves lookup performance.
8 years ago
Daniel Gasienica 8b9516de72 Update test for attachment metadata 8 years ago
Daniel Gasienica 9d84b2f420 Index messages with attachments using a boolean
When indexing message attachment metadata using numeric indexes such as:

```javascript
{
  conversationId: '+12223334455',
  received_at: 123,
  attachments: […],
  numAttachments: 2,
},
{
  conversationId: '+12223334455',
  received_at: 456,
  attachments: [],
  numAttachments: 0,
}
{
  conversationId: '+12223334455',
  received_at: 789,
  attachments: [],
  numAttachments: 1,
}
```

It creates an index as follows:

```
[conversationId, received_at, numAttachments]
['+12223334455', 123, 2]
['+12223334455', 456, 0]
['+12223334455', 789, 1]
```

This means a query such as…

```
lowerBound: ['+12223334455', 0,                1               ]
upperBound: ['+12223334455', Number.MAX_VALUE, Number.MAX_VALUE]
```

…will return all three original entries because they span the `received_at`
from `0` through `Number.MAX_VALUE`. One workaround is to index booleans using
`1 | undefined` where `1` is included in the index and `undefined` is not, but
that way we lose the ability to query for the `false` value. Instead, we flip
adjust the index to `[conversationId, hasAttachments, received_at]` and can
then query messages with attachments using

```
[conversationId, 1 /* hasAttachments */, 0                /* received_at */]
[conversationId, 1 /* hasAttachments */, Number.MAX_VALUE /* received_at */]
```
8 years ago
Daniel Gasienica 94ef3bab80 Move test file 8 years ago
Daniel Gasienica 44debd123d Add basic implementation of `Conversation.updateFromLastMessage` 8 years ago