import 'dart:async';
import 'package:bot_toast/bot_toast.dart';
import 'package:flutter/material.dart';
import 'package:flutter_easyrefresh/easy_refresh.dart';
import 'package:project_telephony/base/base_style.dart';
import 'package:project_telephony/ui/widget/centertipsalterwidget.dart';
import 'package:project_telephony/ui/widget/plone_back_button.dart';
import 'package:project_telephony/utils/headers.dart';
import 'package:project_telephony/utils/user_tool.dart';
import 'package:provider/provider.dart';
import '../../constants/api.dart';
import '../../model/network/api_client.dart';
import '../../model/network/base_model.dart';
import '../../providers/user_provider.dart';
import '../../utils/toast/cloud_toast.dart';
import 'add_sms_page.dart';

class ContentRefusePage extends StatefulWidget {
  const ContentRefusePage({Key? key}) : super(key: key);

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

class _ContentRefusePageState extends State<ContentRefusePage> {
  List<String> textList = ['现在无法接听。有什么事吗？', '自定义短信内容'];
  List<String> textListSMS = [];
  List<int> smsIdList = [];
  int isCheck=0;
  final userProvider = Provider.of<UserProvider>(Get.context!, listen: false);
  final EasyRefreshController _easyRefreshController = EasyRefreshController();

  @override
  void initState() {
    super.initState();
    updateList();
  }

  @override
  void dispose() {
    _easyRefreshController.dispose();
    super.dispose();
  }

  updateList() async {
    if (userProvider.isLogin) {
      textListSMS.clear();
      smsIdList.clear();
      int i=0;
      userProvider.userInfo.contentRef?.forEach((model) {
        textListSMS.add(model.content);
        smsIdList.add(model.id);
        if(model.isChecked==1){
          isCheck=i;
        }
        i++;
      });
      textListSMS.add("自定义短信内容");
    } else {
      textListSMS = textList;
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        elevation: 0,
        title: Text(
          '选择短信内容',
          style: Theme.of(context).textTheme.headline6,
        ),
        leading: const CloudBackButton(isSpecial: true),
        backgroundColor: kForeGroundColor,
      ),
      backgroundColor: Colors.white,
      body: _getList()
      // Column(children: [
      //   _getEditContent(),
      //   Expanded(
      //     child: _getList(),
      //   ),
      //
      // ]),
      // bottomNavigationBar: _getEditContent(),
    );
  }

  _getList() {
    return EasyRefresh(
      firstRefresh: true,
      header: MaterialHeader(),
      footer: MaterialFooter(),
      controller: _easyRefreshController,
      onRefresh: () async {
        await userProvider.updateUserInfo();
        updateList();
        setState(() {});
      },
      child: ListView.builder(
        itemBuilder: (context, index) {
          return _getBox(textListSMS[index], index);
        },
        itemCount: textListSMS.length,
      ),
    );
  }

  _getBox(String content, int index) {
    return GestureDetector(
      onTap: () async {
        if (content != "自定义短信内容") {
          BaseModel res = await apiClient.request(API.app.checked,
              data: {'id': smsIdList[index], 'status': 2});
          if (res.code == 0) {
            setState(() {});
            userProvider.updateUserInfo();
            userProvider.updateRefSms();
            _easyRefreshController.callRefresh();
          } else {
            CloudToast.show(res.msg);
          }
        } else {
          if (userProvider.userInfo.isVip==1) {
            if (textListSMS.length > 5) {
              BotToast.showText(text: '自定义数量已达上限，请先删除不需要的短信');
            } else {
              Get.to(AddSmsPage(
                status: 2,
                ploneBack: (String textContent) {
                  _easyRefreshController.callRefresh();
                },
              ));
            }
          } else {
            BotToast.showText(text: '请先开通会员');
          }
        }
        setState(() {});
      },
      onLongPress: () {

        if (content != "自定义短信内容") {
          if (textListSMS.length == 2 || isCheck == index) {
            if(textListSMS.length == 2){
              BotToast.showText(text: '最后一条内容不可删除');
            }else if(isCheck == index){
              BotToast.showText(text: '当前为选中内容,不可删除');
            }
          } else {
            showDialog(
                context: context,
                builder: (context) {
                  return Centertipsalterwidget(
                    desText: '你确定要删除这个短信模版吗,删除之后无法还原。',
                    title: '删除短信模板',
                    id: smsIdList[index],
                    callback: (bool status) {
                      _easyRefreshController.callRefresh();
                    },
                  );
                });
          }
    }
        setState(() {});
      },
      child:
      Container(
        // width: 686.w,
        height: 128.w,
        margin: EdgeInsets.only(top: 32.w, left: 64.w, right: 64.w),
        padding: EdgeInsets.only(left: 40.w,top: 45.w),
        decoration: BoxDecoration(
          borderRadius: BorderRadius.circular(16),
          gradient:   LinearGradient(
            begin: Alignment.centerLeft,
            end: Alignment.centerRight,
            colors: [
              index==isCheck? const Color(0xFF13CA9D):const Color(0xFFF9F9F9),
              index==isCheck? const Color(0xFF72E4C8):const Color(0xFFF9F9F9),
            ]),

        ),
        child: Text(
          content,
          style: TextStyle(
              fontSize: BaseStyle.fontSize28,
              color: index==isCheck?const Color(0xFFF9F9F9):BaseStyle.color333333,
              fontWeight: FontWeight.bold),
        ),
      ),
    );
  }
 // int _getEasyRefresh(){
 //    return EasyRefresh(onRefresh: ,child: ,);
 //  }
 //  _getEditContent(){
 //    return GestureDetector(
 //    onTap: (){
 //      if (userProvider.userInfo.isVip==1) {
 //        if (textListSMS.length > 5) {
 //          BotToast.showText(text: '自定义数量已达上限，请先删除不需要的短信');
 //        } else {
 //          Get.to(AddSmsPage(
 //            status: 2,
 //            ploneBack: (String textContent) {
 //              _easyRefreshController.callRefresh();
 //            },
 //          ));
 //        }
 //      } else {
 //        BotToast.showText(text: '请先开通会员');
 //      }
 //    }
 //    ,child: Container(
 //      width: double.infinity,
 //      height: 128.w,
 //      margin: EdgeInsets.symmetric(horizontal: 64.w),
 //      padding: EdgeInsets.only(left: 40.w,top: 45.w),
 //      decoration: BoxDecoration(
 //        borderRadius: BorderRadius.circular(16),
 //        color: const Color(0xFFF9F9F9),
 //      ),
 //      child: Text(
 //        "定义短信内容",
 //        style: TextStyle(
 //            fontSize: BaseStyle.fontSize28,
 //            color: BaseStyle.color333333,
 //            fontWeight: FontWeight.bold),
 //      ),
 //    ),);
 //  }
}
