From 35eac9b0a230c6777e2d6185d8912b13288951c4 Mon Sep 17 00:00:00 2001 From: WinUser01 Date: Sun, 10 Apr 2022 16:59:29 +0800 Subject: [PATCH] =?UTF-8?q?hyzp=5Fybqx-Commit121=EF=BC=9A=E5=B7=B2?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E5=AE=9A=E6=97=B6=E6=8F=90=E9=86=92=EF=BC=8C?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E6=8F=90=E9=86=92=E9=97=B4=E9=9A=94=E4=B8=BA?= =?UTF-8?q?60S=EF=BC=8C=E5=B7=B2=E7=BB=8F=E5=AE=9E=E7=8E=B0=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E8=AE=BE=E7=BD=AE=E5=AE=9A=E6=97=B6=E9=97=B4=E9=9A=94?= =?UTF-8?q?=E3=80=82=E7=8E=B0=E5=9C=A8=E5=8F=AA=E8=83=BD=E5=89=8D=E5=8F=B0?= =?UTF-8?q?=E6=8F=90=E9=86=92=EF=BC=8C=E5=90=8E=E5=8F=B0=E6=8F=90=E9=86=92?= =?UTF-8?q?=E5=90=8E=E7=BB=AD=E5=B0=BD=E9=87=8F=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/images/时间间隔.png | Bin 0 -> 2926 bytes lib/pages/tabs/Tabs.dart | 7 +- lib/pages/tabs/page4_myMsics_new.dart | 19 +- lib/pages/tabs/page7_setRemind.dart | 278 ++++++++++++++++++++++++++ 4 files changed, 287 insertions(+), 17 deletions(-) create mode 100644 assets/images/时间间隔.png create mode 100644 lib/pages/tabs/page7_setRemind.dart diff --git a/assets/images/时间间隔.png b/assets/images/时间间隔.png new file mode 100644 index 0000000000000000000000000000000000000000..eceb8f19c91837aac46dcd19c62feb9764557c2e GIT binary patch literal 2926 zcmeHJ`#;nBAK&Iv8yyQ3Oah$_&mMmZHh|w6h2(5K0)-t5bmj z<(=uy@|tm=ylj4uyH*@H{Me{M6JW~K4u!UsX{Uy$buNBt;Dwl7G44Yp;KCWpW6o_y z=kI=D1`6ij27K-LEe+L1i>L4JiYMb2*C&3w+&pH7*z<7rnU5(_BIN(_5!iuWD0b1O z4g)cpiTfPfmEs^wAg-4^gT!S<)&}l{O1VMqJLV}sfq%>Y4_lIJPtBZKyQMX&x?=Ns z@rSpi$q`yx`bSfZG#(8|LD%?{kv+Mp7v41PH6>o9ibWmd#0~7jhfycd-Lw&#OvKP( z?6@SlFl2yUIeZ^2$Zm^0a!@>uZqULIkv69?=~Qu)Y9e}V`acw_pD&)7M@7ljtTs`y zlM1%;n@pEH+ZA`rrw5R+it%cF>{%co9hP?3?JTuqk1P{`U{#=W z2u#pr2RaJte*?gmY7<;U$zDo89t(8J)^aBz1Lc^9+%k6U#b@Sk3T;Hy5SgHf920dt zNv$m@1wqONyCV$GL=llCoAH?ehXR9$NOU#W{T}Y=rUZQLt0HZuvfE0vWtr^0!6p@K zv$G}tgj8C2?o_vPw~@N*Ug?Bpy&^*uEJnuFRyx>Sg_~djqI?)~QM9k`lZ>;Gk4Z=gsV_V^AOF^OIqhxuYH%I=1# z0J>5W)$y81@DfjZdwV9Baav>T2FE|8$cm0&X9D#(dirg(ffKtr4&b z?iTA+bG+H`CpXE_4^lw`>*(erv^slITSu$wcU#0{9%VPtqO7Dc7#1{*%Va^94*#({ zuxsb>D0$T<{gWHyo%dp|dt}Mrbpz{%^32JB9r7=3+b(lB=?vOTmY7wS%d`i?^6YTI z)05-`Zf`tjP@9B$boz;3lFtOnCvcn|$!}fnellbB*D4IHXfo551Q4iodi)pp5B>Cj< z=I(&h1>ex68%0m@Ek8Ru^dMkSz0VvfWy3mhj;(Q{@e=>HuFHqN!wUp&7E_kQ3w-Yk z4aeg1SY)8JdCj9iNovcvC8d?f4omX{-u%$2IDFn)mya=&mwsSgtTr2$)Y8)=q!o6@ z)@vNze9abt@8|94 z4EAtzQ7FX2#FlG@U#~42z3=0=?ChWy%<-lR)ce(=-bbC zPIcB!3P5>i5wCxMQQH0OZOpCtkOFh#J~Q%T>eyY=awS_VvZPZ#m~}~rzQCJhN87QB z!Wa4@ulqJrU$_D?UW=U*)4)cZus89d??%AwQ_m@W_?HmsU5$ zas1`jOfw=^voU8K#LdhEyagu@fwJ<)BwAavu#T9{&yHi7#D9@9t8 z`sQ4&vomj1wXcm~d}G`3T#0E^FnMrCt^8k#l#lu^a#O`CiA1XS&kr&$yt9~|(>P?7 zeEr+2=SsGYjE{c~+dm)~9H^UC=57?$MfYwp`l)Kn0?rv@Oi47G#$pP%CfwDj=)$P$ zRZGVk&z415L`&Dp+q^5nCtH+&c{)O#^LoCKpf_v4TlpcX;H|~TNq1tjskD97eTPt^ zy6RSQz-wgF^x%fRvgkJ>yko}uQH3O$WuzrWqDp-$+o%4~Y$hmW*fX5waG`Znf0_g5 zklZr3{IXN5?!ITng!F=z&*ftMi50=grwfg-&5bB^mW?Ky={owrVY)UFi zx6M#w*=WI;ubW?XVL3!clh9BgD=o3q6#*vOEB&QOgy7Kuw{^C|5O-JrouGt6_IRGLPlPbz` bvVcV9dxBPh0~Mz!4bTvx?J*m^^=almiWKV( literal 0 HcmV?d00001 diff --git a/lib/pages/tabs/Tabs.dart b/lib/pages/tabs/Tabs.dart index ead7e70..1e421ee 100644 --- a/lib/pages/tabs/Tabs.dart +++ b/lib/pages/tabs/Tabs.dart @@ -121,8 +121,11 @@ class _TabsState extends State { @override void dispose() { - // ///取消计时器 - // g_remindTimer.cancel(); + // 取消定时任务 + if (null != g_remindTimer) { + g_remindTimer.cancel(); //取消计时器 + } + super.dispose(); } diff --git a/lib/pages/tabs/page4_myMsics_new.dart b/lib/pages/tabs/page4_myMsics_new.dart index 757616a..9a7d6e5 100644 --- a/lib/pages/tabs/page4_myMsics_new.dart +++ b/lib/pages/tabs/page4_myMsics_new.dart @@ -15,6 +15,7 @@ import 'package:hyzp_ybqx/pages/Works/DWDT/dwInfo_data.dart'; import 'package:hyzp_ybqx/pages/Works/TJXX/tj_data.dart'; import 'package:hyzp_ybqx/pages/tabs/page5_userManager.dart'; import 'package:hyzp_ybqx/pages/tabs/page6_download.dart'; +import 'package:hyzp_ybqx/pages/tabs/page7_setRemind.dart'; import 'package:hyzp_ybqx/services/EventBus.dart'; import 'package:hyzp_ybqx/widget/JdButton.dart'; import 'package:package_info/package_info.dart'; @@ -211,14 +212,10 @@ class _Page4_MyMsicsNewState extends State leadPath: 'assets/images/download.png', leadColor: _deepBlueColor, onTapFun: OnTap_download), - _getListTile('待审提醒', + _getListTile('提醒设置', leadPath: 'assets/images/语音提醒.png', leadColor: _deepGreyColor, - textColor: g_bVoiceRemind ? Colors.blue : null, - onTapFun: OnTap_Remind, - trailWidget: g_bVoiceRemind - ? Icon(Icons.check_box, color: Colors.blue) - : Icon(Icons.check_box_outline_blank, color: Colors.blueAccent)), + onTapFun: OnTap_Remind), _getListTile('关于', leadPath: 'assets/images/关于.png', leadColor: _deepBlueColor, onTapFun: OnTap_MyAbout) @@ -437,15 +434,7 @@ class _Page4_MyMsicsNewState extends State } OnTap_Remind() { - setState(() { - g_bVoiceRemind = !g_bVoiceRemind; - print("bVoiceRemind = $g_bVoiceRemind"); - Storage.setBool('bVoiceRemind', g_bVoiceRemind); - if (g_bVoiceRemind) { - AudioCache().play(File('audio/语音提醒.mp3').path); //语音提醒 - } - getListView(); - }); + Navigator.of(context).push(MaterialPageRoute(builder: (context) => page7_setRemind())); } OnTap_MyAbout() { diff --git a/lib/pages/tabs/page7_setRemind.dart b/lib/pages/tabs/page7_setRemind.dart new file mode 100644 index 0000000..3552d9b --- /dev/null +++ b/lib/pages/tabs/page7_setRemind.dart @@ -0,0 +1,278 @@ +import 'dart:io'; + +import 'package:audioplayers/audio_cache.dart'; +import 'package:badges/badges.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_screenutil/flutter_screenutil.dart'; +import 'package:hyzp_ybqx/pages/Login/FaceReg.dart'; +import 'package:hyzp_ybqx/pages/Login/ModifyPassword.dart'; +import 'package:hyzp_ybqx/services/EventBus.dart'; +import 'package:hyzp_ybqx/services/Storage.dart'; + +import '../../components/commonFun.dart'; +import '../../widget/JdButton.dart'; + +class page7_setRemind extends StatefulWidget { + page7_setRemind({Key key}) : super(key: key); + + _LoginPageState createState() => _LoginPageState(); +} + +class _LoginPageState extends State { + dispose() { + super.dispose(); + } + + @override + void initState() { + super.initState(); + + getListView(); + + //监听 g_bVoiceRemind 更新事件 + eventBus.on().listen((event) async { + print(event.str + ", g_bVoiceRemind = $g_bVoiceRemind"); + setState(() { + getListView(); + }); + }); + } + + //////// + static onNullFun() {} + + Widget _getListTile( + title, { + String leadPath = '', + Color leadColor, + Color textColor, + onTapFun = onNullFun, + onLongPressFun = onNullFun, + size = 16.0, + bool bBadge = false, + Widget trailWidget = const Icon(Icons.arrow_forward_ios), + }) { + // print("_getListTile bVoiceRemind = $bVoiceRemind"); // _getListTile bVoiceRemind = false + return Column( + children: [ + ListTile( + leading: bBadge + ? Badge( + position: BadgePosition.topEnd(top: -7, end: -12), + badgeContent: null, + child: Image.asset( + leadPath, + height: ScreenUtil().setHeight(78), + fit: BoxFit.fitHeight, + // color: leadColor, // 无效 + ), + ) + : Image.asset( + leadPath, + height: ScreenUtil().setHeight(78), + fit: BoxFit.fitHeight, + ), + title: Text(title, style: TextStyle(fontSize: size, color: textColor)), + trailing: trailWidget, + contentPadding: EdgeInsets.symmetric(horizontal: 20.0, vertical: 0), + enabled: true, + onTap: onTapFun, + onLongPress: onLongPressFun, + ), + Divider( + height: 1.0, + ), + ], + ); + } + + List _listViewUser = []; + + Color _greenColor = Color.fromRGBO(36, 206, 192, 1); //绿色 + Color _deepBlueColor = Color.fromRGBO(79, 118, 230, 1); //深蓝 + Color _deepGreyColor = Color.fromRGBO(116, 139, 161, 1); //深灰 + Color _ligthBlueColor = Color.fromRGBO(80, 159, 245, 1); //亮蓝 + + OnTap_FaceReg() async { + Navigator.of(context).push(MaterialPageRoute(builder: (context) => FaceReg())); + } + + OnTap_modify_password() { + Navigator.of(context).push(MaterialPageRoute(builder: (context) => ModifyPassword())); + } + + OnTap_Remind() { + setState(() { + g_bVoiceRemind = !g_bVoiceRemind; + print("bVoiceRemind = $g_bVoiceRemind"); + Storage.setBool('bVoiceRemind', g_bVoiceRemind); + if (g_bVoiceRemind) { + print("播放语音提醒"); + AudioCache().play(File('audio/语音提醒.mp3').path); //语音提醒 + } + getListView(); + }); + } + + getListView() { + _listViewUser.clear(); + _listViewUser = [ + Center( + child: Container( + margin: EdgeInsets.only(top: 30), + height: ScreenUtil().setWidth(160), + width: ScreenUtil().setWidth(160), + //child: Image.asset('assets/images/user.png', fit: BoxFit.cover), + child: Image.asset('assets/images/ybsthbj.png', fit: BoxFit.fitHeight), + ), + ), + SizedBox(height: 50), + _getListTile('待审提醒', + leadPath: 'assets/images/语音提醒.png', + leadColor: _deepGreyColor, + textColor: g_bVoiceRemind ? Colors.blue : null, + onTapFun: OnTap_Remind, + trailWidget: g_bVoiceRemind + ? Icon(Icons.check_box, color: Colors.blue) + : Icon(Icons.check_box_outline_blank, color: Colors.blueAccent)), + _getListTile('提醒间隔(秒)', + leadPath: 'assets/images/时间间隔.png', + leadColor: _deepBlueColor, + trailWidget: getTextField()), + SizedBox(height: 60), + Row( + mainAxisAlignment: MainAxisAlignment.spaceAround, + children: [ + JdButton( + height: 128, + width: 282, + //height: 126, + text: "确认", + color: Colors.blueAccent, + onTop: () { + if (g_bVoiceRemind) { + g_remindGap = _gap; + print("g_remindGap = $g_remindGap"); + Storage.setInt('nRemindGap', g_remindGap); + setRemindTimer(); + } + Navigator.pop(context); + }, + ), + JdButton( + height: 128, + width: 282, + //height: 126, + text: "取消", + color: Colors.blueAccent, + onTop: () { + Navigator.pop(context); + }, + ) + ], + ), + ]; + } + + int _gap = g_remindGap; + + Widget getTextField() { + return Container( + width: ScreenUtil().setWidth(150), + child: TextField( + readOnly: !g_bVoiceRemind, + focusNode: FocusNode(), + textAlignVertical: TextAlignVertical(y: 1.0), + controller: TextEditingController.fromValue(TextEditingValue( + text: _gap.toString(), + // 保持光标在最后 + selection: TextSelection.fromPosition( + TextPosition(affinity: TextAffinity.downstream, offset: _gap.toString().length)))), + maxLines: 1, + keyboardType: TextInputType.number, + decoration: InputDecoration( + //contentPadding: EdgeInsets.only(bottom: 16), + // hintText: widget.text, + // border: OutlineInputBorder( + // borderRadius: BorderRadius.circular(30), borderSide: BorderSide.none), + border: UnderlineInputBorder(borderSide: BorderSide(color: Colors.lightBlue)), + focusedBorder: UnderlineInputBorder(borderSide: BorderSide(color: Colors.lightBlue)), + enabledBorder: UnderlineInputBorder(borderSide: BorderSide(color: Colors.lightBlue)), + ), + onChanged: (v) { + _gap = int.parse(v); + }, + ), + ); + } + + //////// + + @override + Widget build(BuildContext context) { + return Scaffold( + appBar: PreferredSize( + preferredSize: Size.fromHeight(ScreenUtil().setHeight(173)), // 设置appBar高度 + // 设置appBar高度 + child: AppBar( + automaticallyImplyLeading: false, + centerTitle: true, + titleSpacing: 0.0, + //设置title的左边距 + flexibleSpace: Container( + //SizedBox(height: ScreenUtil().statusBarHeight), //显示顶部状态栏 + // SizedBox(height: ScreenUtil().setHeight(10)), //显示顶部状态栏 + padding: EdgeInsets.only(top: ScreenUtil().statusBarHeight), //留出顶部状态栏高度 + child: Container( + //height: ScreenUtil().setHeight(173), + decoration: BoxDecoration( + gradient: LinearGradient( + begin: Alignment.centerLeft, + end: Alignment.centerRight, + colors: [ + Color.fromRGBO(12, 186, 156, 1), + Color.fromRGBO(39, 127, 235, 1), + ], + ), + ), + // decoration: BoxDecoration( + // gradient: LinearGradient(colors: [ + // Color(0xFF0018EB), + // Color(0xFF01C1D9), + // ], begin: Alignment.bottomCenter, end: Alignment.topCenter), + // ), + ), + ), + title: Padding( + padding: EdgeInsets.only(left: 0, right: 0), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + getIconAndTextButton( + iconColor: Colors.white, + iconData: Icons.chevron_left_outlined, + onPress: () { + Navigator.pop(context); + }, + ), + Expanded( + child: Text("语音提醒设置", + style: TextStyle(color: Colors.white, fontSize: 20), + textAlign: TextAlign.center, + overflow: TextOverflow.ellipsis), + ), + SizedBox(width: 50), + ], + ), + ), + ), + ), + body: Container( + padding: EdgeInsets.only(top: 30, bottom: 20, left: 20, right: 20), + child: ListView( + children: _listViewUser, + ), + ), + ); + } +}