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, )); } }