aboutsummaryrefslogtreecommitdiffstats
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/eu/siacs/conversations/entities/Bookmark.java11
-rw-r--r--src/main/java/eu/siacs/conversations/parser/AbstractParser.java7
-rw-r--r--src/main/java/eu/siacs/conversations/parser/MessageParser.java8
-rw-r--r--src/main/java/eu/siacs/conversations/services/MessageArchiveService.java34
-rw-r--r--src/main/java/eu/siacs/conversations/services/XmppConnectionService.java11
-rw-r--r--src/main/java/eu/siacs/conversations/ui/ConversationActivity.java2
-rw-r--r--src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java60
-rw-r--r--src/main/java/eu/siacs/conversations/utils/DNSHelper.java32
-rw-r--r--src/main/java/eu/siacs/conversations/xml/Element.java4
-rw-r--r--src/main/java/eu/siacs/conversations/xmpp/stanzas/AbstractStanza.java18
-rw-r--r--src/main/res/values-es/strings.xml66
-rw-r--r--src/main/res/values-it/strings.xml2
12 files changed, 137 insertions, 118 deletions
diff --git a/src/main/java/eu/siacs/conversations/entities/Bookmark.java b/src/main/java/eu/siacs/conversations/entities/Bookmark.java
index 70d852fe8..209056485 100644
--- a/src/main/java/eu/siacs/conversations/entities/Bookmark.java
+++ b/src/main/java/eu/siacs/conversations/entities/Bookmark.java
@@ -60,16 +60,7 @@ public class Bookmark extends Element implements ListItem {
@Override
public Jid getJid() {
- final String jid = this.getAttribute("jid");
- if (jid != null) {
- try {
- return Jid.fromString(jid);
- } catch (final InvalidJidException e) {
- return null;
- }
- } else {
- return null;
- }
+ return this.getAttributeAsJid("jid");
}
@Override
diff --git a/src/main/java/eu/siacs/conversations/parser/AbstractParser.java b/src/main/java/eu/siacs/conversations/parser/AbstractParser.java
index c80346b7d..39cbff4f1 100644
--- a/src/main/java/eu/siacs/conversations/parser/AbstractParser.java
+++ b/src/main/java/eu/siacs/conversations/parser/AbstractParser.java
@@ -53,12 +53,7 @@ public abstract class AbstractParser {
protected void updateLastseen(final Element packet, final Account account,
final boolean presenceOverwrite) {
- Jid from;
- try {
- from = Jid.fromString(packet.getAttribute("from")).toBareJid();
- } catch (final InvalidJidException e) {
- return;
- }
+ Jid from = packet.getAttributeAsJid("from");
String presence = from == null || from.isBareJid() ? "" : from.getResourcepart();
Contact contact = account.getRoster().getContact(from);
long timestamp = getTimestamp(packet);
diff --git a/src/main/java/eu/siacs/conversations/parser/MessageParser.java b/src/main/java/eu/siacs/conversations/parser/MessageParser.java
index cd4c6401a..e9d491b5f 100644
--- a/src/main/java/eu/siacs/conversations/parser/MessageParser.java
+++ b/src/main/java/eu/siacs/conversations/parser/MessageParser.java
@@ -60,12 +60,12 @@ public class MessageParser extends AbstractParser implements
}
private Message parseOtrChat(MessagePacket packet, Account account) {
- boolean properlyAddressed = (!packet.getTo().isBareJid())
- || (account.countPresences() == 1);
- final Jid from = packet.getFrom();
- if (from == null) {
+ final Jid to = packet.getTo();
+ final Jid from = packet.getFrom();
+ if (to == null || from == null) {
return null;
}
+ boolean properlyAddressed = !to.isBareJid() || account.countPresences() == 1;
Conversation conversation = mXmppConnectionService
.findOrCreateConversation(account, from.toBareJid(), false);
String presence;
diff --git a/src/main/java/eu/siacs/conversations/services/MessageArchiveService.java b/src/main/java/eu/siacs/conversations/services/MessageArchiveService.java
index 9dfe179c1..fe1871eaf 100644
--- a/src/main/java/eu/siacs/conversations/services/MessageArchiveService.java
+++ b/src/main/java/eu/siacs/conversations/services/MessageArchiveService.java
@@ -3,7 +3,9 @@ package eu.siacs.conversations.services;
import android.util.Log;
import java.math.BigInteger;
+import java.util.ArrayList;
import java.util.HashSet;
+import java.util.Iterator;
import java.util.List;
import eu.siacs.conversations.Config;
@@ -22,6 +24,7 @@ public class MessageArchiveService implements OnAdvancedStreamFeaturesLoaded {
private final XmppConnectionService mXmppConnectionService;
private final HashSet<Query> queries = new HashSet<Query>();
+ private ArrayList<Query> pendingQueries = new ArrayList<Query>();
public enum PagingOrder {
NORMAL,
@@ -83,18 +86,41 @@ public class MessageArchiveService implements OnAdvancedStreamFeaturesLoaded {
}
}
+ public void executePendingQueries(final Account account) {
+ List<Query> pending = new ArrayList<>();
+ synchronized(this.pendingQueries) {
+ for(Iterator<Query> iterator = this.pendingQueries.iterator(); iterator.hasNext();) {
+ Query query = iterator.next();
+ if (query.getAccount() == account) {
+ pending.add(query);
+ iterator.remove();
+ }
+ }
+ }
+ for(Query query : pending) {
+ this.execute(query);
+ }
+ }
+
private void execute(final Query query) {
- Log.d(Config.LOGTAG,query.getAccount().getJid().toBareJid().toString()+": running mam query "+query.toString());
- IqPacket packet = this.mXmppConnectionService.getIqGenerator().queryMessageArchiveManagement(query);
- this.mXmppConnectionService.sendIqPacket(query.getAccount(), packet, new OnIqPacketReceived() {
+ final Account account= query.getAccount();
+ if (account.getStatus() == Account.State.ONLINE) {
+ Log.d(Config.LOGTAG, account.getJid().toBareJid().toString() + ": running mam query " + query.toString());
+ IqPacket packet = this.mXmppConnectionService.getIqGenerator().queryMessageArchiveManagement(query);
+ this.mXmppConnectionService.sendIqPacket(account, packet, new OnIqPacketReceived() {
@Override
public void onIqPacketReceived(Account account, IqPacket packet) {
if (packet.getType() == IqPacket.TYPE_ERROR) {
- Log.d(Config.LOGTAG,account.getJid().toBareJid().toString()+": error executing mam: "+packet.toString());
+ Log.d(Config.LOGTAG, account.getJid().toBareJid().toString() + ": error executing mam: " + packet.toString());
finalizeQuery(query);
}
}
});
+ } else {
+ synchronized (this.pendingQueries) {
+ this.pendingQueries.add(query);
+ }
+ }
}
private void finalizeQuery(Query query) {
diff --git a/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java b/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java
index 9b1ecdeae..ef93dcc79 100644
--- a/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java
+++ b/src/main/java/eu/siacs/conversations/services/XmppConnectionService.java
@@ -160,6 +160,7 @@ public class XmppConnectionService extends Service implements OnPhoneContactsLoa
for (Conversation conversation : account.pendingConferenceJoins) {
joinMuc(conversation);
}
+ mMessageArchiveService.executePendingQueries(account);
mJingleConnectionManager.cancelInTransmission();
List<Conversation> conversations = getConversations();
for (Conversation conversation : conversations) {
@@ -2085,6 +2086,16 @@ public class XmppConnectionService extends Service implements OnPhoneContactsLoa
}
}
+ public void clearConversationHistory(final Conversation conversation) {
+ conversation.clearMessages();
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ databaseBackend.deleteMessagesInConversation(conversation);
+ }
+ }).start();
+ }
+
public interface OnConversationUpdate {
public void onConversationUpdate();
}
diff --git a/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java b/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java
index a5efe12e0..6656de2b3 100644
--- a/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/ConversationActivity.java
@@ -491,7 +491,7 @@ public class ConversationActivity extends XmppActivity implements
@Override
public void onClick(DialogInterface dialog, int which) {
- conversation.clearMessages();
+ ConversationActivity.this.xmppConnectionService.clearConversationHistory(conversation);
if (endConversationCheckBox.isChecked()) {
endConversation(conversation);
} else {
diff --git a/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java b/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java
index 320626991..478586b92 100644
--- a/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java
+++ b/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java
@@ -268,7 +268,7 @@ public class MessageAdapter extends ArrayAdapter<Message> {
@Override
public void onClick(View v) {
- startDonwloadable(message);
+ startDownloadable(message);
}
});
viewHolder.download_button.setOnLongClickListener(openContextMenu);
@@ -284,7 +284,7 @@ public class MessageAdapter extends ArrayAdapter<Message> {
@Override
public void onClick(View v) {
- openDonwloadable(file);
+ openDownloadable(file);
}
});
viewHolder.download_button.setOnLongClickListener(openContextMenu);
@@ -438,6 +438,8 @@ public class MessageAdapter extends ArrayAdapter<Message> {
}
view.setLayoutParams(view.getLayoutParams());
return view;
+ } else if (viewHolder.messageBody == null || viewHolder.image == null) {
+ return view; //avoiding weird platform bugs
} else if (type == RECEIVED) {
Contact contact = message.getContact();
if (contact != null) {
@@ -446,38 +448,36 @@ public class MessageAdapter extends ArrayAdapter<Message> {
viewHolder.contact_picture.setImageBitmap(activity.avatarService().get(getDisplayedMucCounterpart(message.getCounterpart()),
activity.getPixel(48)));
}
- } else if (type == SENT && viewHolder.contact_picture != null) {
+ } else if (type == SENT) {
viewHolder.contact_picture.setImageBitmap(activity.avatarService().get(account, activity.getPixel(48)));
}
- if (viewHolder != null && viewHolder.contact_picture != null) {
- viewHolder.contact_picture
- .setOnClickListener(new OnClickListener() {
-
- @Override
- public void onClick(View v) {
- if (MessageAdapter.this.mOnContactPictureClickedListener != null) {
- MessageAdapter.this.mOnContactPictureClickedListener
- .onContactPictureClicked(message);
- }
+ viewHolder.contact_picture
+ .setOnClickListener(new OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ if (MessageAdapter.this.mOnContactPictureClickedListener != null) {
+ MessageAdapter.this.mOnContactPictureClickedListener
+ .onContactPictureClicked(message);
}
- });
- viewHolder.contact_picture
- .setOnLongClickListener(new OnLongClickListener() {
-
- @Override
- public boolean onLongClick(View v) {
- if (MessageAdapter.this.mOnContactPictureLongClickedListener != null) {
- MessageAdapter.this.mOnContactPictureLongClickedListener
- .onContactPictureLongClicked(message);
- return true;
- } else {
- return false;
- }
+
+ }
+ });
+ viewHolder.contact_picture
+ .setOnLongClickListener(new OnLongClickListener() {
+
+ @Override
+ public boolean onLongClick(View v) {
+ if (MessageAdapter.this.mOnContactPictureLongClickedListener != null) {
+ MessageAdapter.this.mOnContactPictureLongClickedListener
+ .onContactPictureLongClicked(message);
+ return true;
+ } else {
+ return false;
}
- });
- }
+ }
+ });
if (message.getDownloadable() != null && message.getDownloadable().getStatus() != Downloadable.STATUS_UPLOADING) {
Downloadable d = message.getDownloadable();
@@ -546,7 +546,7 @@ public class MessageAdapter extends ArrayAdapter<Message> {
return view;
}
- public void startDonwloadable(Message message) {
+ public void startDownloadable(Message message) {
Downloadable downloadable = message.getDownloadable();
if (downloadable != null) {
if (!downloadable.start()) {
@@ -556,7 +556,7 @@ public class MessageAdapter extends ArrayAdapter<Message> {
}
}
- public void openDonwloadable(DownloadableFile file) {
+ public void openDownloadable(DownloadableFile file) {
if (!file.exists()) {
Toast.makeText(activity,R.string.file_deleted,Toast.LENGTH_SHORT).show();
return;
diff --git a/src/main/java/eu/siacs/conversations/utils/DNSHelper.java b/src/main/java/eu/siacs/conversations/utils/DNSHelper.java
index 2aa6f5738..a09b4d0fe 100644
--- a/src/main/java/eu/siacs/conversations/utils/DNSHelper.java
+++ b/src/main/java/eu/siacs/conversations/utils/DNSHelper.java
@@ -140,23 +140,17 @@ public class DNSHelper {
}
ArrayList<Bundle> values = new ArrayList<>();
for (SRV srv : result) {
- Bundle namePort = new Bundle();
- namePort.putString("name", srv.getName());
- namePort.putInt("port", srv.getPort());
+ boolean added = false;
if (ips6.containsKey(srv.getName())) {
- ArrayList<String> ip = ips6.get(srv.getName());
- Collections.shuffle(ip, rnd);
- namePort.putString("ip", ip.get(0));
- values.add(namePort);
+ values.add(createNamePortBundle(srv.getName(),srv.getPort(),ips6));
+ added = true;
}
if (ips4.containsKey(srv.getName())) {
- ArrayList<String> ip = ips4.get(srv.getName());
- Collections.shuffle(ip, rnd);
- namePort.putString("ip", ip.get(0));
- values.add(namePort);
+ values.add(createNamePortBundle(srv.getName(),srv.getPort(),ips4));
+ added = true;
}
- if (!ips6.containsKey(srv.getName()) && !ips4.containsKey(srv.getName())) {
- values.add(namePort);
+ if (!added) {
+ values.add(createNamePortBundle(srv.getName(),srv.getPort(),null));
}
}
bundle.putParcelableArrayList("values", values);
@@ -168,6 +162,18 @@ public class DNSHelper {
return bundle;
}
+ private static Bundle createNamePortBundle(String name, int port, TreeMap<String, ArrayList<String>> ips) {
+ Bundle namePort = new Bundle();
+ namePort.putString("name", name);
+ namePort.putInt("port", port);
+ if (ips!=null) {
+ ArrayList<String> ip = ips.get(name);
+ Collections.shuffle(ip, new Random());
+ namePort.putString("ip", ip.get(0));
+ }
+ return namePort;
+ }
+
final protected static char[] hexArray = "0123456789ABCDEF".toCharArray();
public static String bytesToHex(byte[] bytes) {
diff --git a/src/main/java/eu/siacs/conversations/xml/Element.java b/src/main/java/eu/siacs/conversations/xml/Element.java
index c25b90175..9455d9e8f 100644
--- a/src/main/java/eu/siacs/conversations/xml/Element.java
+++ b/src/main/java/eu/siacs/conversations/xml/Element.java
@@ -1,9 +1,12 @@
package eu.siacs.conversations.xml;
+import android.util.Log;
+
import java.util.ArrayList;
import java.util.Hashtable;
import java.util.List;
+import eu.siacs.conversations.Config;
import eu.siacs.conversations.utils.XmlHelper;
import eu.siacs.conversations.xmpp.jid.InvalidJidException;
import eu.siacs.conversations.xmpp.jid.Jid;
@@ -111,6 +114,7 @@ public class Element {
try {
return Jid.fromString(jid);
} catch (final InvalidJidException e) {
+ Log.e(Config.LOGTAG, "could not parse jid " + jid);
return null;
}
}
diff --git a/src/main/java/eu/siacs/conversations/xmpp/stanzas/AbstractStanza.java b/src/main/java/eu/siacs/conversations/xmpp/stanzas/AbstractStanza.java
index 9e0514729..1a49b45e3 100644
--- a/src/main/java/eu/siacs/conversations/xmpp/stanzas/AbstractStanza.java
+++ b/src/main/java/eu/siacs/conversations/xmpp/stanzas/AbstractStanza.java
@@ -1,7 +1,6 @@
package eu.siacs.conversations.xmpp.stanzas;
import eu.siacs.conversations.xml.Element;
-import eu.siacs.conversations.xmpp.jid.InvalidJidException;
import eu.siacs.conversations.xmpp.jid.Jid;
public class AbstractStanza extends Element {
@@ -11,24 +10,11 @@ public class AbstractStanza extends Element {
}
public Jid getTo() {
- try {
- return Jid.fromString(getAttribute("to"));
- } catch (final InvalidJidException e) {
- return null;
- }
+ return getAttributeAsJid("to");
}
public Jid getFrom() {
- String from = getAttribute("from");
- if (from == null) {
- return null;
- } else {
- try {
- return Jid.fromString(from);
- } catch (final InvalidJidException e) {
- return null;
- }
- }
+ return getAttributeAsJid("from");
}
public String getId() {
diff --git a/src/main/res/values-es/strings.xml b/src/main/res/values-es/strings.xml
index aad54aeb3..e02c0f026 100644
--- a/src/main/res/values-es/strings.xml
+++ b/src/main/res/values-es/strings.xml
@@ -7,7 +7,7 @@
<string name="action_accounts">Gestionar cuentas</string>
<string name="action_end_conversation">Terminar conversación</string>
<string name="action_contact_details">Detalles del contacto</string>
- <string name="action_muc_details">Detalles de la conferencia</string>
+ <string name="action_muc_details">Detalles de conversación en grupo</string>
<string name="action_secure">Conversación segura</string>
<string name="action_add_account">Añadir cuenta</string>
<string name="action_edit_contact">Editar contacto</string>
@@ -15,7 +15,7 @@
<string name="action_add_phone_book">Añadir a contactos del teléfono</string>
<string name="title_activity_manage_accounts">Gestionar Cuentas</string>
<string name="title_activity_settings">Ajustes</string>
- <string name="title_activity_conference_details">Detalles de Conferencia</string>
+ <string name="title_activity_conference_details">Detalles de Conversación en grupo</string>
<string name="title_activity_contact_details">Detalles del Contacto</string>
<string name="title_activity_conversations">Conversations</string>
<string name="title_activity_sharewith">Compartir con Conversación</string>
@@ -34,7 +34,7 @@
<string name="participant">Participante</string>
<string name="visitor">Visitante</string>
<string name="remove_contact_text">¿Quieres eliminar a %s de tu lista? La conversación asociada a esta cuenta no se eliminará.</string>
- <string name="remove_bookmark_text">¿Quieres eliminar %s de tus marcadores? La conversación de la conferencia asociada con este marcador no se eliminará.</string>
+ <string name="remove_bookmark_text">¿Quieres eliminar %s de tus marcadores? La conversación asociada con este marcador no se eliminará.</string>
<string name="register_account">Registrar nueva cuenta en servidor</string>
<string name="share_with">Compartir con</string>
<string name="start_conversation">Comenzar conversación</string>
@@ -67,8 +67,8 @@
<string name="also_end_conversation">Terminar esta conversación más tarde</string>
<string name="choose_presence">Selecciona recurso del contacto</string>
<string name="send_plain_text_message">Enviar mensaje de texto</string>
- <string name="send_otr_message">Enviar mensaje encriptado con OTR</string>
- <string name="send_pgp_message">Enviar mensaje encriptado con OpenPGP</string>
+ <string name="send_otr_message">Enviar mensaje cifrado con OTR</string>
+ <string name="send_pgp_message">Enviar mensaje cifrado con OpenPGP</string>
<string name="your_nick_has_been_changed">Tu apodo se ha modificado</string>
<string name="download_image">Descargar imagen</string>
<string name="image_offered_for_download"><i>Archivo de imagen ofrecido para descarga</i></string>
@@ -84,7 +84,7 @@
<string name="contact_has_no_pgp_key">Conversations no ha podido encriptar tus mensajes porque el contacto no está anunciando su clave publica.\n\n<small>Por favor, pide a tu contacto que configure OpenPGP.</small></string>
<string name="no_pgp_keys">Claves OpenPGP no encontradas</string>
<string name="contacts_have_no_pgp_keys">Conversations no ha podido encriptar tus mensajes porque tus contactos no están anunciando su clave publica.\n\n<small>Por favor, pide a tus contactos que configuren OpenPGP.</small></string>
- <string name="encrypted_message_received"><i>Mensaje encriptado recibido. Pulsa para ver.</i></string>
+ <string name="encrypted_message_received"><i>Mensaje cifrado recibido. Pulsa para ver.</i></string>
<string name="encrypted_image_received"><i>Imagen encriptada recibida. Pulsa para ver.</i></string>
<string name="image_file"><i>Imagen recibida. Pulsa para ver</i></string>
<string name="pref_general">General</string>
@@ -99,12 +99,12 @@
<string name="pref_vibrate_summary">Vibra cuando llega un nuevo mensaje</string>
<string name="pref_sound">Sonido</string>
<string name="pref_sound_summary">Reproduce tono con la notificación</string>
- <string name="pref_conference_notifications">Notificaciones de conferencia</string>
- <string name="pref_conference_notifications_summary">Siempre notifica cuando llega un mensaje de conferencia y no solo cuando llega un mensaje destacado</string>
+ <string name="pref_conference_notifications">Notif. conversación grupo</string>
+ <string name="pref_conference_notifications_summary">Siempre notifica cuando llega un mensaje a una conversación en grupo y no solo cuando llega un mensaje destacado</string>
<string name="pref_notification_grace_period">Notificaciones Carbons</string>
<string name="pref_notification_grace_period_summary">Deshabilita las notificaciones durante un corto periodo de tiempo después de recibir la copia del mensaje carbon</string>
<string name="pref_advanced_options">Opciones avanzadas</string>
- <string name="pref_never_send_crash">Nunca enviar errores</string>
+ <string name="pref_never_send_crash">Nunca informar de errores</string>
<string name="pref_never_send_crash_summary">Si envías registros de error ayudas al desarrollo de Conversations</string>
<string name="pref_confirm_messages">Confirmar Mensajes</string>
<string name="pref_confirm_messages_summary">Permitir a tus contactos saber cuando recibes y lees un mensaje</string>
@@ -171,7 +171,7 @@
<string name="contact_status_extended_away">Ausencia extendida</string>
<string name="contact_status_do_not_disturb">No molestar</string>
<string name="contact_status_offline">Desconectado</string>
- <string name="muc_details_conference">Conferencia</string>
+ <string name="muc_details_conference">Conversación en grupo</string>
<string name="muc_details_other_members">Otros Miembros</string>
<string name="server_info_carbon_messages">XEP-0280: Message Carbons</string>
<string name="server_info_stream_management">XEP-0198: Stream Management</string>
@@ -187,31 +187,31 @@
<string name="last_seen_day">Visto última vez hace 1 día</string>
<string name="last_seen_days">Visto última vez hace %d días</string>
<string name="never_seen">Nunca visto</string>
- <string name="install_openkeychain">Mensaje encriptado. Por favor instala OpenKeychain para desencriptar.</string>
+ <string name="install_openkeychain">Mensaje cifrado. Por favor instala OpenKeychain para desencriptar.</string>
<string name="unknown_otr_fingerprint">Huella digital OTR desconocida</string>
- <string name="openpgp_messages_found">Encontrado mensaje encriptado con OpenPGP</string>
+ <string name="openpgp_messages_found">Encontrado mensaje cifrado con OpenPGP</string>
<string name="reception_failed">Error al recibir</string>
<string name="your_fingerprint">Tu huella digital</string>
<string name="otr_fingerprint">Huella digital OTR</string>
<string name="verify">Verificar</string>
<string name="decrypt">Desencriptar</string>
- <string name="conferences">Conferencias</string>
+ <string name="conferences">Convers. Grupo</string>
<string name="search">Buscar</string>
<string name="create_contact">Crear Contacto</string>
- <string name="join_conference">Unirse a Conferencia</string>
+ <string name="join_conference">Unirse a Conversación grupo</string>
<string name="delete_contact">Eliminar Contacto</string>
<string name="view_contact_details">Ver detalles del contacto</string>
<string name="create">Crear</string>
<string name="contact_already_exists">El contacto ya existe</string>
<string name="join">Unirse</string>
- <string name="conference_address">Dirección de la Conferencia</string>
- <string name="conference_address_example">nombre@conferencia.ejemplo.com</string>
+ <string name="conference_address">Dirección</string>
+ <string name="conference_address_example">nombre@salas.ejemplo.com</string>
<string name="save_as_bookmark">Guardar en marcadores</string>
<string name="delete_bookmark">Eliminar marcador</string>
<string name="bookmark_already_exists">Este marcador ya exsite</string>
<string name="you">Tú</string>
- <string name="action_edit_subject">Editar asunto de la conferencia</string>
- <string name="conference_not_found">Conferencia no encontrada</string>
+ <string name="action_edit_subject">Editar asunto de la conversación</string>
+ <string name="conference_not_found">Conversación en grupo no encontrada</string>
<string name="leave">Salir</string>
<string name="contact_added_you">El contacto te ha añadido a su lista de contactos</string>
<string name="add_back">Añadir contacto</string>
@@ -238,19 +238,19 @@
<string name="disable_notifications_for_this_conversation">Deshabilitar notificaciones para esta conversación</string>
<string name="notifications_disabled">Las notificaciones están deshabilitadas</string>
<string name="enable">Habilitar</string>
- <string name="conference_requires_password">La conferencia requiere contraseña</string>
+ <string name="conference_requires_password">La conversación en grupo requiere contraseña</string>
<string name="enter_password">Introduce la contraseña</string>
<string name="missing_presence_updates">Suscripción de actualizaciones de presencia del contacto perdida</string>
<string name="request_presence_updates">Por favor, solicita la suscripción de presencia a tu contacto primero.\n\n<small>Esto será usado para determinar qué cliente(s) está usando tu contacto.</small></string>
<string name="request_now">Solicitar ahora</string>
<string name="delete_fingerprint">Eliminar huella digital OTR</string>
- <string name="sure_delete_fingerprint">¿Estás seguro que quieres eliminar esta huella digital OTR?</string>
+ <string name="sure_delete_fingerprint">¿Estás seguro de que quieres eliminar esta huella digital OTR?</string>
<string name="ignore">Ignorar</string>
<string name="without_mutual_presence_updates"><b>Aviso:</b> Enviando esto sin suscripción de presencia por ambas partes podría causar problemas inesperados.\n\n<small>Verficia la suscripción de presencia en detalles del contacto.</small></string>
<string name="pref_encryption_settings">Ajustes de encriptación</string>
- <string name="pref_force_encryption">Forzar encriptación end-to-end</string>
- <string name="pref_force_encryption_summary">Siempre enviar mensajes encriptados (excepto para conferencias)</string>
- <string name="pref_dont_save_encrypted">No guardar mensajes encriptados</string>
+ <string name="pref_force_encryption">Forzar cifrado end-to-end</string>
+ <string name="pref_force_encryption_summary">Siempre enviar mensajes cifrados (excepto para conversaciones en grupo)</string>
+ <string name="pref_dont_save_encrypted">No guardar mensajes cifrados</string>
<string name="pref_dont_save_encrypted_summary">Aviso: Esto podría llevar a pérdida de mensajes</string>
<string name="pref_enable_legacy_ssl">Habilitar SSL heredado</string>
<string name="pref_enable_legacy_ssl_summary">Habilita soporte SSLv3 para servidores heredados. Advertencia: SSLv3 se considera no seguro.</string>
@@ -265,12 +265,12 @@
<string name="pref_use_indicate_received_summary">Cuando el contacto reciba el mensaje será indicado con una marca verde. Cuidado, esto podría no funcionar en todos los casos.</string>
<string name="pref_use_send_button_to_indicate_status_summary">El color del botón enviar indica el estado del contacto</string>
<string name="pref_expert_options_other">Otros</string>
- <string name="pref_conference_name">Nombre de conferencia</string>
- <string name="pref_conference_name_summary">Usar el asunto de la conferencia en lugar del identificador jabber como nombre de conferencia</string>
+ <string name="pref_conference_name">Nombre conversación grupo</string>
+ <string name="pref_conference_name_summary">Usar el asunto de la conversación en lugar del identificador jabber como nombre en las conversaciones en grupo</string>
<string name="toast_message_otr_fingerprint">¡Huella digital OTR copiada al portapapeles!</string>
- <string name="conference_banned">Tu entrada a esta conferencia ha sido prohibida</string>
- <string name="conference_members_only">Esta conferencia es solo para miembros</string>
- <string name="conference_kicked">Has sido expulsado de esta conferencia</string>
+ <string name="conference_banned">Tu entrada a esta conversación ha sido prohibida</string>
+ <string name="conference_members_only">Esta conversación es solo para miembros</string>
+ <string name="conference_kicked">Has sido expulsado de esta conversación</string>
<string name="using_account">Usando cuenta %s</string>
<string name="checking_image">Comprobando imagen en servidor HTTP</string>
<string name="image_file_deleted">El archivo de imagen ha sido eliminado</string>
@@ -309,7 +309,7 @@
<string name="conversations_foreground_service">Conversations</string>
<string name="touch_to_disable">Pulsa para deshabilitar servicio en primer plano</string>
<string name="pref_keep_foreground_service">Servicio en primer plano</string>
- <string name="pref_keep_foreground_service_summary">Mantener el servicio en primier plano previene que el sistema cierre la conexión</string>
+ <string name="pref_keep_foreground_service_summary">Mantener el servicio en primer plano previene que el sistema cierre la conexión</string>
<string name="choose_file">Seleccionar archivo</string>
<string name="receiving_file">Recibiendo archivo %1$s (%2$d%% completado)</string>
<string name="download_file">Descargar archivo %s</string>
@@ -328,10 +328,10 @@
<string name="pref_show_dynamic_tags">Mostrar etiquetas</string>
<string name="pref_show_dynamic_tags_summary">Muestra información en forma de etiquetas debajo de los contactos</string>
<string name="enable_notifications">Habilitar notificaciones</string>
- <string name="conference_with">Crear conferencia con…</string>
- <string name="no_conference_server_found">No se ha encontrado el servidor de conferencias</string>
- <string name="conference_creation_failed">¡La creación de la conferencia ha fallado!</string>
- <string name="conference_created">¡Conferencia creada!</string>
+ <string name="conference_with">Crear conversación en grupo</string>
+ <string name="no_conference_server_found">No se ha encontrado el servidor para crear la conversación en grupo</string>
+ <string name="conference_creation_failed">¡La creación de la conversación en grupo ha fallado!</string>
+ <string name="conference_created">¡Conversación en grupo creada!</string>
<string name="secret_accepted">¡Secreto aceptado!</string>
<string name="reset">Reinicializar</string>
<string name="account_image_description">Imagen de perfil</string>
diff --git a/src/main/res/values-it/strings.xml b/src/main/res/values-it/strings.xml
index dab7471db..703dab9d3 100644
--- a/src/main/res/values-it/strings.xml
+++ b/src/main/res/values-it/strings.xml
@@ -217,7 +217,7 @@
<string name="add_back">Add back</string>
<string name="contact_has_read_up_to_this_point">%s ha letto fino a questo punto</string>
<string name="publish">Pubblica</string>
- <string name="touch_to_choose_picture">Tocca l\'avatar per selezionare l\'immagine dalla gallaria</string>
+ <string name="touch_to_choose_picture">Tocca l\'avatar per selezionare l\'immagine dalla galleria</string>
<string name="publish_avatar_explanation">Nota bene: tutti i contatti sottoscritti agli aggiornamenti della tua presenza avranno il permesso di vedere questa immagine.</string>
<string name="publishing">Pubblicazione&#8230;</string>
<string name="error_publish_avatar_server_reject">Il server ha rifiutato la tua pubblicazione</string>