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 集成