|
- //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<Widget> _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: <Widget>[
- // avatar,
- // Container(width: 17.0),
- // Expanded(
- // child: Column(
- // crossAxisAlignment: CrossAxisAlignment.start,
- // children: <Widget>[
- // 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<ConversActionPage>
- // 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<GroupInfoModel> 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: <Widget>[
- // 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: <Widget>[
- // 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: <Widget>[
- // 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: <Widget>[
- // 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<GroupInfoModel> 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: <Widget>[
- // 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: <Widget>[
- // 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<Widget> _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: <Widget>[
- avatar,
- Container(width: 17.0),
- Expanded(
- child: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: <Widget>[
- 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<ConversActionPage>
- 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<GroupInfoModel> 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: <Widget>[
- 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: <Widget>[
- 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: <Widget>[
- 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: <Widget>[
- 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<GroupInfoModel> 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: <Widget>[
- 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: <Widget>[
- 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(() {});
- // }
- // }
- }
|