migrate domain and host exemption into seperate class
This commit is contained in:
parent
abaabae853
commit
0d00ff0c15
|
@ -126,6 +126,7 @@ import eu.siacs.conversations.xmpp.OnMessagePacketReceived;
|
|||
import eu.siacs.conversations.xmpp.OnPresencePacketReceived;
|
||||
import eu.siacs.conversations.xmpp.OnStatusChanged;
|
||||
import eu.siacs.conversations.xmpp.OnUpdateBlocklist;
|
||||
import eu.siacs.conversations.xmpp.Patches;
|
||||
import eu.siacs.conversations.xmpp.XmppConnection;
|
||||
import eu.siacs.conversations.xmpp.chatstate.ChatState;
|
||||
import eu.siacs.conversations.xmpp.forms.Data;
|
||||
|
@ -1200,7 +1201,7 @@ public class XmppConnectionService extends Service {
|
|||
account.deactivateGracePeriod();
|
||||
MessagePacket packet = null;
|
||||
final boolean addToConversation = (conversation.getMode() != Conversation.MODE_MULTI
|
||||
|| account.getServerIdentity() != XmppConnection.Identity.SLACK)
|
||||
|| !Patches.BAD_MUC_REFLECTION.contains(account.getServerIdentity()))
|
||||
&& !message.edited();
|
||||
boolean saveInDb = addToConversation;
|
||||
message.setStatus(Message.STATUS_WAITING);
|
||||
|
|
17
src/main/java/eu/siacs/conversations/xmpp/Patches.java
Normal file
17
src/main/java/eu/siacs/conversations/xmpp/Patches.java
Normal file
|
@ -0,0 +1,17 @@
|
|||
package eu.siacs.conversations.xmpp;
|
||||
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class Patches {
|
||||
public static final List<String> DISCO_EXCEPTIONS = Arrays.asList(
|
||||
"nimbuzz.com"
|
||||
);
|
||||
public static final List<XmppConnection.Identity> SUFFICIENT_PUSH = Arrays.asList(
|
||||
XmppConnection.Identity.EJABBERD
|
||||
);
|
||||
public static final List<XmppConnection.Identity> BAD_MUC_REFLECTION = Arrays.asList(
|
||||
XmppConnection.Identity.SLACK
|
||||
);
|
||||
}
|
|
@ -1088,10 +1088,15 @@ public class XmppConnection implements Runnable {
|
|||
synchronized (this.disco) {
|
||||
this.disco.clear();
|
||||
}
|
||||
mPendingServiceDiscoveries.set(0);
|
||||
mWaitForDisco.set(smVersion != 0 && !account.getJid().getDomainpart().equalsIgnoreCase("nimbuzz.com"));
|
||||
lastDiscoStarted = SystemClock.elapsedRealtime();
|
||||
Log.d(Config.LOGTAG, account.getJid().toBareJid() + ": starting service discovery");
|
||||
mPendingServiceDiscoveries.set(0);
|
||||
if (smVersion == 0 || Patches.DISCO_EXCEPTIONS.contains(account.getJid().getDomainpart())) {
|
||||
Log.d(Config.LOGTAG,account.getJid().toBareJid()+": do not wait for service discovery");
|
||||
mWaitForDisco.set(false);
|
||||
} else {
|
||||
mWaitForDisco.set(true);
|
||||
}
|
||||
lastDiscoStarted = SystemClock.elapsedRealtime();
|
||||
mXmppConnectionService.scheduleWakeUpCall(Config.CONNECT_DISCO_TIMEOUT, account.getUuid().hashCode());
|
||||
Element caps = streamFeatures.findChild("c");
|
||||
final String hash = caps == null ? null : caps.getAttribute("hash");
|
||||
|
|
|
@ -15,6 +15,7 @@ import eu.siacs.conversations.R;
|
|||
import eu.siacs.conversations.entities.Account;
|
||||
import eu.siacs.conversations.xml.Element;
|
||||
import eu.siacs.conversations.xmpp.OnIqPacketReceived;
|
||||
import eu.siacs.conversations.xmpp.Patches;
|
||||
import eu.siacs.conversations.xmpp.XmppConnection;
|
||||
import eu.siacs.conversations.xmpp.forms.Data;
|
||||
import eu.siacs.conversations.xmpp.jid.InvalidJidException;
|
||||
|
@ -110,7 +111,7 @@ public class PushManagementService {
|
|||
}
|
||||
|
||||
public boolean availableAndUseful(Account account) {
|
||||
return account.getServerIdentity() == XmppConnection.Identity.EJABBERD && available(account);
|
||||
return Patches.SUFFICIENT_PUSH.contains(account.getServerIdentity()) && available(account);
|
||||
}
|
||||
|
||||
private boolean playServicesAvailable() {
|
||||
|
|
Loading…
Reference in a new issue