diff options
Diffstat (limited to 'src')
7 files changed, 22 insertions, 10 deletions
diff --git a/src/main/java/eu/siacs/conversations/entities/Presences.java b/src/main/java/eu/siacs/conversations/entities/Presences.java index 49618f9e6..b3e8966a7 100644 --- a/src/main/java/eu/siacs/conversations/entities/Presences.java +++ b/src/main/java/eu/siacs/conversations/entities/Presences.java @@ -55,7 +55,9 @@ public class Presences { synchronized (this.presences) { ArrayList<PresenceTemplate> templates = new ArrayList<>(presences.size()); for(Presence p : presences.values()) { - templates.add(new PresenceTemplate(p.getStatus(),p.getMessage())); + if (p.getMessage() != null && !p.getMessage().trim().isEmpty()) { + templates.add(new PresenceTemplate(p.getStatus(), p.getMessage())); + } } return templates; } diff --git a/src/main/java/eu/siacs/conversations/parser/MessageParser.java b/src/main/java/eu/siacs/conversations/parser/MessageParser.java index 943090993..7ae89c7ef 100644 --- a/src/main/java/eu/siacs/conversations/parser/MessageParser.java +++ b/src/main/java/eu/siacs/conversations/parser/MessageParser.java @@ -536,8 +536,8 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece } } } else if (!packet.hasChild("body")){ //no body - if (Config.BACKGROUND_STANZA_LOGGING && !mXmppConnectionService.checkListeners()) { - Log.d(Config.LOGTAG, account.getJid().toBareJid() + ": " + original); + if (Config.BACKGROUND_STANZA_LOGGING && mXmppConnectionService.checkListeners()) { + Log.d(Config.LOGTAG, account.getJid().toBareJid() + ": " + packet+ " (carbon="+Boolean.toString(isCarbon)+")"); } Conversation conversation = mXmppConnectionService.find(account, from.toBareJid()); if (isTypeGroupChat) { diff --git a/src/main/java/eu/siacs/conversations/ui/ConferenceDetailsActivity.java b/src/main/java/eu/siacs/conversations/ui/ConferenceDetailsActivity.java index 8654e1d62..9f3602ffb 100644 --- a/src/main/java/eu/siacs/conversations/ui/ConferenceDetailsActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/ConferenceDetailsActivity.java @@ -379,10 +379,14 @@ public class ConferenceDetailsActivity extends XmppActivity implements OnConvers MenuItem removeAdminPrivileges = menu.findItem(R.id.remove_admin_privileges); MenuItem removeFromRoom = menu.findItem(R.id.remove_from_room); MenuItem banFromConference = menu.findItem(R.id.ban_from_conference); + MenuItem invite = menu.findItem(R.id.invite); startConversation.setVisible(true); if (contact != null) { showContactDetails.setVisible(true); } + if (user.getRole() == MucOptions.Role.NONE) { + invite.setVisible(true); + } if (self.getAffiliation().ranks(MucOptions.Affiliation.ADMIN) && self.getAffiliation().outranks(user.getAffiliation())) { if (mAdvancedMode) { @@ -403,7 +407,7 @@ public class ConferenceDetailsActivity extends XmppActivity implements OnConvers } } else { MenuItem sendPrivateMessage = menu.findItem(R.id.send_private_message); - sendPrivateMessage.setVisible(true); + sendPrivateMessage.setVisible(user.getRole().ranks(MucOptions.Role.PARTICIPANT)); } } diff --git a/src/main/java/eu/siacs/conversations/utils/XmlHelper.java b/src/main/java/eu/siacs/conversations/utils/XmlHelper.java index 198ce28b9..8cd551a0a 100644 --- a/src/main/java/eu/siacs/conversations/utils/XmlHelper.java +++ b/src/main/java/eu/siacs/conversations/utils/XmlHelper.java @@ -7,7 +7,7 @@ public class XmlHelper { content = content.replace(">", ">"); content = content.replace("\"", """); content = content.replace("'", "'"); - content = content.replaceAll("\\p{Cc}", ""); + content = content.replaceAll("\\p{Cc}&&[^\n\r\t]", ""); return content; } } diff --git a/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java b/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java index 53da1485c..bd570d82e 100644 --- a/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java +++ b/src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java @@ -937,7 +937,8 @@ public class XmppConnection implements Runnable { if (jid != null && jid.getContent() != null) { try { account.setResource(Jid.fromString(jid.getContent()).getResourcepart()); - if (streamFeatures.hasChild("session")) { + if (streamFeatures.hasChild("session") + && !streamFeatures.findChild("session").hasChild("optional")) { sendStartSession(); } else { sendPostBindInitialization(); @@ -1003,6 +1004,7 @@ public class XmppConnection implements Runnable { } private void sendStartSession() { + Log.d(Config.LOGTAG,account.getJid().toBareJid()+": sending legacy session to outdated server"); final IqPacket startSession = new IqPacket(IqPacket.TYPE.SET); startSession.addChild("session", "urn:ietf:params:xml:ns:xmpp-session"); this.sendUnmodifiedIqPacket(startSession, new OnIqPacketReceived() { diff --git a/src/main/res/menu/muc_details_context.xml b/src/main/res/menu/muc_details_context.xml index 4a8b13d16..edbb2264a 100644 --- a/src/main/res/menu/muc_details_context.xml +++ b/src/main/res/menu/muc_details_context.xml @@ -9,6 +9,10 @@ android:title="@string/action_contact_details" android:visible="false"/> <item + android:id="@+id/invite" + android:title="@string/invite_again" + android:visible="false"/> + <item android:id="@+id/send_private_message" android:title="@string/send_private_message" android:visible="false"/> diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index aec0e3a43..b465b4b92 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -627,10 +627,10 @@ <string name="presence_dnd">Busy</string> <string name="secure_password_generated">A secure password has been generated</string> <string name="device_does_not_support_battery_op">Your device does not support opting out of battery optimization</string> - <string name="share">Share</string> + <string name="share">Share</string> <string name="share_location">Share location</string> - <string name="location_sharing_disabled">Location sharing is disabled in settings</string> - <string name="locating">Locating…</string> + <string name="location_sharing_disabled">Location sharing is disabled in settings</string> + <string name="locating">Locating…</string> <string name="uninstall_plugins">We have integrated the VoiceRecorder and ShareLocation plugin directly into the messenger. You should uninstall the plugins.</string> <string name="uninstall">Uninstall</string> <string name="action_end_conversation_muc">Leave conference</string> @@ -646,5 +646,5 @@ <string name="import_database">Import backup</string> <string name="uninstall_app_text">There is an old version of Pix-Art Messenger or Conversations installed. If you have an old Pix-Art Messenger installed, you should uninstall this version. After uninstalled the old versoin, you should choose \'import backup\' again and we will import your data to the new version.</string> <string name="you">You</string> - + <string name="invite_again">Invite again</string> </resources> |