signal-csharp / signal-windows Goto Github PK
View Code? Open in Web Editor NEWUnofficial Signal Private Messenger for Windows
License: GNU General Public License v3.0
Unofficial Signal Private Messenger for Windows
License: GNU General Public License v3.0
otherwise the (signed) pre key offset(s) are wrong
In MessageBox::MessageBox_DataContextChanged we have actual control over when the UI element is constructed/pinned to a SignalMessage. This could require a second cache though, in case an update arrives when the MessageBox is not yet existing.
Or we could force a layoutupdate.
could boost our performance a little as they are read quite often
As soon as a message is on the wire, both the receiving and the sending task want to change the message entity to keep track of the status and receipts.
proposal:
pro:
con:
For efficient full-text search we should use FTS tables.
Unfortunately, until now EF core does not support this (dotnet/efcore#1590) and it is not yet planned for any milestone.
Possible workaround: https://stackoverflow.com/a/36051020/1569755
would be a nice thing to have, obviously.
we could:
We want to step between search results and scroll up indefinitely, so the current design will not do.
It should:
We should get our first version of the database stable asap, and use migrations if we have to alter something later.
Things we could/should do:
status (sending, senttoall, receivedbyone, readbyone) and timestamps would be great
tldr: nothing we can fix or workaround, we have to wait for a new System.Net.WebSockets.Client release.
https://github.com/dotnet/corefx/issues/17317
Stacktrace:
System.Exception: Exception from HRESULT: 0x80072EE2
at Windows.Networking.Sockets.MessageWebSocketMessageReceivedEventArgs.GetDataReader()
at System.Net.WebSockets.WinRTWebSocket.OnMessageReceived(MessageWebSocket sender, MessageWebSocketMessageReceivedEventArgs args)
this needs access to the SignalProtocolStore, which should only be accessed with the SESSION_LOCK
acquired.
If the device has many messages in the queue, it will save them in the wrong order when connecting
unread messages count, last message, timestamp and avatar would be nice
possible solutions:
with an option to keep or discard your identity key
the resetevents are unneccessary and we can speed up the shutdown if the device is unregistered.
We should save the join handles of our worker tasks and join them on shutdown.
most likely we are comparing the wrong timestamp. will investigate.
Further ThreadListItem updates "fail", because the view attached to the model is not the view on the screen.
Also in general, strange things happen when the UI is supposed to be updated while the device is locked.
Currently, the position might change after a restart due to two tasks (receiving and sending) racing for the db, while the UI has to display the message immediately.
Having the UI wait for the db insert to solve the dispute is not an option.
Deferring the db access is also not an option, because the signal server wants its messages confirmed asap, and we want to keep the bookkeeping overhead minimal.
tl;dr:
Constraints:
onMessages
must not return before the messages are savedConclusions:
Possible solution(s?):
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.