diff --git a/src/main/java/eu/siacs/conversations/parser/MessageParser.java b/src/main/java/eu/siacs/conversations/parser/MessageParser.java
index 8e716f1b4..f05b01137 100644
--- a/src/main/java/eu/siacs/conversations/parser/MessageParser.java
+++ b/src/main/java/eu/siacs/conversations/parser/MessageParser.java
@@ -235,7 +235,6 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece
}
final MessagePacket packet;
Long timestamp = null;
- final boolean isForwarded;
boolean isCarbon = false;
String serverMsgId = null;
final Element fin = original.findChild("fin", Namespace.MAM_LEGACY);
@@ -253,7 +252,6 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece
}
timestamp = f.second;
packet = f.first;
- isForwarded = true;
serverMsgId = result.getAttribute("id");
query.incrementMessageCount();
} else if (query != null) {
@@ -269,10 +267,8 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece
}
timestamp = f != null ? f.second : null;
isCarbon = f != null;
- isForwarded = isCarbon;
} else {
packet = original;
- isForwarded = false;
}
if (timestamp == null) {
@@ -309,7 +305,6 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece
Log.e(Config.LOGTAG,account.getJid().asBareJid()+": received groupchat ("+from+") message on regular MAM request. skipping");
return;
}
- boolean isProperlyAddressed = (to != null) && (!to.isBareJid() || account.countPresences() == 0);
boolean isMucStatusMessage = from.isBareJid() && mucUserElement != null && mucUserElement.hasChild("status");
boolean selfAddressed;
if (packet.fromAccount(account)) {
@@ -332,7 +327,8 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece
}
if ((body != null || pgpEncrypted != null || (axolotlEncrypted != null && axolotlEncrypted.hasChild("payload")) || oobUrl != null) && !isMucStatusMessage) {
- final Conversation conversation = mXmppConnectionService.findOrCreateConversation(account, counterpart.asBareJid(), isTypeGroupChat, false, query, false);
+ final boolean conversationIsProbablyMuc = isTypeGroupChat || mucUserElement != null || account.getXmppConnection().getMucServers().contains(counterpart.getDomain());
+ final Conversation conversation = mXmppConnectionService.findOrCreateConversation(account, counterpart.asBareJid(), conversationIsProbablyMuc, false, query, false);
final boolean conversationMultiMode = conversation.getMode() == Conversation.MODE_MULTI;
if (serverMsgId == null) {
diff --git a/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java b/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java
index 83d5a4c2c..d2cce0815 100644
--- a/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java
+++ b/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java
@@ -3357,10 +3357,7 @@ public class XmppConnectionService extends Service {
final Set mucServers = new HashSet<>();
for (final Account account : accounts) {
if (account.getXmppConnection() != null) {
- final String server = account.getXmppConnection().getMucServer();
- if (server != null) {
- mucServers.add(server);
- }
+ mucServers.addAll(account.getXmppConnection().getMucServers());
for (Bookmark bookmark : account.getBookmarks()) {
final Jid jid = bookmark.getJid();
final String s = jid == null ? null : jid.getDomain();
diff --git a/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java b/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java
index 05607474e..1a5dcc117 100644
--- a/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java
@@ -1521,18 +1521,24 @@ public class XmppConnection implements Runnable {
}
}
- public String getMucServer() {
+ public List getMucServers() {
+ List servers = new ArrayList<>();
synchronized (this.disco) {
for (final Entry cursor : disco.entrySet()) {
final ServiceDiscoveryResult value = cursor.getValue();
if (value.getFeatures().contains("http://jabber.org/protocol/muc")
&& !value.getFeatures().contains("jabber:iq:gateway")
&& !value.hasIdentity("conference", "irc")) {
- return cursor.getKey().toString();
+ servers.add(cursor.getKey().toString());
}
}
}
- return null;
+ return servers;
+ }
+
+ public String getMucServer() {
+ List servers = getMucServers();
+ return servers.size() > 0 ? servers.get(0) : null;
}
public int getTimeToNextAttempt() {
diff --git a/src/main/res/values-ca/strings.xml b/src/main/res/values-ca/strings.xml
index 17cda4bff..32e7dd2c8 100644
--- a/src/main/res/values-ca/strings.xml
+++ b/src/main/res/values-ca/strings.xml
@@ -2,45 +2,47 @@
Preferències
Nova conversa
- Gestionar comptes
- Finalitzar conversa
+ Gestiona els comptes
+ Finalitza la conversa
Detalls del contacte
Detalls del xat de grup
Conversa segura
- Afegir compte
+ Afegeix un compte
Edita el nom
Afegeix a la llibreta d\'adreces
Elimina de la llista de contactes
- Bloqueja contacte
- Desbloqueja contacte
+ Bloqueja el contacte
+ Desbloqueja el contacte
Bloqueja el domini
- Desbloqueja aquest domini
- Administrar comptes
+ Desbloqueja el domini
+ Administra els comptes
Configuració
Compartir amb converses
Començar una conversa
Tria el contacte
- LLista bloqueix
+ Comparteix mitjançant compte
+ Llista de bloqueig
Ara
1 min abans
%de minuts abans
Converses sense llegir o no llegides
enviant…
Desxifrant missatge. Espereu ...
- Missatge xifrat OpenPGP
+ Missatge xifrat amb OpenPGP
El sobrenom ja està en ús
+ Sobrenom invàlid
Administrador
Propietari
Moderador
Participant
Visitant
- Vols eliminar a %s de la teva llista?. La conversa associada a aquest compte no s\'eliminarà.
- Li agradaria bloquejar %s i no podrà enviar missatges?
- L\'hi agradaria desbloquejar %s i permetre\'ls enviar-vos missatges?
- Bloqueja tots els teus contactes des de %s?
- Desbloqueja tots el contactes des de %s?
+ Voleu eliminar a %s de la vostra llista de contactes? La conversa associada a aquest contacte no s\'eliminarà.
+ Voleu impedir que %s us pugui enviar missatges?
+ Us agradaria desbloquejar %s i permetre que us enviï missatges?
+ Voleu bloquejar tots els contactes de %s?
+ Voleu desbloquejar tots el contactes de %s?
Contacte bloquejat
- L\'hi agradaria eliminar %s de favorits?? La conversació associada amb aquesta llista de favorits no serà eliminada.
+ Voleu eliminar %s dels marcadors? La conversa associada amb aquest marcador no serà eliminada.
Registrar nou compte al servidor
Canviar la contrasenya del servidor
Compartir amb
@@ -48,8 +50,8 @@
Convida un contacte
Contactes
Cancel·lar
- Conjunt
- Afegir
+ Aplica
+ Afegeix
Editar
Eliminar
Bloquejar
@@ -229,9 +231,9 @@
Unir-se
Direcció del xat de grup
room@conference.example.com/nick
- Guardar com a favorits
- Eliminar de favorits
- Aquesta llista de favorits ja existeix
+ Guarda com a marcador
+ Elimina dels marcadors
+ Aquest marcador ja existeix
Edita el tema del xat de grup
El tema d\'aquest xat de grup
S\'està unint al xat de grup...
@@ -239,6 +241,8 @@
Afegir un contacte a la llista de contactes
Afegir nou
%s ha llegit fins aquest punt
+ %s ha llegit fins aquí
+ %1$s i %2$d més han llegit fins aquí
Publicar
Tocar avatar per seleccionar imatge de la galeria
Publicant...
@@ -362,6 +366,7 @@ mentrestant.
No hi ha claus utilitzables per a aquest contacte.\nEls fitxers noves del servidor no han tingut èxit. Potser hi ha alguna cosa malament amb el servidor del vostre contacte.
No hi ha claus disponibles per a aquest contacte.\nAssegureu-vos que teniu una subscripció de presència mútua.
No hi ha claus disponibles per a aquest contacte. Si heu purgat qualsevol de les claus, heu de generar-ne de noves.
+ Alguna cosa ha anat malament
Anar a cercar la història als servidors
No hi ha més histories al servidor
Actualitzant
@@ -407,6 +412,9 @@ mentrestant.
No s\'han pogut modificar les opcions de xat de grup
Mai
Fins nou avís
+ Posposa
+ Respon
+ Marcar com llegit
Entrada
Entra per enviar
Utilitza el botó enter per enviar el missatge
@@ -461,6 +469,7 @@ mentrestant.
Trieu una acció ràpida
Cerca contactes o grups
Envia un missatge privat
+ %1$s ha deixat el xat del grup!
Nom d\'usuari
Nom d\'usuari
Aquest no és un nom d\'usuari vàlid
@@ -472,6 +481,7 @@ mentrestant.
Vincular el error
El servidor no es fa responsable del domini
Trencat
+ Disponibilitat
Fora quan la pantalla està apagada
Marqueu el vostre recurs quan la pantalla estigui desactivada
\"No molesteu\" en modo silenciós
@@ -514,6 +524,8 @@ mentrestant.
Imatge compartida amb %s
Imatges compartides amb %s
Text compartit amb %s
+ Conversations necessita accés a emmagatzematge extern
+ Conversations necessita accés a la càmera
Sincronitza amb contactes
Conversations vol coincidir amb la vostra llista XMPP amb els vostres contactes per
mostrar els noms i avatars complets.\n\nConversations només
@@ -555,6 +567,9 @@ missatges.\n\nAra se us demanarà que desactiveu-las.
Error de seguretat: accés d\'arxiu no vàlid
No s\'ha trobat cap aplicació que comparteixi URI
Comparteix l\'URI amb...
+ Jabber és una xarxa de missatgeria instantània independent del proveïdor. Podeu
+ utilitzar aquest client amb el servidor de Jabber que trieu.\nPerò
+per a la seva comoditat hem facilitat crear un compte a converses.im¹; un proveïdor especialment indicat per a l\'ús amb Conversations.
Us guiarem pel procés de creació d\'un compte a conversations.im.¹\nQuan
trieu conversations.im com a proveïdor, podreu comunicar-vos amb els usuaris
d\'altres proveïdors donant-los la vostra ID Jabber completa.
@@ -562,6 +577,8 @@ d\'altres proveïdors donant-los la vostra ID Jabber completa.
Crear compte
Utilitza el meu propi proveïdor
Tria el teu nom d\'usuari
+ Gestioneu la disponibilitat manualment
+ Establir la vostra disponibilitat en editar el vostre missatge d\'estat.
Canvi de presència
Missatge d\'estat
Estableix per a tots els comptes d\'aquest dispositiu
@@ -648,8 +665,34 @@ d\'altres proveïdors donant-los la vostra ID Jabber completa.
He seguit aquest enllaç des d\'una font de confiança
Esteu a punt de verificar les claus OMEMO de %1$sdesprés de fer clic a un enllaç. Això només és segur si seguiu aquest enllaç des d\'una font de confiança on només %2$s podria haver publicat aquest enllaç.
Comproveu les claus OMEMO
+ Mostra inactiu
+ Amaga inactiu
Dispositiu no confiable
Estàs segur que vols eliminar la verificació d\'aquest dispositiu?\nAquest dispositiu i missatges procedents d\'aquest dispositiu es marcaran com a no confiables.
+
+ - 1%d segons
+ - %d segons
+
+
+ - 1%d minuts
+ - %d minuts
+
+
+ - 1%d hores
+ - %d hores
+
+
+ - 1%d dies
+ - %d dies
+
+
+ - 1%d setmanes
+ - %d setmanes
+
+
+ - 1%d meses
+ - %d meses
+
Supressió de missatge automàtic
Suprimiu automàticament missatges d\'aquest dispositiu que són més grans que el marc de temps configurat.
Xifrant el missatge
@@ -682,4 +725,30 @@ d\'altres proveïdors donant-los la vostra ID Jabber completa.
Copiar al portapapers
Missatge copiat al portapapers
Missatge
+ Els missatges privats estan desactivats
+ Aplicacions protegides
+ Per continuar rebent notificacions, fins i tot quan la pantalla està apagada, heu
+d\'afegir Converses a la llista d\'aplicacions protegides.
+ Voleu acceptar un certificat desconegut?
+ El certificat del servidor no està signat per una autoritat de certificació coneguda.
+ El certificat del servidor ha caducat.
+ Voleu acceptar el nom del servidor associat?
+ El servidor no s\'ha pogut autenticar com \" 1%s \". El certificat només és vàlid per a:
+ Voleu connectar de totes maneres?
+ Detalls del certificat:
+ Verificació del certificat
+ Un cop
+ L\'escàner de codi QR necessita accés a la càmera
+ Desplaça\'t cap a la part inferior
+ Desplaceu-vos cap avall després d\'enviar un missatge
+ Edita el missatge d\'estat
+ Edita el missatge d\'estat
+ Desactiva el xifratge
+ Les converses no poden enviar missatges xifrats a 1%1$s . Això pot ser degut al vostre contacte mitjançant un servidor o client obsolet que no pot gestionar OMEMO.
+ No es pot obtenir la llista de dispositius
+ No es poden obtenir paquets de dispositius
+ Suggeriment: en alguns casos això es pot resoldre afegint les vostres llistes de contactes.
+ Estàs segur que vols desactivar el xifratge OMEMO per a aquesta conversa?\nAixò permetrà
+que l\'administrador del servidor llegeixi els missatges, però pot ser l\'única forma de comunicar-se amb persones que utilitzin clients obsolets.
+ Desactiva ara
diff --git a/src/main/res/values-it/strings.xml b/src/main/res/values-it/strings.xml
index 6ff2b33b9..052cd7390 100644
--- a/src/main/res/values-it/strings.xml
+++ b/src/main/res/values-it/strings.xml
@@ -363,6 +363,7 @@
Non ci sono chiavi utilizzabili per questo contatto.\nRicezione di nuovi chiavi dal server non riuscita. Forse qualcosa non va con il server del tuo contatto.
Non ci sono chiavi utilizzabili per questo contatto.\nAssicurati di avere reciprocamente la sottoscrizione sulla presenza.
Non ci sono chiavi usabili per questo contatto. Se hai cancellato qualsiasi loro chiave, devono generarne di nuove.
+ Qualcosa è andato storto
Caricamento della cronologia dal server
Fine cronologia sul server
Caricamento…
@@ -725,4 +726,11 @@
Scorri in basso dopo l\'invio di un messaggio
Modifica messaggio di stato
Modifica il messaggio di stato
+ Disattiva la cifratura
+ Conversations non riesce a inviare messaggi criptati a %1$s. Potrebbe essere dovuto al tuo contatto che usa un server obsoleto o un client che non supporta OMEMO.
+ Ricezione elenco dispositivi fallita
+ Ricezione gruppi dispositivi fallita
+ Suggerimento: in alcuni casi può essere risolto aggiungendo a vicenda la vostra lista di contatti.
+ Sei sicuro di disattivare la cifratura OMEMO per questa conversazione?\nCiò permetterà all\'amministratore del server di leggere i tuoi messaggi, ma potrebbe essere il solo modo di comunicare con persone che usano client obsoleti.
+ Disattiva adesso
diff --git a/src/main/res/values-pt-rBR/strings.xml b/src/main/res/values-pt-rBR/strings.xml
index 66c573061..e44d813fb 100644
--- a/src/main/res/values-pt-rBR/strings.xml
+++ b/src/main/res/values-pt-rBR/strings.xml
@@ -363,6 +363,7 @@
Não existe nenhuma chave utilizável disponível para este contato.\nA obtenção de novas chaves no servidor não foi bem sucedida. Pode ser que tenha algum problema com o servidor do seu contato.
Não existem chaves em condições de uso para esse contato.\nCertifique-se de que existem requisições de presença mútuas.
Não existe nenhuma chave utilizável para esse contato. Caso você tenha expurgado alguma chave dele, ele terá que gerar uma nova.
+ Alguma coisa deu errado
Obtendo histórico do servidor
Nenhum outro histórico do servidor
Atualizando...
@@ -408,6 +409,8 @@
Não foi possível modificar as opções da conversa em grupo
Nunca
Até segunda ordem
+ Soneca
+ Responder
Marcar como lida
Entrada
Enter envia
@@ -463,6 +466,7 @@
Selecione a ação rápida
Pesquisar por contatos ou grupos
Enviar mensagem privada
+ %1$s deixou a conversa em grupo!
Nome de usuário
Nome de usuário
Esse não é um nome de usuário válido
@@ -474,6 +478,7 @@
Falha na associação
O servidor não responde por esse domínio
Quebrado
+ Disponibilidade
Afastado quando a tela estiver desligada
Define o seu status como afastado quando a tela estiver desligada.
\"Não perturbe\" em modo silencioso
@@ -516,6 +521,8 @@
Imagem compartilhada com %s
Imagens compartilhadas com %s
Texto compartilhado com %s
+ O Conversations necessita de acesso ao armazenamento externo
+ O Conversations necessita de acesso à câmera
Sincronizar com os contatos
O Conversations quer procurar por correspondências entre contatos da sua conta Jabber e do seu telefone, para complementar as informações de nome completo e avatares\n\nO Conversations fará a verificação localmente, sem enviar nenhuma informação sua para o servidor\n\nVocê será solicitado a fornecer permissão de acesso aos seus contatos agora.
Informação do certificado
@@ -549,11 +556,14 @@
Erro de segurança: Acesso inválido ao arquivo
Não foi encontrado nenhum aplicativo para compartilhar a URI
Compartilhar a URI com...
+ Jabber é uma rede de mensageria instantânea independente de provedor. Você pode usar este cliente com qualquer servidor Jabber que você escolher.\nEntretanto, para sua conveniência, nós simplificamos o processo de criação de uma conta no conversations.im¹; um provedor especialmente configurado para ser usado com o Conversations.
Nós guiaremos você ao longo do processo de criar uma conta em conversations.im.¹\nAo usar esse provedor você também poderá se comunicar com usuários de outros provedores. Basta fornecê-los a sua identificação Jabber completa.
Sua ID Jabber será: %s
Criar conta
Usar meu próprio provedor
Selecione seu nome de usuário
+ Gerenciar a disponibilidade manualmente
+ Defina sua disponibilidade ao editar a sua mensagem de status
Alterar a presença
Mensagem de status
Definir para todas as contas deste dispositivo
@@ -639,8 +649,34 @@
Eu segui este link a partir de uma fonte segura
Você está prestes a verificar as chaves OMEMO de %1$s após ter clicado em um link. Isso só é seguro se você acesso esse link a partir de uma fonte segura, onde somente %2$s poderia tê-lo publicado.
Verificar chaves OMEMO
+ Exibir os inativos
+ Ocultar os inativos
Remover a confiança do dispositivo
Tem certeza que deseja remover a verificação para este dispositivo?\nEste dispositivo e as mensagens oriundas dele serão marcadas como não confáveis.
+
+ - %d segundo
+ - %d segundos
+
+
+ - %d minuto
+ - %d minutos
+
+
+ - %d hora
+ - %d horas
+
+
+ - %d dia
+ - %d dias
+
+
+ - %d semana
+ - %d semanas
+
+
+ - %d mês
+ - %d meses
+
Exclusão automática de mensagens
Excluir automaticamente as mensagens deste dispositivo que sejam mais antigas do que o tempo estipulado.
Criptografar a mensagem
@@ -674,4 +710,27 @@
A mensagem foi copiada para a área de transferência
Mensagem
As mensagens privadas estão desabilitadas
+ Apps protegidos
+ Para continuar recebendo notificações, mesmo com a tela apagada, você precisa adicionar o Conversations à lista de apps protegidos.
+ Aceitar certificado desconhecido?
+ O servidor do certificado não está assinado por uma autoridade certificadora reconhecida.
+ O certificado do servidor expirou.
+ Aceitar nome de servidor não correspondente?
+ Não foi possível autenticar o servidor como \"%s\". O certificado é válido somente para:
+ Deseja conectar-se mesmo assim?
+ Detalhes do certificado:
+ Verificação do certificado
+ Uma vez
+ O scanner de QR code necessita de acesso à câmera
+ Rolar para baixo
+ Rola para o final após enviar uma mensagem
+ Editar a mensagem de status
+ Editar a mensagem de status
+ Desabilitar a criptografia
+ O Conversations é incapaz de enviar mensagens criptografadas para %1$s. Isso pode ocorrer caso o seu contato esteja usando um servidor desatualizado ou o cliente não consiga lidar com OMEMO.
+ Não foi possível obter a lista de dispositivos
+ Não foi possível obter o grupo de dispositivos
+ Dica: Em alguns casos isso pode ser resolvido adicionando-se um ao outro na lista de contatos.
+ Tem certeza que deseja desabilitar a criptografia OMEMO nesta conversa?\nIsso permitirá que o administrador do seu servidor seja capaz de ler suas mensagens. Por outro lado, pode ser a única forma de se comunicar com pessoas usando clientes desatualizados.
+ Desabilitar agora