diff --git a/lib/apps/group_chat/detail.dart b/lib/apps/group_chat/detail.dart index 6f30b87..703f929 100644 --- a/lib/apps/group_chat/detail.dart +++ b/lib/apps/group_chat/detail.dart @@ -15,6 +15,7 @@ import 'package:esse/global.dart'; import 'package:esse/provider.dart'; import 'package:esse/apps/chat/provider.dart'; +import 'package:esse/apps/chat/models.dart' show Message; import 'package:esse/apps/group_chat/models.dart'; import 'package:esse/apps/group_chat/provider.dart'; @@ -74,7 +75,7 @@ class _GroupChatDetailState extends State { return; } - context.read().messageCreate(Message(group.id, MessageType.String, textController.text)); + //context.read().messageCreate(Message(group.id, MessageType.String, textController.text)); setState(() { textController.text = ''; textFocus.requestFocus(); @@ -93,7 +94,7 @@ class _GroupChatDetailState extends State { void _sendImage() async { final image = await pickImage(); if (image != null) { - context.read().messageCreate(Message(group.id, MessageType.Image, image)); + //context.read().messageCreate(Message(group.id, MessageType.Image, image)); } setState(() { textFocus.requestFocus(); @@ -107,7 +108,7 @@ class _GroupChatDetailState extends State { void _sendFile() async { final file = await pickFile(); if (file != null) { - context.read().messageCreate(Message(group.id, MessageType.File, file)); + //context.read().messageCreate(Message(group.id, MessageType.File, file)); } setState(() { textFocus.requestFocus(); @@ -120,7 +121,7 @@ class _GroupChatDetailState extends State { void _sendRecord(int time) async { final raw = Message.rawRecordName(time, _recordName); - context.read().messageCreate(Message(group.id, MessageType.Record, raw)); + //context.read().messageCreate(Message(group.id, MessageType.Record, raw)); setState(() { textFocus.requestFocus(); @@ -165,7 +166,7 @@ class _GroupChatDetailState extends State { return GestureDetector( behavior: HitTestBehavior.opaque, onTap: () async { - context.read().messageCreate(Message(friend.id, MessageType.Contact, "${contact.id}")); + //context.read().messageCreate(Message(friend.id, MessageType.Contact, "${contact.id}")); Navigator.of(context).pop(); setState(() { textFocus.requestFocus(); @@ -273,13 +274,12 @@ class _GroupChatDetailState extends State { child: Icon(Icons.more_vert_rounded, color: color.primary), onSelected: (int value) { if (value == 1) { - Provider.of(context, listen: false).groupUpdate( - this.group.id, isTop: !this.group.isTop); + //Provider.of(context, listen: false).groupUpdate(this.group.id, isTop: !this.group.isTop); } else if (value == 2) { showShadowDialog( context, Icons.info, - lang.groupInfo, + lang.friendInfo, UserInfo( id: 'EH' + this.group.gid.toUpperCase(), name: this.group.name, @@ -304,8 +304,7 @@ class _GroupChatDetailState extends State { child: Text(lang.ok), onPressed: () { Navigator.pop(context); - Provider.of( - context, listen: false).groupClose(this.group.id); + //Provider.of(context, listen: false).groupClose(this.group.id); if (!isDesktop) { Navigator.pop(context); } @@ -316,14 +315,14 @@ class _GroupChatDetailState extends State { }, ); } else if (value == 5) { - Provider.of(context, listen: false).requestCreate( - Request(this.group.gid, this.group.addr, this.group.name, lang.fromContactCard(meName))); + // Provider.of(context, listen: false).requestCreate( + // Request(this.group.gid, this.group.addr, this.group.name, lang.fromContactCard(meName))); } else if (value == 6) { showDialog( context: context, builder: (BuildContext context) { return AlertDialog( - title: Text(lang.delete + " " + lang.group), + title: Text(lang.delete), content: Text(this.group.name, style: TextStyle(color: Colors.red)), actions: [ @@ -335,8 +334,7 @@ class _GroupChatDetailState extends State { child: Text(lang.ok), onPressed: () { Navigator.pop(context); - Provider.of( - context, listen: false).groupDelete(this.group.id); + //Provider.of(context, listen: false).groupDelete(this.group.id); if (!isDesktop) { Navigator.pop(context); } @@ -351,12 +349,12 @@ class _GroupChatDetailState extends State { itemBuilder: (context) { return >[ _menuItem(Color(0xFF6174FF), 1, Icons.vertical_align_top_rounded, this.group.isTop ? lang.cancelTop : lang.setTop), - _menuItem(Color(0xFF6174FF), 2, Icons.qr_code_rounded, lang.groupInfo), - //_menuItem(color.primary, 3, Icons.turned_in_rounded, lang.remark), - this.group.isClosed - ? _menuItem(Color(0xFF6174FF), 5, Icons.send_rounded, lang.addGroup) - : _menuItem(Color(0xFF6174FF), 4, Icons.block_rounded, lang.ungroup), - _menuItem(Colors.red, 6, Icons.delete_rounded, lang.delete), + // _menuItem(Color(0xFF6174FF), 2, Icons.qr_code_rounded, lang.friendInfo), + // _menuItem(color.primary, 3, Icons.turned_in_rounded, lang.remark), + // this.group.isClosed + // ? _menuItem(Color(0xFF6174FF), 5, Icons.send_rounded, lang.addGroup) + // : _menuItem(Color(0xFF6174FF), 4, Icons.block_rounded, lang.unfriend), + // _menuItem(Colors.red, 6, Icons.delete_rounded, lang.delete), ]; }, ) diff --git a/lib/apps/group_chat/page.dart b/lib/apps/group_chat/page.dart index 8764e5c..ead6b29 100644 --- a/lib/apps/group_chat/page.dart +++ b/lib/apps/group_chat/page.dart @@ -7,6 +7,7 @@ import 'package:esse/l10n/localizations.dart'; import 'package:esse/provider.dart'; import 'package:esse/apps/group_chat/add.dart'; +import 'package:esse/apps/group_chat/detail.dart'; import 'package:esse/apps/group_chat/models.dart'; import 'package:esse/apps/group_chat/provider.dart'; @@ -59,16 +60,16 @@ class ListChat extends StatelessWidget { behavior: HitTestBehavior.opaque, onTap: () { context.read().updateActivedGroup(group.id); - // if (!isDesktop) { - // Navigator.push( - // context, - // MaterialPageRoute( - // builder: (_) => GroupChatPage(), - // ), - // ); - // } else { - // context.read().updateActivedApp(GroupChatDetail()); - // } + if (!isDesktop) { + Navigator.push( + context, + MaterialPageRoute( + builder: (_) => GroupChatPage(), + ), + ); + } else { + context.read().updateActivedApp(GroupChatDetail()); + } }, child: Container( height: 55.0, diff --git a/lib/apps/group_chat/provider.dart b/lib/apps/group_chat/provider.dart index 3e0db77..bba7c78 100644 --- a/lib/apps/group_chat/provider.dart +++ b/lib/apps/group_chat/provider.dart @@ -4,6 +4,7 @@ import 'package:flutter/material.dart'; import 'package:esse/rpc.dart'; import 'package:esse/apps/group_chat/models.dart'; +import 'package:esse/apps/chat/models.dart' show Message; class GroupChatProvider extends ChangeNotifier { List createSupported = [GroupType.Encrypted, GroupType.Common, GroupType.Open]; @@ -15,6 +16,7 @@ class GroupChatProvider extends ChangeNotifier { SplayTreeMap requests = SplayTreeMap(); int actived; + SplayTreeMap activedMessages = SplayTreeMap(); GroupChat get activedGroup => this.groups[this.actived]; @@ -52,6 +54,11 @@ class GroupChatProvider extends ChangeNotifier { updateActivedGroup(int id) { this.actived = id; + // TODO load + } + + clearActivedGroup() { + // TODO } check(String addr) {