When a local message is edited make sure that the initial message that will be merged remains hidden so it doesn't flash up then disappear.
closesnetwork/neochat#314
(cherry picked from commit 4e16b91f54)
Add end state to text handler and use to ensure that in nextTokenType to stop an out of bounds access to m_databuffer
(cherry picked from commit 0d6a83b063)
This popup the virtual keyboard and is quite distrubing on mobile.
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
(cherry picked from commit bc84ad8d56)
Make return/enter create a newline on mobile. This is the traditional behaviour in other messengers as the send icon and return have are the same time to access and solves the linked issue.
Closesnetwork/neochat#466
(cherry picked from commit afe8a2a5e4)
Rework the filtering of state events in the timeline and for lastevent. This is now consistent everywhere and includes the following:
- The timeline settings are obeyed everywhere
- A new setting is added to filter all state events
- Last event obeys the timeline setting in all cases
- The roomlist will show a state event as the latest event if it's visible in the timeline
- Names are no longer hyperlinked in eventToString if plaintext is selected.
BUG: 455048\
Closesnetwork/neochat#148
(cherry picked from commit 741cb57105)
- Add the ability to set the deafult url preview setting for the room if you have sufficient power level.
- Add the ability for the user to set the desired url preview setting.
network/neochat#560
(cherry picked from commit 81c73037ca)
Improve the handling of text both when sending and receiving.
The main feature is to fix the linked bug (and a host of others that are unreported but similar) which is caused by the fact that we don't properly clean html. This mr does that as per the matrix spec https://spec.matrix.org/v1.5/client-server-api/#mroommessage-msgtypes. So any disallowed tags or attributes are removed and it does the special handling for certain attributes.
Additionally the functions are also designed to cover any other text formatting required, particularly fro received strings.
The receive side is covered by 2 functions `handleRecieveRichText` and `handleRecievePlainText`. The rich/plain in the function name refers to the output type not the input type (both can take plain and rich input), so `handleRecieveRichText` is called to get a string suitable to go in a rich text control and `handleRecievePlainText` for a plain control.
The functions also handle the following some of which was previously handled by `eventToString` in `NeoChatRoom`:
- Strip and reply from the string
- Format any user mentions
- Linkify links in plain strings
- Handle mxc urls in rich text (uses the new `room->makeMediaUrl` functionality from libQuotient)
- `handleRecievePlainText` also deals with markup making `NeoChatRoom->subtitle` redundant
There is also an extensive test suite which defines the behaviour and the best way to review this is probably to look at the tests and decide whether you agree with the expected output given the inputs and/or if there is any missing behaviour.
The final aim especially with the test suite is to give us a framework to make further updates in the future easier and hopefully prevent a new feature breaking old behaviour with the tests.
BUG: 463932 \
BUG: 466330 \
BUG: 466930
(cherry picked from commit f6ba4f2ecd)
Add the ability to see other user's read markers.

Implements network/neochat#133
(cherry picked from commit 23303c0483)
Add the option to set powerlevel to userdetaildialog.
This is done by making the powerleveldialog into it's own file and using that.
implements network/neochat#570