fix(all): Last minute fixes
This commit is contained in:
parent
09fd5845aa
commit
4ff2992a03
@ -15,6 +15,7 @@
|
|||||||
- `MessageManager` now allows registering callbacks for adding data whenever a message is sent.
|
- `MessageManager` now allows registering callbacks for adding data whenever a message is sent.
|
||||||
- **BREAKING**: `MessageEvent` now makes use of `TypedMap`.
|
- **BREAKING**: `MessageEvent` now makes use of `TypedMap`.
|
||||||
- **BREAKING**: Removed `PresenceReceivedEvent`. Use a manager registering handlers with priority greater than `[PresenceManager.presenceHandlerPriority]` instead.
|
- **BREAKING**: Removed `PresenceReceivedEvent`. Use a manager registering handlers with priority greater than `[PresenceManager.presenceHandlerPriority]` instead.
|
||||||
|
- **BREAKING**: `ChatState.toString()` is now `ChatState.toName()`
|
||||||
|
|
||||||
## 0.3.1
|
## 0.3.1
|
||||||
|
|
||||||
|
@ -39,6 +39,7 @@ export 'package:moxxmpp/src/socket.dart';
|
|||||||
export 'package:moxxmpp/src/stanza.dart';
|
export 'package:moxxmpp/src/stanza.dart';
|
||||||
export 'package:moxxmpp/src/stringxml.dart';
|
export 'package:moxxmpp/src/stringxml.dart';
|
||||||
export 'package:moxxmpp/src/types/result.dart';
|
export 'package:moxxmpp/src/types/result.dart';
|
||||||
|
export 'package:moxxmpp/src/util/typed_map.dart';
|
||||||
export 'package:moxxmpp/src/xeps/staging/extensible_file_thumbnails.dart';
|
export 'package:moxxmpp/src/xeps/staging/extensible_file_thumbnails.dart';
|
||||||
export 'package:moxxmpp/src/xeps/staging/fast.dart';
|
export 'package:moxxmpp/src/xeps/staging/fast.dart';
|
||||||
export 'package:moxxmpp/src/xeps/staging/file_upload_notification.dart';
|
export 'package:moxxmpp/src/xeps/staging/file_upload_notification.dart';
|
||||||
|
@ -21,7 +21,7 @@ typedef MessageSendingCallback = List<XMLNode> Function(
|
|||||||
);
|
);
|
||||||
|
|
||||||
/// The raw content of the <body /> element.
|
/// The raw content of the <body /> element.
|
||||||
class MessageBodyData {
|
class MessageBodyData implements StanzaHandlerExtension {
|
||||||
const MessageBodyData(this.body);
|
const MessageBodyData(this.body);
|
||||||
|
|
||||||
/// The content of the <body /> element.
|
/// The content of the <body /> element.
|
||||||
@ -36,7 +36,7 @@ class MessageBodyData {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// The id attribute of the message stanza.
|
/// The id attribute of the message stanza.
|
||||||
class MessageIdData {
|
class MessageIdData implements StanzaHandlerExtension {
|
||||||
const MessageIdData(this.id);
|
const MessageIdData(this.id);
|
||||||
|
|
||||||
/// The id attribute of the stanza.
|
/// The id attribute of the stanza.
|
||||||
|
@ -32,8 +32,7 @@ enum ChatState implements StanzaHandlerExtension {
|
|||||||
throw Exception('Invalid chat state $state');
|
throw Exception('Invalid chat state $state');
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
String toName() {
|
||||||
String toString() {
|
|
||||||
switch (this) {
|
switch (this) {
|
||||||
case ChatState.active:
|
case ChatState.active:
|
||||||
return 'active';
|
return 'active';
|
||||||
@ -50,7 +49,7 @@ enum ChatState implements StanzaHandlerExtension {
|
|||||||
|
|
||||||
XMLNode toXML() {
|
XMLNode toXML() {
|
||||||
return XMLNode.xmlns(
|
return XMLNode.xmlns(
|
||||||
tag: toString(),
|
tag: toName(),
|
||||||
xmlns: chatStateXmlns,
|
xmlns: chatStateXmlns,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -104,7 +103,7 @@ class ChatStateManager extends XmppManagerBase {
|
|||||||
to: to,
|
to: to,
|
||||||
type: messageType,
|
type: messageType,
|
||||||
children: [
|
children: [
|
||||||
XMLNode.xmlns(tag: state.toString(), xmlns: chatStateXmlns),
|
state.toXML(),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
awaitable: false,
|
awaitable: false,
|
||||||
|
@ -8,8 +8,8 @@ import 'package:moxxmpp/src/stanza.dart';
|
|||||||
import 'package:moxxmpp/src/stringxml.dart';
|
import 'package:moxxmpp/src/stringxml.dart';
|
||||||
import 'package:moxxmpp/src/util/typed_map.dart';
|
import 'package:moxxmpp/src/util/typed_map.dart';
|
||||||
|
|
||||||
class MessageReactions implements StanzaHandlerExtension {
|
class MessageReactionsData implements StanzaHandlerExtension {
|
||||||
const MessageReactions(this.messageId, this.emojis);
|
const MessageReactionsData(this.messageId, this.emojis);
|
||||||
final String messageId;
|
final String messageId;
|
||||||
final List<String> emojis;
|
final List<String> emojis;
|
||||||
|
|
||||||
@ -59,7 +59,7 @@ class MessageReactionsManager extends XmppManagerBase {
|
|||||||
message.firstTag('reactions', xmlns: messageReactionsXmlns)!;
|
message.firstTag('reactions', xmlns: messageReactionsXmlns)!;
|
||||||
return state
|
return state
|
||||||
..extensions.set(
|
..extensions.set(
|
||||||
MessageReactions(
|
MessageReactionsData(
|
||||||
reactionsElement.attributes['id']! as String,
|
reactionsElement.attributes['id']! as String,
|
||||||
reactionsElement.children
|
reactionsElement.children
|
||||||
.where((c) => c.tag == 'reaction')
|
.where((c) => c.tag == 'reaction')
|
||||||
@ -72,7 +72,7 @@ class MessageReactionsManager extends XmppManagerBase {
|
|||||||
List<XMLNode> _messageSendingCallback(
|
List<XMLNode> _messageSendingCallback(
|
||||||
TypedMap<StanzaHandlerExtension> extensions,
|
TypedMap<StanzaHandlerExtension> extensions,
|
||||||
) {
|
) {
|
||||||
final data = extensions.get<MessageReactions>();
|
final data = extensions.get<MessageReactionsData>();
|
||||||
return data != null
|
return data != null
|
||||||
? [
|
? [
|
||||||
data.toXML(),
|
data.toXML(),
|
||||||
|
@ -230,13 +230,16 @@ class StickerPack {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class StickersData implements StanzaHandlerExtension {
|
class StickersData implements StanzaHandlerExtension {
|
||||||
const StickersData(this.stickerPackId, this.sticker);
|
const StickersData(this.stickerPackId, this.sticker, {this.addBody = true});
|
||||||
|
|
||||||
/// The id of the sticker pack the referenced sticker is from.
|
/// The id of the sticker pack the referenced sticker is from.
|
||||||
final String stickerPackId;
|
final String stickerPackId;
|
||||||
|
|
||||||
/// The metadata of the sticker.
|
/// The metadata of the sticker.
|
||||||
final StatelessFileSharingData sticker;
|
final StatelessFileSharingData sticker;
|
||||||
|
|
||||||
|
/// If true, sets the sticker's metadata desc attribute as the message body.
|
||||||
|
final bool addBody;
|
||||||
}
|
}
|
||||||
|
|
||||||
class StickersManager extends XmppManagerBase {
|
class StickersManager extends XmppManagerBase {
|
||||||
@ -284,6 +287,10 @@ class StickersManager extends XmppManagerBase {
|
|||||||
},
|
},
|
||||||
),
|
),
|
||||||
data.sticker.toXML(),
|
data.sticker.toXML(),
|
||||||
|
|
||||||
|
// Add a body
|
||||||
|
if (data.addBody && data.sticker.metadata.desc != null)
|
||||||
|
MessageBodyData(data.sticker.metadata.desc).toXML(),
|
||||||
]
|
]
|
||||||
: [];
|
: [];
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import 'package:moxxmpp/moxxmpp.dart';
|
import 'package:moxxmpp/moxxmpp.dart';
|
||||||
import 'package:moxxmpp/src/util/typed_map.dart';
|
|
||||||
import 'package:test/test.dart';
|
import 'package:test/test.dart';
|
||||||
|
|
||||||
final stanza1 = Stanza.iq(
|
final stanza1 = Stanza.iq(
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import 'package:moxxmpp/moxxmpp.dart';
|
import 'package:moxxmpp/moxxmpp.dart';
|
||||||
import 'package:moxxmpp/src/util/typed_map.dart';
|
|
||||||
import 'package:test/test.dart';
|
import 'package:test/test.dart';
|
||||||
|
|
||||||
import '../helpers/logging.dart';
|
import '../helpers/logging.dart';
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
import 'package:moxxmpp/moxxmpp.dart';
|
import 'package:moxxmpp/moxxmpp.dart';
|
||||||
import 'package:moxxmpp/src/util/typed_map.dart';
|
|
||||||
import 'package:test/test.dart';
|
import 'package:test/test.dart';
|
||||||
import '../helpers/logging.dart';
|
import '../helpers/logging.dart';
|
||||||
import '../helpers/xmpp.dart';
|
import '../helpers/xmpp.dart';
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import 'package:moxxmpp/moxxmpp.dart';
|
import 'package:moxxmpp/moxxmpp.dart';
|
||||||
import 'package:moxxmpp/src/util/typed_map.dart';
|
|
||||||
import 'package:test/test.dart';
|
import 'package:test/test.dart';
|
||||||
|
|
||||||
import '../helpers/manager.dart';
|
import '../helpers/manager.dart';
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import 'package:moxxmpp/moxxmpp.dart';
|
import 'package:moxxmpp/moxxmpp.dart';
|
||||||
import 'package:moxxmpp/src/util/typed_map.dart';
|
|
||||||
import 'package:test/test.dart';
|
import 'package:test/test.dart';
|
||||||
|
|
||||||
import '../helpers/logging.dart';
|
import '../helpers/logging.dart';
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import 'package:moxxmpp/moxxmpp.dart';
|
import 'package:moxxmpp/moxxmpp.dart';
|
||||||
import 'package:moxxmpp/src/util/typed_map.dart';
|
|
||||||
import 'package:test/test.dart';
|
import 'package:test/test.dart';
|
||||||
|
|
||||||
import '../helpers/xmpp.dart';
|
import '../helpers/xmpp.dart';
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
import 'package:moxxmpp/moxxmpp.dart';
|
import 'package:moxxmpp/moxxmpp.dart';
|
||||||
import 'package:moxxmpp/src/util/typed_map.dart';
|
|
||||||
import 'package:test/test.dart';
|
import 'package:test/test.dart';
|
||||||
import 'helpers/logging.dart';
|
import 'helpers/logging.dart';
|
||||||
import 'helpers/xmpp.dart';
|
import 'helpers/xmpp.dart';
|
||||||
|
Loading…
Reference in New Issue
Block a user