removeChatCallMember method
override
Removes the specified User from the ChatCall of the specified Chat-group by authority of the authenticated MyUser.
If the specified User participates in the ChatCall from multiple devices simultaneously, then removes all the devices at once.
Implementation
@override
Future<void> removeChatCallMember(ChatId chatId, UserId userId) async {
Log.debug('removeChatCallMember($chatId, $userId)', '$runtimeType');
try {
// TODO: Implement optimism, if possible.
await Backoff.run(
() async {
await _graphQlProvider.removeChatCallMember(chatId, userId);
},
retryIf: (e) => e.isNetworkRelated,
retries: 10,
);
} on RemoveChatCallMemberException catch (e) {
switch (e.code) {
case RemoveChatCallMemberErrorCode.artemisUnknown:
rethrow;
case RemoveChatCallMemberErrorCode.notGroup:
// No-op.
break;
case RemoveChatCallMemberErrorCode.notMember:
case RemoveChatCallMemberErrorCode.unknownChat:
// No-op.
break;
}
}
}