import 'dart:math';
import 'dart:ui';

import 'package:akuCommunity/pages/setting_page/agreement_page/agreement_page.dart';
import 'package:akuCommunity/pages/setting_page/agreement_page/privacy_page.dart';
import 'package:akuCommunity/pages/sign/user_authentication_page.dart';
import 'package:ani_route/ani_route.dart';
import 'package:extended_text/extended_text.dart';
import 'package:flustars/flustars.dart' show TextUtil;
import 'package:flutter/material.dart';
import 'package:flutter/cupertino.dart';
import 'package:akuCommunity/utils/screenutil.dart';
import 'package:akuCommunity/base/base_style.dart';
import 'package:akuCommunity/base/assets_image.dart';
import 'package:oktoast/oktoast.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';

class SignInPage extends StatefulWidget {
  SignInPage({Key key}) : super(key: key);

  @override
  _SignInPageState createState() => _SignInPageState();
}

class _SignInPageState extends State<SignInPage> {
  TextEditingController _phone = new TextEditingController();
  TextEditingController _code = new TextEditingController();
  // String _verifyStr = '获取验证码';
  AppBar _appBar() {
    return AppBar(
      elevation: 0,
      backgroundColor: Colors.white,
      // leading: IconButton(
      //   icon: Icon(AntDesign.left, size: Screenutil.size(40)),
      //   onPressed: () {
      //     Navigator.pop(context);
      //   },
      // ),
    );
  }

  Container _containerTextField(String imagePath,
      TextEditingController controller, String hintText, bool isCode) {
    return Container(
      padding: EdgeInsets.symmetric(horizontal: Screenutil.length(29)),
      margin: EdgeInsets.symmetric(horizontal: Screenutil.length(82)),
      decoration: BoxDecoration(
        color: Color(0xfffff4d7),
        borderRadius: BorderRadius.all(Radius.circular(36)),
      ),
      child: Row(
        mainAxisAlignment: MainAxisAlignment.start,
        children: [
          Image.asset(
            imagePath,
            height: Screenutil.length(50),
            width: Screenutil.length(50),
          ),
          SizedBox(width: Screenutil.length(24)),
          Expanded(
            child: TextFormField(
              obscureText: isCode,
              cursorColor: Color(0xffffc40c),
              style: TextStyle(
                fontSize: BaseStyle.fontSize28,
                fontWeight: FontWeight.w600,
              ),
              controller: controller,
              onChanged: (String value) {},
              maxLines: 1,
              decoration: InputDecoration(
                isDense: true,
                contentPadding: EdgeInsets.symmetric(
                  vertical: Screenutil.length(25),
                ),
                hintText: hintText,
                border: InputBorder.none, //去掉输入框的下滑线
                fillColor: Color(0xfffff4d7),
                filled: true,
                hintStyle: TextStyle(
                  color: BaseStyle.color999999,
                  fontSize: BaseStyle.fontSize28,
                  fontWeight: FontWeight.normal,
                ),
              ),
            ),
          ),
          // isCode
          //     ? Row(
          //         mainAxisAlignment: MainAxisAlignment.start,
          //         children: [
          //           SizedBox(
          //             width: 2,
          //             height: Screenutil.length(29),
          //             child: DecoratedBox(
          //               decoration: BoxDecoration(color: Color(0xffd8d8d8)),
          //             ),
          //           ),
          //           SizedBox(width: Screenutil.length(16)),
          // InkWell(
          //   child: Text(
          //     _verifyStr,
          //     style: TextStyle(
          //       color: BaseStyle.color999999,
          //       fontSize: BaseStyle.fontSize28,
          //       fontWeight: FontWeight.w500,
          //     ),
          //   ),
          //   onTap: null,
          // ),
          //     ],
          //   )
          // : SizedBox(),
        ],
      ),
    );
  }

  Container _containerImage() {
    return Container(
      alignment: Alignment.center,
      child: Image.asset(
        AssetsImage.LOGO,
        height: Screenutil.length(184),
        width: Screenutil.length(266),
      ),
    );
  }

  InkWell _inkWellLogin() {
    return InkWell(
      onTap: () {
        if (TextUtil.isEmpty(_phone.text))
          showToast('账号不能为空');
        else if (TextUtil.isEmpty(_code.text))
          showToast('密码不能为空');
        else {
          showCupertinoDialog(
            context: context,
            builder: (context) {
              return CupertinoAlertDialog(
                title: Text('点击登录即表示您已阅读并同意'),
                content: Text(
                    '''点击登录即表示您已阅读并同意《闲鱼用户服务协议》《支付服务协议》(特别是免除或限制责任、管辖等粗体下划线标注的条款)。如您不同意上述协议的任何条款,您应立即停止登录及使用本软件及服务。'''),
                actions: [
                  CupertinoDialogAction(
                    child: Text('同意'),
                    onPressed: () {
                      Future.delayed(
                        Duration(milliseconds: 1000 + Random().nextInt(500)),
                        () {
                          Navigator.pop(context);
                          (_phone.text == '17855823545') &&
                                  (_code.text == '000000')
                              ? ARoute.push(context, UserAuthenticationPage())
                              : showToast('账号或密码错误!');
                        },
                      );
                    },
                  ),
                  CupertinoDialogAction(
                    child: Text('拒绝'),
                    onPressed: () {
                      Navigator.pop(context);
                    },
                  ),
                ],
              );
            },
          );
        }
      },
      child: Container(
        alignment: Alignment.center,
        height: Screenutil.length(89),
        width: Screenutil.length(586),
        padding: EdgeInsets.only(
            top: Screenutil.length(25), bottom: Screenutil.length(24)),
        margin: EdgeInsets.symmetric(horizontal: Screenutil.length(82)),
        decoration: BoxDecoration(
          color: Color(0xffffc40c),
          borderRadius: BorderRadius.all(Radius.circular(36)),
        ),
        child: Text(
          '登录',
          style: TextStyle(
            fontWeight: FontWeight.w600,
            fontSize: BaseStyle.fontSize28,
            color: BaseStyle.color333333,
          ),
        ),
      ),
    );
  }

  @override
  Widget build(BuildContext context) {
    double _statusHeight = MediaQuery.of(context).padding.top;
    return Scaffold(
      backgroundColor: Colors.white,
      appBar: _appBar(),
      body: SingleChildScrollView(
        child: Container(
          child: GestureDetector(
            behavior: HitTestBehavior.opaque,
            onTap: () {
              FocusScope.of(context).requestFocus(FocusNode());
            },
            child: Container(
                color: Colors.white,
                child: ListView(
                  shrinkWrap: true,
                  children: [
                    SizedBox(
                      height: Screenutil.length(153),
                    ),
                    _containerImage(),
                    SizedBox(height: Screenutil.length(16)),
                    Container(
                      alignment: Alignment.center,
                      child: Text(
                        '欢迎登录小蜜蜂',
                        style: TextStyle(
                            fontWeight: FontWeight.w600,
                            fontSize: BaseStyle.fontSize38,
                            color: BaseStyle.color333333),
                      ),
                    ),
                    SizedBox(height: Screenutil.length(89)),
                    _containerTextField(
                        AssetsImage.PHONELOGO, _phone, '请输入手机号码', false),
                    SizedBox(height: Screenutil.length(27)),
                    _containerTextField(
                        AssetsImage.CODELOGO, _code, '请输入密码', true),
                    SizedBox(height: Screenutil.length(59)),
                    _inkWellLogin(),
                    Row(
                      mainAxisAlignment: MainAxisAlignment.center,
                      children: [
                        FlatButton(
                          onPressed: () {
                            ARoute.push(context, AgreementPage());
                          },
                          child: Text('用户协议'),
                        ),
                        SizedBox(width: Screenutil.length(15)),
                        FlatButton(
                            onPressed: () {
                              ARoute.push(context, PrivacyPage());
                            },
                            child: Text('隐私政策'))
                      ],
                    ),
                  ],
                )),
          ),
        ),
      ),
    );
  }
}