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.OnPresencePacketReceived; | ||||||
| import eu.siacs.conversations.xmpp.OnStatusChanged; | import eu.siacs.conversations.xmpp.OnStatusChanged; | ||||||
| import eu.siacs.conversations.xmpp.OnUpdateBlocklist; | import eu.siacs.conversations.xmpp.OnUpdateBlocklist; | ||||||
|  | import eu.siacs.conversations.xmpp.Patches; | ||||||
| import eu.siacs.conversations.xmpp.XmppConnection; | import eu.siacs.conversations.xmpp.XmppConnection; | ||||||
| import eu.siacs.conversations.xmpp.chatstate.ChatState; | import eu.siacs.conversations.xmpp.chatstate.ChatState; | ||||||
| import eu.siacs.conversations.xmpp.forms.Data; | import eu.siacs.conversations.xmpp.forms.Data; | ||||||
| @ -1200,7 +1201,7 @@ public class XmppConnectionService extends Service { | |||||||
| 		account.deactivateGracePeriod(); | 		account.deactivateGracePeriod(); | ||||||
| 		MessagePacket packet = null; | 		MessagePacket packet = null; | ||||||
| 		final boolean addToConversation = (conversation.getMode() != Conversation.MODE_MULTI | 		final boolean addToConversation = (conversation.getMode() != Conversation.MODE_MULTI | ||||||
| 				|| account.getServerIdentity() != XmppConnection.Identity.SLACK) | 				|| !Patches.BAD_MUC_REFLECTION.contains(account.getServerIdentity())) | ||||||
| 				&& !message.edited(); | 				&& !message.edited(); | ||||||
| 		boolean saveInDb = addToConversation; | 		boolean saveInDb = addToConversation; | ||||||
| 		message.setStatus(Message.STATUS_WAITING); | 		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) { | 		synchronized (this.disco) { | ||||||
| 			this.disco.clear(); | 			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"); | 		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()); | 		mXmppConnectionService.scheduleWakeUpCall(Config.CONNECT_DISCO_TIMEOUT, account.getUuid().hashCode()); | ||||||
| 		Element caps = streamFeatures.findChild("c"); | 		Element caps = streamFeatures.findChild("c"); | ||||||
| 		final String hash = caps == null ? null : caps.getAttribute("hash"); | 		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.entities.Account; | ||||||
| import eu.siacs.conversations.xml.Element; | import eu.siacs.conversations.xml.Element; | ||||||
| import eu.siacs.conversations.xmpp.OnIqPacketReceived; | import eu.siacs.conversations.xmpp.OnIqPacketReceived; | ||||||
|  | import eu.siacs.conversations.xmpp.Patches; | ||||||
| import eu.siacs.conversations.xmpp.XmppConnection; | import eu.siacs.conversations.xmpp.XmppConnection; | ||||||
| import eu.siacs.conversations.xmpp.forms.Data; | import eu.siacs.conversations.xmpp.forms.Data; | ||||||
| import eu.siacs.conversations.xmpp.jid.InvalidJidException; | import eu.siacs.conversations.xmpp.jid.InvalidJidException; | ||||||
| @ -110,7 +111,7 @@ public class PushManagementService { | |||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	public boolean availableAndUseful(Account account) { | 	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() { | 	private boolean playServicesAvailable() { | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Daniel Gultsch
						Daniel Gultsch