Skip to content
  • P
    Projects
  • G
    Groups
  • S
    Snippets
  • Help

杨树贤 / kefu_server

  • This project
    • Loading...
  • Sign in
Go to a project
  • Project
  • Repository
  • Issues 0
  • Merge Requests 0
  • Pipelines
  • Wiki
  • Snippets
  • Settings
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • Files
  • Commits
  • Branches
  • Tags
  • Contributors
  • Graph
  • Compare
  • Charts
Find file
Normal viewHistoryPermalink
Switch branch/tag
  • kefu_server
  • ui
  • kefu_workbench
  • lib
  • provider
  • home.dart
home.dart 1.68 KB
chenxianqi's avatar
增加kefu_workbench
a18da124
 
chenxianqi committed 5 years ago
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
import 'package:kefu_workbench/provider/global.dart';

import '../core_flutter.dart';

class HomeProvide with ChangeNotifier {

  static HomeProvide instance;

   // 单例
  static HomeProvide getInstance() {
    if (instance != null) {
      return instance;
    }
    instance = HomeProvide();
    return instance;
  }
  HomeProvide(){
    /// 检测通知权限
    checkPermission(GlobalProvide.getInstance().rooContext, permissionGroupType: PermissionGroup.notification);
  }


  ///  所有未读消息
  int get contactReadCount{
    int count = 0;
    for(var i =0; i<GlobalProvide.getInstance().contacts.length; i++){
      count = count + GlobalProvide.getInstance().contacts[i].read;
    }
    return count;
  }

  /// 选中用户
  void selectContact(ContactModel contact){
    GlobalProvide.getInstance().setCurrentContact(contact);
  }

  /// 刷新
  Future<bool> onRefresh() async{
    await getContacts();
    UX.showToast("刷新成功~", position: ToastPosition.top);
    return true;
  }

   /// MessageService
  MessageService messageService = MessageService.getInstance();

  /// 退出登录
  void logout(BuildContext context) {
    UX.alert(context, content: "您确定退出登录吗?", onConfirm: () {
      Navigator.pop(context);
      Navigator.pushNamedAndRemoveUntil(context, "/login", ModalRoute.withName('/'), arguments: {"isAnimate": false});
      UX.showToast("已退出登录~");
      GlobalProvide.getInstance().applicationLogout();
    });
  }

  /// 获取聊天列表
  Future<void> getContacts({bool isFullLoading = false}) async{
    await GlobalProvide.getInstance().getContacts();
  }


  @override
  void dispose() {
    instance = null;
    super.dispose();
  }

  
}