diff --git a/src/main/java/eu/siacs/conversations/AppSettings.java b/src/main/java/eu/siacs/conversations/AppSettings.java
index 0916d1e1a7d178bce439bfbc1b66334acc4f5c2e..dde4ff8db8e6233c55565dbd404c06c7e0c059cc 100644
--- a/src/main/java/eu/siacs/conversations/AppSettings.java
+++ b/src/main/java/eu/siacs/conversations/AppSettings.java
@@ -44,8 +44,6 @@ public class AppSettings {
public static final String COLORFUL_CHAT_BUBBLES = "use_green_background";
public static final String LARGE_FONT = "large_font";
- private static final String ACCEPT_INVITES_FROM_STRANGERS = "accept_invites_from_strangers";
-
private final Context context;
public AppSettings(final Context context) {
@@ -109,11 +107,6 @@ public class AppSettings {
return getBooleanPreference(USE_TOR, R.bool.use_tor);
}
- public boolean isAcceptInvitesFromStrangers() {
- return getBooleanPreference(
- ACCEPT_INVITES_FROM_STRANGERS, R.bool.accept_invites_from_strangers);
- }
-
private boolean getBooleanPreference(@NonNull final String name, @BoolRes int res) {
final SharedPreferences sharedPreferences =
PreferenceManager.getDefaultSharedPreferences(context);
diff --git a/src/main/java/eu/siacs/conversations/parser/MessageParser.java b/src/main/java/eu/siacs/conversations/parser/MessageParser.java
index e893316cfab69323d364e4c31f0d2e14bffeb446..d98176a321fe42ddc22c6f437564fa67171b5dd4 100644
--- a/src/main/java/eu/siacs/conversations/parser/MessageParser.java
+++ b/src/main/java/eu/siacs/conversations/parser/MessageParser.java
@@ -501,7 +501,7 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece
if (selfAddressed) {
counterpart = from;
} else {
- counterpart = to;
+ counterpart = to != null ? to : account.getJid();
}
} else {
status = Message.STATUS_RECEIVED;
@@ -1311,48 +1311,22 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece
if (this.jid == null) {
return false;
}
- final Contact contact =
- this.inviter != null ? account.getRoster().getContact(this.inviter) : null;
+ final Contact contact = this.inviter != null ? account.getRoster().getContact(this.inviter) : null;
if (contact != null && contact.isBlocked()) {
- Log.d(
- Config.LOGTAG,
- account.getJid().asBareJid()
- + ": ignore invite from "
- + contact.getJid()
- + " because contact is blocked");
+ Log.d(Config.LOGTAG,account.getJid().asBareJid()+": ignore invite from "+contact.getJid()+" because contact is blocked");
return false;
}
- final AppSettings appSettings = new AppSettings(mXmppConnectionService);
- if ((contact != null && contact.showInContactList())
- || appSettings.isAcceptInvitesFromStrangers()) {
- final Conversation conversation =
- mXmppConnectionService.findOrCreateConversation(account, jid, true, false);
- if (conversation.getMucOptions().online()) {
- Log.d(
- Config.LOGTAG,
- account.getJid().asBareJid()
- + ": received invite to "
- + jid
- + " but muc is considered to be online");
- mXmppConnectionService.mucSelfPingAndRejoin(conversation);
- } else {
- conversation.getMucOptions().setPassword(password);
- mXmppConnectionService.databaseBackend.updateConversation(conversation);
- mXmppConnectionService.joinMuc(
- conversation, contact != null && contact.showInContactList());
- mXmppConnectionService.updateConversationUi();
- }
- return true;
+ final Conversation conversation = mXmppConnectionService.findOrCreateConversation(account, jid, true, false);
+ if (conversation.getMucOptions().online()) {
+ Log.d(Config.LOGTAG, account.getJid().asBareJid() + ": received invite to " + jid + " but muc is considered to be online");
+ mXmppConnectionService.mucSelfPingAndRejoin(conversation);
} else {
- Log.d(
- Config.LOGTAG,
- account.getJid().asBareJid()
- + ": ignoring invite from "
- + this.inviter
- + " because we are not accepting invites from strangers. direct="
- + direct);
- return false;
+ conversation.getMucOptions().setPassword(password);
+ mXmppConnectionService.databaseBackend.updateConversation(conversation);
+ mXmppConnectionService.joinMuc(conversation, contact != null && contact.showInContactList());
+ mXmppConnectionService.updateConversationUi();
}
+ return true;
}
}
}
diff --git a/src/main/java/eu/siacs/conversations/ui/XmppActivity.java b/src/main/java/eu/siacs/conversations/ui/XmppActivity.java
index 6baba10eefad5fd29b6387404ef6b1ef510ebdfe..812167ced768c60f8622512a4064bdbc8baa2275 100644
--- a/src/main/java/eu/siacs/conversations/ui/XmppActivity.java
+++ b/src/main/java/eu/siacs/conversations/ui/XmppActivity.java
@@ -1054,15 +1054,14 @@ public abstract class XmppActivity extends ActionBarActivity {
return invite;
}
- public boolean execute(final XmppActivity activity) {
- final XmppConnectionService service = activity.xmppConnectionService;
- final Conversation conversation = service.findConversationByUuid(this.uuid);
+ public boolean execute(XmppActivity activity) {
+ XmppConnectionService service = activity.xmppConnectionService;
+ Conversation conversation = service.findConversationByUuid(this.uuid);
if (conversation == null) {
return false;
}
if (conversation.getMode() == Conversation.MODE_MULTI) {
- for (final Jid jid : jids) {
- // TODO use direct invites for public conferences
+ for (Jid jid : jids) {
service.invite(conversation, jid);
}
return false;
diff --git a/src/main/java/eu/siacs/conversations/ui/util/MucDetailsContextMenuHelper.java b/src/main/java/eu/siacs/conversations/ui/util/MucDetailsContextMenuHelper.java
index 9d690026f057d5938f72d77e81dfd505c990899d..7109324df18b811149da82f98b5e98c7d12b8e15 100644
--- a/src/main/java/eu/siacs/conversations/ui/util/MucDetailsContextMenuHelper.java
+++ b/src/main/java/eu/siacs/conversations/ui/util/MucDetailsContextMenuHelper.java
@@ -289,7 +289,6 @@ public final class MucDetailsContextMenuHelper {
activity.privateMsgInMuc(conversation, user.getName());
return true;
case R.id.invite:
- // TODO use direct invites for public conferences
if (user.getAffiliation().ranks(MucOptions.Affiliation.MEMBER)) {
activity.xmppConnectionService.directInvite(conversation, jid.asBareJid());
} else {
diff --git a/src/main/res/values/defaults.xml b/src/main/res/values/defaults.xml
index 0d542b3436222b190927d1afcae0bac16de3cd46..bd52defbeebd84475e3cba096dc9a975c491dbce 100644
--- a/src/main/res/values/defaults.xml
+++ b/src/main/res/values/defaults.xml
@@ -25,7 +25,6 @@
0
true
true
- true
false
false
false
diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml
index 8ea65a6c6af4047ef612cc5aff6a43c2b02a18fa..a8a34743bddedf68f699cbee520993b4db4176bb 100644
--- a/src/main/res/values/strings.xml
+++ b/src/main/res/values/strings.xml
@@ -1066,7 +1066,5 @@
When acting as a UnifiedPush Distributor the persistent, reliable and battery-friendly XMPP connection will be utilized to wake up other UnifiedPush compatible app such as Tusky, Ltt.rs, FluffyChat and more.
Large font
Increase font size in message bubbles
- Invites from strangers
- Accept invites to group chats from strangers
diff --git a/src/main/res/xml/preferences_privacy.xml b/src/main/res/xml/preferences_privacy.xml
index f59e3c2ba7461bf5ff23015ae89165073c91b67c..a0b2cff88312080d7edb7f87570333db7bda3dac 100644
--- a/src/main/res/xml/preferences_privacy.xml
+++ b/src/main/res/xml/preferences_privacy.xml
@@ -15,8 +15,8 @@
android:title="@string/pref_chat_states" />
-
+