1
0
Fork 0
mirror of https://github.com/vanitasvitae/Smack.git synced 2025-12-14 15:01:07 +01:00

Add FlexiblePacketTypeFilter

and make constructors of MessageTypeFilter and IQTypeFilter
private, because we now provide constants instead.
This commit is contained in:
Florian Schmaus 2014-05-29 16:05:20 +02:00
parent c606530e22
commit 2a091debc1
18 changed files with 114 additions and 73 deletions

View file

@ -1947,18 +1947,8 @@ public class MultiUserChat {
private void init() {
// Create filters
messageFilter =
new AndFilter(
FromMatchesFilter.create(room),
new MessageTypeFilter(Message.Type.groupchat));
messageFilter = new AndFilter(messageFilter, new PacketFilter() {
public boolean accept(Packet packet) {
Message msg = (Message) packet;
return msg.getBody() != null;
}
});
presenceFilter =
new AndFilter(FromMatchesFilter.create(room), new PacketTypeFilter(Presence.class));
messageFilter = new AndFilter(FromMatchesFilter.create(room), MessageTypeFilter.GROUPCHAT);
presenceFilter = new AndFilter(FromMatchesFilter.create(room), PacketTypeFilter.PRESENCE);
// Create a collector for incoming messages.
messageCollector = new ConnectionDetachedPacketCollector();

View file

@ -35,8 +35,6 @@ import org.jivesoftware.smack.packet.Presence;
*/
class PacketMultiplexListener implements PacketListener {
private static final PacketFilter MESSAGE_FILTER =
new MessageTypeFilter(Message.Type.groupchat);
private static final PacketFilter PRESENCE_FILTER = new PacketTypeFilter(Presence.class);
private static final PacketFilter SUBJECT_FILTER = new PacketFilter() {
public boolean accept(Packet packet) {
@ -79,7 +77,7 @@ class PacketMultiplexListener implements PacketListener {
if (PRESENCE_FILTER.accept(p)) {
presenceListener.processPacket(p);
}
else if (MESSAGE_FILTER.accept(p)) {
else if (MessageTypeFilter.GROUPCHAT.accept(p)) {
messageCollector.processPacket(p);
if (SUBJECT_FILTER.accept(p)) {