From 7ce53c28289b92e47c2c58e741e9906941fac91f Mon Sep 17 00:00:00 2001 From: ZCM <772112648@qq.com> Date: Tue, 7 Apr 2020 18:42:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug=201.=E6=B6=89=E9=BB=84?= =?UTF-8?q?=E5=9B=BE=E4=B8=8A=E4=BC=A0=E4=B8=8A=E6=9D=A5=EF=BC=8C=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E7=A9=BA=E7=99=BD=EF=BC=8C=E5=8F=91=E8=A1=A8=E5=90=8E?= =?UTF-8?q?=E5=8A=A8=E6=80=81=E7=9C=8B=E4=B8=8D=E5=88=B0=E8=BF=99=E6=9D=A1?= =?UTF-8?q?=E6=B6=88=E6=81=AF=202.=E5=8F=91=E5=B8=83=E7=9A=84=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E7=82=B9=E5=BC=80=E4=B8=8D=E8=A6=81=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E6=94=BE=E5=A4=A7=EF=BC=8C=E5=8F=82=E8=80=83=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E6=AF=94=E4=BE=8B=E6=AD=A3=E5=B8=B8=E5=B0=B1=E5=8F=AF=E4=BB=A5?= =?UTF-8?q?=E4=BA=86=20=E9=80=9A=E8=AE=AF=E5=BD=95=E3=80=81=E6=96=B0?= =?UTF-8?q?=E6=9C=8B=E5=8F=8B=E7=95=8C=E9=9D=A2=E8=B0=83=E6=95=B4=E5=92=8C?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=B7=BB=E5=8A=A0=E5=A5=BD=E5=8F=8B=E7=95=8C?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- android/app/build.gradle | 6 +- assets/fonts/iconfont.ttf | Bin 45092 -> 45464 bytes i18n/vi-VN.json | 2 +- lib/home/AddProgram.dart | 1 + lib/home/Myprogram.dart | 1 - lib/home/ProfilePage.dart | 5 +- lib/home/friend_page.dart | 126 ++++++++--------------- lib/home/my_qr.dart | 51 ++++----- lib/home/new_addfriends.dart | 194 +++++++++++++++++++++++++++++++++++ lib/home/new_friends.dart | 94 ++++++++++++++++- lib/utils/HttpUtil.dart | 30 +----- lib/utils/PicSwiper.dart | 4 +- 12 files changed, 362 insertions(+), 152 deletions(-) create mode 100644 lib/home/new_addfriends.dart diff --git a/android/app/build.gradle b/android/app/build.gradle index c2c5d18..b7fee24 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/assets/fonts/iconfont.ttf b/assets/fonts/iconfont.ttf index d41f39566d582832c7d068141d93034015cb1778..f36674ba548112daf4867bb949d5f8d61d9de9f1 100644 GIT binary patch delta 2368 zcmYk8du&|A6~@1N_u=>2YkTd)aU47AVB>iG$i{i#yN+YX6CC0yNmY~m6zMJ*8NpmzlIbD-j_&4YKGhmjEC5OX*KU8rQD7{Qu zVLUvYGTt%oWqlF-8x!Gpq;FSU?qT5K;~WrAB_}4|=>F4nV2=H+Cr`ia-*5^B>ty%! z_g;Un-1-+voHPKRzdF?OL%HzX!k9bYIKg%yOtJEjai{DCBWzUL$Bn4nZ=SXL%u@Sv z({G2&^6hSJM5fBKtg8I=3v|gbf(OM%;rf7{vY9i63DAL)d1Qx&}Mf!a@jrn88ChiidFw z863w6oWxeFM?dbu4s6HWSchJQ(QTi0eQTe0m1Ih}61ZFC&F3Vb7;Ay+gDTW;rBFp0 zt{IBE6=e6SL?dUUIGey7L6vDFV#=eDNUCxT_X|~#krxN>Jd{_%AVBeg3JeDn&qRT3RR~;Mnrj01V$RFUIP(bs)2|$Xdt4? zG!W574Mem_0})-Wfr$Dw5Yc80L~{j@krzbt4h=-KMFSD#(FhRHJ2eo|HVs5{r3NC} zu7QXKG!W4a4XCF&HMoP9M0K%2AfnwGi0CQ}L^P;@h_2Q^M47FEWQJO!frzfvKt$JR zAfoFv5Y4*;ouq}J7=u=~bZ1ISOsRuQ!VG=^6HR!WH zD;dt5WQ*jJ>nYX=lM?DT8m1@I^BVNCysTl$Lj6_4)Bxslts(O*neAkK08}pW7;I;QzQbqCtZS;mu%Gdc zWM7^>+L@^Z7H&A6aWwFYRKSl$IrDT0Q=^5qx04raEic3-Y~%NI2tP#_5yTM3A)uVA|98_N zC=-e63igSFi^FS!KL4xM&Y2nG$CmX4iv!kcR%q6;Li}9`r7bIWA~$agw0`rA@lhz$ zYK5+bLZRw(`is0RcQGW6q1-1|t{5Hcp?{$LKF=Yj!60Dcy{>(z%OP zUnut<%QEUL#ba(H}_O;Z{KfQE#t+RFGVb;Zhiko?@;bt!{Ve7D;KwBje$FF zWm_+tHjPu+H(zoZ4&xDIADf#sJj2oO!EmDBP%NC-7f#yMbM4!U<0FB6;ql?*NW?ul zMSHA(Ua44O)U`jHNXMM~Z{nbH;&3eG*t2b?`(R}MRA7DeSS*~JES;R1W@|cT z_s{t}?ulq*CK_|^4^Jc$qqZ?uWtFEntw=r?=W8-nl8PioIqDG2bWcvDBc3CaAB~Jh j64NpMijG9~1!BX=L?AnG=}V)mFfx855{rlV5d!`Pve!43 delta 1973 zcmYk7ZERCj7{~v&Z)>})8{Njn7y~w7FRTn1Zz7C2#qlz5kV*U`>AJEO`nGj*EpB!! zgdmEt91|Bl7)+1=nL<)gV)j7@ABZ7F(GWCjbZ+u-4MO)@BYs{_nh;8 z?&xrcI?)m=GCLn(TI589o`n$_d zbo6uV6j>c&huiLGWqXn=3Pt-<-q`d5uJ;XKaYo_+|C*ZxP9X0T`y5e!Dq&1owy|Bt z@e5-9Xt24n{LwIQrj`?;iFmR<{Nw#kfOF%3{q?cQ>W!l?IF?Kvd3$(I!TLXuYhwrS z-MPbz%+%?>rXvoY^&l^uut+ZtnK!B`4Zl&MMvTw~dk!E|XW-4pZAa&SZL@EBdPbWc z_w!nPWn5HmTB`HsKJKIzDYx~8JieV+NrSn(Wn#u0#%cCS7!6c6pKt;;;{dPAQ7Apy zqFZ%RA5>MgouwAz{~rk;AKS4*U9h!nT!XcE66^33)?)*ju@NnJ8m)K+&temvLmM_@ z3!|_i!pFD4i*`JZ4(vh!cEYI&?c03@^60u12k;7pFpO7`!3Yjw7F^iI=p68%2sy}= zpGu9{AE^t5UA^USWGWbo9Nb>b%@r6MG=EruQ9`>+u!G7c6;Mp&Y642Ac_x@mmH7mv zRF4Um6uQ6!bEt(T8EzN!EE915wbuj;Oc$A89#sqpDyd>fFrO-h1PiEQNU)G9hLVX@ zR52u|rivfIBI;aj6HmZmUWlRW#uBO+64X$|kbqgN#gL$my1)eWR52u2N)F(k}PXfY(rQD`wF%vNYIBxs?EAz=nXiy>hy zLyI9{Rzr&)VSXc{#gH)7p~a9e>7m7tF#Vy$kgyP-#gMQhpj%9&M70wwy}g*PtdY3LA!d_)o2u`FI=UDGpk)+8;cFz8Z=>%L8nYuZqR8H zY*lx11DSVtMObvu@0qatpx-xPAwpj=kr#&k*@VT3drUBaWr}-@Okly{9)l8Cy7(n* zB1O!j6>s1-<3;14rQUMJ>aliYte@H2?c?^Fj&+V3IfXf!ot4g*^M-4M>vK2UDfgY+ zQ+Z$Jug$;a>GT}(+$lI&*fp!uoA6E*T`4|Xax&*PSyIzn^Ks1|wH>t|)!waZuRC4usXw%|Vdorvt8B+uMu4U7)*%lQ@y`+W%|EPt@>)CX7v0c5E7*W3`uV&9i zmK*9=ctl<7i)8J+6NdUWdNO-Cf9(s(wJ)MJ?7x-WK3HgEFZPdHvX@gsjoGoY$1TQa zwrav=l)w=P`S<%{HvT8=&tW?ej`gU@^A(F-gTXFeI1rEda(cu5SeHNUO@`tLx$jG) zeEbhggna7ihYfATUA(_9JToes3I~&+fxdx)^ngDmU3;QD^@nZAm%|BnwA<4(ti`1!Ji&zqyHEtS22G U=;aX3iw~rO*@^Q%7|dGy3l { : CachedNetworkImage( imageUrl: f, fit: BoxFit.cover, + placeholder: CustomUI.buildImgLoding, ), ))), Positioned( diff --git a/lib/home/Myprogram.dart b/lib/home/Myprogram.dart index 6271d9d..c8a610f 100644 --- a/lib/home/Myprogram.dart +++ b/lib/home/Myprogram.dart @@ -91,7 +91,6 @@ class _MyProgramPageState extends State { var data = { "userId": UserData().basicInfo.userId, "visitUserId": widget.userId, - //"type": widget.isProgram == true ? 1 : 2, }; data['sign'] = TokenMgr().getSign(data); data['page'] = _page; diff --git a/lib/home/ProfilePage.dart b/lib/home/ProfilePage.dart index 335b077..78d53ac 100644 --- a/lib/home/ProfilePage.dart +++ b/lib/home/ProfilePage.dart @@ -191,9 +191,6 @@ class _ProfilePageState extends State .initVoucher(data['Voucher']); } }); - } else { - // getFirstDy(); - // getFirstProgram(); } } @@ -1654,7 +1651,7 @@ class _ProfilePageState extends State //同意好友后发送打招呼 MsgModel msgModel = MsgHandler.createSendMsg( - ChatType.TextChatType, I18n.of(context).new_friends_tips, + ChatType.TextChatType, I18n.of(context).new_friends_tips, friendId: userInfo.userId, refMsg: null, refShortTxt: null, diff --git a/lib/home/friend_page.dart b/lib/home/friend_page.dart index 646b7f8..1df91ee 100644 --- a/lib/home/friend_page.dart +++ b/lib/home/friend_page.dart @@ -1,9 +1,7 @@ -import 'dart:io'; - import 'package:cached_network_image/cached_network_image.dart'; import 'package:chat/home/global_search.dart'; +import 'package:chat/home/new_addfriends.dart'; import 'package:chat/home/new_friends.dart'; -import 'package:chat/home/search_newfriend.dart'; import 'package:chat/models/friends_info.dart'; import 'package:flutter/material.dart'; import 'package:chat/data/UserData.dart'; @@ -191,18 +189,18 @@ class _FriendPageState extends State { )); } - showPermission() async { - if (await CustomUI.showPermissionSetting( - Constants.getCurrentContext(), - PermissionGroup.contacts, - I18n.of(Constants.getCurrentContext()).contact_permission)) { - MessageMgr().emit('PostContact'); - Navigator.push(Constants.getCurrentContext(), - MaterialPageRoute(builder: (BuildContext context) { - return ContactsPage(); - })); - } - } + // showPermission() async { + // if (await CustomUI.showPermissionSetting( + // Constants.getCurrentContext(), + // PermissionGroup.contacts, + // I18n.of(Constants.getCurrentContext()).contact_permission)) { + // MessageMgr().emit('PostContact'); + // Navigator.push(Constants.getCurrentContext(), + // MaterialPageRoute(builder: (BuildContext context) { + // return ContactsPage(); + // })); + // } + // } getFriendList() async { friendList = await FriendListMgr().getFriendList(); @@ -260,84 +258,14 @@ class _FriendPageState extends State { } initNewFriendsList(showUserList) { - _functionButtons = [ - FriendsInfo( - avatar: '', - userId: 0, - iconCode: 0xe659, - title: I18n.of(Constants.getCurrentContext()).scan, - gradient: LinearGradient( - begin: Alignment.topCenter, - end: Alignment.bottomCenter, - colors: [ - const Color(0xFF6171F1), - const Color(0xFF3441C1), - ]), - onPressed: () { - CustomUI().goScanPage(Constants.getCurrentContext()); - }), - FriendsInfo( - avatar: '', - userId: 0, - iconCode: 0xe67a, - isShowDivder: true, - title: I18n.of(Constants.getCurrentContext()).contact_add, - gradient: LinearGradient( - begin: Alignment.topCenter, - end: Alignment.bottomCenter, - colors: [ - const Color(0xFF1AC59E), - const Color(0xFF088E76), - ]), - onPressed: () async { - final PermissionStatus addStatus = await PermissionHandler() - .checkPermissionStatus(PermissionGroup.contacts); - if ((addStatus == PermissionStatus.unknown || - addStatus == PermissionStatus.denied) && - Platform.isIOS) { - CustomUI.buildContacts(context, I18n.of(context).privacyAgreement, - I18n.of(context).determine, () { - Navigator.of(context).pop(); - showPermission(); - }, title: I18n.of(context).tip); - } else { - showPermission(); - } - }), - FriendsInfo( - avatar: '', - userId: 0, - iconCode: 0xe662, - isShowDivder: true, - title: I18n.of(Constants.getCurrentContext()).add_friends, - gradient: LinearGradient( - begin: Alignment.topCenter, - end: Alignment.bottomCenter, - colors: [ - const Color(0xFF9E58E5), - const Color(0xFF6118A6), - ]), - onPressed: () async { - Navigator.push(Constants.getCurrentContext(), - MaterialPageRoute(builder: (BuildContext context) { - return SearchNewFriendsPage(); - })); - }), - ]; - _functionButtons.insert(0, _buildNewFriends(showUserList)); + _functionButtons = [_buildNewFriends(showUserList)]; } msgAddfrend(data) { - // setState(() { - // _contactsFuture = FriendListMgr().getFriendList(); - // }); getFriendList(); } msgDeletefrend(data) { - // setState(() { - // _contactsFuture = FriendListMgr().getFriendList(); - // }); getFriendList(); } @@ -545,6 +473,32 @@ class _FriendPageState extends State { textScaleFactor: 1.0, style: Constants.MainTitleStyle), centerTitle: false, elevation: 1, + actions: [ + Container( + child: IconButton( + icon: CircleAvatar( + backgroundColor: Constants.GreyBackgroundColor, + radius: 13.75, + child: Padding( + padding: EdgeInsets.only(bottom: 1.5), + child: Icon( + IconData(0xe662, + fontFamily: Constants.IconFontFamily), + color: Constants.BlackTextColor, + size: 21, + ))), + onPressed: () { + Navigator.of(context).push( + new MaterialPageRoute( + builder: (context) { + return NewAddFriendsPage(); + }, + ), + ); + }, + ), + ), + ], bottom: CustomUI.buildSearchButton(context, () { Navigator.of(context).push( new MaterialPageRoute( diff --git a/lib/home/my_qr.dart b/lib/home/my_qr.dart index 2d97a59..cf0f169 100644 --- a/lib/home/my_qr.dart +++ b/lib/home/my_qr.dart @@ -14,30 +14,33 @@ import 'package:qr_flutter/qr_flutter.dart'; class MyQr extends StatelessWidget { @override Widget build(BuildContext context) { - return Container( - alignment: Alignment.center, - margin: EdgeInsets.only(top: 55.5, left: 25, right: 25), - height: 400, - decoration: BoxDecoration( - color: Colors.white, - borderRadius: BorderRadius.circular(10), - ), - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - _head(context), - _qrImg(), - Container( - padding: EdgeInsets.all(20), - child: Text( - I18n.of(context).scan_and_add, - textScaleFactor: 1.0, - style: TextStyle(fontSize: 12.5), - ), - ) - ], - ), - ); + return Align( + alignment: Alignment.topCenter, + child: Container( + alignment: Alignment.center, + margin: EdgeInsets.only(top: 55.5), + width: 315, + height: 424, + decoration: BoxDecoration( + color: Colors.white, + borderRadius: BorderRadius.circular(10), + ), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + _head(context), + _qrImg(), + Container( + padding: EdgeInsets.all(20), + child: Text( + I18n.of(context).scan_and_add, + textScaleFactor: 1.0, + style: TextStyle(fontSize: 12.5), + ), + ) + ], + ), + )); } _qrImg() { diff --git a/lib/home/new_addfriends.dart b/lib/home/new_addfriends.dart new file mode 100644 index 0000000..82010a2 --- /dev/null +++ b/lib/home/new_addfriends.dart @@ -0,0 +1,194 @@ +import 'dart:io'; + +import 'package:cached_network_image/cached_network_image.dart'; +import 'package:chat/home/global_search.dart'; +import 'package:chat/home/new_friends.dart'; +import 'package:chat/models/friends_info.dart'; +import 'package:chat/utils/TutorialOverlay.dart'; +import 'package:flutter/material.dart'; +import 'package:chat/data/UserData.dart'; +import 'package:chat/data/constants.dart'; +import 'package:chat/generated/i18n.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/conversation_table.dart'; +import 'package:chat/utils/friend_list_mgr.dart'; +import 'package:chat/utils/screen.dart'; +import 'package:dio/dio.dart'; +import 'package:oktoast/oktoast.dart'; +import 'package:permission_handler/permission_handler.dart'; +import 'package:shared_preferences/shared_preferences.dart'; +import 'address_book.dart'; +import 'my_qr.dart'; + +List showUserList = []; + +bool isHaveNewFriends() { + return showUserList.length > 0; +} + +class NewAddFriendsPage extends StatefulWidget { + @override + _NewAddFriendsPageState createState() => _NewAddFriendsPageState(); +} + +class _NewAddFriendsPageState extends State { + ScrollController _scrollController; + List _functionButtons = []; + @override + void initState() { + super.initState(); + + _functionButtons = [ + InkWell( + onTap: () { + Navigator.of(context).push(TutorialOverlay( + child: InkWell( + onTap: () { + Navigator.of(context).pop(); + }, + child: Scaffold( + backgroundColor: + Constants.BlackTextColor.withOpacity(0.0), + body: Container( + margin: EdgeInsets.only(top: Screen.height*0.05), + alignment: Alignment.center, + child: MyQr()))))); + }, + child: Container( + height: 70, + width: Screen.width, + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Container( + constraints: BoxConstraints(maxWidth: 200), + child: Text( + '${I18n.of(Constants.getCurrentContext()).my_qr}: ${UserData().basicInfo.nickName}', + style: TextStyle(fontSize: 13), + overflow: TextOverflow.ellipsis, + )), + SizedBox(width: 9), + Container( + margin: EdgeInsets.only(bottom: 3), + child: Icon( + IconData(0xe682, fontFamily: Constants.IconFontFamily), + size: 18, + color: const Color(0xFF008AFF), + )) + ]), + )), + FriendsInfo( + avatar: '', + userId: 0, + iconCode: 0xe659, + title: I18n.of(Constants.getCurrentContext()).scan, + gradient: LinearGradient( + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + colors: [ + const Color(0xFF6171F1), + const Color(0xFF3441C1), + ]), + onPressed: () { + CustomUI().goScanPage(Constants.getCurrentContext()); + }), + FriendsInfo( + avatar: '', + userId: 0, + iconCode: 0xe67a, + isShowDivder: true, + title: I18n.of(Constants.getCurrentContext()).contact_add, + gradient: LinearGradient( + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + colors: [ + const Color(0xFF1AC59E), + const Color(0xFF088E76), + ]), + onPressed: () async { + final PermissionStatus addStatus = await PermissionHandler() + .checkPermissionStatus(PermissionGroup.contacts); + if ((addStatus == PermissionStatus.unknown || + addStatus == PermissionStatus.denied) && + Platform.isIOS) { + CustomUI.buildContacts(context, I18n.of(context).privacyAgreement, + I18n.of(context).determine, () { + Navigator.of(context).pop(); + showPermission(); + }, title: I18n.of(context).tip); + } else { + showPermission(); + } + }), + ]; + _scrollController = new ScrollController(); + } + + showPermission() async { + if (await CustomUI.showPermissionSetting( + Constants.getCurrentContext(), + PermissionGroup.contacts, + I18n.of(Constants.getCurrentContext()).contact_permission)) { + MessageMgr().emit('PostContact'); + Navigator.push(Constants.getCurrentContext(), + MaterialPageRoute(builder: (BuildContext context) { + return ContactsPage(); + })); + } + } + + @override + void dispose() { + super.dispose(); + _scrollController.dispose(); + } + + @override + Widget build(BuildContext context) { + final List _body = []; + _body.addAll([ + ListView.builder( + controller: _scrollController, + itemBuilder: (BuildContext context, int index) { + if (index == 0) { + return Padding( + padding: EdgeInsets.only(top: 7), + child: _functionButtons[index], + ); + } else { + return _functionButtons[index]; + } + }, + itemCount: _functionButtons.length, + ), + ]); + + return Scaffold( + resizeToAvoidBottomPadding: false, + appBar: AppBar( + backgroundColor: AppColors.NewAppbarBgColor, + title: Text(I18n.of(context).add_friends, + textScaleFactor: 1.0, style: Constants.MainTitleStyle), + centerTitle: true, + elevation: 1, + leading: CustomUI.buildCustomLeading(context), + bottom: CustomUI.buildSearchButton(context, () { + Navigator.of(context).push( + new MaterialPageRoute( + builder: (context) { + return GlobalSearchPage( + type: GlobalSearchPageType.SearchNewFriends, + ); + }, + ), + ); + })), + body: Stack( + children: _body, + )); + } +} diff --git a/lib/home/new_friends.dart b/lib/home/new_friends.dart index 809a65d..c7e046e 100644 --- a/lib/home/new_friends.dart +++ b/lib/home/new_friends.dart @@ -8,13 +8,18 @@ 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:provider/provider.dart'; - +import 'package:chat/models/friends_info.dart'; import 'ProfilePage.dart'; +import 'package:permission_handler/permission_handler.dart'; +import 'dart:io'; +import 'address_book.dart'; +import 'new_addfriends.dart'; class _ContactItem extends StatelessWidget { _ContactItem( @@ -186,6 +191,8 @@ class _NewFriendsPageState extends State { List friendList = []; + List _functionButtons = []; + @override void initState() { super.initState(); @@ -195,6 +202,49 @@ class _NewFriendsPageState extends State { getNewFriendList(); _scrollController = new ScrollController(); MessageMgr().on('do_friend_apply', messageApply); + + _functionButtons = [ + FriendsInfo( + avatar: '', + userId: 0, + iconCode: 0xe67a, + title: I18n.of(Constants.getCurrentContext()).contact_add, + gradient: LinearGradient( + begin: Alignment.topCenter, + end: Alignment.bottomCenter, + colors: [ + const Color(0xFF1AC59E), + const Color(0xFF088E76), + ]), + onPressed: () async { + final PermissionStatus addStatus = await PermissionHandler() + .checkPermissionStatus(PermissionGroup.contacts); + if ((addStatus == PermissionStatus.unknown || + addStatus == PermissionStatus.denied) && + Platform.isIOS) { + CustomUI.buildContacts(context, I18n.of(context).privacyAgreement, + I18n.of(context).determine, () { + Navigator.of(context).pop(); + showPermission(); + }, title: I18n.of(context).tip); + } else { + showPermission(); + } + }), + ]; + } + + showPermission() async { + if (await CustomUI.showPermissionSetting( + Constants.getCurrentContext(), + PermissionGroup.contacts, + I18n.of(Constants.getCurrentContext()).contact_permission)) { + MessageMgr().emit('PostContact'); + Navigator.push(Constants.getCurrentContext(), + MaterialPageRoute(builder: (BuildContext context) { + return ContactsPage(); + })); + } } messageApply(data) { @@ -244,7 +294,17 @@ class _NewFriendsPageState extends State { _body.add(ListView.builder( controller: _scrollController, itemBuilder: (BuildContext context, int index) { - int _contactIndex = index; + if (index < _functionButtons.length) { + if (index == 0) { + return Padding( + padding: EdgeInsets.only(top: 7), + child: _functionButtons[index], + ); + } else { + return _functionButtons[index]; + } + } + int _contactIndex = index - _functionButtons.length; bool _isGroupTitle = true; FriendModel _contact = friendList[_contactIndex]; @@ -262,7 +322,7 @@ class _NewFriendsPageState extends State { avatar: _contact.avatar, title: Provider.of(context) .getRefName(_contact.friendId, _contact.name), - state: _contact.state, + state: _contact.state, isShowDivder: true, applyId: _contact.applyId, groupTitle: _isGroupTitle @@ -271,7 +331,7 @@ class _NewFriendsPageState extends State { : I18n.of(context).after_three_day) : null); }, - itemCount: friendList.length, + itemCount: friendList.length + _functionButtons.length, )); } else { _body.add(ListView.builder( @@ -327,6 +387,32 @@ class _NewFriendsPageState extends State { centerTitle: true, leading: CustomUI.buildCustomLeading(context), elevation: 1, + actions: [ + Container( + child: IconButton( + icon: CircleAvatar( + backgroundColor: Constants.GreyBackgroundColor, + radius: 13.75, + child: Padding( + padding: EdgeInsets.only(bottom: 1.5), + child: Icon( + IconData(0xe662, + fontFamily: Constants.IconFontFamily), + color: Constants.BlackTextColor, + size: 21, + ))), + onPressed: () { + Navigator.of(context).push( + new MaterialPageRoute( + builder: (context) { + return NewAddFriendsPage(); + }, + ), + ); + }, + ), + ), + ], bottom: PreferredSize( preferredSize: Size.fromHeight(49), child: Container( diff --git a/lib/utils/HttpUtil.dart b/lib/utils/HttpUtil.dart index 135b543..a56dd3d 100644 --- a/lib/utils/HttpUtil.dart +++ b/lib/utils/HttpUtil.dart @@ -46,7 +46,7 @@ class HttpUtil { //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://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) { @@ -219,7 +219,7 @@ class HttpUtil { var fileBytes; if (contentType == 'image' && size > 10240) { fileBytes = - await WidgetUtil.getCompressImg(path, quality: 20, percentage: 60); + await WidgetUtil.getCompressImg(path, quality: 60, percentage: 60); } else { fileBytes = imgfile.readAsBytesSync(); } @@ -369,28 +369,6 @@ class HttpUtil { } } - getFirstProgram() async { - Map data = { - "userId": UserData().basicInfo.userId, - "visitUserId": UserData().basicInfo.userId, - "type": 1, - }; - data['sign'] = TokenMgr().getSign(data); - data['page'] = 1; - data['rows'] = 1; - Response res = await HttpUtil().post('station/gain/program', data: data); - - if (res == null) { - print('请求异常'); - return; - } - var resData = res.data; - if (resData['code'] == 0) { - UserData().isCanProgram = - resData['data'] == null || resData['data'][0]['Status'] == 1; - } - } - Future getTranslateState(int sessionId) async { Map data = { "userId": UserData().basicInfo.userId, @@ -553,7 +531,6 @@ class HttpUtil { MessageMgr().emit('update_system'); saveAotuLoginKey(resData); - getFirstProgram(); initLocation(); } @@ -1380,8 +1357,7 @@ class HttpUtil { ChatDataMgr().updateMsgState(msgModel.sessionId, msgModel.time, msgModel.channelType, msgModel.state); return true; - }else{ - + } else { showToast(resData['msg']); } diff --git a/lib/utils/PicSwiper.dart b/lib/utils/PicSwiper.dart index 1e66570..cca8501 100644 --- a/lib/utils/PicSwiper.dart +++ b/lib/utils/PicSwiper.dart @@ -328,7 +328,7 @@ class _PicSwiperState extends State } return GestureConfig( inPageView: true, - initialScale: initialScale, + //initialScale: initialScale, maxScale: max(initialScale, 5.0), initialAlignment: InitialAlignment.topCenter, animationMaxScale: max(initialScale, 5.0), @@ -393,7 +393,7 @@ class _PicSwiperState extends State } return GestureConfig( inPageView: true, - initialScale: initialScale, + //initialScale: initialScale, maxScale: max(initialScale, 5.0), initialAlignment: InitialAlignment.topCenter, animationMaxScale: max(initialScale, 5.0),