mirror of
https://gitlab.com/comunic/comunicmobile
synced 2025-06-19 08:15:16 +00:00
Handles join / leave events
This commit is contained in:
@ -1,5 +1,6 @@
|
||||
import 'package:comunic/helpers/calls_helper.dart';
|
||||
import 'package:comunic/helpers/conversations_helper.dart';
|
||||
import 'package:comunic/helpers/events_helper.dart';
|
||||
import 'package:comunic/helpers/users_helper.dart';
|
||||
import 'package:comunic/lists/call_members_list.dart';
|
||||
import 'package:comunic/lists/users_list.dart';
|
||||
@ -78,6 +79,15 @@ class _CallScreenState extends SafeState<CallScreen> {
|
||||
_membersList = membersList;
|
||||
|
||||
setState(() {});
|
||||
|
||||
// Register to events
|
||||
this.listenChangeState<UserJoinedCallEvent>((e) {
|
||||
if (e.callID == convID) _membersList.add(CallMember(id: e.userID));
|
||||
});
|
||||
|
||||
this.listen<UserLeftCallEvent>((e) {
|
||||
if (e.callID == convID) _removeMember(e.userID);
|
||||
});
|
||||
} catch (e, stack) {
|
||||
print("Could not initialize call! $e\n$stack");
|
||||
setState(() => _error = true);
|
||||
@ -93,6 +103,11 @@ class _CallScreenState extends SafeState<CallScreen> {
|
||||
}
|
||||
}
|
||||
|
||||
void _removeMember(int memberID) {
|
||||
_membersList.removeUser(memberID);
|
||||
setState(() {});
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
|
Reference in New Issue
Block a user