1.涉黄图上传上来,显示空白,发表后动态看不到这条消息 2.发布的图片点开不要默认放大,参考微信比例正常就可以了 通讯录、新朋友界面调整和增加添加好友界面master
@@ -56,9 +56,9 @@ android { | |||||
// manifestPlaceholders = [ | // manifestPlaceholders = [ | ||||
// AMAP_KEY : "1fd4e93e3b4b13747da41f484c955fe2", /// 高德地图key | // AMAP_KEY : "1fd4e93e3b4b13747da41f484c955fe2", /// 高德地图key | ||||
// ] | // ] | ||||
// ndk { | |||||
// abiFilters 'armeabi-v7a' | |||||
// } | |||||
ndk { | |||||
abiFilters 'armeabi-v7a' | |||||
} | |||||
multiDexEnabled true | multiDexEnabled true | ||||
manifestPlaceholders = [ | manifestPlaceholders = [ | ||||
JPUSH_PKGNAME : 'com.cyhd.henhoandroid', | JPUSH_PKGNAME : 'com.cyhd.henhoandroid', | ||||
@@ -1042,7 +1042,7 @@ | |||||
"other_pay": "Người khác trả hộ", | "other_pay": "Người khác trả hộ", | ||||
"friend_verification": "Xác thực bạn bè", | "friend_verification": "Xác thực bạn bè", | ||||
"add_friends_tips": "Đơn xin xác thực của bạn đã gửi và chờ đối phương thông qua", | "add_friends_tips": "Đơn xin xác thực của bạn đã gửi và chờ đối phương thông qua", | ||||
"i_am": "Tôi là/s1", | |||||
"i_am": "Tôi là /s1", | |||||
"agree": "Cho phép", | "agree": "Cho phép", | ||||
"privacyAgreement": "\"Hi\"Bạn cần đồng ý với \"Thỏa thuận quyền riêng tư\" để sử dụng", | "privacyAgreement": "\"Hi\"Bạn cần đồng ý với \"Thỏa thuận quyền riêng tư\" để sử dụng", | ||||
"privacy": "Thỏa thuận quyền riêng tư", | "privacy": "Thỏa thuận quyền riêng tư", | ||||
@@ -1050,6 +1050,7 @@ class _AddProgramState extends State<AddProgram> { | |||||
: CachedNetworkImage( | : CachedNetworkImage( | ||||
imageUrl: f, | imageUrl: f, | ||||
fit: BoxFit.cover, | fit: BoxFit.cover, | ||||
placeholder: CustomUI.buildImgLoding, | |||||
), | ), | ||||
))), | ))), | ||||
Positioned( | Positioned( | ||||
@@ -91,7 +91,6 @@ class _MyProgramPageState extends State<MyProgramPage> { | |||||
var data = { | var data = { | ||||
"userId": UserData().basicInfo.userId, | "userId": UserData().basicInfo.userId, | ||||
"visitUserId": widget.userId, | "visitUserId": widget.userId, | ||||
//"type": widget.isProgram == true ? 1 : 2, | |||||
}; | }; | ||||
data['sign'] = TokenMgr().getSign(data); | data['sign'] = TokenMgr().getSign(data); | ||||
data['page'] = _page; | data['page'] = _page; | ||||
@@ -191,9 +191,6 @@ class _ProfilePageState extends State<ProfilePage> | |||||
.initVoucher(data['Voucher']); | .initVoucher(data['Voucher']); | ||||
} | } | ||||
}); | }); | ||||
} else { | |||||
// getFirstDy(); | |||||
// getFirstProgram(); | |||||
} | } | ||||
} | } | ||||
@@ -1654,7 +1651,7 @@ class _ProfilePageState extends State<ProfilePage> | |||||
//同意好友后发送打招呼 | //同意好友后发送打招呼 | ||||
MsgModel msgModel = MsgHandler.createSendMsg( | MsgModel msgModel = MsgHandler.createSendMsg( | ||||
ChatType.TextChatType, I18n.of(context).new_friends_tips, | |||||
ChatType.TextChatType, I18n.of(context).new_friends_tips, | |||||
friendId: userInfo.userId, | friendId: userInfo.userId, | ||||
refMsg: null, | refMsg: null, | ||||
refShortTxt: null, | refShortTxt: null, | ||||
@@ -1,9 +1,7 @@ | |||||
import 'dart:io'; | |||||
import 'package:cached_network_image/cached_network_image.dart'; | import 'package:cached_network_image/cached_network_image.dart'; | ||||
import 'package:chat/home/global_search.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/new_friends.dart'; | ||||
import 'package:chat/home/search_newfriend.dart'; | |||||
import 'package:chat/models/friends_info.dart'; | import 'package:chat/models/friends_info.dart'; | ||||
import 'package:flutter/material.dart'; | import 'package:flutter/material.dart'; | ||||
import 'package:chat/data/UserData.dart'; | import 'package:chat/data/UserData.dart'; | ||||
@@ -191,18 +189,18 @@ class _FriendPageState extends State<FriendPage> { | |||||
)); | )); | ||||
} | } | ||||
showPermission() async { | |||||
if (await CustomUI.showPermissionSetting( | |||||
Constants.getCurrentContext(), | |||||
PermissionGroup.contacts, | |||||
I18n.of(Constants.getCurrentContext()).contact_permission)) { | |||||
MessageMgr().emit('PostContact'); | |||||
Navigator.push(Constants.getCurrentContext(), | |||||
MaterialPageRoute<void>(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<void>(builder: (BuildContext context) { | |||||
// return ContactsPage(); | |||||
// })); | |||||
// } | |||||
// } | |||||
getFriendList() async { | getFriendList() async { | ||||
friendList = await FriendListMgr().getFriendList(); | friendList = await FriendListMgr().getFriendList(); | ||||
@@ -260,84 +258,14 @@ class _FriendPageState extends State<FriendPage> { | |||||
} | } | ||||
initNewFriendsList(showUserList) { | initNewFriendsList(showUserList) { | ||||
_functionButtons = [ | |||||
FriendsInfo( | |||||
avatar: '', | |||||
userId: 0, | |||||
iconCode: 0xe659, | |||||
title: I18n.of(Constants.getCurrentContext()).scan, | |||||
gradient: LinearGradient( | |||||
begin: Alignment.topCenter, | |||||
end: Alignment.bottomCenter, | |||||
colors: <Color>[ | |||||
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: <Color>[ | |||||
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: <Color>[ | |||||
const Color(0xFF9E58E5), | |||||
const Color(0xFF6118A6), | |||||
]), | |||||
onPressed: () async { | |||||
Navigator.push(Constants.getCurrentContext(), | |||||
MaterialPageRoute<void>(builder: (BuildContext context) { | |||||
return SearchNewFriendsPage(); | |||||
})); | |||||
}), | |||||
]; | |||||
_functionButtons.insert(0, _buildNewFriends(showUserList)); | |||||
_functionButtons = [_buildNewFriends(showUserList)]; | |||||
} | } | ||||
msgAddfrend(data) { | msgAddfrend(data) { | ||||
// setState(() { | |||||
// _contactsFuture = FriendListMgr().getFriendList(); | |||||
// }); | |||||
getFriendList(); | getFriendList(); | ||||
} | } | ||||
msgDeletefrend(data) { | msgDeletefrend(data) { | ||||
// setState(() { | |||||
// _contactsFuture = FriendListMgr().getFriendList(); | |||||
// }); | |||||
getFriendList(); | getFriendList(); | ||||
} | } | ||||
@@ -545,6 +473,32 @@ class _FriendPageState extends State<FriendPage> { | |||||
textScaleFactor: 1.0, style: Constants.MainTitleStyle), | textScaleFactor: 1.0, style: Constants.MainTitleStyle), | ||||
centerTitle: false, | centerTitle: false, | ||||
elevation: 1, | elevation: 1, | ||||
actions: <Widget>[ | |||||
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, () { | bottom: CustomUI.buildSearchButton(context, () { | ||||
Navigator.of(context).push( | Navigator.of(context).push( | ||||
new MaterialPageRoute( | new MaterialPageRoute( | ||||
@@ -14,30 +14,33 @@ import 'package:qr_flutter/qr_flutter.dart'; | |||||
class MyQr extends StatelessWidget { | class MyQr extends StatelessWidget { | ||||
@override | @override | ||||
Widget build(BuildContext context) { | 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: <Widget>[ | |||||
_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: <Widget>[ | |||||
_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() { | _qrImg() { | ||||
@@ -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<NewAddFriendsPage> { | |||||
ScrollController _scrollController; | |||||
List<Widget> _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: <Color>[ | |||||
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: <Color>[ | |||||
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<void>(builder: (BuildContext context) { | |||||
return ContactsPage(); | |||||
})); | |||||
} | |||||
} | |||||
@override | |||||
void dispose() { | |||||
super.dispose(); | |||||
_scrollController.dispose(); | |||||
} | |||||
@override | |||||
Widget build(BuildContext context) { | |||||
final List<Widget> _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, | |||||
)); | |||||
} | |||||
} |
@@ -8,13 +8,18 @@ import 'package:chat/utils/HttpUtil.dart'; | |||||
import 'package:chat/utils/MessageMgr.dart'; | import 'package:chat/utils/MessageMgr.dart'; | ||||
import 'package:chat/utils/TokenMgr.dart'; | import 'package:chat/utils/TokenMgr.dart'; | ||||
import 'package:chat/utils/conversation_table.dart'; | import 'package:chat/utils/conversation_table.dart'; | ||||
import 'package:chat/utils/screen.dart'; | |||||
import 'package:dio/dio.dart'; | import 'package:dio/dio.dart'; | ||||
import 'package:cached_network_image/cached_network_image.dart'; | import 'package:cached_network_image/cached_network_image.dart'; | ||||
import 'package:flutter/material.dart'; | import 'package:flutter/material.dart'; | ||||
import 'package:flutter/services.dart'; | import 'package:flutter/services.dart'; | ||||
import 'package:provider/provider.dart'; | import 'package:provider/provider.dart'; | ||||
import 'package:chat/models/friends_info.dart'; | |||||
import 'ProfilePage.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 { | class _ContactItem extends StatelessWidget { | ||||
_ContactItem( | _ContactItem( | ||||
@@ -186,6 +191,8 @@ class _NewFriendsPageState extends State<NewFriendsPage> { | |||||
List<FriendModel> friendList = []; | List<FriendModel> friendList = []; | ||||
List<Widget> _functionButtons = []; | |||||
@override | @override | ||||
void initState() { | void initState() { | ||||
super.initState(); | super.initState(); | ||||
@@ -195,6 +202,49 @@ class _NewFriendsPageState extends State<NewFriendsPage> { | |||||
getNewFriendList(); | getNewFriendList(); | ||||
_scrollController = new ScrollController(); | _scrollController = new ScrollController(); | ||||
MessageMgr().on('do_friend_apply', messageApply); | 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: <Color>[ | |||||
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<void>(builder: (BuildContext context) { | |||||
return ContactsPage(); | |||||
})); | |||||
} | |||||
} | } | ||||
messageApply(data) { | messageApply(data) { | ||||
@@ -244,7 +294,17 @@ class _NewFriendsPageState extends State<NewFriendsPage> { | |||||
_body.add(ListView.builder( | _body.add(ListView.builder( | ||||
controller: _scrollController, | controller: _scrollController, | ||||
itemBuilder: (BuildContext context, int index) { | 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; | bool _isGroupTitle = true; | ||||
FriendModel _contact = friendList[_contactIndex]; | FriendModel _contact = friendList[_contactIndex]; | ||||
@@ -262,7 +322,7 @@ class _NewFriendsPageState extends State<NewFriendsPage> { | |||||
avatar: _contact.avatar, | avatar: _contact.avatar, | ||||
title: Provider.of<RefNameProvider>(context) | title: Provider.of<RefNameProvider>(context) | ||||
.getRefName(_contact.friendId, _contact.name), | .getRefName(_contact.friendId, _contact.name), | ||||
state: _contact.state, | |||||
state: _contact.state, | |||||
isShowDivder: true, | isShowDivder: true, | ||||
applyId: _contact.applyId, | applyId: _contact.applyId, | ||||
groupTitle: _isGroupTitle | groupTitle: _isGroupTitle | ||||
@@ -271,7 +331,7 @@ class _NewFriendsPageState extends State<NewFriendsPage> { | |||||
: I18n.of(context).after_three_day) | : I18n.of(context).after_three_day) | ||||
: null); | : null); | ||||
}, | }, | ||||
itemCount: friendList.length, | |||||
itemCount: friendList.length + _functionButtons.length, | |||||
)); | )); | ||||
} else { | } else { | ||||
_body.add(ListView.builder( | _body.add(ListView.builder( | ||||
@@ -327,6 +387,32 @@ class _NewFriendsPageState extends State<NewFriendsPage> { | |||||
centerTitle: true, | centerTitle: true, | ||||
leading: CustomUI.buildCustomLeading(context), | leading: CustomUI.buildCustomLeading(context), | ||||
elevation: 1, | elevation: 1, | ||||
actions: <Widget>[ | |||||
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( | bottom: PreferredSize( | ||||
preferredSize: Size.fromHeight(49), | preferredSize: Size.fromHeight(49), | ||||
child: Container( | child: Container( | ||||
@@ -46,7 +46,7 @@ class HttpUtil { | |||||
//static const String BaseUrl = 'http://192.168.0.207:9080/'; | //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 = '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() { | static HttpUtil _getInstance() { | ||||
if (_instance == null) { | if (_instance == null) { | ||||
@@ -219,7 +219,7 @@ class HttpUtil { | |||||
var fileBytes; | var fileBytes; | ||||
if (contentType == 'image' && size > 10240) { | if (contentType == 'image' && size > 10240) { | ||||
fileBytes = | fileBytes = | ||||
await WidgetUtil.getCompressImg(path, quality: 20, percentage: 60); | |||||
await WidgetUtil.getCompressImg(path, quality: 60, percentage: 60); | |||||
} else { | } else { | ||||
fileBytes = imgfile.readAsBytesSync(); | 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 { | Future getTranslateState(int sessionId) async { | ||||
Map data = { | Map data = { | ||||
"userId": UserData().basicInfo.userId, | "userId": UserData().basicInfo.userId, | ||||
@@ -553,7 +531,6 @@ class HttpUtil { | |||||
MessageMgr().emit('update_system'); | MessageMgr().emit('update_system'); | ||||
saveAotuLoginKey(resData); | saveAotuLoginKey(resData); | ||||
getFirstProgram(); | |||||
initLocation(); | initLocation(); | ||||
} | } | ||||
@@ -1380,8 +1357,7 @@ class HttpUtil { | |||||
ChatDataMgr().updateMsgState(msgModel.sessionId, msgModel.time, | ChatDataMgr().updateMsgState(msgModel.sessionId, msgModel.time, | ||||
msgModel.channelType, msgModel.state); | msgModel.channelType, msgModel.state); | ||||
return true; | return true; | ||||
}else{ | |||||
} else { | |||||
showToast(resData['msg']); | showToast(resData['msg']); | ||||
} | } | ||||
@@ -328,7 +328,7 @@ class _PicSwiperState extends State<PicSwiper> | |||||
} | } | ||||
return GestureConfig( | return GestureConfig( | ||||
inPageView: true, | inPageView: true, | ||||
initialScale: initialScale, | |||||
//initialScale: initialScale, | |||||
maxScale: max(initialScale, 5.0), | maxScale: max(initialScale, 5.0), | ||||
initialAlignment: InitialAlignment.topCenter, | initialAlignment: InitialAlignment.topCenter, | ||||
animationMaxScale: max(initialScale, 5.0), | animationMaxScale: max(initialScale, 5.0), | ||||
@@ -393,7 +393,7 @@ class _PicSwiperState extends State<PicSwiper> | |||||
} | } | ||||
return GestureConfig( | return GestureConfig( | ||||
inPageView: true, | inPageView: true, | ||||
initialScale: initialScale, | |||||
//initialScale: initialScale, | |||||
maxScale: max(initialScale, 5.0), | maxScale: max(initialScale, 5.0), | ||||
initialAlignment: InitialAlignment.topCenter, | initialAlignment: InitialAlignment.topCenter, | ||||
animationMaxScale: max(initialScale, 5.0), | animationMaxScale: max(initialScale, 5.0), | ||||