Commit graph

141 commits

Author SHA1 Message Date
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
Daniel Gultsch 081c33b886 do not parse bodies with http urls as downloadable in omemo encrypted message. fixes #1756 2017-04-04 22:20:05 +02:00
Daniel Gultsch 24fab162e2 renamed omemo:// to aesgcm:// 2017-02-07 20:07:57 +01:00
Daniel Gultsch 71ad18beb9 support omemo:// style urls 2017-02-07 19:32:12 +01:00
Daniel Gultsch e35ada4997 only store messages up to a length of 1M chars 2017-02-07 17:45:01 +01:00
moparisthebest 2a34ece571 Stop Conversations force closing over sqlite errors due to long messages 2017-01-30 00:03:51 -05:00
Daniel Gultsch b8f67bfaa3 deduplicate corrected messages 2016-12-26 15:13:38 +01:00
Daniel Gultsch cbd45d3ee5 changed design language to match BTBV proposal
* untrusted messages have red background
* unverified message have normal background and red lock
2016-11-24 11:29:26 +01:00
Daniel Gultsch 05fc15be3d refactore trust enum to be FingerprintStatus class with trust and active 2016-11-14 22:27:41 +01:00
Daniel Gultsch 8557120ef8 add error message to failed messages. accessible via context menu 2016-10-26 12:26:04 +02:00