make config flag for leave before join

This commit is contained in:
Daniel Gultsch 2019-08-14 12:04:27 +02:00
parent ed95dd64ad
commit 6e1394ab40
2 changed files with 6 additions and 3 deletions

View file

@ -113,6 +113,7 @@ public final class Config {
public static final boolean ONLY_INTERNAL_STORAGE = false; //use internal storage instead of sdcard to save attachments public static final boolean ONLY_INTERNAL_STORAGE = false; //use internal storage instead of sdcard to save attachments
public static final boolean IGNORE_ID_REWRITE_IN_MUC = true; public static final boolean IGNORE_ID_REWRITE_IN_MUC = true;
public static final boolean MUC_LEAVE_BEFORE_JOIN = true;
public static final long MAM_MAX_CATCHUP = MILLISECONDS_IN_DAY * 5; public static final long MAM_MAX_CATCHUP = MILLISECONDS_IN_DAY * 5;
public static final int MAM_MAX_MESSAGES = 750; public static final int MAM_MAX_MESSAGES = 750;

View file

@ -1395,7 +1395,7 @@ public class XmppConnectionService extends Service {
final boolean inProgressJoin; final boolean inProgressJoin;
synchronized (account.inProgressConferenceJoins) { synchronized (account.inProgressConferenceJoins) {
inProgressJoin = conversation.getMode() == Conversational.MODE_MULTI && account.inProgressConferenceJoins.contains(conversation); inProgressJoin = conversation.getMode() == Conversational.MODE_MULTI && (account.inProgressConferenceJoins.contains(conversation) || account.pendingConferenceJoins.contains(conversation));
} }
if (account.isOnlineAndConnected() && !inProgressJoin) { if (account.isOnlineAndConnected() && !inProgressJoin) {
@ -2546,8 +2546,10 @@ public class XmppConnectionService extends Service {
synchronized (account.inProgressConferenceJoins) { synchronized (account.inProgressConferenceJoins) {
account.inProgressConferenceJoins.add(conversation); account.inProgressConferenceJoins.add(conversation);
} }
sendPresencePacket(account, mPresenceGenerator.leave(conversation.getMucOptions())); if (Config.MUC_LEAVE_BEFORE_JOIN) {
conversation.resetMucOptions(); sendPresencePacket(account, mPresenceGenerator.leave(conversation.getMucOptions()));
}
conversation.resetMucOptions();
if (onConferenceJoined != null) { if (onConferenceJoined != null) {
conversation.getMucOptions().flagNoAutoPushConfiguration(); conversation.getMucOptions().flagNoAutoPushConfiguration();
} }