From 6e12409b82d4662f96421911fd06b45bada35e74 Mon Sep 17 00:00:00 2001 From: Florian Schmaus Date: Tue, 29 Apr 2014 14:51:01 +0200 Subject: [PATCH] Make roster push and presence packet filter static final Also remove the check of IQ.Type.SET in processPacket(). This is now done with help of a PacketFilter. --- .../java/org/jivesoftware/smack/Roster.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/smack-core/src/main/java/org/jivesoftware/smack/Roster.java b/smack-core/src/main/java/org/jivesoftware/smack/Roster.java index 790e0cc5d..723fe63c2 100644 --- a/smack-core/src/main/java/org/jivesoftware/smack/Roster.java +++ b/smack-core/src/main/java/org/jivesoftware/smack/Roster.java @@ -36,7 +36,9 @@ import org.jivesoftware.smack.SmackException.NoResponseException; import org.jivesoftware.smack.SmackException.NotConnectedException; import org.jivesoftware.smack.SmackException.NotLoggedInException; import org.jivesoftware.smack.XMPPException.XMPPErrorException; +import org.jivesoftware.smack.filter.AndFilter; import org.jivesoftware.smack.filter.IQReplyFilter; +import org.jivesoftware.smack.filter.IQTypeFilter; import org.jivesoftware.smack.filter.PacketFilter; import org.jivesoftware.smack.filter.PacketTypeFilter; import org.jivesoftware.smack.packet.IQ; @@ -63,6 +65,12 @@ import org.jivesoftware.smack.util.StringUtils; public class Roster { private static final Logger LOGGER = Logger.getLogger(Roster.class.getName()); + + private static final PacketFilter ROSTER_PUSH_FILTER = new AndFilter(new PacketTypeFilter( + RosterPacket.class), new IQTypeFilter(IQ.Type.SET)); + + private static final PacketFilter PRESENCE_PACKET_FILTER = new PacketTypeFilter(Presence.class); + /** * The default subscription processing mode to use when a Roster is created. By default * all subscription requests are automatically accepted. @@ -116,11 +124,9 @@ public class Roster { this.connection = connection; rosterStore = connection.getConfiguration().getRosterStore(); // Listen for any roster packets. - PacketFilter rosterFilter = new PacketTypeFilter(RosterPacket.class); - connection.addPacketListener(new RosterPushListener(), rosterFilter); + connection.addPacketListener(new RosterPushListener(), ROSTER_PUSH_FILTER); // Listen for any presence packets. - PacketFilter presenceFilter = new PacketTypeFilter(Presence.class); - connection.addPacketListener(presencePacketListener, presenceFilter); + connection.addPacketListener(presencePacketListener, PRESENCE_PACKET_FILTER); // Listen for connection events connection.addConnectionListener(new AbstractConnectionListener() { @@ -1029,9 +1035,6 @@ public class Roster { public void processPacket(Packet packet) throws NotConnectedException { RosterPacket rosterPacket = (RosterPacket) packet; - if (!rosterPacket.getType().equals(IQ.Type.SET)) { - return; - } String version = rosterPacket.getVersion();