diff --git a/lib/apps/group_chat/detail.dart b/lib/apps/group_chat/detail.dart index bc0b4e6..1966487 100644 --- a/lib/apps/group_chat/detail.dart +++ b/lib/apps/group_chat/detail.dart @@ -205,9 +205,8 @@ class _GroupChatDetailState extends State { final meName = context.read().activedAccount.name; this.group = provider.activedGroup; - - final isGroupOwner = true; - final isGroupManager = true; + final isGroupOwner = provider.isActivedGroupOwner; + final isGroupManager = provider.isActivedGroupManager; if (this.group == null) { return Container( diff --git a/lib/apps/group_chat/provider.dart b/lib/apps/group_chat/provider.dart index 8903a15..1eaa1b8 100644 --- a/lib/apps/group_chat/provider.dart +++ b/lib/apps/group_chat/provider.dart @@ -3,6 +3,7 @@ import "dart:collection"; import 'package:flutter/material.dart'; import 'package:esse/rpc.dart'; +import 'package:esse/global.dart'; import 'package:esse/apps/primitives.dart'; import 'package:esse/apps/group_chat/models.dart'; @@ -21,6 +22,15 @@ class GroupChatProvider extends ChangeNotifier { SplayTreeMap activedMembers = SplayTreeMap(); GroupChat get activedGroup => this.groups[this.actived]; + bool get isActivedGroupOwner => this.activedGroup.owner == Global.gid; + bool get isActivedGroupManager { + this.activedMembers.values.forEach((m) { + if (m.mid == Global.gid) { + return m.isManager; + } + }); + return false; + } GroupChatProvider() { // rpc.