mirror of
https://gitlab.com/comunic/comunicmobile
synced 2025-06-19 00:05:16 +00:00
Can create group conversations
This commit is contained in:
@ -1,4 +1,5 @@
|
||||
import 'package:comunic/enums/likes_type.dart';
|
||||
import 'package:comunic/models/conversation.dart';
|
||||
import 'package:comunic/models/like_element.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
@ -15,6 +16,7 @@ class AdvancedGroupInfo extends Group implements LikeElement {
|
||||
String url;
|
||||
int likes;
|
||||
bool userLike;
|
||||
List<Conversation> conversations;
|
||||
|
||||
AdvancedGroupInfo({
|
||||
@required int id,
|
||||
|
@ -4,6 +4,8 @@ import 'package:comunic/utils/account_utils.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:meta/meta.dart';
|
||||
|
||||
import 'group.dart';
|
||||
|
||||
/// Conversation model
|
||||
///
|
||||
/// @author Pierre HUBERT
|
||||
@ -17,6 +19,7 @@ class Conversation extends SerializableElement<Conversation> {
|
||||
final Color color;
|
||||
final String logoURL;
|
||||
final int groupID;
|
||||
final GroupMembershipLevel groupMinMembershipLevel;
|
||||
final List<ConversationMember> members;
|
||||
final bool canEveryoneAddMembers;
|
||||
final CallCapabilities callCapabilities;
|
||||
@ -29,6 +32,7 @@ class Conversation extends SerializableElement<Conversation> {
|
||||
@required this.color,
|
||||
@required this.logoURL,
|
||||
@required this.groupID,
|
||||
@required this.groupMinMembershipLevel,
|
||||
@required this.members,
|
||||
@required this.canEveryoneAddMembers,
|
||||
this.callCapabilities = CallCapabilities.NONE,
|
||||
@ -37,6 +41,7 @@ class Conversation extends SerializableElement<Conversation> {
|
||||
assert(lastActivity != null),
|
||||
assert(members != null),
|
||||
assert(canEveryoneAddMembers != null),
|
||||
assert((groupID == null) == (groupMinMembershipLevel == null)),
|
||||
assert(callCapabilities != null),
|
||||
assert(isHavingCall != null);
|
||||
|
||||
@ -78,6 +83,9 @@ class Conversation extends SerializableElement<Conversation> {
|
||||
color = map["color"] == null ? null : Color(map["color"]),
|
||||
logoURL = map["logoURL"],
|
||||
groupID = map["groupID"],
|
||||
groupMinMembershipLevel = GroupMembershipLevel.values.firstWhere(
|
||||
(element) => element.toString() == map["groupMinMembershipLevel"],
|
||||
orElse: () => null),
|
||||
lastActivity = map["lastActivity"],
|
||||
members = map["members"]
|
||||
.map((el) => ConversationMember.fromJSON(el))
|
||||
@ -96,6 +104,7 @@ class Conversation extends SerializableElement<Conversation> {
|
||||
"color": color?.value,
|
||||
"logoURL": logoURL,
|
||||
"groupID": groupID,
|
||||
"groupMinMembershipLevel": groupMinMembershipLevel?.toString(),
|
||||
"lastActivity": lastActivity,
|
||||
"members": members.map((e) => e.toJson()).toList(),
|
||||
"canEveryoneAddMembers": canEveryoneAddMembers,
|
||||
|
21
lib/models/new_group_conversation.dart
Normal file
21
lib/models/new_group_conversation.dart
Normal file
@ -0,0 +1,21 @@
|
||||
import 'package:comunic/models/group.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
|
||||
/// This class contains information about a conversation linked to a group
|
||||
/// to create
|
||||
///
|
||||
/// @author Pierre Hubert
|
||||
|
||||
class NewGroupConversation {
|
||||
final int groupID;
|
||||
final String name;
|
||||
final GroupMembershipLevel minMembershipLevel;
|
||||
|
||||
const NewGroupConversation({
|
||||
@required this.groupID,
|
||||
@required this.name,
|
||||
@required this.minMembershipLevel,
|
||||
}) : assert(groupID != null),
|
||||
assert(name != null),
|
||||
assert(minMembershipLevel != null);
|
||||
}
|
@ -58,6 +58,7 @@ class ServerDataConservationPolicy {
|
||||
}
|
||||
|
||||
class ConversationsPolicy {
|
||||
final int maxConversationNameLen;
|
||||
final int minMessageLen;
|
||||
final int maxMessageLen;
|
||||
final List<String> allowedFilesType;
|
||||
@ -72,6 +73,7 @@ class ConversationsPolicy {
|
||||
final int maxLogoHeight;
|
||||
|
||||
const ConversationsPolicy({
|
||||
@required this.maxConversationNameLen,
|
||||
@required this.minMessageLen,
|
||||
@required this.maxMessageLen,
|
||||
@required this.allowedFilesType,
|
||||
@ -84,7 +86,8 @@ class ConversationsPolicy {
|
||||
@required this.maxThumbnailHeight,
|
||||
@required this.maxLogoWidth,
|
||||
@required this.maxLogoHeight,
|
||||
}) : assert(minMessageLen != null),
|
||||
}) : assert(maxConversationNameLen != null),
|
||||
assert(minMessageLen != null),
|
||||
assert(maxMessageLen != null),
|
||||
assert(allowedFilesType != null),
|
||||
assert(filesMaxSize != null),
|
||||
|
Reference in New Issue
Block a user