Commit Graph

150 Commits

Author SHA1 Message Date
Daniel Gultsch
400c8461fc fix feature discovery in jingle file transfer for empty resources 2020-06-13 22:53:24 +02:00
Daniel Gultsch
7ca543e42f replace /me when quoting messages. fixes #3669 2020-05-24 10:52:34 +02:00
Daniel Gultsch
b6703dbe38 switch xmpp-addr to jxmpp-jid 2020-05-15 17:06:16 +02:00
Daniel Gultsch
3439f40411 show call log messages in conversation stream 2020-04-20 15:57:30 +02:00
Daniel Gultsch
08bc3ca0d5 do not merge oob messages 2020-03-02 11:10:38 +01:00
Daniel Gultsch
ed4a73e1c7 persist file size across aborts
fixes #3601
2019-12-26 19:01:01 +01:00
Daniel Gultsch
a60e29d4f4 removed c style array 2019-12-26 17:36:16 +01:00
Daniel Gultsch
cc79d8f6b3 properly restore LMC edits. switch to LMC v1.1
fixes #3566

closes #3592
2019-12-04 19:20:24 +01:00
Daniel Gultsch
be4953b1e4 parse LMC 1.1 2019-09-13 16:38:15 +02:00
Daniel Gultsch
9bf5fb98ac show language in message bubble if multiple language variants were received
XML and by inheritence XMPP has the feature of transmitting multiple language
variants for the same content. This can be really useful if, for example, you
are talking to an automated system. A chat bot could greet you in your own
language.

On the wire this will usually look like this:

```xml
<message to="you">
  <body>Good morning</body>
  <body xml:lang="de">Guten Morgen</body>
</message>
```

However receiving such a message in a group chat can be very confusing and
potentially dangerous if the sender puts conflicting information in there and
different people get shown different strings.

Disabeling support for localization entirely isn’t an ideal solution as on
principle it is still a good feature; and other clients might still show a
localization even if Conversations would always show the default language.

So instead Conversations now shows the displayed language in a corner of the
message bubble if more than one translation has been received.

If multiple languages are received Conversations will attempt to find one in
the language the operating system is set to. If no such translation can be
found it will attempt to display the English string.

If English can not be found either (for example a message that only has ru and
fr on a phone that is set to de) it will display what ever language came first.

Furthermore Conversations will discard (not show at all) messages with with
multiple bodies of the same language. (This is considered an invalid message)

The lanuage tag will not be shown if Conversations received a single body in
a language not understood by the user. (For example operating system set to
'de' and message received with one body in 'ru' will just display that body as
usual.)

As a guide line to the user: If you are reading a message where it is important
that this message is not interpreted differently by different people (like a
vote (+1 / -1) in a chat room) make sure it has *no* language tag.
2019-09-12 10:12:51 +02:00
Daniel Gultsch
73d66fd703 go forward through cursor in message restore
We have seen some weird CursorIndexNotFoundException that we were unable to reproduce.
We assume that going forward (moveToNext()) through the cursor instead of (moveToPrevious() fixes that issue
2019-04-30 10:45:28 +02:00
Daniel Gultsch
b2ea91909b introduced type private_file_message to handle attachments in PMs. fixes #3372 2019-04-27 11:46:43 +02:00
Daniel Gultsch
7f170276a9 refactored avatar workers into single class 2019-01-25 10:07:02 +01:00
Daniel Gultsch
a0be2dc54f updated readme 2019-01-21 11:55:52 +01:00
Daniel Gultsch
52afcac230 mark deleted files in database and not query them when querying for media 2019-01-10 14:52:27 +01:00
Daniel Gultsch
c02676ea4c implement self healing omemo
after receiving a SignalMessage that can’t be decrypted because of broken sessions
Conversations will attempt to grab a new pre key bundle and send a new PreKeySignalMessage
wrapped in a key transport message.
2018-12-02 14:41:29 +01:00
Daniel Gultsch
f1e1c4a78d keep track of previously edited ids 2018-12-01 15:52:44 +01:00
Daniel Gultsch
f0d5dc583d use inContactList() instead inRoster() in the proper places 2018-11-03 16:32:08 +01:00
Daniel Gultsch
2c31fbae78 show synced contacts in choose contact activity 2018-10-31 13:33:55 +01:00
Daniel Gultsch
de0741bdf7 show cancelled instead of delivery failed if user requested to abort transfer 2018-10-07 14:59:08 +02:00
Daniel Gultsch
96224c0fc6 filter sequences of more than 3 ltr-rtl 2018-05-04 10:11:24 +02:00
Daniel Gultsch
9625f191c3 hide treatAsDownloadable in search results 2018-05-02 12:14:24 +02:00
Daniel Gultsch
6712a2d91f added search result context menu + date separators 2018-04-28 16:32:23 +02:00
Daniel Gultsch
35020702fb very much unoptimized search functionality 2018-04-26 13:22:31 +02:00
Daniel Gultsch
c61be89262 keep track of user object in messages 2018-04-12 09:50:33 +02:00
Daniel Gultsch
322667275c all contacts in roster are 'trusted' 2018-04-11 10:07:11 +02:00
Daniel Gultsch
bda95bc571 make error message for 'not encrypted for this device' 2018-04-04 18:21:22 +02:00
Daniel Gultsch
52135625d8 do not enable encryption for bug reports 2018-03-07 22:30:36 +01:00
Daniel Gultsch
1accf9d961 migrate to xmpp-addr 2018-03-07 22:30:36 +01:00
Daniel Gultsch
7e09fac1da do not merge bug reports 2018-02-25 14:28:14 +01:00
Daniel Gultsch
bcd00bb517 discover file extension in original filename from pgp 2018-01-29 01:40:02 +01:00
Daniel Gultsch
be70eb5650 improvements for self messages
* fix omemo in group chats w/o participants
* don't create two axolotl messages when messaging self
* fix read marker for self messages
2018-01-27 10:45:05 +01:00
Daniel Gultsch
120ddcf8c9 fixed treatAsDownload() for empty messages 2017-12-14 12:25:21 +01:00
Daniel Gultsch
d349f634d0 ignore data uri after aesgcm uri 2017-12-09 14:45:54 +01:00
Daniel Gultsch
64dd622d32 make 'markable' attribute persistent 2017-11-25 20:55:43 +01:00
Daniel Gultsch
333e7a6510 deduplicate read markers if one with real jid is found 2017-11-23 18:19:05 +01:00
Daniel Gultsch
28e005f926 send and show read markers in private, non-anonymous groups 2017-11-20 11:26:20 +01:00
Daniel Gultsch
f0e48c8af5 use own algorithm to count emoji instead of using emoji-java 2017-09-29 22:56:17 +02:00
Daniel Gultsch
30b6201b95 reworked file params to store audio runtime amoung other things 2017-09-19 22:42:22 +02:00
Daniel Gultsch
6777ecdb00 set status=received on status messages 2017-08-21 16:19:35 +02:00
moparisthebest
197352b669 Read support for 12-byte IVs in addition to 16-byte IVs 2017-08-09 23:42:35 -04:00
Daniel Gultsch
b925f436fd add more logging to http download connection and reset file params after setting expected size 2017-08-04 11:58:12 +02:00
Daniel Gultsch
c3cbb21133 cache some information generated from body like isEmojiOnly, fileParams and isGeoUri 2017-08-03 13:24:41 +02:00
Daniel Gultsch
7bcf173866 remove all whitespaces in emoji only messages 2017-08-03 10:55:14 +02:00
Daniel Gultsch
82c5924434 display messages that only contain emoji slightly larger 2017-07-30 22:04:58 +02:00
Daniel Gultsch
ef980ff5cf show date separators. fixes #2271 2017-07-04 11:01:20 +02:00
Daniel Gultsch
a5e15d5a10 code cleanup: made conversation property final in message object 2017-04-26 12:43:52 +02:00
Daniel Gultsch
8742194f4b fixed message merge logic. merge only messages with lower status 2017-04-12 22:24:29 +02:00
Daniel Gultsch
649d1243d5 avoid crash on urls with missing protocols 2017-04-06 11:59:15 +02:00
Daniel Gultsch
99565a6876 treat URL as file if URL is in oob or contains key 2017-04-05 22:35:42 +02:00