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:dio/dio.dart'; import 'package:flutter/material.dart'; import 'package:oktoast/oktoast.dart'; import '../data/UserData.dart'; import '../utils/TokenMgr.dart'; class MessagePushPage extends StatefulWidget { MessagePushPage({Key key}) : super(key: key); _MessagePushPageState createState() => _MessagePushPageState(); } class _MessagePushPageState extends State { bool isMan = true; //私聊信息 bool privatyMsg = false; //消息推送 bool msgPush = false; //男士申请查看资料页 bool watchMyData = false; //男士查看社交账号 bool watchSocialAccount = false; //查看红包照片 bool watchMyPicture = false; //男士给我发送社交账号 bool sendSocialAccount = false; //新约会 bool newDate = false; //女士通过我的查看请求 bool womenAgree = false; //邀请码申请成功 bool codeSucess = false; //震动通知 bool shockNotic = false; bool isLoadingFish = false; BoxDecoration _getCardDecoration() { return new BoxDecoration( color: Colors.white, ); } getSettingInfo() async { Map data = { "userId": UserData().basicInfo.userId, "sex": UserData().basicInfo.sex, }; data['sign'] = TokenMgr().getSign(data); try { Response res = await HttpUtil().post('message/push/message', data: data, failback: () => Navigator.of(context).pop()); Map resData = res.data; if (resData['code'] == 0) { privatyMsg = resData['data']['PrivacyChat'] == 1; newDate = resData['data']['NewBroadcast'] == 1; shockNotic = resData['data']['VibrationReminder'] == 1; if (isMan) { womenAgree = resData['data']['AcceptCheck'] == 1; codeSucess = resData['data']['ApplySuccess'] == 1; } else { watchMyData = resData['data']['ApplyCheck'] == 1; watchMyPicture = resData['data']['CheckPhoto'] == 1; } Future.delayed(Duration(milliseconds: Constants.CloseLoaindTime), () { isLoadingFish = true; setState(() {}); }); setState(() {}); } } catch (e) {} } @override void initState() { super.initState(); isMan = UserData().isMan(); getSettingInfo(); } @override Widget build(BuildContext context) { Widget appBar = new AppBar( backgroundColor: AppColors.NewAppbarBgColor, title: new Text( I18n.of(context).push_setting2, textScaleFactor: 1.0, style: TextStyle(color: AppColors.NewAppbarTextColor), ), leading: CustomUI.buildCustomLeading(context), actions: [ Container( alignment: Alignment.center, child: new InkWell( child: new Padding( padding: EdgeInsets.only(right: 15, left: 15, top: 10, bottom: 10), child: new Text(I18n.of(context).save, textScaleFactor: 1.0, style: Constants.AppBarActionTextStyle), ), onTap: () async { Map data = { "userId": UserData().basicInfo.userId, "sex": UserData().basicInfo.sex, }; data['sign'] = TokenMgr().getSign(data); data['privacyChat'] = privatyMsg ? 1 : 0; data['newBroadcast'] = newDate ? 1 : 0; data['vibrationReminder'] = shockNotic ? 1 : 0; if (isMan) { data['acceptCheck'] = womenAgree ? 1 : 0; data['applySuccess'] = codeSucess ? 1 : 0; } else { data['applyCheck'] = watchMyData ? 1 : 0; data['checkPhoto'] = watchMyPicture ? 1 : 0; data['checkAccount'] = 1; data['sendAccount'] = 1; } try { Response res = await HttpUtil() .post('message/setting/message', data: data); Map resData = res.data; showToast('${resData['msg']}'); if (resData['code'] == 0) { UserData().privatyMsgPushSwitch = privatyMsg; UserData().newDateSwitch = newDate; UserData().applyCheckSwitch = watchMyData; UserData().acceptCheckSwitch = womenAgree; UserData().checkPhotoSwitch = watchMyPicture; UserData().codeSucessSwitch = codeSucess; UserData().shockNoticSwitch = shockNotic; } } catch (e) {} }, ), ) ], centerTitle: true, ); Widget content = Scaffold( body: SafeArea( child: Center( child: Container( height: MediaQuery.of(context).size.height, width: MediaQuery.of(context).size.width, child: _buildBody(), ), )), appBar: appBar, ); return CustomUI.buildPageLoading(context, content, !isLoadingFish); } Widget _buildBody() { List man = [ _buildHiddenButtom(I18n.of(context).private_chat2, privatyMsg, () { setState(() { privatyMsg = !privatyMsg; }); }), _buildHiddenButtom(I18n.of(context).new_date, newDate, () { setState(() { newDate = !newDate; }); }), _buildHiddenButtom(I18n.of(context).passed_request2, womenAgree, () { setState(() { womenAgree = !womenAgree; }); }), _buildHiddenButtom(I18n.of(context).shock_notice, shockNotic, () { setState(() { shockNotic = !shockNotic; }); }), ]; List women = [ _buildHiddenButtom(I18n.of(context).private_chat2, privatyMsg, () { setState(() { privatyMsg = !privatyMsg; }); }), _buildHiddenButtom(I18n.of(context).new_date, newDate, () { setState(() { newDate = !newDate; }); }), _buildHiddenButtom(I18n.of(context).men_view, watchMyData, () { setState(() { watchMyData = !watchMyData; }); }), _buildHiddenButtom(I18n.of(context).men_view3, watchMyPicture, () { setState(() { watchMyPicture = !watchMyPicture; }); }), _buildHiddenButtom(I18n.of(context).shock_notice, shockNotic, () { setState(() { shockNotic = !shockNotic; }); }), ]; return new ListView( children: isMan ? man : women, ); } //是否隐藏社交账号 Widget _buildHiddenButtom(str, value, callback) { Widget left = new Text( str, textScaleFactor: 1.0, style: TextStyle(fontSize: 14, fontWeight: FontWeight.normal), ); Widget right = new Expanded( child: new Align( alignment: Alignment.centerRight, child: new Switch( value: value, activeTrackColor: Constants.ConfrimButtonColor.withOpacity(0.3), onChanged: (bool val) { callback(); }, ))); return new Container( decoration: _getCardDecoration(), margin: EdgeInsets.only(top: 15, bottom: 0), padding: EdgeInsets.only(left: 15), height: 53, child: new Row( children: [left, right], ), ); } }