Files
moxxy/lib/xmpp/message.dart
Alexander "PapaTutuWawa adc9979df8 xmpp: Huge rework of stanza handling
Instead of putting everything into [XmppConnection], let's put
everything into its own [XmppManagerBase] base subclass.

- Improves testability
- Makes extensions easier
- Allows easier usage of lib/xmpp as its own library
2022-01-19 15:59:48 +01:00

34 lines
916 B
Dart

import "package:moxxyv2/xmpp/stanzas/stanza.dart";
import "package:moxxyv2/xmpp/connection.dart";
import "package:moxxyv2/xmpp/events.dart";
import "package:moxxyv2/xmpp/jid.dart";
import "package:moxxyv2/xmpp/managers/base.dart";
import "package:moxxyv2/xmpp/managers/namespaces.dart";
import "package:moxxyv2/xmpp/managers/handlers.dart";
class MessageManager extends XmppManagerBase {
@override
String getId() => MESSAGE_MANAGER;
@override
List<StanzaHandler> getStanzaHandlers() => [
StanzaHandler(
stanzaTag: "message",
callback: this._onMessage
)
];
bool _onMessage(Stanza message) {
final body = message.firstTag("body");
if (body == null) return true;
this.getAttributes().sendEvent(MessageEvent(
body: body.innerText(),
fromJid: FullJID.fromString(message.attributes["from"]!),
sid: message.attributes["id"]!
));
return true;
}
}