diff --git a/android/app/build.gradle b/android/app/build.gradle index eaf4d92..bfd9259 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -56,9 +56,9 @@ android { // manifestPlaceholders = [ // AMAP_KEY : "1fd4e93e3b4b13747da41f484c955fe2", /// 高德地图key // ] - ndk { - abiFilters 'armeabi-v7a' - } + // ndk { + // abiFilters 'armeabi-v7a' + // } multiDexEnabled true manifestPlaceholders = [ JPUSH_PKGNAME : 'com.cyhd.henhoandroid', diff --git a/lib/chat/util_keyboard.dart b/lib/chat/util_keyboard.dart index d5350ce..bd194f2 100644 --- a/lib/chat/util_keyboard.dart +++ b/lib/chat/util_keyboard.dart @@ -87,11 +87,12 @@ class _UtilKeyboardState extends State { } AppNavigator.pushCoinBagPage(context); }))); - - iconList.add(_buildOtherSelect( - R.assetsImagesChatItem6, I18n.of(context).giving_gift, () { - _showGiftSheet(context); - })); + if (UserData().giftSwitch > 0) { + iconList.add(_buildOtherSelect( + R.assetsImagesChatItem6, I18n.of(context).giving_gift, () { + _showGiftSheet(context); + })); + } } iconList.add(_buildOtherSelect( @@ -313,11 +314,10 @@ class _UtilKeyboardState extends State { showToast(I18n.of(context).max_file.replaceFirst('/s1', 33.toString())); return; } - ///ios存在着文件夹才打得开 - File newFile= await FileCacheMgr().writeFile(file.path.split('/').last, file.readAsBytesSync()); - - + ///ios存在着文件夹才打得开 + File newFile = await FileCacheMgr() + .writeFile(file.path.split('/').last, file.readAsBytesSync()); int friendId = 0; if (!widget.isGroup) { @@ -394,12 +394,12 @@ class _UtilKeyboardState extends State { if (thumbnail.length > ImgSizeLimit) { print('图片较大 ${thumbnail.length}'); - File file =await FileCacheMgr().writeFile(DateTime.now().millisecondsSinceEpoch.toString(),thumbnail); + File file = await FileCacheMgr().writeFile( + DateTime.now().millisecondsSinceEpoch.toString(), thumbnail); File compressedFile = await FlutterNativeImage.compressImage(file.path, quality: 30, percentage: 40); - thumbnail =compressedFile.readAsBytesSync().toList(); - + thumbnail = compressedFile.readAsBytesSync().toList(); // thumbnail = await FlutterImageCompress.compressWithList(thumbnail, quality: 10); diff --git a/lib/home/Myprogram.dart b/lib/home/Myprogram.dart index c8a610f..622b8c5 100644 --- a/lib/home/Myprogram.dart +++ b/lib/home/Myprogram.dart @@ -85,6 +85,9 @@ class _MyProgramPageState extends State { break; } } + if (list.length == 0) { + _onRefresh(); + } } Future getData(callback) async { @@ -170,8 +173,7 @@ class _MyProgramPageState extends State { ), centerTitle: true, leading: CustomUI.buildCustomLeading(context), - - elevation: 1, + elevation: 1, actions: [ isMyself ? myPop.PopupMenuButton( diff --git a/lib/home/ProfilePage.dart b/lib/home/ProfilePage.dart index 67bde63..8d98af8 100644 --- a/lib/home/ProfilePage.dart +++ b/lib/home/ProfilePage.dart @@ -143,6 +143,8 @@ class _ProfilePageState extends State bool isShowAll = false; + double fansWidth = Screen.width - 105; + getUserInfo({mymsg = ''}) async { if (mymsg != '' && mymsg != null) { UserData().basicInfo.ownMsg = mymsg; @@ -312,6 +314,14 @@ class _ProfilePageState extends State } } + addProgramCallback(data) { + if (mounted) { + setState(() { + userInfo.dynamicNum++; + }); + } + } + void messageOn() { MessageMgr().on('inform_sucess', msgInformSucess); MessageMgr().on('refresh_money', msgBuyVip); @@ -321,6 +331,7 @@ class _ProfilePageState extends State MessageMgr().on('refresh_love_list', msgRefreshLoveList); MessageMgr().on('refresh_fans_num', msgRefreshFansNum); MessageMgr().on('change_my_headview', msgChangeMyHeadView); + MessageMgr().on('Add_program', addProgramCallback); } void messageOff() { @@ -332,6 +343,7 @@ class _ProfilePageState extends State MessageMgr().off('refresh_love_list', msgRefreshLoveList); MessageMgr().off('refresh_fans_num', msgRefreshFansNum); MessageMgr().off('change_my_headview', msgChangeMyHeadView); + MessageMgr().off('Add_program', addProgramCallback); } msgChangeMyHeadView(data) { @@ -385,7 +397,7 @@ class _ProfilePageState extends State Widget _buildSignIn() { return Container( - margin: EdgeInsets.only(top: Separate_Size, bottom: Separate_Size), + margin: EdgeInsets.only(top: 19, bottom: 19), padding: EdgeInsets.symmetric(horizontal: 10), child: FullWidthButton( iconCode: 0xe65c, @@ -394,6 +406,10 @@ class _ProfilePageState extends State title: I18n.of(context).sign_in, showDivider: false, onPressed: () { + if (UserData().sign <= 0) { + showToast(I18n.of(context).system_not_open); + return; + } Navigator.of(context).push(MaterialPageRoute( builder: (context) { return DailyBonusPage(); @@ -446,7 +462,8 @@ class _ProfilePageState extends State padding: EdgeInsets.only(top: 19), child: Column( children: [ - Row( + Container( + child: Row( crossAxisAlignment: CrossAxisAlignment.center, children: [ _buildHeadImg(), @@ -455,7 +472,7 @@ class _ProfilePageState extends State _buildButtonList(), ]) ], - ), + )), _buildUserChips(), _buildAttestation(), _buildMyMsg(), @@ -473,7 +490,7 @@ class _ProfilePageState extends State bool showAllContent = isExpansion(userInfo.ownMsg, width); return Container( padding: - EdgeInsets.only(left: 25.5, bottom: isMyself ? 20 : 5, right: 10), + EdgeInsets.only(left: 25.5, bottom: isMyself ? 20 : 20, right: 10), child: userInfo.ownMsg == null || userInfo.ownMsg == '' ? (isMyself ? InkWell( @@ -635,7 +652,7 @@ class _ProfilePageState extends State ]; } else if (userInfo.sex == UserData().basicInfo.sex) { list = [ - _buildBorderButton(I18n.of(context).private_chat, 140, + _buildBorderButton(I18n.of(context).private_chat, fansWidth - 80, isCanWatch ? buyChatAccount : cannotWatchTips, iconCode: IconData(0xe68c, fontFamily: 'iconfont')), ]; @@ -702,7 +719,7 @@ class _ProfilePageState extends State return InkWell( onTap: callback, child: Container( - width: (Screen.width - 105) / 3, + width: fansWidth / 3, child: Column( children: [ Stack( @@ -828,11 +845,11 @@ class _ProfilePageState extends State textScaleFactor: 1.0, style: TextStyle(fontSize: 9, color: Colors.white), )) - : Text(''), + : Container(width: 0), isVip && isMan ? Container( child: isSvip ? Constants.svipIcon : Constants.vipIcon) - : Text(''), + : Container(width: 0), (isAttestation && !isMan) || isVip && isMan ? _buildDivder() : Container(), @@ -1015,7 +1032,7 @@ class _ProfilePageState extends State child.addAll([ _buildHeadView(), Container( - margin: EdgeInsets.only(top: Separate_Size, bottom: Separate_Size), + margin: EdgeInsets.only(top: 19, bottom: 19), padding: EdgeInsets.symmetric(horizontal: 10), child: _buildPicture(), decoration: BoxDecoration( @@ -1485,7 +1502,6 @@ class _ProfilePageState extends State return Container( width: cardWidth, - margin: EdgeInsets.only(top: Separate_Size), decoration: BoxDecoration( color: Colors.white, border: Border( @@ -1511,7 +1527,6 @@ class _ProfilePageState extends State Widget _buildMoneyBox() { //认证、钱包、隐私连麦设置 return Container( - margin: EdgeInsets.only(top: Separate_Size), decoration: BoxDecoration( color: Colors.white, border: Border( @@ -1604,7 +1619,7 @@ class _ProfilePageState extends State ); } - Widget _buildIcon(code, str, isCanHit, callback, {iconSize = 28.0}) { + Widget _buildIcon(code, str, isCanHit, callback, {iconSize = 30.0}) { var color = isCanHit ? Constants.BlueTextColor : Constants.GreyTextColor; return InkWell( onTap: isCanHit @@ -1628,7 +1643,7 @@ class _ProfilePageState extends State child: Text( str, textScaleFactor: 1.0, - style: TextStyle(color: color, fontSize: 12), + style: TextStyle(color: color, fontSize: 14), ), padding: EdgeInsets.only(left: 5)) ], diff --git a/lib/home/WhiteAndBlackList.dart b/lib/home/WhiteAndBlackList.dart index d3b5ed1..ff9580f 100644 --- a/lib/home/WhiteAndBlackList.dart +++ b/lib/home/WhiteAndBlackList.dart @@ -43,12 +43,11 @@ class _WhiteAndBlackPageState extends State { var item = list[i]; if (item['FollowUserId'] == data['UserId'] && data['flag'] != 0) { list.removeAt(i); - break; } } if (list.length == 0) { - _refreshController.refreshCompleted(); + _onRefresh(); } setState(() {}); } @@ -176,7 +175,7 @@ class _WhiteAndBlackPageState extends State { setState(() { list.removeAt(i); if (list.length == 0) { - _refreshController.refreshCompleted(); + _onRefresh(); } }); break; diff --git a/lib/home/group_setting.dart b/lib/home/group_setting.dart index 6185aa3..70e1a2e 100644 --- a/lib/home/group_setting.dart +++ b/lib/home/group_setting.dart @@ -265,7 +265,8 @@ class GroupSettingState extends State { setState(() { showGroupFriendNickname = val; widget.groupInfoModel.updateShowNameSwitch(val); - MsgHandler.setGroupIsShowMenberNiceNameReq(widget.groupInfoModel.sessionId, val); + MsgHandler.setGroupIsShowMenberNiceNameReq( + widget.groupInfoModel.sessionId, val); }); }), @@ -540,8 +541,11 @@ class GroupSettingState extends State { List list = []; for (int index = 0; index < shouldShow; index++) { var member = members[index]; - var refName = Provider.of(context) - .getGroupRefName(widget.groupInfoModel.sessionId, member.memberId); + bool isMyself = member.memberId == UserData().basicInfo.userId; + var refName = isMyself + ? UserData().basicInfo.nickName + : Provider.of(context).getGroupRefName( + widget.groupInfoModel.sessionId, member.memberId); list.add(GestureDetector( child: Container( child: Column( @@ -558,9 +562,7 @@ class GroupSettingState extends State { width: size - 30, height: size - 30, )), - SizedBox( - height: 5, - ), + SizedBox(height: 5), Container( width: size - 30, alignment: Alignment.center, @@ -582,7 +584,10 @@ class GroupSettingState extends State { onTap: () { if (members[index].memberId != UserData().basicInfo.userId) { AppNavigator.pushProfileInfoPage(context, members[index].memberId, - fromWhere: 2, addMode: !FriendListMgr().isMyFriend(members[index].memberId) ? 1 : 0); + fromWhere: 2, + addMode: !FriendListMgr().isMyFriend(members[index].memberId) + ? 1 + : 0); } }, )); diff --git a/lib/home/homeMain.dart b/lib/home/homeMain.dart index d2eaea4..585dd55 100644 --- a/lib/home/homeMain.dart +++ b/lib/home/homeMain.dart @@ -31,6 +31,7 @@ import 'package:oktoast/oktoast.dart'; import 'package:provider/provider.dart'; import 'package:shared_preferences/shared_preferences.dart'; import 'package:chat/utils/my_bottom_navigation_bar.dart' as myBottm; +import 'realtimehelper/real_time_helper_page.dart'; import 'friend_page.dart'; import 'group_chat_page.dart'; @@ -362,121 +363,121 @@ class _HomeMainState extends State { I18n.of(context).me ]; -// _navigationViews = [ -// NavigationIconView( -// title: _titles[2], -// icon: IconData( -// 0xe67c, -// fontFamily: 'iconfont', -// ), -// isShowdot: true, -// iconSize: 29), -// NavigationIconView( -// title: _titles[0], -// isShowdot: true, -// iconMargin: EdgeInsets.only(top: 2), -// type: 5, -// icon: IconData( -// 0xe66e, -// fontFamily: 'iconfont', -// ), -// iconSize: 26.5), -// NavigationIconView( -// title: _titles[1], -// icon: IconData( -// 0xe656, -// fontFamily: 'iconfont', -// ), -// isCenter: true, -// iconSize: 31), -// NavigationIconView( -// title: _titles[1], -// isShowdot: true, -// icon: IconData( -// 0xe60b, -// fontFamily: 'iconfont', -// ), -// type: 6, -// iconSize: 26.5), -// NavigationIconView( -// title: _titles[3], -// icon: IconData( -// 0xe67b, -// fontFamily: 'iconfont', -// ), -// iconSize: 26.5), -// ]; -// -// _pages = [ -// RealTimeHelperPage(), -// FriendPage(), -// FindPage(), -// ConversActionPage(), -//// GroupChatListPage(), -// ProfilePage( -// userId: UserData().basicInfo.userId, -// ), -// ]; - - _navigationViews = [ - NavigationIconView( - title: _titles[1], - isShowdot: true, - icon: IconData( - 0xe60b, - fontFamily: 'iconfont', - ), - type: 1, - iconSize: 26.5), - NavigationIconView( - title: _titles[0], - isShowdot: true, - iconMargin: EdgeInsets.only(top: 2), - type: 5, - icon: IconData( - 0xe663, - fontFamily: 'iconfont', - ), - iconSize: 26.5), - NavigationIconView( - title: _titles[1], - icon: IconData( - 0xe656, - fontFamily: 'iconfont', - ), - isCenter: true, - iconSize: 31), - - NavigationIconView( - title: _titles[3], - isShowdot: true, - icon: IconData( - 0xe66e, - fontFamily: 'iconfont', - ), - type: 4, - iconSize: 26.5), - - NavigationIconView( - title: _titles[3], - icon: IconData( - 0xe67b, - fontFamily: 'iconfont', - ), - iconSize: 26.5), - ]; - - _pages = [ - ConversActionPage(), -// RealTimeHelperPage(), - FriendPage(), - FindPage(), -// ConversActionPage(), - GroupChatListPage(), - ProfilePage( - userId: UserData().basicInfo.userId, - ), - ]; + _navigationViews = [ + NavigationIconView( + title: _titles[2], + icon: IconData( + 0xe67c, + fontFamily: 'iconfont', + ), + isShowdot: true, + iconSize: 29), + NavigationIconView( + title: _titles[0], + isShowdot: true, + iconMargin: EdgeInsets.only(top: 2), + type: 5, + icon: IconData( + 0xe66e, + fontFamily: 'iconfont', + ), + iconSize: 26.5), + NavigationIconView( + title: _titles[1], + icon: IconData( + 0xe656, + fontFamily: 'iconfont', + ), + isCenter: true, + iconSize: 31), + NavigationIconView( + title: _titles[1], + isShowdot: true, + icon: IconData( + 0xe60b, + fontFamily: 'iconfont', + ), + type: 6, + iconSize: 26.5), + NavigationIconView( + title: _titles[3], + icon: IconData( + 0xe67b, + fontFamily: 'iconfont', + ), + iconSize: 26.5), + ]; + + _pages = [ + RealTimeHelperPage(), + FriendPage(), + FindPage(), + ConversActionPage(), +// GroupChatListPage(), + ProfilePage( + userId: UserData().basicInfo.userId, + ), + ]; + +// _navigationViews = [ +// NavigationIconView( +// title: _titles[1], +// isShowdot: true, +// icon: IconData( +// 0xe60b, +// fontFamily: 'iconfont', +// ), +// type: 1, +// iconSize: 26.5), +// NavigationIconView( +// title: _titles[0], +// isShowdot: true, +// iconMargin: EdgeInsets.only(top: 2), +// type: 5, +// icon: IconData( +// 0xe663, +// fontFamily: 'iconfont', +// ), +// iconSize: 26.5), +// NavigationIconView( +// title: _titles[1], +// icon: IconData( +// 0xe656, +// fontFamily: 'iconfont', +// ), +// isCenter: true, +// iconSize: 31), + +// NavigationIconView( +// title: _titles[3], +// isShowdot: true, +// icon: IconData( +// 0xe66e, +// fontFamily: 'iconfont', +// ), +// type: 4, +// iconSize: 26.5), + +// NavigationIconView( +// title: _titles[3], +// icon: IconData( +// 0xe67b, +// fontFamily: 'iconfont', +// ), +// iconSize: 26.5), +// ]; + +// _pages = [ +// ConversActionPage(), +// // RealTimeHelperPage(), +// FriendPage(), +// FindPage(), +// // ConversActionPage(), +// GroupChatListPage(), +// ProfilePage( +// userId: UserData().basicInfo.userId, +// ), +// ]; } @override diff --git a/lib/home/money_detail.dart b/lib/home/money_detail.dart index 485de8b..847adf6 100644 --- a/lib/home/money_detail.dart +++ b/lib/home/money_detail.dart @@ -331,7 +331,8 @@ class MoneyDetailPageState extends State //余额Status 0=交易成功,1=系统退回 //收入 0=冻结 ,1=成功 ,2= 退回 //冻结和成功,你都可以表示成功 - showReturn: (widget.type == 1 && data['Status'] ==1) || (widget.type == 2 && data['Status'] ==2), + showReturn: (widget.type == 1 && data['Status'] == 1) || + (widget.type == 2 && data['Status'] == 2 && data['DetailType'] != 1), isInCome: widget.type == 2, money: isAdd(data['DetailType']) ? data['Value'] : -data['Value'], title: RichTitle.getRichTitleWidget(data, context, diff --git a/lib/home/new_friends.dart b/lib/home/new_friends.dart index 94fbd1f..7a509b5 100644 --- a/lib/home/new_friends.dart +++ b/lib/home/new_friends.dart @@ -8,10 +8,12 @@ import 'package:chat/utils/HttpUtil.dart'; import 'package:chat/utils/MessageMgr.dart'; import 'package:chat/utils/TokenMgr.dart'; import 'package:chat/utils/conversation_table.dart'; +import 'package:chat/utils/screen.dart'; import 'package:dio/dio.dart'; import 'package:cached_network_image/cached_network_image.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; +import 'package:oktoast/oktoast.dart'; import 'package:provider/provider.dart'; import 'package:chat/models/friends_info.dart'; import 'ProfilePage.dart'; @@ -120,6 +122,52 @@ class _ContactItem extends StatelessWidget { ), ); + _button = Dismissible( + key: Key(userId.toString()), + child: _button, + direction: DismissDirection.endToStart, + background: Container( + color: Colors.red, + child: Row( + mainAxisAlignment: MainAxisAlignment.end, + children: [ + fixedText(I18n.of(context).delete, color: Colors.white), + Icon( + Icons.delete, + color: Colors.white, + ), + SizedBox(width: 20), + ], + ), + ), + confirmDismiss: (direction) async { + var _confirmContent = I18n.of(context).confirm_delete; + bool isDismiss = + await CustomUI.showIosDialog(context, _confirmContent, () async { + Map data = { + "userId": UserData().basicInfo.userId, + "aUserId": userId, + }; + data['sign'] = TokenMgr().getSign(data); + + Response res = await HttpUtil().post( + 'friendship/delete/applicationRecord', + data: data, + isShowLoading: true); + + Map resData = res.data; + //showToast(resData['msg']); + if (resData['code'] == 0) { + MessageMgr().emit('delete_friend_record', userId); + } + Navigator.of(context).pop(true); + }, () { + Navigator.of(context).pop(false); + }); + + return isDismiss; + }); + //分组标签 Widget _itemBody; if (this.groupTitle != null) { @@ -201,6 +249,7 @@ class _NewFriendsPageState extends State { getNewFriendList(); _scrollController = new ScrollController(); MessageMgr().on('do_friend_apply', messageApply); + MessageMgr().on('delete_friend_record', deleteFriendRecord); _functionButtons = [ FriendsInfo( @@ -257,6 +306,17 @@ class _NewFriendsPageState extends State { } } + deleteFriendRecord(userId) { + for (int i = 0; i < friendList.length; i++) { + if (friendList[i].friendId == userId) { + setState(() { + friendList.removeAt(i); + }); + break; + } + } + } + getNewFriendList() async { Map data = { "userId": UserData().basicInfo.userId, @@ -281,8 +341,9 @@ class _NewFriendsPageState extends State { @override void dispose() { _scrollController.dispose(); - super.dispose(); MessageMgr().off('do_friend_apply', messageApply); + MessageMgr().off('delete_friend_record', deleteFriendRecord); + super.dispose(); } @override diff --git a/lib/utils/HttpUtil.dart b/lib/utils/HttpUtil.dart index df8f6c1..1f35c0c 100644 --- a/lib/utils/HttpUtil.dart +++ b/lib/utils/HttpUtil.dart @@ -44,9 +44,9 @@ class HttpUtil { //static const String BaseUrl = 'http://192.168.0.223:7001/'; //static const String BaseUrl = 'http://192.168.0.207:9080/'; -// static const String BaseUrl = 'http://120.79.107.63:9080/'; + static const String BaseUrl = 'http://120.79.107.63:9080/'; //static const String BaseUrl = 'http://192.168.0.177:9016/'; - static const String BaseUrl = 'https://datasm.chengyouhd.com/'; + //static const String BaseUrl = 'https://datasm.chengyouhd.com/'; static HttpUtil _getInstance() { if (_instance == null) { diff --git a/pubspec.yaml b/pubspec.yaml index d190d37..5e04abf 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: chat description: A new Flutter project. #修改版本号后get-clean -version: 1.1.2+17 +version: 1.1.0+15 environment: sdk: ">=2.1.0 <3.0.0"