refactor: (BREAKING CHANGE) you can now get the matrix eventId from CallMembership(s)
This commit is contained in:
parent
cee65aa2a6
commit
2489682f1b
|
|
@ -19,6 +19,7 @@ class FamedlyCallMemberEvent {
|
||||||
mem,
|
mem,
|
||||||
event.senderId,
|
event.senderId,
|
||||||
event.room.id,
|
event.room.id,
|
||||||
|
event.eventId,
|
||||||
voip,
|
voip,
|
||||||
);
|
);
|
||||||
if (callMem != null) callMemberships.add(callMem);
|
if (callMem != null) callMemberships.add(callMem);
|
||||||
|
|
@ -29,6 +30,31 @@ class FamedlyCallMemberEvent {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// userId - The userId of the member
|
||||||
|
///
|
||||||
|
/// callId - The callId the member is a part of, usually an empty string
|
||||||
|
///
|
||||||
|
/// application, scope - something you can narrow down the calls with, might be
|
||||||
|
/// removed soon
|
||||||
|
///
|
||||||
|
/// backend - The CallBackend, either mesh or livekit
|
||||||
|
///
|
||||||
|
/// deviceId - The deviceId of the member
|
||||||
|
///
|
||||||
|
/// eventId - The eventId in matrix for this call membership
|
||||||
|
/// not always present because we do not have it when we are just sending
|
||||||
|
/// the event
|
||||||
|
///
|
||||||
|
/// expiresTs - Timestamp at which this membership event will be considered expired
|
||||||
|
///
|
||||||
|
/// membershipId - A cachebuster for state events, usually is reset every time a client
|
||||||
|
/// loads
|
||||||
|
///
|
||||||
|
/// feeds - Feeds from mesh calls, is not used for livekit calls
|
||||||
|
///
|
||||||
|
/// voip - The voip parent class for using timeouts probably
|
||||||
|
///
|
||||||
|
/// roomId - The roomId for the call
|
||||||
class CallMembership {
|
class CallMembership {
|
||||||
final String userId;
|
final String userId;
|
||||||
final String callId;
|
final String callId;
|
||||||
|
|
@ -36,6 +62,7 @@ class CallMembership {
|
||||||
final String? scope;
|
final String? scope;
|
||||||
final CallBackend backend;
|
final CallBackend backend;
|
||||||
final String deviceId;
|
final String deviceId;
|
||||||
|
final String? eventId;
|
||||||
final int expiresTs;
|
final int expiresTs;
|
||||||
final String membershipId;
|
final String membershipId;
|
||||||
final List? feeds;
|
final List? feeds;
|
||||||
|
|
@ -47,6 +74,7 @@ class CallMembership {
|
||||||
required this.callId,
|
required this.callId,
|
||||||
required this.backend,
|
required this.backend,
|
||||||
required this.deviceId,
|
required this.deviceId,
|
||||||
|
this.eventId,
|
||||||
required this.expiresTs,
|
required this.expiresTs,
|
||||||
required this.roomId,
|
required this.roomId,
|
||||||
required this.membershipId,
|
required this.membershipId,
|
||||||
|
|
@ -63,6 +91,7 @@ class CallMembership {
|
||||||
'scope': scope,
|
'scope': scope,
|
||||||
'foci_active': [backend.toJson()],
|
'foci_active': [backend.toJson()],
|
||||||
'device_id': deviceId,
|
'device_id': deviceId,
|
||||||
|
'event_id': eventId,
|
||||||
'expires_ts': expiresTs,
|
'expires_ts': expiresTs,
|
||||||
'expires': 7200000, // element compatibiltiy remove asap
|
'expires': 7200000, // element compatibiltiy remove asap
|
||||||
'membershipID': membershipId, // sessionId
|
'membershipID': membershipId, // sessionId
|
||||||
|
|
@ -74,6 +103,7 @@ class CallMembership {
|
||||||
Map json,
|
Map json,
|
||||||
String userId,
|
String userId,
|
||||||
String roomId,
|
String roomId,
|
||||||
|
String? eventId,
|
||||||
VoIP voip,
|
VoIP voip,
|
||||||
) {
|
) {
|
||||||
try {
|
try {
|
||||||
|
|
@ -87,6 +117,7 @@ class CallMembership {
|
||||||
.map((e) => CallBackend.fromJson(e))
|
.map((e) => CallBackend.fromJson(e))
|
||||||
.first,
|
.first,
|
||||||
deviceId: json['device_id'],
|
deviceId: json['device_id'],
|
||||||
|
eventId: eventId,
|
||||||
expiresTs: json['expires_ts'],
|
expiresTs: json['expires_ts'],
|
||||||
membershipId:
|
membershipId:
|
||||||
json['membershipID'] ?? 'someone_forgot_to_set_the_membershipID',
|
json['membershipID'] ?? 'someone_forgot_to_set_the_membershipID',
|
||||||
|
|
@ -111,6 +142,7 @@ class CallMembership {
|
||||||
scope == other.scope &&
|
scope == other.scope &&
|
||||||
backend.type == other.backend.type &&
|
backend.type == other.backend.type &&
|
||||||
deviceId == other.deviceId &&
|
deviceId == other.deviceId &&
|
||||||
|
eventId == other.eventId &&
|
||||||
membershipId == other.membershipId;
|
membershipId == other.membershipId;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
@ -122,6 +154,7 @@ class CallMembership {
|
||||||
scope.hashCode,
|
scope.hashCode,
|
||||||
backend.type.hashCode,
|
backend.type.hashCode,
|
||||||
deviceId.hashCode,
|
deviceId.hashCode,
|
||||||
|
eventId.hashCode,
|
||||||
membershipId.hashCode,
|
membershipId.hashCode,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -232,10 +232,10 @@ extension FamedlyCallMemberEventsExtension on Room {
|
||||||
} else {
|
} else {
|
||||||
throw MatrixSDKVoipException(
|
throw MatrixSDKVoipException(
|
||||||
'''
|
'''
|
||||||
User ${client.userID}:${client.deviceID} is not allowed to join famedly calls in room $id,
|
User ${client.userID}:${client.deviceID} is not allowed to join famedly calls in room $id,
|
||||||
canJoinGroupCall: $canJoinGroupCall,
|
canJoinGroupCall: $canJoinGroupCall,
|
||||||
groupCallsEnabledForEveryone: $groupCallsEnabledForEveryone,
|
groupCallsEnabledForEveryone: $groupCallsEnabledForEveryone,
|
||||||
needed: ${powerForChangingStateEvent(EventTypes.GroupCallMember)},
|
needed: ${powerForChangingStateEvent(EventTypes.GroupCallMember)},
|
||||||
own: $ownPowerLevel}
|
own: $ownPowerLevel}
|
||||||
plMap: ${getState(EventTypes.RoomPowerLevels)?.content}
|
plMap: ${getState(EventTypes.RoomPowerLevels)?.content}
|
||||||
''',
|
''',
|
||||||
|
|
@ -253,6 +253,7 @@ extension FamedlyCallMemberEventsExtension on Room {
|
||||||
event.content,
|
event.content,
|
||||||
event.senderId,
|
event.senderId,
|
||||||
event.roomId!,
|
event.roomId!,
|
||||||
|
event.eventId,
|
||||||
voip,
|
voip,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
@ -262,12 +263,13 @@ extension FamedlyCallMemberEventsExtension on Room {
|
||||||
Map<String, Object?> content,
|
Map<String, Object?> content,
|
||||||
String senderId,
|
String senderId,
|
||||||
String roomId,
|
String roomId,
|
||||||
|
String? eventId,
|
||||||
VoIP voip,
|
VoIP voip,
|
||||||
) {
|
) {
|
||||||
final mems = content.tryGetList<Map>('memberships');
|
final mems = content.tryGetList<Map>('memberships');
|
||||||
final callMems = <CallMembership>[];
|
final callMems = <CallMembership>[];
|
||||||
for (final m in mems ?? []) {
|
for (final m in mems ?? []) {
|
||||||
final mem = CallMembership.fromJson(m, senderId, roomId, voip);
|
final mem = CallMembership.fromJson(m, senderId, roomId, eventId, voip);
|
||||||
if (mem != null) callMems.add(mem);
|
if (mem != null) callMems.add(mem);
|
||||||
}
|
}
|
||||||
return callMems;
|
return callMems;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue