import 'package:chat/data/UserData.dart'; import 'package:chat/data/WebData.dart'; import 'package:chat/data/conversation.dart'; import 'package:chat/data/group_data_mgr.dart'; import 'package:chat/generated/i18n.dart'; import 'package:chat/home/InfoList.dart'; import 'package:chat/home/last_chat_record_widget.dart'; import 'package:chat/home/rich_title.dart'; import 'package:chat/home/unread_dot_widget.dart'; import 'package:chat/models/group_info_model.dart'; import 'package:chat/utils/CustomUI.dart'; import 'package:chat/utils/HttpUtil.dart'; import 'package:chat/utils/MessageMgr.dart'; import 'package:chat/utils/TokenMgr.dart'; import 'package:chat/utils/screen.dart'; import 'package:dio/dio.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:shared_preferences/shared_preferences.dart'; import '../data/constants.dart' show AppColors, AppStyles, Constants, GlobalSearchPageType, GroupOperatingPageType; import 'package:cached_network_image/cached_network_image.dart'; import 'create_group_view.dart'; import 'global_search.dart'; import 'group_item_widget.dart'; class _ConversationItem extends StatelessWidget { const _ConversationItem( {Key key, this.conversation, this.callback, this.icon, this.bgColor, this.iconSize = 20}) : assert(conversation != null), super(key: key); final icon; final double iconSize; final Conversation conversation; final callback; final bgColor; @override Widget build(BuildContext context) { Widget avatar; if (icon != null) { avatar = Container( height: 47.5, width: 47.5, margin: EdgeInsets.only(left: 6), alignment: Alignment.center, decoration: BoxDecoration( gradient: bgColor, borderRadius: BorderRadius.all(Radius.circular(50))), child: Image.asset( icon, height: iconSize, )); } else if (conversation.isAvatarFromNet()) { avatar = CachedNetworkImage( imageUrl: conversation.avatar, placeholder: CustomUI.buildImgLoding, width: Constants.ConversationAvatarSize, height: Constants.ConversationAvatarSize, ); } else { avatar = Image.asset( conversation.avatar, width: Constants.ConversationAvatarSize, height: Constants.ConversationAvatarSize, ); } List _rightArea = [ Container( padding: EdgeInsets.only(top: 4), alignment: Alignment.center, child: Text(conversation.updateAt, textScaleFactor: 1.0, style: TextStyle(fontSize: 11, color: const Color(0xFFC6C6C6))), ) ]; if (conversation.unreadMsgCount > 0) { var countStr = conversation.unreadMsgCount.toString(); if (conversation.unreadMsgCount > 99) { countStr = '99+'; } // 未读消息角标 Widget unreadMsgCountText = Container( width: Constants.UnReadMsgNotifyDotSize, height: Constants.UnReadMsgNotifyDotSize, alignment: Alignment.center, decoration: BoxDecoration( borderRadius: BorderRadius.circular(Constants.UnReadMsgNotifyDotSize / 2.0), color: Color(0xFFFF5454), ), child: Text(countStr, textScaleFactor: 1.0, style: AppStyles.UnreadMsgCountDotStyle), ); _rightArea.add(Expanded( child: Align( alignment: Alignment.bottomCenter, child: unreadMsgCountText, ))); } return InkWell( child: Container( padding: const EdgeInsets.all(10.0), decoration: BoxDecoration( color: Color(AppColors.ConversationItemBgColor), ), child: Row( crossAxisAlignment: CrossAxisAlignment.center, children: [ avatar, Container(width: 17.0), Expanded( child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text(conversation.title, textScaleFactor: 1.0, style: TextStyle( color: Colors.black, )), SizedBox( height: 5, ), Text(conversation.desc, textScaleFactor: 1.0, style: TextStyle( fontSize: 12, color: const Color(0xFF9B9B9B))) ], ), ), // Container(width: 10.0), SizedBox( height: Constants.ConversationAvatarSize, child: Column( crossAxisAlignment: CrossAxisAlignment.end, mainAxisAlignment: MainAxisAlignment.start, children: _rightArea, ), ) ], ), ), onTap: () { callback(); }, ); } } class ConversActionPage extends StatefulWidget { ConversActionPage({Key key}) : super(key: key); _ConversActionPageState createState() => _ConversActionPageState(); } Map systemInfo = { 'applyList': null, 'applyCount': 0, 'evaluateList': null, 'evaluateCount': 0, 'parkList': null, 'parkCount': 0, 'castList': null, 'castCount': 0, 'walletList': null, 'walletCount': 0, }; int msgNum = 0; bool isShowMsg() { return msgNum > 0; } getAllResNum(prefs) { getResNum(prefs, Constants.ApplyCount); getResNum(prefs, Constants.EvaluateCount); getResNum(prefs, Constants.ParkCount); getResNum(prefs, Constants.CastCount); getResNum(prefs, Constants.WalletCount); } getResNum(prefs, url) async { var count = prefs.getInt(url + UserData().basicInfo.userId.toString()); systemInfo[url] = count == null ? systemInfo[url] : (systemInfo[url] - count); msgNum += systemInfo[url]; } setResNum(url) async { var localKey = url + UserData().basicInfo.userId.toString(); if (systemInfo[url] > 0) { SharedPreferences prefs = await SharedPreferences.getInstance(); var count = prefs.getInt(localKey); prefs.setInt( localKey, count == null ? systemInfo[url] : (systemInfo[url] + count)); msgNum -= systemInfo[url]; systemInfo[url] = 0; } } class _ConversActionPageState extends State with SingleTickerProviderStateMixin { TabController tabCtrl; void getSystemMsg(data) async { Map data = { "userId": UserData().basicInfo.userId, "type": UserData().basicInfo.sex }; data['sign'] = TokenMgr().getSign(data); Response res = await HttpUtil().post('message/all/message', data: data); if (res == null) { return; } Map resData = res.data; if (resData['code'] == 0) { SharedPreferences prefs = await SharedPreferences.getInstance(); systemInfo = resData['data']; msgNum = 0; getAllResNum(prefs); if (mounted) { setState(() {}); } } } @override void initState() { super.initState(); MessageMgr().on('update_system', getSystemMsg); MessageMgr().on('Quit Group', quitGroup); MessageMgr().on('Update Group List', updateGroupLastMsg); getSystemMsg(null); tabCtrl = TabController(length: 3, vsync: this); } @override void dispose() { tabCtrl.dispose(); MessageMgr().off('update_system', getSystemMsg); super.dispose(); MessageMgr().off('Quit Group', quitGroup); MessageMgr().off('Update Group List', updateGroupLastMsg); } @override Widget build(BuildContext context) { List groupList = GroupInfoMgr().groupInfoList; return Scaffold( backgroundColor: Colors.white, appBar: AppBar( //backgroundColor: Constants.LightGreyBackgroundColor, centerTitle: false, title: Text( I18n.of(context).message_center, textScaleFactor: 1.0, style: Constants.MainTitleStyle, ), actions: [ Container( child: IconButton( icon: CircleAvatar( backgroundColor: Constants.GreyBackgroundColor, radius: 13.75, child: Padding( padding: EdgeInsets.only(bottom: 1.5), child: Icon( IconData(0xe659, fontFamily: Constants.IconFontFamily), color: Constants.BlackTextColor, size: 21, ))), onPressed: () { CustomUI().goScanPage(context); }, ), ), // InkWell( // onTap: () { // Navigator.of(context).push( // new MaterialPageRoute( // builder: (context) { // return MessagePushPage(); // }, // ), // ); // }, // child: Padding( // padding: EdgeInsets.only(right: 10), // child: CircleAvatar( // backgroundColor: Constants.GreyBackgroundColor, // radius: 13.75, // child: Icon( // Icons.settings, // color: Constants.BlackTextColor, // size: 22, // )), // )), ], elevation: 0, bottom: PreferredSize( preferredSize: Size.fromHeight(28), child: Container( padding: EdgeInsets.only(left: 2), decoration: BoxDecoration( //color: Constants.LightGreyBackgroundColor, border: Border(bottom: BorderSide(color: Color(0xffeaeaea)))), alignment: Alignment.centerLeft, child: TabBar( isScrollable: true, indicatorPadding: EdgeInsets.only(left: 9, right: 9), tabs: [ UnreadDot( child: Container( margin: EdgeInsets.only(right: 4), child: Text(I18n.of(context).text_chat, textScaleFactor: 1.0), ), type: 1), UnreadDot( child: Container( margin: EdgeInsets.only(right: 4), child: Text(I18n.of(context).group_chat, textScaleFactor: 1.0), ), type: 4), UnreadDot( child: Container( margin: EdgeInsets.only(right: 4), child: Text(I18n.of(context).system_information, textScaleFactor: 1.0)), type: 2), ], controller: tabCtrl, ), )), ), body: SafeArea( child: TabBarView( children: [ LastChatPage(), ListView.builder( // controller: _scrollController, itemBuilder: (BuildContext context, int index) { if (index == 0) { return _buildCreateButton(); } else { var info = groupList[index - 1]; return GroupItem(ValueKey(info), groupInfoModel: info); } }, itemCount: groupList.length + 1, ), ListView( children: [ SizedBox(height: 8.5), _ConversationItem( icon: 'assets/images/chat/icon1.png', bgColor: Constants.RadioGradient, conversation: Conversation( avatar: 'assets/images/ic_tx_news.png', title: I18n.of(context).radio_message, desc: RichTitle.normalTitle( systemInfo['castList'], context, InfoType.Radio), updateAt: systemInfo['castList'] == null ? "" : WebData().getLoginTime( context, systemInfo['castList']['CreateTime']), unreadMsgCount: systemInfo['castCount'], ), callback: () { setResNum(Constants.CastCount); Navigator.of(context).push( new MaterialPageRoute( builder: (context) { return InfoListPage( title: I18n.of(context).radio_message, type: InfoType.Radio, ); }, ), ); }, ), _ConversationItem( icon: 'assets/images/chat/icon4.png', bgColor: Constants.MoneyGradient, conversation: Conversation( avatar: 'assets/images/ic_tx_news.png', title: I18n.of(context).wallet_reminder, desc: RichTitle.normalTitle( systemInfo['walletList'], context, InfoType.IncomeMoney), updateAt: systemInfo['walletList'] == null ? "" : WebData().getLoginTime( context, systemInfo['walletList']['CreateTime']), unreadMsgCount: systemInfo['walletCount'], ), callback: () { setResNum(Constants.WalletCount); Navigator.of(context).push( new MaterialPageRoute( builder: (context) { return InfoListPage( title: I18n.of(context).wallet_reminder, type: InfoType.IncomeMoney, ); }, ), ); }, ), _ConversationItem( icon: 'assets/images/chat/icon3.png', iconSize: 27, bgColor: Constants.ApplyGradient, conversation: Conversation( avatar: 'assets/images/ic_tx_news.png', title: I18n.of(context).application_notice, desc: RichTitle.normalTitle( systemInfo['applyList'], context, InfoType.Apply), updateAt: systemInfo['applyList'] == null ? "" : WebData().getLoginTime( context, systemInfo['applyList']['CreatTime']), unreadMsgCount: systemInfo['applyCount'], ), callback: () { setResNum(Constants.ApplyCount); Navigator.of(context).push( new MaterialPageRoute( builder: (context) { return InfoListPage( title: I18n.of(context).application_notice, type: InfoType.Apply, ); }, ), ); }, ), _ConversationItem( icon: 'assets/images/chat/icon6.png', bgColor: Constants.EvaGradient, conversation: Conversation( avatar: 'assets/images/ic_tx_news.png', title: I18n.of(context).evaluation_notice, desc: RichTitle.normalTitle(systemInfo['evaluateList'], context, InfoType.Evaluation), updateAt: systemInfo['evaluateList'] == null ? '' : WebData().getLoginTime( context, systemInfo['evaluateList']['CreateTime']), unreadMsgCount: systemInfo['evaluateCount'], ), callback: () { setResNum(Constants.EvaluateCount); Navigator.of(context).push( new MaterialPageRoute( builder: (context) { return InfoListPage( title: I18n.of(context).evaluation_notice, type: 2, ); }, ), ); }, ), _ConversationItem( icon: 'assets/images/chat/icon5.png', bgColor: Constants.ParkGradient, conversation: Conversation( avatar: 'assets/images/ic_tx_news.png', title: I18n.of(context).appName, desc: RichTitle.normalTitle( systemInfo['parkList'], context, InfoType.System), updateAt: systemInfo['parkList'] == null ? "" : WebData().getLoginTime( context, systemInfo['parkList']['CreateTime']), unreadMsgCount: systemInfo['parkCount'], ), callback: () { setResNum(Constants.ParkCount); Navigator.of(context).push( new MaterialPageRoute( builder: (context) { return InfoListPage( title: I18n.of(context).appName, type: InfoType.System, ); }, ), ); }, ) ], ) ], controller: tabCtrl, ))); } Widget _buildCreateButton() { List groupList = GroupInfoMgr().groupInfoList; Widget _avatarIcon = ClipRRect( borderRadius: BorderRadius.circular(GroupRadius), child: Container( color: const Color(0xFFF2F2F2), height: AvatarSize, width: AvatarSize, child: Icon( IconData(0xe66f, fontFamily: Constants.IconFontFamily), color: Constants.BlueTextColor, size: 35, ), )); Widget _button = InkWell( onTap: () { Navigator.of(context).push( new MaterialPageRoute( builder: (context) { return CreateGroupPage( GroupOperatingPageType.CreateGroup, [], null); }, ), ); }, child: Container( padding: EdgeInsets.only(top: 14, bottom: 14), color: Constants.GreyBackgroundColor, child: Container( height: ItemHeight, decoration: BoxDecoration(color: Colors.white), child: Row( children: [ SizedBox(width: LeftPadding), _avatarIcon, SizedBox(width: 14.0), Text( I18n.of(context).create_group_chat, style: TextStyle(fontSize: 15.5), ), ], ), ))); Widget tips = Container( alignment: Alignment.centerLeft, width: Screen.width, height: 33.5, padding: EdgeInsets.only(left: LeftPadding), decoration: BoxDecoration( color: Colors.white, border: Border(bottom: Constants.GreyBorderSide)), child: Text(I18n.of(context).group_chat + '(${groupList.length})'), ); return Column( children: [ SizedBox( height: 10, ), CustomUI.buildSearchButton(context, () { Navigator.of(context).push( new MaterialPageRoute( builder: (context) { return GlobalSearchPage( type: GlobalSearchPageType.SearchGroup, ); }, ), ); }, bottom: 10), _button, tips, ], ); } quitGroup(args) { if (mounted) { setState(() { print('更新群列表'); }); } } updateGroupLastMsg(args) async { await GroupInfoMgr().sortGroupList(); if (mounted) { setState(() {}); } } } // import 'package:chat/data/UserData.dart'; // import 'package:chat/data/WebData.dart'; // import 'package:chat/data/conversation.dart'; // import 'package:chat/data/group_data_mgr.dart'; // import 'package:chat/generated/i18n.dart'; // import 'package:chat/home/InfoList.dart'; // import 'package:chat/home/last_chat_record_widget.dart'; // import 'package:chat/home/rich_title.dart'; // import 'package:chat/home/unread_dot_widget.dart'; // import 'package:chat/models/group_info_model.dart'; // import 'package:chat/utils/CustomUI.dart'; // import 'package:chat/utils/HttpUtil.dart'; // import 'package:chat/utils/MessageMgr.dart'; // import 'package:chat/utils/TokenMgr.dart'; // import 'package:chat/utils/screen.dart'; // import 'package:dio/dio.dart'; // import 'package:flutter/cupertino.dart'; // import 'package:flutter/material.dart'; // import 'package:shared_preferences/shared_preferences.dart'; // import '../data/constants.dart' // show // AppColors, // AppStyles, // Constants, // GlobalSearchPageType, // GroupOperatingPageType; // import 'package:cached_network_image/cached_network_image.dart'; // import 'create_group_view.dart'; // import 'global_search.dart'; // import 'group_item_widget.dart'; // class _ConversationItem extends StatelessWidget { // const _ConversationItem( // {Key key, // this.conversation, // this.callback, // this.icon, // this.bgColor, // this.iconSize = 20}) // : assert(conversation != null), // super(key: key); // final icon; // final double iconSize; // final Conversation conversation; // final callback; // final bgColor; // @override // Widget build(BuildContext context) { // Widget avatar; // if (icon != null) { // avatar = Container( // height: 47.5, // width: 47.5, // margin: EdgeInsets.only(left: 6), // alignment: Alignment.center, // decoration: BoxDecoration( // gradient: bgColor, // borderRadius: BorderRadius.all(Radius.circular(50))), // child: Image.asset( // icon, // height: iconSize, // )); // } else if (conversation.isAvatarFromNet()) { // avatar = CachedNetworkImage( // imageUrl: conversation.avatar, // placeholder: CustomUI.buildImgLoding, // width: Constants.ConversationAvatarSize, // height: Constants.ConversationAvatarSize, // ); // } else { // avatar = Image.asset( // conversation.avatar, // width: Constants.ConversationAvatarSize, // height: Constants.ConversationAvatarSize, // ); // } // List _rightArea = [ // Container( // padding: EdgeInsets.only(top: 4), // alignment: Alignment.center, // child: Text(conversation.updateAt, // textScaleFactor: 1.0, // style: TextStyle(fontSize: 11, color: const Color(0xFFC6C6C6))), // ) // ]; // if (conversation.unreadMsgCount > 0) { // var countStr = conversation.unreadMsgCount.toString(); // if (conversation.unreadMsgCount > 99) { // countStr = '99+'; // } // // 未读消息角标 // Widget unreadMsgCountText = Container( // width: Constants.UnReadMsgNotifyDotSize, // height: Constants.UnReadMsgNotifyDotSize, // alignment: Alignment.center, // decoration: BoxDecoration( // borderRadius: // BorderRadius.circular(Constants.UnReadMsgNotifyDotSize / 2.0), // color: Color(0xFFFF5454), // ), // child: Text(countStr, // textScaleFactor: 1.0, style: AppStyles.UnreadMsgCountDotStyle), // ); // _rightArea.add(Expanded( // child: Align( // alignment: Alignment.bottomCenter, // child: unreadMsgCountText, // ))); // } // return InkWell( // child: Container( // padding: const EdgeInsets.all(10.0), // decoration: BoxDecoration( // color: Color(AppColors.ConversationItemBgColor), // ), // child: Row( // crossAxisAlignment: CrossAxisAlignment.center, // children: [ // avatar, // Container(width: 17.0), // Expanded( // child: Column( // crossAxisAlignment: CrossAxisAlignment.start, // children: [ // Text(conversation.title, // textScaleFactor: 1.0, // style: TextStyle( // color: Colors.black, // )), // SizedBox( // height: 5, // ), // Text(conversation.desc, // textScaleFactor: 1.0, // style: TextStyle( // fontSize: 12, color: const Color(0xFF9B9B9B))) // ], // ), // ), // // Container(width: 10.0), // SizedBox( // height: Constants.ConversationAvatarSize, // child: Column( // crossAxisAlignment: CrossAxisAlignment.end, // mainAxisAlignment: MainAxisAlignment.start, // children: _rightArea, // ), // ) // ], // ), // ), // onTap: () { // callback(); // }, // ); // } // } // class ConversActionPage extends StatefulWidget { // ConversActionPage({Key key}) : super(key: key); // _ConversActionPageState createState() => _ConversActionPageState(); // } // Map systemInfo = { // 'applyList': null, // 'applyCount': 0, // 'evaluateList': null, // 'evaluateCount': 0, // 'parkList': null, // 'parkCount': 0, // 'castList': null, // 'castCount': 0, // 'walletList': null, // 'walletCount': 0, // }; // int msgNum = 0; // bool isShowMsg() { // return msgNum > 0; // } // getAllResNum(prefs) { // getResNum(prefs, Constants.ApplyCount); // getResNum(prefs, Constants.EvaluateCount); // getResNum(prefs, Constants.ParkCount); // getResNum(prefs, Constants.CastCount); // getResNum(prefs, Constants.WalletCount); // } // getResNum(prefs, url) async { // var count = prefs.getInt(url + UserData().basicInfo.userId.toString()); // systemInfo[url] = count == null ? systemInfo[url] : (systemInfo[url] - count); // msgNum += systemInfo[url]; // } // setResNum(url) async { // var localKey = url + UserData().basicInfo.userId.toString(); // if (systemInfo[url] > 0) { // SharedPreferences prefs = await SharedPreferences.getInstance(); // var count = prefs.getInt(localKey); // prefs.setInt( // localKey, count == null ? systemInfo[url] : (systemInfo[url] + count)); // msgNum -= systemInfo[url]; // systemInfo[url] = 0; // } // } // class _ConversActionPageState extends State // with SingleTickerProviderStateMixin { // TabController tabCtrl; // void getSystemMsg(data) async { // Map data = { // "userId": UserData().basicInfo.userId, // "type": UserData().basicInfo.sex // }; // data['sign'] = TokenMgr().getSign(data); // Response res = await HttpUtil().post('message/all/message', data: data); // if (res == null) { // return; // } // Map resData = res.data; // if (resData['code'] == 0) { // SharedPreferences prefs = await SharedPreferences.getInstance(); // systemInfo = resData['data']; // msgNum = 0; // getAllResNum(prefs); // if (mounted) { // setState(() {}); // } // } // } // @override // void initState() { // super.initState(); // MessageMgr().on('update_system', getSystemMsg); // // MessageMgr().on('Quit Group', quitGroup); // // // // MessageMgr().on('Update Group List', updateGroupLastMsg); // getSystemMsg(null); // tabCtrl = TabController(length: 2, vsync: this); // } // @override // void dispose() { // tabCtrl.dispose(); // MessageMgr().off('update_system', getSystemMsg); // super.dispose(); // } // @override // Widget build(BuildContext context) { // // List groupList = GroupInfoMgr().groupInfoList; // return Scaffold( // backgroundColor: Colors.white, // appBar: AppBar( // //backgroundColor: Constants.LightGreyBackgroundColor, // centerTitle: false, // title: Text( // I18n.of(context).message_center, // textScaleFactor: 1.0, // style: Constants.MainTitleStyle, // ), // actions: [ // Container( // child: IconButton( // icon: CircleAvatar( // backgroundColor: Constants.GreyBackgroundColor, // radius: 13.75, // child: Padding( // padding: EdgeInsets.only(bottom: 1.5), // child: Icon( // IconData(0xe659, // fontFamily: Constants.IconFontFamily), // color: Constants.BlackTextColor, // size: 21, // ))), // onPressed: () { // CustomUI().goScanPage(context); // }, // ), // ), // // InkWell( // // onTap: () { // // Navigator.of(context).push( // // new MaterialPageRoute( // // builder: (context) { // // return MessagePushPage(); // // }, // // ), // // ); // // }, // // child: Padding( // // padding: EdgeInsets.only(right: 10), // // child: CircleAvatar( // // backgroundColor: Constants.GreyBackgroundColor, // // radius: 13.75, // // child: Icon( // // Icons.settings, // // color: Constants.BlackTextColor, // // size: 22, // // )), // // )), // ], // elevation: 0, // bottom: PreferredSize( // preferredSize: Size.fromHeight(28), // child: Container( // padding: EdgeInsets.only(left: 2), // decoration: BoxDecoration( // //color: Constants.LightGreyBackgroundColor, // border: // Border(bottom: BorderSide(color: Color(0xffeaeaea)))), // alignment: Alignment.centerLeft, // child: TabBar( // isScrollable: true, // indicatorPadding: EdgeInsets.only(left: 9, right: 9), // tabs: [ // UnreadDot( // child: Container( // margin: EdgeInsets.only(right: 4), // child: Text(I18n.of(context).text_chat, // textScaleFactor: 1.0), // ), // type: 1), // // UnreadDot( // // child: Container( // // margin: EdgeInsets.only(right: 4), // // child: Text(I18n.of(context).group_chat, // // textScaleFactor: 1.0), // // ), // // type: 4), // UnreadDot( // child: Container( // margin: EdgeInsets.only(right: 4), // child: Text(I18n.of(context).system_information, // textScaleFactor: 1.0)), // type: 2), // ], // controller: tabCtrl, // ), // )), // ), // body: SafeArea( // child: TabBarView( // children: [ // LastChatPage(), // // ListView.builder( // //// controller: _scrollController, // // itemBuilder: (BuildContext context, int index) { // // if (index == 0) { // // return _buildCreateButton(); // // } else { // // var info = groupList[index - 1]; // // return GroupItem(ValueKey(info), groupInfoModel: info); // // } // // }, // // itemCount: groupList.length + 1, // // ), // ListView( // children: [ // SizedBox(height: 8.5), // _ConversationItem( // icon: 'assets/images/chat/icon1.png', // bgColor: Constants.RadioGradient, // conversation: Conversation( // avatar: 'assets/images/ic_tx_news.png', // title: I18n.of(context).radio_message, // desc: RichTitle.normalTitle( // systemInfo['castList'], context, InfoType.Radio), // updateAt: systemInfo['castList'] == null // ? "" // : WebData().getLoginTime( // context, systemInfo['castList']['CreateTime']), // unreadMsgCount: systemInfo['castCount'], // ), // callback: () { // setResNum(Constants.CastCount); // Navigator.of(context).push( // new MaterialPageRoute( // builder: (context) { // return InfoListPage( // title: I18n.of(context).radio_message, // type: InfoType.Radio, // ); // }, // ), // ); // }, // ), // _ConversationItem( // icon: 'assets/images/chat/icon4.png', // bgColor: Constants.MoneyGradient, // conversation: Conversation( // avatar: 'assets/images/ic_tx_news.png', // title: I18n.of(context).wallet_reminder, // desc: RichTitle.normalTitle(systemInfo['walletList'], // context, InfoType.IncomeMoney), // updateAt: systemInfo['walletList'] == null // ? "" // : WebData().getLoginTime( // context, systemInfo['walletList']['CreateTime']), // unreadMsgCount: systemInfo['walletCount'], // ), // callback: () { // setResNum(Constants.WalletCount); // Navigator.of(context).push( // new MaterialPageRoute( // builder: (context) { // return InfoListPage( // title: I18n.of(context).wallet_reminder, // type: InfoType.IncomeMoney, // ); // }, // ), // ); // }, // ), // _ConversationItem( // icon: 'assets/images/chat/icon3.png', // iconSize: 27, // bgColor: Constants.ApplyGradient, // conversation: Conversation( // avatar: 'assets/images/ic_tx_news.png', // title: I18n.of(context).application_notice, // desc: RichTitle.normalTitle( // systemInfo['applyList'], context, InfoType.Apply), // updateAt: systemInfo['applyList'] == null // ? "" // : WebData().getLoginTime( // context, systemInfo['applyList']['CreatTime']), // unreadMsgCount: systemInfo['applyCount'], // ), // callback: () { // setResNum(Constants.ApplyCount); // Navigator.of(context).push( // new MaterialPageRoute( // builder: (context) { // return InfoListPage( // title: I18n.of(context).application_notice, // type: InfoType.Apply, // ); // }, // ), // ); // }, // ), // _ConversationItem( // icon: 'assets/images/chat/icon6.png', // bgColor: Constants.EvaGradient, // conversation: Conversation( // avatar: 'assets/images/ic_tx_news.png', // title: I18n.of(context).evaluation_notice, // desc: RichTitle.normalTitle(systemInfo['evaluateList'], // context, InfoType.Evaluation), // updateAt: systemInfo['evaluateList'] == null // ? '' // : WebData().getLoginTime( // context, systemInfo['evaluateList']['CreateTime']), // unreadMsgCount: systemInfo['evaluateCount'], // ), // callback: () { // setResNum(Constants.EvaluateCount); // Navigator.of(context).push( // new MaterialPageRoute( // builder: (context) { // return InfoListPage( // title: I18n.of(context).evaluation_notice, // type: 2, // ); // }, // ), // ); // }, // ), // _ConversationItem( // icon: 'assets/images/chat/icon5.png', // bgColor: Constants.ParkGradient, // conversation: Conversation( // avatar: 'assets/images/ic_tx_news.png', // title: I18n.of(context).appName, // desc: RichTitle.normalTitle( // systemInfo['parkList'], context, InfoType.System), // updateAt: systemInfo['parkList'] == null // ? "" // : WebData().getLoginTime( // context, systemInfo['parkList']['CreateTime']), // unreadMsgCount: systemInfo['parkCount'], // ), // callback: () { // setResNum(Constants.ParkCount); // Navigator.of(context).push( // new MaterialPageRoute( // builder: (context) { // return InfoListPage( // title: I18n.of(context).appName, // type: InfoType.System, // ); // }, // ), // ); // }, // ) // ], // ) // ], // controller: tabCtrl, // ))); // } // Widget _buildCreateButton() { // List groupList = GroupInfoMgr().groupInfoList; // Widget _avatarIcon = ClipRRect( // borderRadius: BorderRadius.circular(GroupRadius), // child: Container( // color: const Color(0xFFF2F2F2), // height: AvatarSize, // width: AvatarSize, // child: Icon( // IconData(0xe66f, fontFamily: Constants.IconFontFamily), // color: Constants.BlueTextColor, // size: 35, // ), // )); // Widget _button = InkWell( // onTap: () { // Navigator.of(context).push( // new MaterialPageRoute( // builder: (context) { // return CreateGroupPage( // GroupOperatingPageType.CreateGroup, [], null); // }, // ), // ); // }, // child: Container( // padding: EdgeInsets.only(top: 14, bottom: 14), // color: Constants.GreyBackgroundColor, // child: Container( // height: ItemHeight, // decoration: BoxDecoration(color: Colors.white), // child: Row( // children: [ // SizedBox(width: LeftPadding), // _avatarIcon, // SizedBox(width: 14.0), // Text( // I18n.of(context).create_group_chat, // textScaleFactor: 1.0, // style: TextStyle(fontSize: 15.5), // ), // ], // ), // ))); // Widget tips = Container( // alignment: Alignment.centerLeft, // width: Screen.width, // height: 33.5, // padding: EdgeInsets.only(left: LeftPadding), // decoration: BoxDecoration( // color: Colors.white, // border: Border(bottom: Constants.GreyBorderSide)), // child: Text( // I18n.of(context).group_chat + '(${groupList.length})', // textScaleFactor: 1.0, // ), // ); // return Column( // children: [ // SizedBox( // height: 10, // ), // CustomUI.buildSearchButton(context, () { // Navigator.of(context).push( // new MaterialPageRoute( // builder: (context) { // return GlobalSearchPage( // type: GlobalSearchPageType.SearchGroup, // ); // }, // ), // ); // }, bottom: 10), // _button, // tips, // ], // ); // } // // quitGroup(args) { // // if (mounted) { // // setState(() { // // print('更新群列表'); // // }); // // } // // } // // // // updateGroupLastMsg(args) async { // // await GroupInfoMgr().sortGroupList(); // // if (mounted) { // // setState(() {}); // // } // // } // }