fix(xep): Just receiving <stanza-id/>s does not require disco
It is only required when we try to use them.
This commit is contained in:
parent
b949ec6ff5
commit
1475cb542f
@ -79,12 +79,13 @@ class MessageEvent extends XmppEvent {
|
||||
required this.fromJid,
|
||||
required this.toJid,
|
||||
required this.sid,
|
||||
required this.stanzaId,
|
||||
required this.isCarbon,
|
||||
required this.deliveryReceiptRequested,
|
||||
required this.isMarkable,
|
||||
required this.encrypted,
|
||||
required this.other,
|
||||
this.originId,
|
||||
this.stanzaIds,
|
||||
this.error,
|
||||
this.type,
|
||||
this.oob,
|
||||
@ -107,7 +108,8 @@ class MessageEvent extends XmppEvent {
|
||||
final JID toJid;
|
||||
final String sid;
|
||||
final String? type;
|
||||
final StableStanzaId stanzaId;
|
||||
final String? originId;
|
||||
final List<StanzaId>? stanzaIds;
|
||||
final bool isCarbon;
|
||||
final bool deliveryReceiptRequested;
|
||||
final bool isMarkable;
|
||||
|
@ -34,7 +34,12 @@ class StanzaHandlerData with _$StanzaHandlerData {
|
||||
StatelessMediaSharingData? sims,
|
||||
StatelessFileSharingData? sfs,
|
||||
OOBData? oob,
|
||||
StableStanzaId? stableId,
|
||||
|
||||
// XEP-0359 <origin-id />'s id attribute, if available.
|
||||
String? originId,
|
||||
|
||||
// XEP-0359 <stanza-id /> elements, if available.
|
||||
List<StanzaId>? stanzaIds,
|
||||
ReplyData? reply,
|
||||
ChatState? chatState,
|
||||
@Default(false) bool isCarbon,
|
||||
|
@ -1,7 +1,7 @@
|
||||
// coverage:ignore-file
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
// ignore_for_file: type=lint
|
||||
// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target
|
||||
// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark
|
||||
|
||||
part of 'data.dart';
|
||||
|
||||
@ -32,8 +32,11 @@ mixin _$StanzaHandlerData {
|
||||
bool get retransmitted => throw _privateConstructorUsedError;
|
||||
StatelessMediaSharingData? get sims => throw _privateConstructorUsedError;
|
||||
StatelessFileSharingData? get sfs => throw _privateConstructorUsedError;
|
||||
OOBData? get oob => throw _privateConstructorUsedError;
|
||||
StableStanzaId? get stableId => throw _privateConstructorUsedError;
|
||||
OOBData? get oob =>
|
||||
throw _privateConstructorUsedError; // XEP-0359 <origin-id />'s id attribute, if available.
|
||||
String? get originId =>
|
||||
throw _privateConstructorUsedError; // XEP-0359 <stanza-id /> elements, if available.
|
||||
List<StanzaId>? get stanzaIds => throw _privateConstructorUsedError;
|
||||
ReplyData? get reply => throw _privateConstructorUsedError;
|
||||
ChatState? get chatState => throw _privateConstructorUsedError;
|
||||
bool get isCarbon => throw _privateConstructorUsedError;
|
||||
@ -79,7 +82,8 @@ mixin _$StanzaHandlerData {
|
||||
abstract class $StanzaHandlerDataCopyWith<$Res> {
|
||||
factory $StanzaHandlerDataCopyWith(
|
||||
StanzaHandlerData value, $Res Function(StanzaHandlerData) then) =
|
||||
_$StanzaHandlerDataCopyWithImpl<$Res>;
|
||||
_$StanzaHandlerDataCopyWithImpl<$Res, StanzaHandlerData>;
|
||||
@useResult
|
||||
$Res call(
|
||||
{bool done,
|
||||
bool cancel,
|
||||
@ -89,7 +93,8 @@ abstract class $StanzaHandlerDataCopyWith<$Res> {
|
||||
StatelessMediaSharingData? sims,
|
||||
StatelessFileSharingData? sfs,
|
||||
OOBData? oob,
|
||||
StableStanzaId? stableId,
|
||||
String? originId,
|
||||
List<StanzaId>? stanzaIds,
|
||||
ReplyData? reply,
|
||||
ChatState? chatState,
|
||||
bool isCarbon,
|
||||
@ -110,149 +115,156 @@ abstract class $StanzaHandlerDataCopyWith<$Res> {
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
class _$StanzaHandlerDataCopyWithImpl<$Res>
|
||||
class _$StanzaHandlerDataCopyWithImpl<$Res, $Val extends StanzaHandlerData>
|
||||
implements $StanzaHandlerDataCopyWith<$Res> {
|
||||
_$StanzaHandlerDataCopyWithImpl(this._value, this._then);
|
||||
|
||||
final StanzaHandlerData _value;
|
||||
// ignore: unused_field
|
||||
final $Res Function(StanzaHandlerData) _then;
|
||||
final $Val _value;
|
||||
// ignore: unused_field
|
||||
final $Res Function($Val) _then;
|
||||
|
||||
@pragma('vm:prefer-inline')
|
||||
@override
|
||||
$Res call({
|
||||
Object? done = freezed,
|
||||
Object? cancel = freezed,
|
||||
Object? done = null,
|
||||
Object? cancel = null,
|
||||
Object? cancelReason = freezed,
|
||||
Object? stanza = freezed,
|
||||
Object? retransmitted = freezed,
|
||||
Object? stanza = null,
|
||||
Object? retransmitted = null,
|
||||
Object? sims = freezed,
|
||||
Object? sfs = freezed,
|
||||
Object? oob = freezed,
|
||||
Object? stableId = freezed,
|
||||
Object? originId = freezed,
|
||||
Object? stanzaIds = freezed,
|
||||
Object? reply = freezed,
|
||||
Object? chatState = freezed,
|
||||
Object? isCarbon = freezed,
|
||||
Object? deliveryReceiptRequested = freezed,
|
||||
Object? isMarkable = freezed,
|
||||
Object? isCarbon = null,
|
||||
Object? deliveryReceiptRequested = null,
|
||||
Object? isMarkable = null,
|
||||
Object? fun = freezed,
|
||||
Object? funReplacement = freezed,
|
||||
Object? funCancellation = freezed,
|
||||
Object? encrypted = freezed,
|
||||
Object? forceEncryption = freezed,
|
||||
Object? encrypted = null,
|
||||
Object? forceEncryption = null,
|
||||
Object? encryptionType = freezed,
|
||||
Object? delayedDelivery = freezed,
|
||||
Object? other = freezed,
|
||||
Object? other = null,
|
||||
Object? messageRetraction = freezed,
|
||||
Object? lastMessageCorrectionSid = freezed,
|
||||
Object? messageReactions = freezed,
|
||||
Object? stickerPackId = freezed,
|
||||
}) {
|
||||
return _then(_value.copyWith(
|
||||
done: done == freezed
|
||||
done: null == done
|
||||
? _value.done
|
||||
: done // ignore: cast_nullable_to_non_nullable
|
||||
as bool,
|
||||
cancel: cancel == freezed
|
||||
cancel: null == cancel
|
||||
? _value.cancel
|
||||
: cancel // ignore: cast_nullable_to_non_nullable
|
||||
as bool,
|
||||
cancelReason: cancelReason == freezed
|
||||
cancelReason: freezed == cancelReason
|
||||
? _value.cancelReason
|
||||
: cancelReason // ignore: cast_nullable_to_non_nullable
|
||||
as dynamic,
|
||||
stanza: stanza == freezed
|
||||
stanza: null == stanza
|
||||
? _value.stanza
|
||||
: stanza // ignore: cast_nullable_to_non_nullable
|
||||
as Stanza,
|
||||
retransmitted: retransmitted == freezed
|
||||
retransmitted: null == retransmitted
|
||||
? _value.retransmitted
|
||||
: retransmitted // ignore: cast_nullable_to_non_nullable
|
||||
as bool,
|
||||
sims: sims == freezed
|
||||
sims: freezed == sims
|
||||
? _value.sims
|
||||
: sims // ignore: cast_nullable_to_non_nullable
|
||||
as StatelessMediaSharingData?,
|
||||
sfs: sfs == freezed
|
||||
sfs: freezed == sfs
|
||||
? _value.sfs
|
||||
: sfs // ignore: cast_nullable_to_non_nullable
|
||||
as StatelessFileSharingData?,
|
||||
oob: oob == freezed
|
||||
oob: freezed == oob
|
||||
? _value.oob
|
||||
: oob // ignore: cast_nullable_to_non_nullable
|
||||
as OOBData?,
|
||||
stableId: stableId == freezed
|
||||
? _value.stableId
|
||||
: stableId // ignore: cast_nullable_to_non_nullable
|
||||
as StableStanzaId?,
|
||||
reply: reply == freezed
|
||||
originId: freezed == originId
|
||||
? _value.originId
|
||||
: originId // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
stanzaIds: freezed == stanzaIds
|
||||
? _value.stanzaIds
|
||||
: stanzaIds // ignore: cast_nullable_to_non_nullable
|
||||
as List<StanzaId>?,
|
||||
reply: freezed == reply
|
||||
? _value.reply
|
||||
: reply // ignore: cast_nullable_to_non_nullable
|
||||
as ReplyData?,
|
||||
chatState: chatState == freezed
|
||||
chatState: freezed == chatState
|
||||
? _value.chatState
|
||||
: chatState // ignore: cast_nullable_to_non_nullable
|
||||
as ChatState?,
|
||||
isCarbon: isCarbon == freezed
|
||||
isCarbon: null == isCarbon
|
||||
? _value.isCarbon
|
||||
: isCarbon // ignore: cast_nullable_to_non_nullable
|
||||
as bool,
|
||||
deliveryReceiptRequested: deliveryReceiptRequested == freezed
|
||||
deliveryReceiptRequested: null == deliveryReceiptRequested
|
||||
? _value.deliveryReceiptRequested
|
||||
: deliveryReceiptRequested // ignore: cast_nullable_to_non_nullable
|
||||
as bool,
|
||||
isMarkable: isMarkable == freezed
|
||||
isMarkable: null == isMarkable
|
||||
? _value.isMarkable
|
||||
: isMarkable // ignore: cast_nullable_to_non_nullable
|
||||
as bool,
|
||||
fun: fun == freezed
|
||||
fun: freezed == fun
|
||||
? _value.fun
|
||||
: fun // ignore: cast_nullable_to_non_nullable
|
||||
as FileMetadataData?,
|
||||
funReplacement: funReplacement == freezed
|
||||
funReplacement: freezed == funReplacement
|
||||
? _value.funReplacement
|
||||
: funReplacement // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
funCancellation: funCancellation == freezed
|
||||
funCancellation: freezed == funCancellation
|
||||
? _value.funCancellation
|
||||
: funCancellation // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
encrypted: encrypted == freezed
|
||||
encrypted: null == encrypted
|
||||
? _value.encrypted
|
||||
: encrypted // ignore: cast_nullable_to_non_nullable
|
||||
as bool,
|
||||
forceEncryption: forceEncryption == freezed
|
||||
forceEncryption: null == forceEncryption
|
||||
? _value.forceEncryption
|
||||
: forceEncryption // ignore: cast_nullable_to_non_nullable
|
||||
as bool,
|
||||
encryptionType: encryptionType == freezed
|
||||
encryptionType: freezed == encryptionType
|
||||
? _value.encryptionType
|
||||
: encryptionType // ignore: cast_nullable_to_non_nullable
|
||||
as ExplicitEncryptionType?,
|
||||
delayedDelivery: delayedDelivery == freezed
|
||||
delayedDelivery: freezed == delayedDelivery
|
||||
? _value.delayedDelivery
|
||||
: delayedDelivery // ignore: cast_nullable_to_non_nullable
|
||||
as DelayedDelivery?,
|
||||
other: other == freezed
|
||||
other: null == other
|
||||
? _value.other
|
||||
: other // ignore: cast_nullable_to_non_nullable
|
||||
as Map<String, dynamic>,
|
||||
messageRetraction: messageRetraction == freezed
|
||||
messageRetraction: freezed == messageRetraction
|
||||
? _value.messageRetraction
|
||||
: messageRetraction // ignore: cast_nullable_to_non_nullable
|
||||
as MessageRetractionData?,
|
||||
lastMessageCorrectionSid: lastMessageCorrectionSid == freezed
|
||||
lastMessageCorrectionSid: freezed == lastMessageCorrectionSid
|
||||
? _value.lastMessageCorrectionSid
|
||||
: lastMessageCorrectionSid // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
messageReactions: messageReactions == freezed
|
||||
messageReactions: freezed == messageReactions
|
||||
? _value.messageReactions
|
||||
: messageReactions // ignore: cast_nullable_to_non_nullable
|
||||
as MessageReactions?,
|
||||
stickerPackId: stickerPackId == freezed
|
||||
stickerPackId: freezed == stickerPackId
|
||||
? _value.stickerPackId
|
||||
: stickerPackId // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
));
|
||||
) as $Val);
|
||||
}
|
||||
}
|
||||
|
||||
@ -263,6 +275,7 @@ abstract class _$$_StanzaHandlerDataCopyWith<$Res>
|
||||
$Res Function(_$_StanzaHandlerData) then) =
|
||||
__$$_StanzaHandlerDataCopyWithImpl<$Res>;
|
||||
@override
|
||||
@useResult
|
||||
$Res call(
|
||||
{bool done,
|
||||
bool cancel,
|
||||
@ -272,7 +285,8 @@ abstract class _$$_StanzaHandlerDataCopyWith<$Res>
|
||||
StatelessMediaSharingData? sims,
|
||||
StatelessFileSharingData? sfs,
|
||||
OOBData? oob,
|
||||
StableStanzaId? stableId,
|
||||
String? originId,
|
||||
List<StanzaId>? stanzaIds,
|
||||
ReplyData? reply,
|
||||
ChatState? chatState,
|
||||
bool isCarbon,
|
||||
@ -294,146 +308,149 @@ abstract class _$$_StanzaHandlerDataCopyWith<$Res>
|
||||
|
||||
/// @nodoc
|
||||
class __$$_StanzaHandlerDataCopyWithImpl<$Res>
|
||||
extends _$StanzaHandlerDataCopyWithImpl<$Res>
|
||||
extends _$StanzaHandlerDataCopyWithImpl<$Res, _$_StanzaHandlerData>
|
||||
implements _$$_StanzaHandlerDataCopyWith<$Res> {
|
||||
__$$_StanzaHandlerDataCopyWithImpl(
|
||||
_$_StanzaHandlerData _value, $Res Function(_$_StanzaHandlerData) _then)
|
||||
: super(_value, (v) => _then(v as _$_StanzaHandlerData));
|
||||
|
||||
@override
|
||||
_$_StanzaHandlerData get _value => super._value as _$_StanzaHandlerData;
|
||||
: super(_value, _then);
|
||||
|
||||
@pragma('vm:prefer-inline')
|
||||
@override
|
||||
$Res call({
|
||||
Object? done = freezed,
|
||||
Object? cancel = freezed,
|
||||
Object? done = null,
|
||||
Object? cancel = null,
|
||||
Object? cancelReason = freezed,
|
||||
Object? stanza = freezed,
|
||||
Object? retransmitted = freezed,
|
||||
Object? stanza = null,
|
||||
Object? retransmitted = null,
|
||||
Object? sims = freezed,
|
||||
Object? sfs = freezed,
|
||||
Object? oob = freezed,
|
||||
Object? stableId = freezed,
|
||||
Object? originId = freezed,
|
||||
Object? stanzaIds = freezed,
|
||||
Object? reply = freezed,
|
||||
Object? chatState = freezed,
|
||||
Object? isCarbon = freezed,
|
||||
Object? deliveryReceiptRequested = freezed,
|
||||
Object? isMarkable = freezed,
|
||||
Object? isCarbon = null,
|
||||
Object? deliveryReceiptRequested = null,
|
||||
Object? isMarkable = null,
|
||||
Object? fun = freezed,
|
||||
Object? funReplacement = freezed,
|
||||
Object? funCancellation = freezed,
|
||||
Object? encrypted = freezed,
|
||||
Object? forceEncryption = freezed,
|
||||
Object? encrypted = null,
|
||||
Object? forceEncryption = null,
|
||||
Object? encryptionType = freezed,
|
||||
Object? delayedDelivery = freezed,
|
||||
Object? other = freezed,
|
||||
Object? other = null,
|
||||
Object? messageRetraction = freezed,
|
||||
Object? lastMessageCorrectionSid = freezed,
|
||||
Object? messageReactions = freezed,
|
||||
Object? stickerPackId = freezed,
|
||||
}) {
|
||||
return _then(_$_StanzaHandlerData(
|
||||
done == freezed
|
||||
null == done
|
||||
? _value.done
|
||||
: done // ignore: cast_nullable_to_non_nullable
|
||||
as bool,
|
||||
cancel == freezed
|
||||
null == cancel
|
||||
? _value.cancel
|
||||
: cancel // ignore: cast_nullable_to_non_nullable
|
||||
as bool,
|
||||
cancelReason == freezed
|
||||
freezed == cancelReason
|
||||
? _value.cancelReason
|
||||
: cancelReason // ignore: cast_nullable_to_non_nullable
|
||||
as dynamic,
|
||||
stanza == freezed
|
||||
null == stanza
|
||||
? _value.stanza
|
||||
: stanza // ignore: cast_nullable_to_non_nullable
|
||||
as Stanza,
|
||||
retransmitted: retransmitted == freezed
|
||||
retransmitted: null == retransmitted
|
||||
? _value.retransmitted
|
||||
: retransmitted // ignore: cast_nullable_to_non_nullable
|
||||
as bool,
|
||||
sims: sims == freezed
|
||||
sims: freezed == sims
|
||||
? _value.sims
|
||||
: sims // ignore: cast_nullable_to_non_nullable
|
||||
as StatelessMediaSharingData?,
|
||||
sfs: sfs == freezed
|
||||
sfs: freezed == sfs
|
||||
? _value.sfs
|
||||
: sfs // ignore: cast_nullable_to_non_nullable
|
||||
as StatelessFileSharingData?,
|
||||
oob: oob == freezed
|
||||
oob: freezed == oob
|
||||
? _value.oob
|
||||
: oob // ignore: cast_nullable_to_non_nullable
|
||||
as OOBData?,
|
||||
stableId: stableId == freezed
|
||||
? _value.stableId
|
||||
: stableId // ignore: cast_nullable_to_non_nullable
|
||||
as StableStanzaId?,
|
||||
reply: reply == freezed
|
||||
originId: freezed == originId
|
||||
? _value.originId
|
||||
: originId // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
stanzaIds: freezed == stanzaIds
|
||||
? _value._stanzaIds
|
||||
: stanzaIds // ignore: cast_nullable_to_non_nullable
|
||||
as List<StanzaId>?,
|
||||
reply: freezed == reply
|
||||
? _value.reply
|
||||
: reply // ignore: cast_nullable_to_non_nullable
|
||||
as ReplyData?,
|
||||
chatState: chatState == freezed
|
||||
chatState: freezed == chatState
|
||||
? _value.chatState
|
||||
: chatState // ignore: cast_nullable_to_non_nullable
|
||||
as ChatState?,
|
||||
isCarbon: isCarbon == freezed
|
||||
isCarbon: null == isCarbon
|
||||
? _value.isCarbon
|
||||
: isCarbon // ignore: cast_nullable_to_non_nullable
|
||||
as bool,
|
||||
deliveryReceiptRequested: deliveryReceiptRequested == freezed
|
||||
deliveryReceiptRequested: null == deliveryReceiptRequested
|
||||
? _value.deliveryReceiptRequested
|
||||
: deliveryReceiptRequested // ignore: cast_nullable_to_non_nullable
|
||||
as bool,
|
||||
isMarkable: isMarkable == freezed
|
||||
isMarkable: null == isMarkable
|
||||
? _value.isMarkable
|
||||
: isMarkable // ignore: cast_nullable_to_non_nullable
|
||||
as bool,
|
||||
fun: fun == freezed
|
||||
fun: freezed == fun
|
||||
? _value.fun
|
||||
: fun // ignore: cast_nullable_to_non_nullable
|
||||
as FileMetadataData?,
|
||||
funReplacement: funReplacement == freezed
|
||||
funReplacement: freezed == funReplacement
|
||||
? _value.funReplacement
|
||||
: funReplacement // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
funCancellation: funCancellation == freezed
|
||||
funCancellation: freezed == funCancellation
|
||||
? _value.funCancellation
|
||||
: funCancellation // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
encrypted: encrypted == freezed
|
||||
encrypted: null == encrypted
|
||||
? _value.encrypted
|
||||
: encrypted // ignore: cast_nullable_to_non_nullable
|
||||
as bool,
|
||||
forceEncryption: forceEncryption == freezed
|
||||
forceEncryption: null == forceEncryption
|
||||
? _value.forceEncryption
|
||||
: forceEncryption // ignore: cast_nullable_to_non_nullable
|
||||
as bool,
|
||||
encryptionType: encryptionType == freezed
|
||||
encryptionType: freezed == encryptionType
|
||||
? _value.encryptionType
|
||||
: encryptionType // ignore: cast_nullable_to_non_nullable
|
||||
as ExplicitEncryptionType?,
|
||||
delayedDelivery: delayedDelivery == freezed
|
||||
delayedDelivery: freezed == delayedDelivery
|
||||
? _value.delayedDelivery
|
||||
: delayedDelivery // ignore: cast_nullable_to_non_nullable
|
||||
as DelayedDelivery?,
|
||||
other: other == freezed
|
||||
other: null == other
|
||||
? _value._other
|
||||
: other // ignore: cast_nullable_to_non_nullable
|
||||
as Map<String, dynamic>,
|
||||
messageRetraction: messageRetraction == freezed
|
||||
messageRetraction: freezed == messageRetraction
|
||||
? _value.messageRetraction
|
||||
: messageRetraction // ignore: cast_nullable_to_non_nullable
|
||||
as MessageRetractionData?,
|
||||
lastMessageCorrectionSid: lastMessageCorrectionSid == freezed
|
||||
lastMessageCorrectionSid: freezed == lastMessageCorrectionSid
|
||||
? _value.lastMessageCorrectionSid
|
||||
: lastMessageCorrectionSid // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
messageReactions: messageReactions == freezed
|
||||
messageReactions: freezed == messageReactions
|
||||
? _value.messageReactions
|
||||
: messageReactions // ignore: cast_nullable_to_non_nullable
|
||||
as MessageReactions?,
|
||||
stickerPackId: stickerPackId == freezed
|
||||
stickerPackId: freezed == stickerPackId
|
||||
? _value.stickerPackId
|
||||
: stickerPackId // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
@ -449,7 +466,8 @@ class _$_StanzaHandlerData implements _StanzaHandlerData {
|
||||
this.sims,
|
||||
this.sfs,
|
||||
this.oob,
|
||||
this.stableId,
|
||||
this.originId,
|
||||
final List<StanzaId>? stanzaIds,
|
||||
this.reply,
|
||||
this.chatState,
|
||||
this.isCarbon = false,
|
||||
@ -467,7 +485,8 @@ class _$_StanzaHandlerData implements _StanzaHandlerData {
|
||||
this.lastMessageCorrectionSid,
|
||||
this.messageReactions,
|
||||
this.stickerPackId})
|
||||
: _other = other;
|
||||
: _stanzaIds = stanzaIds,
|
||||
_other = other;
|
||||
|
||||
// Indicates to the runner that processing is now done. This means that all
|
||||
// pre-processing is done and no other handlers should be consulted.
|
||||
@ -495,8 +514,21 @@ class _$_StanzaHandlerData implements _StanzaHandlerData {
|
||||
final StatelessFileSharingData? sfs;
|
||||
@override
|
||||
final OOBData? oob;
|
||||
// XEP-0359 <origin-id />'s id attribute, if available.
|
||||
@override
|
||||
final StableStanzaId? stableId;
|
||||
final String? originId;
|
||||
// XEP-0359 <stanza-id /> elements, if available.
|
||||
final List<StanzaId>? _stanzaIds;
|
||||
// XEP-0359 <stanza-id /> elements, if available.
|
||||
@override
|
||||
List<StanzaId>? get stanzaIds {
|
||||
final value = _stanzaIds;
|
||||
if (value == null) return null;
|
||||
if (_stanzaIds is EqualUnmodifiableListView) return _stanzaIds;
|
||||
// ignore: implicit_dynamic_type
|
||||
return EqualUnmodifiableListView(value);
|
||||
}
|
||||
|
||||
@override
|
||||
final ReplyData? reply;
|
||||
@override
|
||||
@ -545,6 +577,7 @@ class _$_StanzaHandlerData implements _StanzaHandlerData {
|
||||
@override
|
||||
@JsonKey()
|
||||
Map<String, dynamic> get other {
|
||||
if (_other is EqualUnmodifiableMapView) return _other;
|
||||
// ignore: implicit_dynamic_type
|
||||
return EqualUnmodifiableMapView(_other);
|
||||
}
|
||||
@ -565,7 +598,7 @@ class _$_StanzaHandlerData implements _StanzaHandlerData {
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'StanzaHandlerData(done: $done, cancel: $cancel, cancelReason: $cancelReason, stanza: $stanza, retransmitted: $retransmitted, sims: $sims, sfs: $sfs, oob: $oob, stableId: $stableId, reply: $reply, chatState: $chatState, isCarbon: $isCarbon, deliveryReceiptRequested: $deliveryReceiptRequested, isMarkable: $isMarkable, fun: $fun, funReplacement: $funReplacement, funCancellation: $funCancellation, encrypted: $encrypted, forceEncryption: $forceEncryption, encryptionType: $encryptionType, delayedDelivery: $delayedDelivery, other: $other, messageRetraction: $messageRetraction, lastMessageCorrectionSid: $lastMessageCorrectionSid, messageReactions: $messageReactions, stickerPackId: $stickerPackId)';
|
||||
return 'StanzaHandlerData(done: $done, cancel: $cancel, cancelReason: $cancelReason, stanza: $stanza, retransmitted: $retransmitted, sims: $sims, sfs: $sfs, oob: $oob, originId: $originId, stanzaIds: $stanzaIds, reply: $reply, chatState: $chatState, isCarbon: $isCarbon, deliveryReceiptRequested: $deliveryReceiptRequested, isMarkable: $isMarkable, fun: $fun, funReplacement: $funReplacement, funCancellation: $funCancellation, encrypted: $encrypted, forceEncryption: $forceEncryption, encryptionType: $encryptionType, delayedDelivery: $delayedDelivery, other: $other, messageRetraction: $messageRetraction, lastMessageCorrectionSid: $lastMessageCorrectionSid, messageReactions: $messageReactions, stickerPackId: $stickerPackId)';
|
||||
}
|
||||
|
||||
@override
|
||||
@ -573,80 +606,90 @@ class _$_StanzaHandlerData implements _StanzaHandlerData {
|
||||
return identical(this, other) ||
|
||||
(other.runtimeType == runtimeType &&
|
||||
other is _$_StanzaHandlerData &&
|
||||
const DeepCollectionEquality().equals(other.done, done) &&
|
||||
const DeepCollectionEquality().equals(other.cancel, cancel) &&
|
||||
(identical(other.done, done) || other.done == done) &&
|
||||
(identical(other.cancel, cancel) || other.cancel == cancel) &&
|
||||
const DeepCollectionEquality()
|
||||
.equals(other.cancelReason, cancelReason) &&
|
||||
const DeepCollectionEquality().equals(other.stanza, stanza) &&
|
||||
(identical(other.stanza, stanza) || other.stanza == stanza) &&
|
||||
(identical(other.retransmitted, retransmitted) ||
|
||||
other.retransmitted == retransmitted) &&
|
||||
(identical(other.sims, sims) || other.sims == sims) &&
|
||||
(identical(other.sfs, sfs) || other.sfs == sfs) &&
|
||||
(identical(other.oob, oob) || other.oob == oob) &&
|
||||
(identical(other.originId, originId) ||
|
||||
other.originId == originId) &&
|
||||
const DeepCollectionEquality()
|
||||
.equals(other.retransmitted, retransmitted) &&
|
||||
const DeepCollectionEquality().equals(other.sims, sims) &&
|
||||
const DeepCollectionEquality().equals(other.sfs, sfs) &&
|
||||
const DeepCollectionEquality().equals(other.oob, oob) &&
|
||||
const DeepCollectionEquality().equals(other.stableId, stableId) &&
|
||||
const DeepCollectionEquality().equals(other.reply, reply) &&
|
||||
const DeepCollectionEquality().equals(other.chatState, chatState) &&
|
||||
const DeepCollectionEquality().equals(other.isCarbon, isCarbon) &&
|
||||
const DeepCollectionEquality().equals(
|
||||
other.deliveryReceiptRequested, deliveryReceiptRequested) &&
|
||||
const DeepCollectionEquality()
|
||||
.equals(other.isMarkable, isMarkable) &&
|
||||
const DeepCollectionEquality().equals(other.fun, fun) &&
|
||||
const DeepCollectionEquality()
|
||||
.equals(other.funReplacement, funReplacement) &&
|
||||
const DeepCollectionEquality()
|
||||
.equals(other.funCancellation, funCancellation) &&
|
||||
const DeepCollectionEquality().equals(other.encrypted, encrypted) &&
|
||||
const DeepCollectionEquality()
|
||||
.equals(other.forceEncryption, forceEncryption) &&
|
||||
const DeepCollectionEquality()
|
||||
.equals(other.encryptionType, encryptionType) &&
|
||||
const DeepCollectionEquality()
|
||||
.equals(other.delayedDelivery, delayedDelivery) &&
|
||||
.equals(other._stanzaIds, _stanzaIds) &&
|
||||
(identical(other.reply, reply) || other.reply == reply) &&
|
||||
(identical(other.chatState, chatState) ||
|
||||
other.chatState == chatState) &&
|
||||
(identical(other.isCarbon, isCarbon) ||
|
||||
other.isCarbon == isCarbon) &&
|
||||
(identical(
|
||||
other.deliveryReceiptRequested, deliveryReceiptRequested) ||
|
||||
other.deliveryReceiptRequested == deliveryReceiptRequested) &&
|
||||
(identical(other.isMarkable, isMarkable) ||
|
||||
other.isMarkable == isMarkable) &&
|
||||
(identical(other.fun, fun) || other.fun == fun) &&
|
||||
(identical(other.funReplacement, funReplacement) ||
|
||||
other.funReplacement == funReplacement) &&
|
||||
(identical(other.funCancellation, funCancellation) ||
|
||||
other.funCancellation == funCancellation) &&
|
||||
(identical(other.encrypted, encrypted) ||
|
||||
other.encrypted == encrypted) &&
|
||||
(identical(other.forceEncryption, forceEncryption) ||
|
||||
other.forceEncryption == forceEncryption) &&
|
||||
(identical(other.encryptionType, encryptionType) ||
|
||||
other.encryptionType == encryptionType) &&
|
||||
(identical(other.delayedDelivery, delayedDelivery) ||
|
||||
other.delayedDelivery == delayedDelivery) &&
|
||||
const DeepCollectionEquality().equals(other._other, this._other) &&
|
||||
const DeepCollectionEquality()
|
||||
.equals(other.messageRetraction, messageRetraction) &&
|
||||
const DeepCollectionEquality().equals(
|
||||
other.lastMessageCorrectionSid, lastMessageCorrectionSid) &&
|
||||
const DeepCollectionEquality()
|
||||
.equals(other.messageReactions, messageReactions) &&
|
||||
const DeepCollectionEquality()
|
||||
.equals(other.stickerPackId, stickerPackId));
|
||||
(identical(other.messageRetraction, messageRetraction) ||
|
||||
other.messageRetraction == messageRetraction) &&
|
||||
(identical(
|
||||
other.lastMessageCorrectionSid, lastMessageCorrectionSid) ||
|
||||
other.lastMessageCorrectionSid == lastMessageCorrectionSid) &&
|
||||
(identical(other.messageReactions, messageReactions) ||
|
||||
other.messageReactions == messageReactions) &&
|
||||
(identical(other.stickerPackId, stickerPackId) ||
|
||||
other.stickerPackId == stickerPackId));
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode => Object.hashAll([
|
||||
runtimeType,
|
||||
const DeepCollectionEquality().hash(done),
|
||||
const DeepCollectionEquality().hash(cancel),
|
||||
done,
|
||||
cancel,
|
||||
const DeepCollectionEquality().hash(cancelReason),
|
||||
const DeepCollectionEquality().hash(stanza),
|
||||
const DeepCollectionEquality().hash(retransmitted),
|
||||
const DeepCollectionEquality().hash(sims),
|
||||
const DeepCollectionEquality().hash(sfs),
|
||||
const DeepCollectionEquality().hash(oob),
|
||||
const DeepCollectionEquality().hash(stableId),
|
||||
const DeepCollectionEquality().hash(reply),
|
||||
const DeepCollectionEquality().hash(chatState),
|
||||
const DeepCollectionEquality().hash(isCarbon),
|
||||
const DeepCollectionEquality().hash(deliveryReceiptRequested),
|
||||
const DeepCollectionEquality().hash(isMarkable),
|
||||
const DeepCollectionEquality().hash(fun),
|
||||
const DeepCollectionEquality().hash(funReplacement),
|
||||
const DeepCollectionEquality().hash(funCancellation),
|
||||
const DeepCollectionEquality().hash(encrypted),
|
||||
const DeepCollectionEquality().hash(forceEncryption),
|
||||
const DeepCollectionEquality().hash(encryptionType),
|
||||
const DeepCollectionEquality().hash(delayedDelivery),
|
||||
stanza,
|
||||
retransmitted,
|
||||
sims,
|
||||
sfs,
|
||||
oob,
|
||||
originId,
|
||||
const DeepCollectionEquality().hash(_stanzaIds),
|
||||
reply,
|
||||
chatState,
|
||||
isCarbon,
|
||||
deliveryReceiptRequested,
|
||||
isMarkable,
|
||||
fun,
|
||||
funReplacement,
|
||||
funCancellation,
|
||||
encrypted,
|
||||
forceEncryption,
|
||||
encryptionType,
|
||||
delayedDelivery,
|
||||
const DeepCollectionEquality().hash(_other),
|
||||
const DeepCollectionEquality().hash(messageRetraction),
|
||||
const DeepCollectionEquality().hash(lastMessageCorrectionSid),
|
||||
const DeepCollectionEquality().hash(messageReactions),
|
||||
const DeepCollectionEquality().hash(stickerPackId)
|
||||
messageRetraction,
|
||||
lastMessageCorrectionSid,
|
||||
messageReactions,
|
||||
stickerPackId
|
||||
]);
|
||||
|
||||
@JsonKey(ignore: true)
|
||||
@override
|
||||
@pragma('vm:prefer-inline')
|
||||
_$$_StanzaHandlerDataCopyWith<_$_StanzaHandlerData> get copyWith =>
|
||||
__$$_StanzaHandlerDataCopyWithImpl<_$_StanzaHandlerData>(
|
||||
this, _$identity);
|
||||
@ -659,7 +702,8 @@ abstract class _StanzaHandlerData implements StanzaHandlerData {
|
||||
final StatelessMediaSharingData? sims,
|
||||
final StatelessFileSharingData? sfs,
|
||||
final OOBData? oob,
|
||||
final StableStanzaId? stableId,
|
||||
final String? originId,
|
||||
final List<StanzaId>? stanzaIds,
|
||||
final ReplyData? reply,
|
||||
final ChatState? chatState,
|
||||
final bool isCarbon,
|
||||
@ -698,8 +742,10 @@ abstract class _StanzaHandlerData implements StanzaHandlerData {
|
||||
StatelessFileSharingData? get sfs;
|
||||
@override
|
||||
OOBData? get oob;
|
||||
@override
|
||||
StableStanzaId? get stableId;
|
||||
@override // XEP-0359 <origin-id />'s id attribute, if available.
|
||||
String? get originId;
|
||||
@override // XEP-0359 <stanza-id /> elements, if available.
|
||||
List<StanzaId>? get stanzaIds;
|
||||
@override
|
||||
ReplyData? get reply;
|
||||
@override
|
||||
|
@ -109,7 +109,8 @@ class MessageManager extends XmppManagerBase {
|
||||
fromJid: JID.fromString(message.attributes['from']! as String),
|
||||
toJid: JID.fromString(message.attributes['to']! as String),
|
||||
sid: message.attributes['id']! as String,
|
||||
stanzaId: state.stableId ?? const StableStanzaId(),
|
||||
originId: state.originId,
|
||||
stanzaIds: state.stanzaIds,
|
||||
isCarbon: state.isCarbon,
|
||||
deliveryReceiptRequested: state.deliveryReceiptRequested,
|
||||
isMarkable: state.isMarkable,
|
||||
|
@ -1,7 +1,7 @@
|
||||
// coverage:ignore-file
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
// ignore_for_file: type=lint
|
||||
// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target
|
||||
// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark
|
||||
|
||||
part of 'state.dart';
|
||||
|
||||
@ -36,7 +36,8 @@ mixin _$StreamManagementState {
|
||||
abstract class $StreamManagementStateCopyWith<$Res> {
|
||||
factory $StreamManagementStateCopyWith(StreamManagementState value,
|
||||
$Res Function(StreamManagementState) then) =
|
||||
_$StreamManagementStateCopyWithImpl<$Res>;
|
||||
_$StreamManagementStateCopyWithImpl<$Res, StreamManagementState>;
|
||||
@useResult
|
||||
$Res call(
|
||||
{int c2s,
|
||||
int s2c,
|
||||
@ -45,39 +46,42 @@ abstract class $StreamManagementStateCopyWith<$Res> {
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
class _$StreamManagementStateCopyWithImpl<$Res>
|
||||
class _$StreamManagementStateCopyWithImpl<$Res,
|
||||
$Val extends StreamManagementState>
|
||||
implements $StreamManagementStateCopyWith<$Res> {
|
||||
_$StreamManagementStateCopyWithImpl(this._value, this._then);
|
||||
|
||||
final StreamManagementState _value;
|
||||
// ignore: unused_field
|
||||
final $Res Function(StreamManagementState) _then;
|
||||
final $Val _value;
|
||||
// ignore: unused_field
|
||||
final $Res Function($Val) _then;
|
||||
|
||||
@pragma('vm:prefer-inline')
|
||||
@override
|
||||
$Res call({
|
||||
Object? c2s = freezed,
|
||||
Object? s2c = freezed,
|
||||
Object? c2s = null,
|
||||
Object? s2c = null,
|
||||
Object? streamResumptionLocation = freezed,
|
||||
Object? streamResumptionId = freezed,
|
||||
}) {
|
||||
return _then(_value.copyWith(
|
||||
c2s: c2s == freezed
|
||||
c2s: null == c2s
|
||||
? _value.c2s
|
||||
: c2s // ignore: cast_nullable_to_non_nullable
|
||||
as int,
|
||||
s2c: s2c == freezed
|
||||
s2c: null == s2c
|
||||
? _value.s2c
|
||||
: s2c // ignore: cast_nullable_to_non_nullable
|
||||
as int,
|
||||
streamResumptionLocation: streamResumptionLocation == freezed
|
||||
streamResumptionLocation: freezed == streamResumptionLocation
|
||||
? _value.streamResumptionLocation
|
||||
: streamResumptionLocation // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
streamResumptionId: streamResumptionId == freezed
|
||||
streamResumptionId: freezed == streamResumptionId
|
||||
? _value.streamResumptionId
|
||||
: streamResumptionId // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
));
|
||||
) as $Val);
|
||||
}
|
||||
}
|
||||
|
||||
@ -88,6 +92,7 @@ abstract class _$$_StreamManagementStateCopyWith<$Res>
|
||||
$Res Function(_$_StreamManagementState) then) =
|
||||
__$$_StreamManagementStateCopyWithImpl<$Res>;
|
||||
@override
|
||||
@useResult
|
||||
$Res call(
|
||||
{int c2s,
|
||||
int s2c,
|
||||
@ -97,37 +102,34 @@ abstract class _$$_StreamManagementStateCopyWith<$Res>
|
||||
|
||||
/// @nodoc
|
||||
class __$$_StreamManagementStateCopyWithImpl<$Res>
|
||||
extends _$StreamManagementStateCopyWithImpl<$Res>
|
||||
extends _$StreamManagementStateCopyWithImpl<$Res, _$_StreamManagementState>
|
||||
implements _$$_StreamManagementStateCopyWith<$Res> {
|
||||
__$$_StreamManagementStateCopyWithImpl(_$_StreamManagementState _value,
|
||||
$Res Function(_$_StreamManagementState) _then)
|
||||
: super(_value, (v) => _then(v as _$_StreamManagementState));
|
||||
|
||||
@override
|
||||
_$_StreamManagementState get _value =>
|
||||
super._value as _$_StreamManagementState;
|
||||
: super(_value, _then);
|
||||
|
||||
@pragma('vm:prefer-inline')
|
||||
@override
|
||||
$Res call({
|
||||
Object? c2s = freezed,
|
||||
Object? s2c = freezed,
|
||||
Object? c2s = null,
|
||||
Object? s2c = null,
|
||||
Object? streamResumptionLocation = freezed,
|
||||
Object? streamResumptionId = freezed,
|
||||
}) {
|
||||
return _then(_$_StreamManagementState(
|
||||
c2s == freezed
|
||||
null == c2s
|
||||
? _value.c2s
|
||||
: c2s // ignore: cast_nullable_to_non_nullable
|
||||
as int,
|
||||
s2c == freezed
|
||||
null == s2c
|
||||
? _value.s2c
|
||||
: s2c // ignore: cast_nullable_to_non_nullable
|
||||
as int,
|
||||
streamResumptionLocation: streamResumptionLocation == freezed
|
||||
streamResumptionLocation: freezed == streamResumptionLocation
|
||||
? _value.streamResumptionLocation
|
||||
: streamResumptionLocation // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
streamResumptionId: streamResumptionId == freezed
|
||||
streamResumptionId: freezed == streamResumptionId
|
||||
? _value.streamResumptionId
|
||||
: streamResumptionId // ignore: cast_nullable_to_non_nullable
|
||||
as String?,
|
||||
@ -163,25 +165,23 @@ class _$_StreamManagementState implements _StreamManagementState {
|
||||
return identical(this, other) ||
|
||||
(other.runtimeType == runtimeType &&
|
||||
other is _$_StreamManagementState &&
|
||||
const DeepCollectionEquality().equals(other.c2s, c2s) &&
|
||||
const DeepCollectionEquality().equals(other.s2c, s2c) &&
|
||||
const DeepCollectionEquality().equals(
|
||||
other.streamResumptionLocation, streamResumptionLocation) &&
|
||||
const DeepCollectionEquality()
|
||||
.equals(other.streamResumptionId, streamResumptionId));
|
||||
(identical(other.c2s, c2s) || other.c2s == c2s) &&
|
||||
(identical(other.s2c, s2c) || other.s2c == s2c) &&
|
||||
(identical(
|
||||
other.streamResumptionLocation, streamResumptionLocation) ||
|
||||
other.streamResumptionLocation == streamResumptionLocation) &&
|
||||
(identical(other.streamResumptionId, streamResumptionId) ||
|
||||
other.streamResumptionId == streamResumptionId));
|
||||
}
|
||||
|
||||
@JsonKey(ignore: true)
|
||||
@override
|
||||
int get hashCode => Object.hash(
|
||||
runtimeType,
|
||||
const DeepCollectionEquality().hash(c2s),
|
||||
const DeepCollectionEquality().hash(s2c),
|
||||
const DeepCollectionEquality().hash(streamResumptionLocation),
|
||||
const DeepCollectionEquality().hash(streamResumptionId));
|
||||
runtimeType, c2s, s2c, streamResumptionLocation, streamResumptionId);
|
||||
|
||||
@JsonKey(ignore: true)
|
||||
@override
|
||||
@pragma('vm:prefer-inline')
|
||||
_$$_StreamManagementStateCopyWith<_$_StreamManagementState> get copyWith =>
|
||||
__$$_StreamManagementStateCopyWithImpl<_$_StreamManagementState>(
|
||||
this, _$identity);
|
||||
|
@ -6,17 +6,30 @@ import 'package:moxxmpp/src/managers/namespaces.dart';
|
||||
import 'package:moxxmpp/src/namespaces.dart';
|
||||
import 'package:moxxmpp/src/stanza.dart';
|
||||
import 'package:moxxmpp/src/stringxml.dart';
|
||||
import 'package:moxxmpp/src/xeps/xep_0030/types.dart';
|
||||
import 'package:moxxmpp/src/xeps/xep_0030/xep_0030.dart';
|
||||
|
||||
/// Represents data provided by XEP-0359.
|
||||
/// NOTE: [StableStanzaId.stanzaId] must not be confused with the actual id attribute of
|
||||
/// the message stanza.
|
||||
class StableStanzaId {
|
||||
const StableStanzaId({this.originId, this.stanzaId, this.stanzaIdBy});
|
||||
final String? originId;
|
||||
final String? stanzaId;
|
||||
final String? stanzaIdBy;
|
||||
/// Representation of a <stanza-id /> element.
|
||||
class StanzaId {
|
||||
const StanzaId(
|
||||
this.id,
|
||||
this.by,
|
||||
);
|
||||
|
||||
/// The unique stanza id.
|
||||
final String id;
|
||||
|
||||
/// The JID the id was generated by.
|
||||
final JID by;
|
||||
|
||||
XMLNode toXml() {
|
||||
return XMLNode.xmlns(
|
||||
tag: 'stanza-id',
|
||||
xmlns: stableIdXmlns,
|
||||
attributes: {
|
||||
'id': id,
|
||||
'by': by.toString(),
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
XMLNode makeOriginIdElement(String id) {
|
||||
@ -50,50 +63,32 @@ class StableIdManager extends XmppManagerBase {
|
||||
Stanza message,
|
||||
StanzaHandlerData state,
|
||||
) async {
|
||||
final from = JID.fromString(message.attributes['from']! as String);
|
||||
String? originId;
|
||||
String? stanzaId;
|
||||
String? stanzaIdBy;
|
||||
final originIdTag = message.firstTag('origin-id', xmlns: stableIdXmlns);
|
||||
final stanzaIdTag = message.firstTag('stanza-id', xmlns: stableIdXmlns);
|
||||
List<StanzaId>? stanzaIds;
|
||||
final originIdElement = message.firstTag('origin-id', xmlns: stableIdXmlns);
|
||||
final stanzaIdElements =
|
||||
message.findTags('stanza-id', xmlns: stableIdXmlns);
|
||||
|
||||
// Process the origin id
|
||||
if (originIdTag != null) {
|
||||
logger.finest('Found origin Id tag');
|
||||
originId = originIdTag.attributes['id']! as String;
|
||||
if (originIdElement != null) {
|
||||
originId = originIdElement.attributes['id']! as String;
|
||||
}
|
||||
|
||||
// Process the stanza id tag
|
||||
if (stanzaIdTag != null) {
|
||||
logger.finest('Found stanza Id tag');
|
||||
final attrs = getAttributes();
|
||||
final disco = attrs.getManagerById<DiscoManager>(discoManager)!;
|
||||
final result = await disco.discoInfoQuery(from);
|
||||
if (result.isType<DiscoInfo>()) {
|
||||
final info = result.get<DiscoInfo>();
|
||||
logger.finest('Got info for ${from.toString()}');
|
||||
if (info.features.contains(stableIdXmlns)) {
|
||||
logger.finest('${from.toString()} supports $stableIdXmlns.');
|
||||
stanzaId = stanzaIdTag.attributes['id']! as String;
|
||||
stanzaIdBy = stanzaIdTag.attributes['by']! as String;
|
||||
} else {
|
||||
logger.finest(
|
||||
'${from.toString()} does not support $stableIdXmlns. Ignoring stanza id... ',
|
||||
);
|
||||
}
|
||||
} else {
|
||||
logger.finest(
|
||||
'Failed to find out if ${from.toString()} supports $stableIdXmlns. Ignoring... ',
|
||||
);
|
||||
}
|
||||
if (stanzaIdElements.isNotEmpty) {
|
||||
stanzaIds = stanzaIdElements
|
||||
.map(
|
||||
(element) => StanzaId(
|
||||
element.attributes['id']! as String,
|
||||
JID.fromString(element.attributes['by']! as String),
|
||||
),
|
||||
)
|
||||
.toList();
|
||||
}
|
||||
|
||||
return state.copyWith(
|
||||
stableId: StableStanzaId(
|
||||
originId: originId,
|
||||
stanzaId: stanzaId,
|
||||
stanzaIdBy: stanzaIdBy,
|
||||
),
|
||||
originId: originId,
|
||||
stanzaIds: stanzaIds,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user