From 5cdb5e7ff9c9c249af8881c807df3fe9ed15de29 Mon Sep 17 00:00:00 2001
From: wylyl22 <2373073266@qq.com>
Date: Wed, 31 Aug 2022 11:33:52 +0800
Subject: [PATCH 1/2] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 lib/providers/user_provider.dart     |  4 ++--
 lib/ui/home/home_page.dart           |  5 ++--
 lib/ui/login/login_page.dart         |  2 +-
 lib/ui/user/members_page.dart        | 15 ++++++------
 lib/ui/user/user_page.dart           | 35 ++++++++++++++++++++++++++++
 lib/ui/widget/plone_back_button.dart |  6 ++++-
 6 files changed, 54 insertions(+), 13 deletions(-)

diff --git a/lib/providers/user_provider.dart b/lib/providers/user_provider.dart
index 8af5941..1dde2a9 100644
--- a/lib/providers/user_provider.dart
+++ b/lib/providers/user_provider.dart
@@ -80,7 +80,7 @@ class UserProvider extends ChangeNotifier {
     if (base.code == 0) {
       await prefs.remove('conSms');
       await prefs.setString('conSms', (UserTool.userProvider.userInfo.tag)==""?"${base
-          .data['content']}":"[${UserTool.userProvider.userInfo.tag}]${base
+          .data['content']}":"【${UserTool.userProvider.userInfo.tag}】${base
           .data['content']}");
       service.invoke("stopService");
       if(prefs.getBool('kg')!){
@@ -102,7 +102,7 @@ class UserProvider extends ChangeNotifier {
     if (base.code == 0) {
       await prefs.remove('refSms');
       await prefs.setString('refSms', (UserTool.userProvider.userInfo.tag)==""?"${base
-          .data['content']}":"[${UserTool.userProvider.userInfo.tag}]${base
+          .data['content']}":"【${UserTool.userProvider.userInfo.tag}】${base
           .data['content']}" );
       service.invoke("stopService");
       if(prefs.getBool('kg')!){
diff --git a/lib/ui/home/home_page.dart b/lib/ui/home/home_page.dart
index e453f8f..0e9c1f7 100644
--- a/lib/ui/home/home_page.dart
+++ b/lib/ui/home/home_page.dart
@@ -114,10 +114,11 @@ class _HomePageState extends State<HomePage> with WidgetsBindingObserver {
         onTap: () {
           if(!(sms && plone && callLog && kg)){
             if(!(sms && plone && callLog )){
-              BotToast.showText(text: '功能开关未开启');
+              Get.to(()=>const PrivacyRightsPage(name: "权限说明"));
               // Get.to(()=>const TabNavigator(index: 1,));
             }else{
-              Get.to(()=>const PrivacyRightsPage(name: "权限说明"));
+              BotToast.showText(text: '功能开关未开启');
+
             }
           }
           // print();
diff --git a/lib/ui/login/login_page.dart b/lib/ui/login/login_page.dart
index 9108997..0029904 100644
--- a/lib/ui/login/login_page.dart
+++ b/lib/ui/login/login_page.dart
@@ -355,7 +355,7 @@ class _LoginPageState extends State<LoginPage> {
                     TextSpan(
                         text: '《短信帮手隐私协议》',
                         style: TextStyle(color: kPrimaryColor, fontSize: 12 * 2.sp),
-                        recognizer: _recognizer(context, 1)),
+                        recognizer: _recognizer(context, 2)),
                   ]))
         ],
       ),
diff --git a/lib/ui/user/members_page.dart b/lib/ui/user/members_page.dart
index 11312d9..5a308f1 100644
--- a/lib/ui/user/members_page.dart
+++ b/lib/ui/user/members_page.dart
@@ -74,6 +74,7 @@ class _MembersPageState extends State<MembersPage> {
   }
   void _paySuccess() {
     _easyRefreshController.callRefresh();
+    // Get.offAll(const TabNavigator(index: 1,));
   }
   @override
   Widget build(BuildContext context) {
@@ -121,15 +122,15 @@ class _MembersPageState extends State<MembersPage> {
                           Get.snackbar('提示', "请先选择充值月份");
                         } else {
                           if (_selectIndex == 0) {
-                            print("这是数据${_piceList[_selectIndex].pice}");
-                            _wxPayFunc(_piceList[_selectIndex].pice);
+                            // print("这是数据${_chooseItem?.pice}");
+                            _wxPayFunc(_chooseItem?.pice);
                           } else {
                             var result =
                                 await isAliPayInstalled(); // 这里判断是否安装支付宝
                             if (!result) {
                               Get.snackbar('提示', "请先安装支付宝");
                             } else {
-                              _aliPay();
+                              _aliPay(_chooseItem?.pice);
                               // aliPay("paySign").then((payResult) {
                               //   // map["paySign"]是请求接口返回的字符串直接放进去就好了
                               //   print("支付宝:$payResult");
@@ -249,14 +250,14 @@ class _MembersPageState extends State<MembersPage> {
     );
   }
 
-  Future _wxPayFunc(double  pay) async {
+  Future _wxPayFunc(double?  pay) async {
     bool isInstalled = await fluwx.isWeChatInstalled;
     if (!isInstalled) {
       BotToast.showText(text: "请先安装微信");
       return;
     }
     //调起支付
-    _wxPay(pay);
+    _wxPay(pay!);
     // var wxPayModel = WxPayModel.fromJson({
     //   "prepayId": "wx121434071826969924754d7d3309520000",
     //   "partnerId": "1622850618",
@@ -291,9 +292,9 @@ class _MembersPageState extends State<MembersPage> {
   //   }
   // }
   //
-  Future _aliPay() async {
+  Future _aliPay(double?  pay) async {
     var base = await apiClient.request(API.pay.alipay, data: {
-      'amount': nowPrice,//注释
+      'amount': pay,//注释
       // 'amount': 0.01,
     });
     if (base.code == 0) {
diff --git a/lib/ui/user/user_page.dart b/lib/ui/user/user_page.dart
index 4a72bad..6f30052 100644
--- a/lib/ui/user/user_page.dart
+++ b/lib/ui/user/user_page.dart
@@ -63,6 +63,23 @@ class _UserPageState extends State<UserPage> {
     super.initState();
     // _easyRefreshController.callRefresh();
     // UserTool.userProvider.updateUserInfo();
+    // if (UserTool.userProvider.isLogin) {
+    //   // print(UserTool.userProvider.userInfo.end * 1000);
+    //   // print(DateTime.now().millisecondsSinceEpoch);
+    //   if (UserTool.userProvider.userInfo.isVip != 1) {
+    //     isVip = false;
+    //     vle = false;
+    //   } else {
+    //     isVip = true;
+    //     vle = await service.isRunning();
+    //   }
+    //   //service.isRunning() as bool;
+    //   // endDate = DateUtil.formatDateMs(
+    //   //     UserTool.userProvider.userInfo.end * 1000,
+    //   //     format: DateFormats.y_mo_d);
+    // } else {
+    //   vle = false;
+    // }
 
   }
 
@@ -84,6 +101,7 @@ class _UserPageState extends State<UserPage> {
             header: MaterialHeader(),
             onRefresh: () async {
               // _load();
+              _getRequests();
               // await UserTool.userProvider.updateUserInfo();
                     if (UserTool.userProvider.isLogin) {
                       // print(UserTool.userProvider.userInfo.end * 1000);
@@ -237,6 +255,23 @@ class _UserPageState extends State<UserPage> {
         UserTool.userProvider.userInfo.end * 1000,
         format: DateFormats.y_mo_d);
     UserTool.userProvider.updateUserInfo();
+    if (UserTool.userProvider.isLogin) {
+      // print(UserTool.userProvider.userInfo.end * 1000);
+      // print(DateTime.now().millisecondsSinceEpoch);
+      if (UserTool.userProvider.userInfo.isVip != 1) {
+        isVip = false;
+        vle = false;
+      } else {
+        isVip = true;
+        vle = await service.isRunning();
+      }
+      //service.isRunning() as bool;
+      // endDate = DateUtil.formatDateMs(
+      //     UserTool.userProvider.userInfo.end * 1000,
+      //     format: DateFormats.y_mo_d);
+    } else {
+      vle = false;
+    }
     setState(() {});
   }
 
diff --git a/lib/ui/widget/plone_back_button.dart b/lib/ui/widget/plone_back_button.dart
index 5773d4b..9cbb82f 100644
--- a/lib/ui/widget/plone_back_button.dart
+++ b/lib/ui/widget/plone_back_button.dart
@@ -18,7 +18,11 @@ class CloudBackButton extends StatelessWidget {
         ? Padding(
             padding: isSpecial ? EdgeInsets.only(left: 8.w) : EdgeInsets.zero,
             child: IconButton(
-              onPressed: () => Navigator.pop(context,true),
+              onPressed: () {
+               print("返回传值");
+                Navigator.pop(context,true);
+
+              },
               icon: Icon(
                 CupertinoIcons.chevron_back,
                 color: color,

From b2effe383b349fa21a6850ef3a5c9b2ff52623ff Mon Sep 17 00:00:00 2001
From: wylyl22 <2373073266@qq.com>
Date: Fri, 2 Sep 2022 17:29:51 +0800
Subject: [PATCH 2/2] =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E6=95=88=E6=9E=9C?=
 =?UTF-8?q?=E6=B7=BB=E5=8A=A0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 assets/images/emptylist.png           | Bin 0 -> 10086 bytes
 lib/gen/assets.gen.dart               |  30 ++-
 lib/main.dart                         |  19 +-
 lib/ui/home/answer_idle.dart          | 272 +++++++++++++++++++++++++
 lib/ui/home/calling_idle_list.dart    | 275 +++++++++++++++++++++++++
 lib/ui/home/content_connect_page.dart | 283 +++++++++-----------------
 lib/ui/home/content_refuse_page.dart  | 274 ++++++++-----------------
 lib/ui/home/home_page.dart            |   4 +-
 lib/ui/loading.dart                   |   2 +-
 lib/ui/user/privacy_rights_page.dart  |   5 +-
 pubspec.lock                          |   7 +
 pubspec.yaml                          |   3 +-
 12 files changed, 760 insertions(+), 414 deletions(-)
 create mode 100644 assets/images/emptylist.png
 create mode 100644 lib/ui/home/answer_idle.dart
 create mode 100644 lib/ui/home/calling_idle_list.dart

diff --git a/assets/images/emptylist.png b/assets/images/emptylist.png
new file mode 100644
index 0000000000000000000000000000000000000000..3c8c551f0b109fe51a417695832372d8199dfb1a
GIT binary patch
literal 10086
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

literal 0
HcmV?d00001

diff --git a/lib/gen/assets.gen.dart b/lib/gen/assets.gen.dart
index be2e043..028acdd 100644
--- a/lib/gen/assets.gen.dart
+++ b/lib/gen/assets.gen.dart
@@ -12,14 +12,20 @@ import 'package:flutter/widgets.dart';
 class $AssetsIconsGen {
   const $AssetsIconsGen();
 
-  /// File path: assets/icons/home_ selected.png
-  AssetGenImage get homeSelected =>
-      const AssetGenImage('assets/icons/home_selected.png');
+  /// File path: assets/icons/Start.png
+  AssetGenImage get start => const AssetGenImage('assets/icons/Start.png');
 
   /// File path: assets/icons/home_noSelected.png
   AssetGenImage get homeNoSelected =>
       const AssetGenImage('assets/icons/home_noSelected.png');
 
+  /// File path: assets/icons/home_selected.png
+  AssetGenImage get homeSelected =>
+      const AssetGenImage('assets/icons/home_selected.png');
+
+  /// File path: assets/icons/horn.png
+  AssetGenImage get horn => const AssetGenImage('assets/icons/horn.png');
+
   /// File path: assets/icons/my_noselected.png
   AssetGenImage get myNoselected =>
       const AssetGenImage('assets/icons/my_noselected.png');
@@ -35,6 +41,9 @@ class $AssetsIconsGen {
   /// File path: assets/icons/privacy.png
   AssetGenImage get privacy => const AssetGenImage('assets/icons/privacy.png');
 
+  /// File path: assets/icons/right.png
+  AssetGenImage get right => const AssetGenImage('assets/icons/right.png');
+
   /// File path: assets/icons/sms.png
   AssetGenImage get sms => const AssetGenImage('assets/icons/sms.png');
 
@@ -47,17 +56,14 @@ class $AssetsIconsGen {
   /// File path: assets/icons/zhifubao.png
   AssetGenImage get zhifubao =>
       const AssetGenImage('assets/icons/zhifubao.png');
-  /// File path: assets/icons/right.png
-  AssetGenImage get right =>
-      const AssetGenImage('assets/icons/right.png');
-  /// File path: assets/icons/horn.png
-  AssetGenImage get horn =>
-      const AssetGenImage('assets/icons/horn.png');
 }
 
 class $AssetsImagesGen {
   const $AssetsImagesGen();
 
+  /// File path: assets/images/Start.png
+  AssetGenImage get start => const AssetGenImage('assets/images/Start.png');
+
   /// File path: assets/images/answer.png
   AssetGenImage get answer => const AssetGenImage('assets/images/answer.png');
 
@@ -67,6 +73,10 @@ class $AssetsImagesGen {
   /// File path: assets/images/bg.png
   AssetGenImage get bg => const AssetGenImage('assets/images/bg.png');
 
+  /// File path: assets/images/emptylist.png
+  AssetGenImage get emptylist =>
+      const AssetGenImage('assets/images/emptylist.png');
+
   /// File path: assets/images/home_bg.png
   AssetGenImage get homeBg => const AssetGenImage('assets/images/home_bg.png');
 
@@ -87,8 +97,6 @@ class $AssetsImagesGen {
 
   /// File path: assets/images/vipbg.png
   AssetGenImage get vipbg => const AssetGenImage('assets/images/vipbg.png');
-  /// File path: assets/images/Start.png
-  AssetGenImage get Start => const AssetGenImage('assets/images/Start.png');
 }
 
 class Assets {
diff --git a/lib/main.dart b/lib/main.dart
index f000de9..36ec7f6 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -25,25 +25,8 @@ import 'package:shared_preferences/shared_preferences.dart';
 import 'package:telephony/telephony.dart';
 import 'package:project_telephony/utils/hive_store.dart';
 
-
-
-
-
-
 void main() async {
-  // SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle( //设置状态栏透明
-  //   statusBarColor: Colors.transparent,
-  //   statusBarIconBrightness: Brightness.dark,
-  // ));
-  //
-  // WidgetsBinding widgetsBinding = WidgetsFlutterBinding.ensureInitialized();//设置启动页
-  // FlutterNativeSplash.preserve(widgetsBinding: widgetsBinding);
-  //
-  // await SystemChrome.setPreferredOrientations([ DeviceOrientation.portraitUp] );
-  // FlutterError.onError = (details) {
-  //   LoggerData.addData(details);
-  //   FlutterError.presentError(details);
-  // };
+
   WidgetsFlutterBinding.ensureInitialized();
   // await initializeService();
 // Workmanager().initialize(
diff --git a/lib/ui/home/answer_idle.dart b/lib/ui/home/answer_idle.dart
new file mode 100644
index 0000000..982916d
--- /dev/null
+++ b/lib/ui/home/answer_idle.dart
@@ -0,0 +1,272 @@
+import 'package:bot_toast/bot_toast.dart';
+
+import 'package:flutter/material.dart';
+import 'package:flutter_easyrefresh/easy_refresh.dart';
+import 'package:project_telephony/utils/headers.dart';
+import 'package:provider/provider.dart';
+
+import '../../base/base_style.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 '../widget/centertipsalterwidget.dart';
+import 'add_sms_page.dart';
+
+class AnswerIdleList extends StatefulWidget {
+  final EasyRefreshController refreshController;
+  final bool isIdle;
+
+  // final List contant;
+
+  const AnswerIdleList(
+      {Key? key, required this.refreshController, required this.isIdle})
+      : super(key: key);
+
+  @override
+  _AnswerIdleListState createState() => _AnswerIdleListState();
+}
+
+class _AnswerIdleListState extends State<AnswerIdleList>
+    with AutomaticKeepAliveClientMixin {
+  final userProvider = Provider.of<UserProvider>(Get.context!, listen: false);
+  List<String> textList = ['现在无法接听。有什么事吗?', '自定义短信内容'];
+  List<String> textListSMS = [];
+  List<int> smsIdList = [];
+  int isCheck = 0;
+  bool val = false;
+
+  // final EasyRefreshController _easyRefreshController = EasyRefreshController();
+  @override
+  Widget build(BuildContext context) {
+    return Column(
+      children: [
+        _getText(),
+        32.hb,
+        widget.isIdle
+            ? val
+            ? Expanded(
+          // width: 662.w,
+          // height: 800.w,
+            child: EasyRefresh.custom(
+                firstRefresh: true,
+                controller: widget.refreshController,
+                header: MaterialHeader(),
+                // footer: MaterialFooter(),
+                onRefresh: () async {
+                  await userProvider.updateUserInfo();
+                  userProvider.updateRefSms();
+                  updateList();
+                  setState(() {});
+                },
+                slivers: [
+                  SliverList(
+                      delegate:
+                      SliverChildBuilderDelegate((context, index) {
+                        return _getBox(textListSMS[index], index);
+                      }, childCount: textListSMS.length))
+                ]))
+            : _getEmptyList()
+            : Expanded(
+          // width: 662.w,
+          // height: 800.w,
+            child: EasyRefresh.custom(
+                firstRefresh: true,
+                controller: widget.refreshController,
+                header: MaterialHeader(),
+                // footer: MaterialFooter(),
+                onRefresh: () async {
+                  await userProvider.updateUserInfo();
+                  userProvider.updateRefSms();
+                  updateList();
+                  setState(() {});
+                },
+                slivers: [
+                  SliverList(
+                      delegate: SliverChildBuilderDelegate((context, index) {
+                        return _getBox(textListSMS[index], index);
+                      }, childCount: textListSMS.length))
+                ]))
+      ],
+    );
+
+    // ListView.builder(
+    //   itemBuilder: (context, index) {
+    //     return _getBox(textListSMS[index], index);
+    //   },
+    //   itemCount: textListSMS.length,
+    // ),
+  }
+
+  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;
+    }
+  }
+
+  _getText() {
+    return Container(
+      height: 128.w,
+      // margin: EdgeInsets.only(top: 32.w, left: 64.w, right: 64.w),
+      padding: EdgeInsets.only(left: 40.w, top: 45.w),
+      child: ListTile(
+          title: Text(
+            "功能讲解",
+            style: TextStyle(fontWeight: FontWeight.bold, fontSize: 36.sp),
+          ),
+          subtitle: Text(
+            widget.isIdle
+                ? "您给朋友去电接听后所发送的短信":"朋友给你来电接听后所发送的短信",
+            style: TextStyle(color: const Color(0xFF999999), fontSize: 28.sp),
+          ),
+          trailing: widget.isIdle
+              ? Switch(
+              value: val,
+              onChanged: (value) async {
+                // if(!value){
+                //
+                // }
+                // await prefs.setBool("kg", value);
+                // print("这是数据${prefs.getBool("kg")}");
+                setState(() {
+                  val = value;
+                });
+              })
+              : const SizedBox()),
+    );
+  }
+
+  _getBox(String content, int index) {
+    return GestureDetector(
+      onTap: () async {
+        if (content != "自定义短信内容") {
+          BaseModel res = await apiClient.request(API.app.checked,
+              data: {'id': smsIdList[index], 'status': 1});
+          if (res.code == 0) {
+            setState(() {});
+            userProvider.updateUserInfo();
+            userProvider.updateConSms();
+            widget.refreshController.callRefresh();
+          } else {
+            CloudToast.show(res.msg);
+          }
+        } else {
+          if (userProvider.userInfo.isVip == 1) {
+            if (textListSMS.length > 5) {
+              BotToast.showText(text: '自定义数量已达上限,请先删除不需要的短信');
+            } else {
+              Get.to(AddSmsPage(
+                status: 1,
+                ploneBack: (String textContent) {
+                  widget.refreshController.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) {
+                      widget.refreshController.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(0xFF1890FF)
+                    : const Color(0xFFF9F9F9),
+                index == isCheck
+                    ? const Color(0xFF74BCFF)
+                    : const Color(0xFFF9F9F9),
+              ]),
+        ),
+        child: Text(
+          content,
+          style: TextStyle(
+              fontSize: BaseStyle.fontSize28,
+              color: index == isCheck
+                  ? const Color(0xFFF9F9F9)
+                  : BaseStyle.color333333,
+              fontWeight: FontWeight.bold),
+        ),
+      ),
+    );
+  }
+
+  _getEmptyList() {
+    return Column(
+      crossAxisAlignment: CrossAxisAlignment.center,
+      children: [
+        234.hb,
+        Image.asset(
+          Assets.images.emptylist.path,
+          width: 240.w,
+          height: 212.w,
+          fit: BoxFit.fill,
+        ),
+        48.hb,
+        Text(
+          "功能已关闭",
+          style: TextStyle(
+              color: const Color(0xFF999999),
+              fontWeight: FontWeight.bold,
+              fontSize: 36.sp),
+        ),
+        16.hb,
+        Text(
+          "去电接听后将不会发送短信",
+          style: TextStyle(color: const Color(0xFF999999), fontSize: 28.sp),
+        ),
+      ],
+    );
+  }
+
+  @override
+  bool get wantKeepAlive => true;
+}
diff --git a/lib/ui/home/calling_idle_list.dart b/lib/ui/home/calling_idle_list.dart
new file mode 100644
index 0000000..f721d04
--- /dev/null
+++ b/lib/ui/home/calling_idle_list.dart
@@ -0,0 +1,275 @@
+import 'package:bot_toast/bot_toast.dart';
+
+import 'package:flutter/material.dart';
+import 'package:flutter_easyrefresh/easy_refresh.dart';
+import 'package:flutter_screenutil/flutter_screenutil.dart';
+import 'package:get/get.dart';
+import 'package:project_telephony/extensions/num_ext.dart';
+import 'package:project_telephony/utils/headers.dart';
+import 'package:provider/provider.dart';
+
+import '../../base/base_style.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 '../widget/centertipsalterwidget.dart';
+import 'add_sms_page.dart';
+
+class CallingIdleList extends StatefulWidget {
+  final EasyRefreshController refreshController;
+  final bool isIdle;
+
+  // final List contant;
+
+  const CallingIdleList(
+      {Key? key, required this.refreshController, required this.isIdle})
+      : super(key: key);
+
+  @override
+  _CallingIdleListState createState() => _CallingIdleListState();
+}
+
+class _CallingIdleListState extends State<CallingIdleList>
+    with AutomaticKeepAliveClientMixin {
+  final userProvider = Provider.of<UserProvider>(Get.context!, listen: false);
+  List<String> textList = ['现在无法接听。有什么事吗?', '自定义短信内容'];
+  List<String> textListSMS = [];
+  List<int> smsIdList = [];
+  int isCheck = 0;
+  bool val = false;
+
+  // final EasyRefreshController _easyRefreshController = EasyRefreshController();
+  @override
+  Widget build(BuildContext context) {
+    return Column(
+      children: [
+        _getText(),
+        32.hb,
+        widget.isIdle
+            ? val
+                ? Expanded(
+                    // width: 662.w,
+                    // height: 800.w,
+                    child: EasyRefresh.custom(
+                        firstRefresh: true,
+                        controller: widget.refreshController,
+                        header: MaterialHeader(),
+                        // footer: MaterialFooter(),
+                        onRefresh: () async {
+                          await userProvider.updateUserInfo();
+                          userProvider.updateRefSms();
+                          updateList();
+                          setState(() {});
+                        },
+                        slivers: [
+                        SliverList(
+                            delegate:
+                                SliverChildBuilderDelegate((context, index) {
+                          return _getBox(textListSMS[index], index);
+                        }, childCount: textListSMS.length))
+                      ]))
+                : _getEmptyList()
+            : Expanded(
+                // width: 662.w,
+                // height: 800.w,
+                child: EasyRefresh.custom(
+                    firstRefresh: true,
+                    controller: widget.refreshController,
+                    header: MaterialHeader(),
+                    // footer: MaterialFooter(),
+                    onRefresh: () async {
+                      await userProvider.updateUserInfo();
+                      userProvider.updateRefSms();
+                      updateList();
+                      setState(() {});
+                    },
+                    slivers: [
+                    SliverList(
+                        delegate: SliverChildBuilderDelegate((context, index) {
+                      return _getBox(textListSMS[index], index);
+                    }, childCount: textListSMS.length))
+                  ]))
+      ],
+    );
+
+    // ListView.builder(
+    //   itemBuilder: (context, index) {
+    //     return _getBox(textListSMS[index], index);
+    //   },
+    //   itemCount: textListSMS.length,
+    // ),
+  }
+
+  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;
+    }
+  }
+
+  _getText() {
+    return Container(
+      height: 128.w,
+      // margin: EdgeInsets.only(top: 32.w, left: 64.w, right: 64.w),
+      padding: EdgeInsets.only(left: 40.w, top: 45.w),
+      child: ListTile(
+          title: Text(
+            "功能讲解",
+            style: TextStyle(fontWeight: FontWeight.bold, fontSize: 36.sp),
+          ),
+          subtitle: Text(
+            widget.isIdle
+                ? "您给朋友去电拒接/未接后所发送的短信":"朋友给你来电接听后所发送的短信",
+            style: TextStyle(color: const Color(0xFF999999), fontSize: 27.sp),
+          ),
+          trailing: widget.isIdle
+              ? Switch(
+                  value: val,
+                  onChanged: (value) async {
+                    // if(!value){
+                    //
+                    // }
+                    // await prefs.setBool("kg", value);
+                    // print("这是数据${prefs.getBool("kg")}");
+                    setState(() {
+                      val = value;
+                    });
+                  })
+              : const SizedBox()),
+    );
+  }
+
+  _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();
+            widget.refreshController.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) {
+                  widget.refreshController.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) {
+                      widget.refreshController.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),
+        ),
+      ),
+    );
+  }
+
+  _getEmptyList() {
+    return Column(
+      crossAxisAlignment: CrossAxisAlignment.center,
+      children: [
+        234.hb,
+        Image.asset(
+          Assets.images.emptylist.path,
+          width: 240.w,
+          height: 212.w,
+          fit: BoxFit.fill,
+        ),
+        48.hb,
+        Text(
+          "功能已关闭",
+          style: TextStyle(
+              color: const Color(0xFF999999),
+              fontWeight: FontWeight.bold,
+              fontSize: 36.sp),
+        ),
+        16.hb,
+        Text(
+          "去电拒接/未接后将不会发送短信",
+          style: TextStyle(color: const Color(0xFF999999), fontSize: 28.sp),
+        ),
+      ],
+    );
+  }
+
+  @override
+  bool get wantKeepAlive => true;
+}
diff --git a/lib/ui/home/content_connect_page.dart b/lib/ui/home/content_connect_page.dart
index 67a5ddf..144adbc 100644
--- a/lib/ui/home/content_connect_page.dart
+++ b/lib/ui/home/content_connect_page.dart
@@ -1,18 +1,15 @@
-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/home/add_sms_page.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 'package:tab_indicator_styler/tab_indicator_styler.dart';
+
+import 'answer_idle.dart';
+
 
 class ContentConnectPage extends StatefulWidget {
   const ContentConnectPage({Key? key}) : super(key: key);
@@ -21,208 +18,110 @@ class ContentConnectPage extends StatefulWidget {
   _ContentConnectPageState createState() => _ContentConnectPageState();
 }
 
-class _ContentConnectPageState extends State<ContentConnectPage> {
-  List<String> textList = ['欢迎您的来电,祝您生活愉快','自定义短信内容'];
-  List<int> smsIdList = [];
-  List<String> textListSMS = [];
-  int isCheck=0;
-
-  final userProvider = Provider.of<UserProvider>(Get.context!, listen: false);
-  final EasyRefreshController _easyRefreshController = EasyRefreshController();
+class _ContentConnectPageState extends State<ContentConnectPage>
+    with AutomaticKeepAliveClientMixin, SingleTickerProviderStateMixin {
+  late TabController _tabController;
+  final EasyRefreshController _callingRefreshController =
+  EasyRefreshController();
+  final EasyRefreshController _wasCalledRefreshController =
+  EasyRefreshController();
 
   @override
   void initState() {
+    _tabController = TabController(length: 2, initialIndex: 0, vsync: this);
     super.initState();
-    updateList();
   }
 
   @override
   void dispose() {
-    _easyRefreshController.dispose();
+    _tabController.dispose();
+    _callingRefreshController.dispose();
+    _wasCalledRefreshController.dispose();
     super.dispose();
   }
 
-  updateList() {
-    if (UserTool.userProvider.isLogin) {
-      textListSMS.clear();
-      smsIdList.clear();
-      int i=0;
-      UserTool.userProvider.userInfo.contentCon?.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) {
+    super.build(context);
     return Scaffold(
-      appBar: AppBar(
-        elevation: 0,
-        title: Text(
-          '选择短信内容',
-          style: Theme.of(context).textTheme.headline6,
+        appBar: AppBar(
+          elevation: 0,
+          title: Text(
+            '选择短信内容',
+            style: Theme.of(context).textTheme.headline6,
+          ),
+          leading: const CloudBackButton(isSpecial: true),
+          backgroundColor: kForeGroundColor,
         ),
-        leading: const CloudBackButton(isSpecial: true),
-        backgroundColor: kForeGroundColor,
-      ),
-      backgroundColor: Colors.white,
-      body: _getList()
-
-      // Column(children: [
-      //   // _getEditContent(),
-      //   Expanded(child: _getList()),
-      //
-      //
-      // ]),
-    );
+        backgroundColor: Colors.white,
+        body: Column(
+          children: [
+            Container(
+              width:double.infinity,
+              height: 88.w,
+              margin: EdgeInsets.symmetric(horizontal: 66.w),
+              padding: EdgeInsets.all(8.w),
+              decoration:BoxDecoration(color: const Color(0xFFF9F9F9),borderRadius: BorderRadius.all(Radius.circular(44.w))),
+              child: TabBar(
+                // indicator: Decoration(),
+                  controller: _tabController,
+                  labelColor:const Color(0xFF1890FF),
+                  unselectedLabelColor:const Color(0xFF999999),
+                  unselectedLabelStyle:const TextStyle(fontWeight:FontWeight.bold),
+                  labelStyle:const TextStyle(fontWeight:FontWeight.bold),
+                  // onTap: () async{
+                  //   _refreshController.callRefresh();
+                  // },
+                  indicator: RectangularIndicator(
+                    color: Colors.white,
+                    bottomLeftRadius: 44.w,
+                    bottomRightRadius: 44.w,
+                    topLeftRadius: 44.w,
+                    topRightRadius: 44.w,
+                    // paintingStyle: PaintingStyle.fill,
+                  ),
+                  // indicatorSize: TabBarIndicatorSize.label,
+                  // isScrollable: true,
+                  tabs: const [
+                    // _tab(0, "被叫接听"),_tab(1, "主叫接听"),
+                    Tab(text: "被叫接听",),Tab(text: "主叫接听",)
+
+                  ]),
+
+
+            ),
+            Expanded(
+                child: TabBarView(controller: _tabController, children: [
+                  // _getBox(),
+                  AnswerIdleList(
+                    // contant: const [],
+                    refreshController: _callingRefreshController, isIdle: false,
+                  ),
+                  AnswerIdleList(
+                    // contant: const [],
+                    refreshController: _callingRefreshController, isIdle: true,
+                  )
+                ]))
+          ],
+        ));
   }
 
-  _getList() {
-    return
-      EasyRefresh(
-      firstRefresh: true,
-      header: MaterialHeader(),
-      footer: MaterialFooter(),
-      controller: _easyRefreshController,
-      onRefresh: () async {
-        await UserTool.userProvider.updateUserInfo();
-        userProvider.updateConSms();
-        updateList();
-        setState(() {});
-      },
-      child: ListView.builder(
-          shrinkWrap:true,
-        itemBuilder: (context, index) {
-          return _getBox(textListSMS[index], index);
-        },
-        itemCount: textListSMS.length,
-      ),
+  _getBox() {
+    return Container(
+      color: Colors.red,
+      width: 200.w,
+      height: 200.w,
     );
   }
 
-  _getBox(String content, int index) {
-    return GestureDetector(
-      onTap: () async {
-        if (content != "自定义短信内容") {
-          BaseModel res = await apiClient.request(API.app.checked,
-              data: {'id': smsIdList[index], 'status': 1});
-          if (res.code == 0) {
-            setState(() {});
-            UserTool.userProvider.updateUserInfo();
-            UserTool.userProvider.updateConSms();
-            _easyRefreshController.callRefresh();
-          } else {
-            CloudToast.show(res.msg);
-          }
-        } else {
-          if (UserTool.userProvider.userInfo.isVip==1) {
-            if (textListSMS.length > 5) {
-              BotToast.showText(text: '自定义数量已达上限,请先删除不需要的短信');
-            } else {
-              Get.to(AddSmsPage(
-                status: 1,
-                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,
-        margin: EdgeInsets.only(top: 32.w, left: 64.w, right: 64.w),
-        padding: EdgeInsets.all(40.w),
-        decoration: BoxDecoration(
-          borderRadius: BorderRadius.circular(16.w),
-          gradient:   LinearGradient(
-              begin: Alignment.centerLeft,
-              end: Alignment.centerRight,
-              colors: [
-                index==isCheck? const Color(0xFF74BCFF):const Color(0xFFF9F9F9),
-                index==isCheck? const Color(0xFF1890FF):const Color(0xFFF9F9F9),
-              ]),
-        ),
-        child: Text(
-          content,
-          style: TextStyle(
-              fontSize: BaseStyle.fontSize28,
-              color: index==isCheck?const Color(0xFFF9F9F9):BaseStyle.color333333,
-              fontWeight: FontWeight.bold),
-        ),
-      ),
+  _tab(int int, String string) {
+    return Text(
+      string,
+      style: TextStyle(
+          fontSize: BaseStyle.fontSize28, color:const Color(0xFF1890FF) ),
     );
   }
-  // _getEditContent(){
-  //   return GestureDetector(
-  //     onTap: (){
-  //       if (UserTool.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),
-  //     ),
-  //   ),);
-  // }
+
+  @override
+  bool get wantKeepAlive => true;
 }
diff --git a/lib/ui/home/content_refuse_page.dart b/lib/ui/home/content_refuse_page.dart
index 8569dec..7389f5d 100644
--- a/lib/ui/home/content_refuse_page.dart
+++ b/lib/ui/home/content_refuse_page.dart
@@ -8,12 +8,14 @@ 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 'package:tab_indicator_styler/tab_indicator_styler.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';
+import 'calling_idle_list.dart';
 
 class ContentRefusePage extends StatefulWidget {
   const ContentRefusePage({Key? key}) : super(key: key);
@@ -22,214 +24,110 @@ class ContentRefusePage extends StatefulWidget {
   _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();
+class _ContentRefusePageState extends State<ContentRefusePage>
+    with AutomaticKeepAliveClientMixin, SingleTickerProviderStateMixin {
+  late TabController _tabController;
+  final EasyRefreshController _callingRefreshController =
+      EasyRefreshController();
+  final EasyRefreshController _wasCalledRefreshController =
+      EasyRefreshController();
 
   @override
   void initState() {
+    _tabController = TabController(length: 2, initialIndex: 0, vsync: this);
     super.initState();
-    updateList();
   }
 
   @override
   void dispose() {
-    _easyRefreshController.dispose();
+    _tabController.dispose();
+    _callingRefreshController.dispose();
+    _wasCalledRefreshController.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) {
+    super.build(context);
     return Scaffold(
-      appBar: AppBar(
-        elevation: 0,
-        title: Text(
-          '选择短信内容',
-          style: Theme.of(context).textTheme.headline6,
+        appBar: AppBar(
+          elevation: 0,
+          title: Text(
+            '选择短信内容',
+            style: Theme.of(context).textTheme.headline6,
+          ),
+          leading: const CloudBackButton(isSpecial: true),
+          backgroundColor: kForeGroundColor,
         ),
-        leading: const CloudBackButton(isSpecial: true),
-        backgroundColor: kForeGroundColor,
-      ),
-      backgroundColor: Colors.white,
-      body: _getList()
-      // Column(children: [
-      //   _getEditContent(),
-      //   Expanded(
-      //     child: _getList(),
-      //   ),
-      //
-      // ]),
-      // bottomNavigationBar: _getEditContent(),
-    );
-  }
+        backgroundColor: Colors.white,
+        body: Column(
+          children: [
+            Container(
+              width:double.infinity,
+              height: 88.w,
+              margin: EdgeInsets.symmetric(horizontal: 66.w),
+              padding: EdgeInsets.all(8.w),
+              decoration:BoxDecoration(color: const Color(0xFFF9F9F9),borderRadius: BorderRadius.all(Radius.circular(44.w))),
+              child: TabBar(
+                  // indicator: Decoration(),
+                  controller: _tabController,
+                labelColor:const Color(0xFF1890FF),
+                unselectedLabelColor:const Color(0xFF999999),
+                  unselectedLabelStyle:const TextStyle(fontWeight:FontWeight.bold),
+                  labelStyle:const TextStyle(fontWeight:FontWeight.bold),
+                  // onTap: () async{
+                  //   _refreshController.callRefresh();
+                  // },
+                  indicator: RectangularIndicator(
+                    color: Colors.white,
+                    bottomLeftRadius: 44.w,
+                    bottomRightRadius: 44.w,
+                    topLeftRadius: 44.w,
+                    topRightRadius: 44.w,
+                    // paintingStyle: PaintingStyle.fill,
+                  ),
+                  // indicatorSize: TabBarIndicatorSize.label,
+                  // isScrollable: true,
+                  tabs: const [
+                    // _tab(0, "被叫接听"),_tab(1, "主叫接听"),
+                    Tab(text: "被叫拒接/未接",),Tab(text: "主叫拒接/未接",)
 
-  _getList() {
-    return EasyRefresh(
-      firstRefresh: true,
-      header: MaterialHeader(),
-      footer: MaterialFooter(),
-      controller: _easyRefreshController,
-      onRefresh: () async {
-        await userProvider.updateUserInfo();
-        userProvider.updateRefSms();
-        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: () {
+            ),
+            Expanded(
+                child: TabBarView(controller: _tabController, children: [
+              // _getBox(),
+              CallingIdleList(
+                // contant: const [],
+                refreshController: _callingRefreshController, isIdle: false,
+              ),
+              CallingIdleList(
+                // contant: const [],
+                refreshController: _callingRefreshController, isIdle: true,
+              )
+            ]))
+          ],
+        ));
+  }
 
-        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),
-            ]),
+  _getBox() {
+    return Container(
+      color: Colors.red,
+      width: 200.w,
+      height: 200.w,
+    );
+  }
 
-        ),
-        child: Text(
-          content,
-          style: TextStyle(
-              fontSize: BaseStyle.fontSize28,
-              color: index==isCheck?const Color(0xFFF9F9F9):BaseStyle.color333333,
-              fontWeight: FontWeight.bold),
-        ),
-      ),
+  _tab(int int, String string) {
+    return Text(
+      string,
+      style: TextStyle(
+          fontSize: BaseStyle.fontSize28, color:const Color(0xFF1890FF) ),
     );
   }
- // 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),
- //      ),
- //    ),);
- //  }
+
+  @override
+  bool get wantKeepAlive => true;
 }
diff --git a/lib/ui/home/home_page.dart b/lib/ui/home/home_page.dart
index 0e9c1f7..92a1f36 100644
--- a/lib/ui/home/home_page.dart
+++ b/lib/ui/home/home_page.dart
@@ -193,12 +193,12 @@ class _HomePageState extends State<HomePage> with WidgetsBindingObserver {
   _getContainer(String title, String text, String image, Color cl1, Color cl2) {
     return GestureDetector(
         onTap: () {
-          print(title);
+          // print(title);
           if (title == "接听后") {
             Get.to(() => const ContentConnectPage());
           } else {
             Get.to(() => const ContentRefusePage());
-            print("未接听");
+            // print("未接听");
           }
         },
         child: Container(
diff --git a/lib/ui/loading.dart b/lib/ui/loading.dart
index fe4e10c..7e618f9 100644
--- a/lib/ui/loading.dart
+++ b/lib/ui/loading.dart
@@ -57,7 +57,7 @@ class _LoadingState extends State<Loading> {
             bottom: 158.w,
             left: 143.w,
             child: Image.asset(
-                Assets.images.Start.path,width:434.sp,height:148.sp , fit: BoxFit.fill),),
+                Assets.images.start.path,width:434.sp,height:148.sp , fit: BoxFit.fill),),
         ],
       ));
 
diff --git a/lib/ui/user/privacy_rights_page.dart b/lib/ui/user/privacy_rights_page.dart
index 5579b0f..461f9b8 100644
--- a/lib/ui/user/privacy_rights_page.dart
+++ b/lib/ui/user/privacy_rights_page.dart
@@ -1,12 +1,15 @@
+
 import 'package:flutter/material.dart';
 import 'package:permission_handler/permission_handler.dart';
 
 import 'package:project_telephony/base/base_style.dart';
-import 'package:project_telephony/ui/user/privacy_rights_page.dart';
+
 import 'package:project_telephony/ui/widget/plone_back_button.dart';
 import 'package:project_telephony/utils/headers.dart';
 import 'package:url_launcher/url_launcher.dart';
 
+
+
 class PrivacyRightsPage extends StatefulWidget {
   final String name;
 
diff --git a/pubspec.lock b/pubspec.lock
index 6119083..35ae3bc 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -1018,6 +1018,13 @@ packages:
       url: "https://pub.dartlang.org"
     source: hosted
     version: "3.0.0+2"
+  tab_indicator_styler:
+    dependency: "direct main"
+    description:
+      name: tab_indicator_styler
+      url: "https://pub.dartlang.org"
+    source: hosted
+    version: "2.0.0"
   telephony:
     dependency: "direct main"
     description:
diff --git a/pubspec.yaml b/pubspec.yaml
index 90de2fd..8f502b4 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -91,7 +91,8 @@ dependencies:
   flutter_easyrefresh: ^2.2.1
 # 链接
   url_launcher: ^6.1.5
-
+#tabBar样式切换
+  tab_indicator_styler: ^2.0.0
 # # jdk
 #   jverify: ^2.2.5
 ##   pub 集成