diff options
-rw-r--r-- | res/layout/server_info.xml | 20 | ||||
-rw-r--r-- | res/layout/share_with.xml | 4 | ||||
-rw-r--r-- | res/values-es/strings.xml | 21 | ||||
-rw-r--r-- | res/values/strings.xml | 20 | ||||
-rw-r--r-- | src/eu/siacs/conversations/crypto/PgpEngine.java | 10 | ||||
-rw-r--r-- | src/eu/siacs/conversations/entities/Conversation.java | 2 | ||||
-rw-r--r-- | src/eu/siacs/conversations/entities/MucOptions.java | 45 | ||||
-rw-r--r-- | src/eu/siacs/conversations/parser/MessageParser.java | 17 | ||||
-rw-r--r-- | src/eu/siacs/conversations/services/XmppConnectionService.java | 14 | ||||
-rw-r--r-- | src/eu/siacs/conversations/ui/ConversationActivity.java | 8 | ||||
-rw-r--r-- | src/eu/siacs/conversations/ui/ConversationFragment.java | 64 | ||||
-rw-r--r-- | src/eu/siacs/conversations/ui/ManageAccountActivity.java | 24 | ||||
-rw-r--r-- | src/eu/siacs/conversations/ui/MucDetailsActivity.java | 8 | ||||
-rw-r--r-- | src/eu/siacs/conversations/ui/ShareWithActivity.java | 2 | ||||
-rw-r--r-- | src/eu/siacs/conversations/xmpp/XmppConnection.java | 2 |
15 files changed, 181 insertions, 80 deletions
diff --git a/res/layout/server_info.xml b/res/layout/server_info.xml index 25e5a471..499a20de 100644 --- a/res/layout/server_info.xml +++ b/res/layout/server_info.xml @@ -12,14 +12,14 @@ android:paddingLeft="8dp" android:paddingRight="8dp" android:paddingBottom="8dp" - android:text="Statistics" /> + android:text="@string/server_info_statistics" /> <TextView android:layout_below="@+id/stats_header" android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="Connection age" + android:text="@string/server_info_connection_age" android:textSize="18sp"/> <TextView android:id="@+id/connection" @@ -36,7 +36,7 @@ android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/textView1" - android:text="Session age" + android:text="@string/server_info_session_age" android:textSize="18sp"/> <TextView android:id="@+id/session" @@ -53,7 +53,7 @@ android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/textView2" - android:text="Packets sent" + android:text="@string/server_info_packets_sent" android:textSize="18sp"/> <TextView android:id="@+id/pcks_sent" @@ -69,7 +69,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/textView3" - android:text="Packets received" + android:text="@string/server_info_packets_received" android:textSize="18sp"/> <TextView android:id="@+id/pcks_received" @@ -85,7 +85,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/textView4" - android:text="Connected accounts" + android:text="@string/server_info_connected_accounts" android:textSize="18sp"/> <TextView android:id="@+id/number_presences" @@ -103,14 +103,14 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="8dp" - android:text="Server Features" /> + android:text="@string/server_info_server_features" /> <TextView android:layout_below="@+id/features_header" android:id="@+id/textView5" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="Roster Versioning" + android:text="@string/server_info_roster_versioning" android:textSize="18sp"/> <TextView android:id="@+id/roster" @@ -127,7 +127,7 @@ android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/textView5" - android:text="Carbon Messages" + android:text="@string/server_info_carbon_messages" android:textSize="18sp"/> <TextView android:id="@+id/carbon" @@ -144,7 +144,7 @@ android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_below="@+id/textView6" - android:text="Stream Managment" + android:text="@string/server_info_stream_management" android:textSize="18sp"/> <TextView android:id="@+id/stream" diff --git a/res/layout/share_with.xml b/res/layout/share_with.xml index ae73a688..a578b2cb 100644 --- a/res/layout/share_with.xml +++ b/res/layout/share_with.xml @@ -12,7 +12,7 @@ android:id="@+id/conversations_header" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="Active Conversations" + android:text="@string/share_with_active_conversations" style="@style/sectionHeader" android:paddingLeft="8dp" android:paddingTop="8dp" @@ -32,7 +32,7 @@ android:id="@+id/contacts_header" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="Contacts" + android:text="@string/contacts" style="@style/sectionHeader" android:paddingLeft="8dp" android:paddingTop="8dp" diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml index ce4db1fb..c31f2da8 100644 --- a/res/values-es/strings.xml +++ b/res/values-es/strings.xml @@ -20,6 +20,7 @@ <string name="title_activity_conference_details">Detalles de Conferencia</string> <string name="title_activity_contact_details">Detalles de Contacto</string> <string name="title_activity_conversations">Conversations</string> + <string name="title_activity_sharewith">Compartir con Conversación</string> <string name="just_now">ahora</string> <string name="minutes_ago">min</string> <string name="unread_conversations">conversaciones por leer</string> @@ -61,6 +62,7 @@ <string name="no">No</string> <string name="ok">Ok</string> <string name="done">Hecho</string> + <string name="hide">Ocultar</string> <string name="create_invite">Crear \u0026 Invitar</string> <string name="new_conference_explained">¿Quieres crear una nueva conferencia con una dirección generada aleatoriamente e invitar a los contactos seleccionados a ella?</string> <string name="no_open_mucs">No hay conferencias existentes</string> @@ -122,7 +124,7 @@ <string name="pref_xmpp_resource">Recurso</string> <string name="pref_xmpp_resource_summary">El nombre que identifica el cliente que estás utilizando</string> <string name="pref_accept_files">Aceptar archivos</string> - <string name="pref_accept_files_summary">De forma automática aceptar archivos menores de…</string> + <string name="pref_accept_files_summary">De forma automática aceptar archivos menores que…</string> <string name="pref_notification_settings">Ajustes de notificación</string> <string name="pref_notifications">Notificaciones</string> <string name="pref_notifications_summary">Notifica cuando llega un nuevo mensaje</string> @@ -191,6 +193,7 @@ <string name="mgmt_account_enable">Habilitar</string> <string name="mgmt_account_are_you_sure">¿Estás seguro?</string> <string name="mgmt_account_delete_confirm_text">Si eliminas tu cuenta tu historial completo de conversaciones se perderá</string> + <string name="mgmt_account_account_offline">La cuenta está desconectada</string> <string name="attach_record_voice">Grabar audio</string> <string name="account_settings">Configuración de cuenta</string> <string name="account_settings_jabber_id">Identificador Jabber:</string> @@ -206,11 +209,25 @@ <string name="contact_status_online">Disponible</string> <string name="contact_status_free_to_chat">Hablador</string> <string name="contact_status_away">Ausente</string> - <string name="contact_status_extended_away">Ausencia ext.</string> + <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_subject">Ausnto de la Conferencia</string> <string name="muc_details_your_nickname">Tu apodo</string> <string name="muc_details_other_members">Otros Miembros</string> + <string name="subscription_not_updated_offline">Cuenta desconectada. No se puede actualizar suscripciones</string> + <string name="share_with_active_conversations">Conversaciones Activas</string> + <string name="server_info_statistics">Estadísticas</string> + <string name="server_info_connection_age">Tiempo de conexión</string> + <string name="server_info_session_age">Duración de la sesión</string> + <string name="server_info_packets_sent">Paquetes enviados</string> + <string name="server_info_packets_received">Paquetes recibidos</string> + <string name="server_info_connected_accounts">Cuentas conectadas</string> + <string name="server_info_server_features">Características del Servidor</string> + <string name="server_info_roster_versioning">Roster Versioning</string> + <string name="server_info_carbon_messages">Mensajes Carbon</string> + <string name="server_info_stream_management">Stream Management</string> + <string name="hours">horas</string> + <string name="mins">mins</string> </resources>
\ No newline at end of file diff --git a/res/values/strings.xml b/res/values/strings.xml index 13e43f5f..9d6e5b38 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -20,6 +20,7 @@ <string name="title_activity_conference_details">Conference Details</string> <string name="title_activity_contact_details">Contact Details</string> <string name="title_activity_conversations">Conversations</string> + <string name="title_activity_sharewith">Share with Conversation</string> <string name="just_now">just now</string> <string name="minutes_ago">min ago</string> <string name="unread_conversations">unread Conversations</string> @@ -34,7 +35,7 @@ <string name="participant">Participant</string> <string name="visitor">Visitor</string> <string name="enter_new_name">Enter a new name:</string> - <string name="remove_contact_text">Do you want to delete %s from your roster. The conversation associated with this account will not be removed.</string> + <string name="remove_contact_text">Do you want to delete %s from your roster? The conversation associated with this account will not be removed.</string> <string name="untrusted_cert_hint">The server %s presented you with an untrusted, possible self signed, certificate.</string> <string name="account_info">Server Info</string> <string name="register_account">Register new account on server</string> @@ -61,6 +62,7 @@ <string name="no">No</string> <string name="ok">Ok</string> <string name="done">Done</string> + <string name="hide">Hide</string> <string name="create_invite">Create \u0026 Invite</string> <string name="new_conference_explained">Do you want to create a new conference with a randomly generated address and invite the selected contacts to it?</string> <string name="no_open_mucs">No existing conferences</string> @@ -77,7 +79,7 @@ <string name="attach_file">Attach file</string> <string name="not_in_roster">The contact is not in your roster. Would you like to add it?</string> <string name="add_contact">Add contact</string> - <string name="send_failed">unsuccessful delivery</string> + <string name="send_failed">delivery failed</string> <string name="send_rejected">rejected</string> <string name="receiving_image">Receiving image file. Please wait…</string> <string name="preparing_image">Preparing image for transmission</string> @@ -191,6 +193,7 @@ <string name="mgmt_account_enable">Enable</string> <string name="mgmt_account_are_you_sure">Are you sure?</string> <string name="mgmt_account_delete_confirm_text">If you delete your account your entire conversation history will be lost</string> + <string name="mgmt_account_account_offline">Account is offline</string> <string name="attach_record_voice">Record voice</string> <string name="account_settings">Account Settings</string> <string name="account_settings_jabber_id">Jabber ID:</string> @@ -214,4 +217,17 @@ <string name="muc_details_your_nickname">Your nickname</string> <string name="muc_details_other_members">Other Members</string> <string name="subscription_not_updated_offline">Account offline. Could not update subscription</string> + <string name="share_with_active_conversations">Active Conversations</string> + <string name="server_info_statistics">Statistics</string> + <string name="server_info_connection_age">Connection age</string> + <string name="server_info_session_age">Session age</string> + <string name="server_info_packets_sent">Packets sent</string> + <string name="server_info_packets_received">Packets received</string> + <string name="server_info_connected_accounts">Connected accounts</string> + <string name="server_info_server_features">Server Features</string> + <string name="server_info_roster_versioning">Roster Versioning</string> + <string name="server_info_carbon_messages">Carbon Messages</string> + <string name="server_info_stream_management">Stream Management</string> + <string name="hours">hours</string> + <string name="mins">mins</string> </resources>
\ No newline at end of file diff --git a/src/eu/siacs/conversations/crypto/PgpEngine.java b/src/eu/siacs/conversations/crypto/PgpEngine.java index 0f2aeff4..b10275f6 100644 --- a/src/eu/siacs/conversations/crypto/PgpEngine.java +++ b/src/eu/siacs/conversations/crypto/PgpEngine.java @@ -17,6 +17,7 @@ import org.openintents.openpgp.util.OpenPgpApi.IOpenPgpCallback; import eu.siacs.conversations.R; import eu.siacs.conversations.entities.Account; import eu.siacs.conversations.entities.Contact; +import eu.siacs.conversations.entities.Conversation; import eu.siacs.conversations.entities.Message; import eu.siacs.conversations.services.XmppConnectionService; import eu.siacs.conversations.ui.UiCallback; @@ -114,10 +115,15 @@ public class PgpEngine { } public void encrypt(final Message message,final UiCallback callback) { - long[] keys = { message.getConversation().getContact().getPgpKeyId() }; + Intent params = new Intent(); params.setAction(OpenPgpApi.ACTION_ENCRYPT); - params.putExtra(OpenPgpApi.EXTRA_KEY_IDS, keys); + if (message.getConversation().getMode() == Conversation.MODE_SINGLE) { + long[] keys = { message.getConversation().getContact().getPgpKeyId() }; + params.putExtra(OpenPgpApi.EXTRA_KEY_IDS, keys); + } else { + params.putExtra(OpenPgpApi.EXTRA_KEY_IDS, message.getConversation().getMucOptions().getPgpKeyIds()); + } params.putExtra(OpenPgpApi.EXTRA_ACCOUNT_NAME, message.getConversation().getAccount().getJid()); if (message.getType() == Message.TYPE_TEXT) { diff --git a/src/eu/siacs/conversations/entities/Conversation.java b/src/eu/siacs/conversations/entities/Conversation.java index 37a230df..a9699660 100644 --- a/src/eu/siacs/conversations/entities/Conversation.java +++ b/src/eu/siacs/conversations/entities/Conversation.java @@ -276,7 +276,7 @@ public class Conversation extends AbstractEntity { public synchronized MucOptions getMucOptions() { if (this.mucOptions == null) { - this.mucOptions = new MucOptions(); + this.mucOptions = new MucOptions(this.getAccount()); } this.mucOptions.setConversation(this); return this.mucOptions; diff --git a/src/eu/siacs/conversations/entities/MucOptions.java b/src/eu/siacs/conversations/entities/MucOptions.java index fbca8340..c1750334 100644 --- a/src/eu/siacs/conversations/entities/MucOptions.java +++ b/src/eu/siacs/conversations/entities/MucOptions.java @@ -3,11 +3,10 @@ package eu.siacs.conversations.entities; import java.util.ArrayList; import java.util.List; -import eu.siacs.conversations.entities.MucOptions.User; +import eu.siacs.conversations.crypto.PgpEngine; import eu.siacs.conversations.xml.Element; import eu.siacs.conversations.xmpp.stanzas.PresencePacket; import android.annotation.SuppressLint; -import android.util.Log; @SuppressLint("DefaultLocale") public class MucOptions { @@ -31,6 +30,7 @@ public class MucOptions { private int role; private int affiliation; private String name; + private long pgpKeyId = 0; public String getName() { return name; @@ -70,7 +70,15 @@ public class MucOptions { this.affiliation = AFFILIATION_NONE; } } + public void setPgpKeyId(long id) { + this.pgpKeyId = id; + } + + public long getPgpKeyId() { + return this.pgpKeyId; + } } + private Account account; private ArrayList<User> users = new ArrayList<User>(); private Conversation conversation; private boolean isOnline = false; @@ -80,6 +88,9 @@ public class MucOptions { private User self = new User(); private String subject = null; + public MucOptions(Account account) { + this.account = account; + } public void deleteUser(String name) { for(int i = 0; i < users.size(); ++i) { @@ -100,7 +111,7 @@ public class MucOptions { users.add(user); } - public void processPacket(PresencePacket packet) { + public void processPacket(PresencePacket packet, PgpEngine pgp) { String[] fromParts = packet.getFrom().split("/"); if (fromParts.length>=2) { String name = fromParts[1]; @@ -119,6 +130,20 @@ public class MucOptions { } else { addUser(user); } + if (pgp != null) { + Element x = packet.findChild("x", + "jabber:x:signed"); + if (x != null) { + Element status = packet.findChild("status"); + String msg; + if (status != null) { + msg = status.getContent(); + } else { + msg = ""; + } + user.setPgpKeyId(pgp.fetchKeyId(account,msg, x.getContent())); + } + } } else if (type.equals("unavailable")) { if (name.equals(getNick())) { Element item = packet.findChild("x","http://jabber.org/protocol/muc#user").findChild("item"); @@ -211,4 +236,18 @@ public class MucOptions { public void flagAboutToRename() { this.aboutToRename = true; } + + public long[] getPgpKeyIds() { + List<Long> ids = new ArrayList<Long>(); + for(User user : getUsers()) { + if(user.getPgpKeyId()!=0) { + ids.add(user.getPgpKeyId()); + } + } + long[] primitivLongArray = new long[ids.size()]; + for(int i = 0; i < ids.size(); ++i) { + primitivLongArray[i] = ids.get(i); + } + return primitivLongArray; + } }
\ No newline at end of file diff --git a/src/eu/siacs/conversations/parser/MessageParser.java b/src/eu/siacs/conversations/parser/MessageParser.java index 3733767f..2ccbe05c 100644 --- a/src/eu/siacs/conversations/parser/MessageParser.java +++ b/src/eu/siacs/conversations/parser/MessageParser.java @@ -120,7 +120,12 @@ public class MessageParser { } else { status = Message.STATUS_RECIEVED; } - return new Message(conversation, counterPart, packet.getBody(), Message.ENCRYPTION_NONE, status); + String pgpBody = getPgpBody(packet); + if (pgpBody==null) { + return new Message(conversation, counterPart, packet.getBody(), Message.ENCRYPTION_NONE, status); + } else { + return new Message(conversation, counterPart, pgpBody, Message.ENCRYPTION_PGP, status); + } } public Message parseCarbonMessage(MessagePacket packet,Account account) { @@ -160,11 +165,11 @@ public class MessageParser { } public String getPgpBody(MessagePacket packet) { - for(Element child : packet.getChildren()) { - if (child.getName().equals("x")&&child.getAttribute("xmlns").equals("jabber:x:encrypted")) { - return child.getContent(); - } + Element child = packet.findChild("x", "jabber:x:encrypted"); + if (child==null) { + return null; + } else { + return child.getContent(); } - return null; } } diff --git a/src/eu/siacs/conversations/services/XmppConnectionService.java b/src/eu/siacs/conversations/services/XmppConnectionService.java index e31d28e0..d1692a44 100644 --- a/src/eu/siacs/conversations/services/XmppConnectionService.java +++ b/src/eu/siacs/conversations/services/XmppConnectionService.java @@ -279,7 +279,7 @@ public class XmppConnectionService extends Service { Conversation muc = findMuc( packet.getAttribute("from").split("/")[0], account); if (muc != null) { - muc.getMucOptions().processPacket(packet); + muc.getMucOptions().processPacket(packet,getPgpEngine()); } else { Log.d(LOGTAG, account.getJid() + ": could not find muc for received muc package " @@ -293,7 +293,7 @@ public class XmppConnectionService extends Service { account.getJid() + ": reading muc status packet " + packet.toString()); int error = muc.getMucOptions().getError(); - muc.getMucOptions().processPacket(packet); + muc.getMucOptions().processPacket(packet,getPgpEngine()); if ((muc.getMucOptions().getError() != error) && (convChangedListener != null)) { Log.d(LOGTAG, "muc error status changed"); @@ -1107,6 +1107,7 @@ public class XmppConnectionService extends Service { } public void joinMuc(Conversation conversation) { + Account account = conversation.getAccount(); String[] mucParts = conversation.getContactJid().split("/"); String muc; String nick; @@ -1115,19 +1116,24 @@ public class XmppConnectionService extends Service { nick = mucParts[1]; } else { muc = mucParts[0]; - nick = conversation.getAccount().getUsername(); + nick = account.getUsername(); } PresencePacket packet = new PresencePacket(); packet.setAttribute("to", muc + "/" + nick); Element x = new Element("x"); x.setAttribute("xmlns", "http://jabber.org/protocol/muc"); + String sig = account.getPgpSignature(); + if (sig != null) { + packet.addChild("status").setContent("online"); + packet.addChild("x", "jabber:x:signed").setContent(sig); + } if (conversation.getMessages().size() != 0) { long lastMsgTime = conversation.getLatestMessage().getTimeSent(); long diff = (System.currentTimeMillis() - lastMsgTime) / 1000 - 1; x.addChild("history").setAttribute("seconds", diff + ""); } packet.addChild(x); - conversation.getAccount().getXmppConnection() + account.getXmppConnection() .sendPresencePacket(packet); } diff --git a/src/eu/siacs/conversations/ui/ConversationActivity.java b/src/eu/siacs/conversations/ui/ConversationActivity.java index bd98e979..c696fa45 100644 --- a/src/eu/siacs/conversations/ui/ConversationActivity.java +++ b/src/eu/siacs/conversations/ui/ConversationActivity.java @@ -321,7 +321,6 @@ public class ConversationActivity extends XmppActivity { if (this.getSelectedConversation() != null) { if (this.getSelectedConversation().getMode() == Conversation.MODE_MULTI) { menuContactDetails.setVisible(false); - menuSecure.setVisible(false); menuAttach.setVisible(false); } else { menuMucDetails.setVisible(false); @@ -536,14 +535,17 @@ public class ConversationActivity extends XmppActivity { } }); popup.inflate(R.menu.encryption_choices); + MenuItem otr = popup.getMenu().findItem(R.id.encryption_choice_otr); + if (conversation.getMode() == Conversation.MODE_MULTI) { + otr.setVisible(false); + } switch (conversation.getNextEncryption()) { case Message.ENCRYPTION_NONE: popup.getMenu().findItem(R.id.encryption_choice_none) .setChecked(true); break; case Message.ENCRYPTION_OTR: - popup.getMenu().findItem(R.id.encryption_choice_otr) - .setChecked(true); + otr.setChecked(true); break; case Message.ENCRYPTION_PGP: popup.getMenu().findItem(R.id.encryption_choice_pgp) diff --git a/src/eu/siacs/conversations/ui/ConversationFragment.java b/src/eu/siacs/conversations/ui/ConversationFragment.java index 44d1848f..a3cecfd4 100644 --- a/src/eu/siacs/conversations/ui/ConversationFragment.java +++ b/src/eu/siacs/conversations/ui/ConversationFragment.java @@ -678,37 +678,41 @@ public class ConversationFragment extends Fragment { final XmppConnectionService xmppService = activity.xmppConnectionService; final Contact contact = message.getConversation().getContact(); if (activity.hasPgp()) { - if (contact.getPgpKeyId() != 0) { - xmppService.getPgpEngine().hasKey(contact, new UiCallback() { - - @Override - public void userInputRequried(PendingIntent pi) { - activity.runIntent(pi, - ConversationActivity.REQUEST_ENCRYPT_MESSAGE); - } - - @Override - public void success() { - activity.encryptTextMessage(); - } - - @Override - public void error(int error) { - - } - }); - + if (conversation.getMode() == Conversation.MODE_SINGLE) { + if (contact.getPgpKeyId() != 0) { + xmppService.getPgpEngine().hasKey(contact, new UiCallback() { + + @Override + public void userInputRequried(PendingIntent pi) { + activity.runIntent(pi, + ConversationActivity.REQUEST_ENCRYPT_MESSAGE); + } + + @Override + public void success() { + activity.encryptTextMessage(); + } + + @Override + public void error(int error) { + + } + }); + + } else { + showNoPGPKeyDialog(new DialogInterface.OnClickListener() { + + @Override + public void onClick(DialogInterface dialog, int which) { + conversation.setNextEncryption(Message.ENCRYPTION_NONE); + message.setEncryption(Message.ENCRYPTION_NONE); + xmppService.sendMessage(message, null); + chatMsg.setText(""); + } + }); + } } else { - showNoPGPKeyDialog(new DialogInterface.OnClickListener() { - - @Override - public void onClick(DialogInterface dialog, int which) { - conversation.setNextEncryption(Message.ENCRYPTION_NONE); - message.setEncryption(Message.ENCRYPTION_NONE); - xmppService.sendMessage(message, null); - chatMsg.setText(""); - } - }); + activity.encryptTextMessage(); } } } diff --git a/src/eu/siacs/conversations/ui/ManageAccountActivity.java b/src/eu/siacs/conversations/ui/ManageAccountActivity.java index 70af44e0..d1c9c7f7 100644 --- a/src/eu/siacs/conversations/ui/ManageAccountActivity.java +++ b/src/eu/siacs/conversations/ui/ManageAccountActivity.java @@ -317,36 +317,36 @@ public class ManageAccountActivity extends XmppActivity { pcks_received.setText(""+xmpp.getReceivedStanzas()); pcks_sent.setText(""+xmpp.getSentStanzas()); if (connectionAgeHours >= 2) { - connection.setText(connectionAgeHours+" hours"); + connection.setText(connectionAgeHours+" " + getString(R.string.hours)); } else { - connection.setText(connectionAge+" mins"); + connection.setText(connectionAge+" " + getString(R.string.mins)); } if (xmpp.hasFeatureStreamManagment()) { if (sessionAgeHours >= 2) { - session.setText(sessionAgeHours+" hours"); + session.setText(sessionAgeHours+" " + getString(R.string.hours)); } else { - session.setText(sessionAge+" mins"); + session.setText(sessionAge+" " + getString(R.string.mins)); } - stream.setText("Yes"); + stream.setText(getString(R.string.yes)); } else { - stream.setText("No"); + stream.setText(getString(R.string.no)); session.setText(connection.getText()); } if (xmpp.hasFeaturesCarbon()) { - carbon.setText("Yes"); + carbon.setText(getString(R.string.yes)); } else { - carbon.setText("No"); + carbon.setText(getString(R.string.no)); } if (xmpp.hasFeatureRosterManagment()) { - roster.setText("Yes"); + roster.setText(getString(R.string.yes)); } else { - roster.setText("No"); + roster.setText(getString(R.string.no)); } builder.setView(view); } else { - builder.setMessage("Account is offline"); + builder.setMessage(getString(R.string.mgmt_account_account_offline)); } - builder.setPositiveButton("Hide", null); + builder.setPositiveButton(getString(R.string.hide), null); builder.create().show(); } return true; diff --git a/src/eu/siacs/conversations/ui/MucDetailsActivity.java b/src/eu/siacs/conversations/ui/MucDetailsActivity.java index d1725d41..48cf6e81 100644 --- a/src/eu/siacs/conversations/ui/MucDetailsActivity.java +++ b/src/eu/siacs/conversations/ui/MucDetailsActivity.java @@ -3,6 +3,8 @@ package eu.siacs.conversations.ui; import java.util.ArrayList; import java.util.List; +import org.openintents.openpgp.util.OpenPgpUtils; + import eu.siacs.conversations.R; import eu.siacs.conversations.entities.Conversation; import eu.siacs.conversations.entities.MucOptions; @@ -176,7 +178,11 @@ public class MucDetailsActivity extends XmppActivity { ((TextView) view.findViewById(R.id.contact_display_name)) .setText(contact.getName()); TextView role = (TextView) view.findViewById(R.id.contact_jid); - role.setText(getReadableRole(contact.getRole())); + if (contact.getPgpKeyId()==0) { + role.setText(getReadableRole(contact.getRole())); + } else { + role.setText(getReadableRole(contact.getRole())+" \u00B7 "+OpenPgpUtils.convertKeyIdToHex(contact.getPgpKeyId())); + } ImageView imageView = (ImageView) view .findViewById(R.id.contact_photo); imageView.setImageBitmap(UIHelper.getContactPicture(contact.getName(), 48,this.getApplicationContext(), false)); diff --git a/src/eu/siacs/conversations/ui/ShareWithActivity.java b/src/eu/siacs/conversations/ui/ShareWithActivity.java index 6dbb20c9..0a8ee1a7 100644 --- a/src/eu/siacs/conversations/ui/ShareWithActivity.java +++ b/src/eu/siacs/conversations/ui/ShareWithActivity.java @@ -34,7 +34,7 @@ public class ShareWithActivity extends XmppActivity { super.onCreate(savedInstanceState); setContentView(R.layout.share_with); - setTitle("Share with Conversation"); + setTitle(getString(R.string.title_activity_sharewith)); contacts = (LinearLayout) findViewById(R.id.contacts); conversations = (LinearLayout) findViewById(R.id.conversations); diff --git a/src/eu/siacs/conversations/xmpp/XmppConnection.java b/src/eu/siacs/conversations/xmpp/XmppConnection.java index a1aaf66a..74639d42 100644 --- a/src/eu/siacs/conversations/xmpp/XmppConnection.java +++ b/src/eu/siacs/conversations/xmpp/XmppConnection.java @@ -898,7 +898,7 @@ public class XmppConnection implements Runnable { } } } - }); + }).start(); } catch (IOException e) { Log.d(LOGTAG, "io exception during disconnect"); } |