mirror of
				https://gitlab.com/comunic/comunicmobile
				synced 2025-11-04 04:04:18 +00:00 
			
		
		
		
	Get the list of members of the call
This commit is contained in:
		@@ -1,5 +1,7 @@
 | 
				
			|||||||
import 'package:comunic/helpers/websocket_helper.dart';
 | 
					import 'package:comunic/helpers/websocket_helper.dart';
 | 
				
			||||||
 | 
					import 'package:comunic/lists/call_members_list.dart';
 | 
				
			||||||
import 'package:comunic/models/call_config.dart';
 | 
					import 'package:comunic/models/call_config.dart';
 | 
				
			||||||
 | 
					import 'package:comunic/models/call_member.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/// Calls helper
 | 
					/// Calls helper
 | 
				
			||||||
///
 | 
					///
 | 
				
			||||||
@@ -21,4 +23,15 @@ class CallsHelper {
 | 
				
			|||||||
      iceServers: response["iceServers"].cast<String>(),
 | 
					      iceServers: response["iceServers"].cast<String>(),
 | 
				
			||||||
    );
 | 
					    );
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /// Get current call members
 | 
				
			||||||
 | 
					  static Future<CallMembersList> getMembers(int callID) async =>
 | 
				
			||||||
 | 
					      CallMembersList()
 | 
				
			||||||
 | 
					        ..addAll((await ws("calls/members", {"callID": callID}))
 | 
				
			||||||
 | 
					            .map((f) => CallMember(
 | 
				
			||||||
 | 
					                  id: f["userID"],
 | 
				
			||||||
 | 
					                  status: f["ready"] ? MemberStatus.READY : MemberStatus.JOINED,
 | 
				
			||||||
 | 
					                ))
 | 
				
			||||||
 | 
					            .toList()
 | 
				
			||||||
 | 
					            .cast<CallMember>());
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										8
									
								
								lib/lists/call_members_list.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								lib/lists/call_members_list.dart
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					import 'package:comunic/lists/abstract_list.dart';
 | 
				
			||||||
 | 
					import 'package:comunic/models/call_member.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// Call members list
 | 
				
			||||||
 | 
					///
 | 
				
			||||||
 | 
					/// @author Pierre Hubert
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class CallMembersList extends AbstractList<CallMember> {}
 | 
				
			||||||
							
								
								
									
										18
									
								
								lib/models/call_member.dart
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								lib/models/call_member.dart
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,18 @@
 | 
				
			|||||||
 | 
					import 'package:flutter/material.dart';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/// Single call member information
 | 
				
			||||||
 | 
					///
 | 
				
			||||||
 | 
					/// @author Pierre Hubert
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					enum MemberStatus { JOINED, READY }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class CallMember {
 | 
				
			||||||
 | 
					  final int id;
 | 
				
			||||||
 | 
					  final MemberStatus status;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const CallMember({
 | 
				
			||||||
 | 
					    @required this.id,
 | 
				
			||||||
 | 
					    @required this.status,
 | 
				
			||||||
 | 
					  })  : assert(id != null),
 | 
				
			||||||
 | 
					        assert(status != null);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -1,5 +1,6 @@
 | 
				
			|||||||
import 'package:comunic/helpers/calls_helper.dart';
 | 
					import 'package:comunic/helpers/calls_helper.dart';
 | 
				
			||||||
import 'package:comunic/helpers/conversations_helper.dart';
 | 
					import 'package:comunic/helpers/conversations_helper.dart';
 | 
				
			||||||
 | 
					import 'package:comunic/lists/call_members_list.dart';
 | 
				
			||||||
import 'package:comunic/models/call_config.dart';
 | 
					import 'package:comunic/models/call_config.dart';
 | 
				
			||||||
import 'package:comunic/models/conversation.dart';
 | 
					import 'package:comunic/models/conversation.dart';
 | 
				
			||||||
import 'package:comunic/ui/widgets/comunic_back_button_widget.dart';
 | 
					import 'package:comunic/ui/widgets/comunic_back_button_widget.dart';
 | 
				
			||||||
@@ -33,6 +34,7 @@ class _CallScreenState extends SafeState<CallScreen> {
 | 
				
			|||||||
  String _convName;
 | 
					  String _convName;
 | 
				
			||||||
  CallConfig _conf;
 | 
					  CallConfig _conf;
 | 
				
			||||||
  var _error = false;
 | 
					  var _error = false;
 | 
				
			||||||
 | 
					  CallMembersList _membersList;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  @override
 | 
					  @override
 | 
				
			||||||
  void initState() {
 | 
					  void initState() {
 | 
				
			||||||
@@ -63,6 +65,9 @@ class _CallScreenState extends SafeState<CallScreen> {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
      // Get call configuration
 | 
					      // Get call configuration
 | 
				
			||||||
      _conf = await CallsHelper.getConfig();
 | 
					      _conf = await CallsHelper.getConfig();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      // Get current members of the call
 | 
				
			||||||
 | 
					      _membersList = await CallsHelper.getMembers(convID);
 | 
				
			||||||
    } catch (e, stack) {
 | 
					    } catch (e, stack) {
 | 
				
			||||||
      print("Could not initialize call! $e\n$stack");
 | 
					      print("Could not initialize call! $e\n$stack");
 | 
				
			||||||
      setState(() => _error = true);
 | 
					      setState(() => _error = true);
 | 
				
			||||||
@@ -92,8 +97,8 @@ class _CallScreenState extends SafeState<CallScreen> {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  /// Build widget body
 | 
					  /// Build widget body
 | 
				
			||||||
  Widget _buildBody() {
 | 
					  Widget _buildBody() {
 | 
				
			||||||
    if (_error)
 | 
					 | 
				
			||||||
    // Handle errors
 | 
					    // Handle errors
 | 
				
			||||||
 | 
					    if (_error)
 | 
				
			||||||
      return buildErrorCard(tr("Could not initialize call!"), actions: [
 | 
					      return buildErrorCard(tr("Could not initialize call!"), actions: [
 | 
				
			||||||
        MaterialButton(
 | 
					        MaterialButton(
 | 
				
			||||||
          onPressed: () => _initCall(),
 | 
					          onPressed: () => _initCall(),
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user