| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import 'package:e2ee_chat/azlistview/azlistview.dart';
- import 'package:e2ee_chat/common/global.dart';
- import 'package:e2ee_chat/model/contact_info.dart';
- import 'package:e2ee_chat/model/user.dart';
- import 'package:e2ee_chat/presenter/contact.dart';
- import 'package:e2ee_chat/presenter/profile.dart';
- import 'package:e2ee_chat/presenter/login.dart';
- import 'package:flutter/material.dart';
- import 'package:lpinyin/lpinyin.dart';
- import 'package:e2ee_chat/common/api.dart';
- import '../objectbox.g.dart';
- import 'login.dart';
- class ContactListPresenter extends ChangeNotifier {
- List<ContactInfo> get contacts {
- final User? user = LoginPresenter().user;
- final list = <ContactInfo>[];
- try {
- for (var i in user!.friends) {
- list.add(ContactInfo(name: i.username, tag: ContactInfo.getTag(i.username)));
- }
- } catch (e) {
- debug(e);
- }
- SuspensionUtil.sortListBySuspensionTag(list);
- SuspensionUtil.setShowSuspensionStatus(list);
- list.add(ContactInfo(name: '新的朋友', tag: '↑', bgColor: Colors.orange, iconData: Icons.person_add));
- return list;
- }
- Future<bool> freshContacts() async {
- debug('contact list presenter fresh contacts begin');
- bool _result = false;
- var _user = LoginPresenter().user;
- if (_user != null) {
- try {
- var list = (await Api().friendList())!;
- debug('contact list presenter fresh contacts friends: $list');
- _user.friends.clear();
- list.forEach((username) {
- var contact = User(username);
- contact.refreshProfile();
- _user.friends.add(contact);
- });
- notifyListeners();
- _result = true;
- } catch (e) {
- debug('contact list presenter fresh contacts failed: error $e');
- }
- }
- debug('contact list presenter fresh contacts end');
- return _result;
- }
- }
|