Browse Source

fix notice menu type and list groups

pull/18/head
Sun 4 years ago
parent
commit
97ffe92ceb
  1. 1
      lib/apps/chat/list.dart
  2. 31
      lib/apps/group/list.dart
  3. 1
      lib/widgets/chat_message.dart
  4. 2
      src/rpc.rs

1
lib/apps/chat/list.dart

@ -31,7 +31,6 @@ class _ChatListState extends State<ChatList> {
this._friends.clear(); this._friends.clear();
final res = await httpPost('chat-friend-list', [false]); final res = await httpPost('chat-friend-list', [false]);
if (res.isOk) { if (res.isOk) {
print(res.params);
res.params.forEach((params) { res.params.forEach((params) {
this._friends.add(Friend.fromList(params)); this._friends.add(Friend.fromList(params));
}); });

31
lib/apps/group/list.dart

@ -5,6 +5,7 @@ import 'package:esse/utils/adaptive.dart';
import 'package:esse/l10n/localizations.dart'; import 'package:esse/l10n/localizations.dart';
import 'package:esse/provider.dart'; import 'package:esse/provider.dart';
import 'package:esse/session.dart'; import 'package:esse/session.dart';
import 'package:esse/rpc.dart';
import 'package:esse/apps/group/detail.dart'; import 'package:esse/apps/group/detail.dart';
import 'package:esse/apps/group/models.dart'; import 'package:esse/apps/group/models.dart';
@ -17,22 +18,39 @@ class GroupChatList extends StatefulWidget {
} }
class _GroupChatListState extends State<GroupChatList> { class _GroupChatListState extends State<GroupChatList> {
List<GroupChat> _groups = [];
@override
void initState() {
super.initState();
_loadGroups();
}
_loadGroups() async {
this._groups.clear();
final res = await httpPost('group-list', []);
if (res.isOk) {
res.params.forEach((params) {
this._groups.add(GroupChat.fromList(params));
});
setState(() {});
} else {
print(res.error);
}
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
//final color = Theme.of(context).colorScheme;
final lang = AppLocalizations.of(context); final lang = AppLocalizations.of(context);
final isDesktop = isDisplayDesktop(context); final isDesktop = isDisplayDesktop(context);
//final provider = context.watch<GroupChatProvider>();
final orderKeys = []; //provider.orderKeys;
final groups = []; //provider.groups;
return Scaffold( return Scaffold(
appBar: AppBar(title: Text(lang.groupChat)), appBar: AppBar(title: Text(lang.groupChat)),
body: Padding( body: Padding(
padding: const EdgeInsets.symmetric(vertical: 10.0), padding: const EdgeInsets.symmetric(vertical: 10.0),
child: ListView.builder( child: ListView.builder(
itemCount: orderKeys.length, itemCount: _groups.length,
itemBuilder: (BuildContext ctx, int index) => ListChat(group: groups[orderKeys[index]]!), itemBuilder: (BuildContext ctx, int index) => ListChat(group: _groups[index]),
) )
), ),
); );
@ -53,7 +71,6 @@ class ListChat extends StatelessWidget {
behavior: HitTestBehavior.opaque, behavior: HitTestBehavior.opaque,
onTap: () { onTap: () {
context.read<AccountProvider>().updateActivedSession(0, SessionType.Group, group.id); context.read<AccountProvider>().updateActivedSession(0, SessionType.Group, group.id);
//context.read<GroupChatProvider>().updateActivedGroup(group.id);
final widget = GroupChatDetail(id: group.id); final widget = GroupChatDetail(id: group.id);
if (!isDesktop) { if (!isDesktop) {
Navigator.push(context, MaterialPageRoute(builder: (_) => widget)); Navigator.push(context, MaterialPageRoute(builder: (_) => widget));

1
lib/widgets/chat_message.dart

@ -332,6 +332,7 @@ class ChatMessage extends StatelessWidget {
color: color.onPrimary.withOpacity(0.5), color: color.onPrimary.withOpacity(0.5),
fontSize: 10.0)), fontSize: 10.0)),
const SizedBox(width: 4.0), const SizedBox(width: 4.0),
if (message.isMe)
Icon( Icon(
message.isDelivery == null ? Icons.hourglass_top message.isDelivery == null ? Icons.hourglass_top
: (message.isDelivery! ? Icons.done : Icons.error), : (message.isDelivery! ? Icons.done : Icons.error),

2
src/rpc.rs

@ -88,7 +88,7 @@ pub(crate) fn session_last(
#[inline] #[inline]
pub(crate) fn notice_menu(mgid: GroupId, t: &SessionType) -> RpcParam { pub(crate) fn notice_menu(mgid: GroupId, t: &SessionType) -> RpcParam {
rpc_response(0, "notice_menu", json!([t.to_int()]), mgid) rpc_response(0, "notice-menu", json!([t.to_int()]), mgid)
} }
#[inline] #[inline]

Loading…
Cancel
Save