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'; import 'package:flutter_background_service/flutter_background_service.dart'; import 'package:hyzp_ybqx/pages/tabs/flutter_background_service_my.dart'; class page7_setRemind extends StatefulWidget { page7_setRemind({Key key}) : super(key: key); _LoginPageState createState() => _LoginPageState(); } class _LoginPageState extends State { bool bVoiceRemind; int remindGap; dispose() { super.dispose(); } @override void initState() { super.initState(); bVoiceRemind = g_bVoiceRemind; remindGap = g_remindGap; } //////// 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(() { bVoiceRemind = !bVoiceRemind; print("bVoiceRemind = $bVoiceRemind"); print("播放语音提醒"); if (bVoiceRemind) { myPlayVoiceRemind(); } else { myPlayClick(); } }); } Widget getTextField() { return Container( width: ScreenUtil().setWidth(150), child: TextField( readOnly: !bVoiceRemind, focusNode: FocusNode(), textAlignVertical: TextAlignVertical(y: 1.0), controller: TextEditingController.fromValue(TextEditingValue( text: remindGap.toString(), // 保持光标在最后 selection: TextSelection.fromPosition(TextPosition( affinity: TextAffinity.downstream, offset: remindGap.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) { remindGap = 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: [ 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: bVoiceRemind ? Colors.blue : null, onTapFun: OnTap_Remind, trailWidget: 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: () async { if (g_bVoiceRemind != bVoiceRemind && g_remindGap != remindGap) { if (await FlutterBackgroundService().isServiceRunning()) { FlutterBackgroundService().sendData({"action": "stopService"}); } g_bVoiceRemind = bVoiceRemind; print("g_bVoiceRemind = $g_bVoiceRemind"); await Storage.setBool('bVoiceRemind', g_bVoiceRemind); g_remindGap = remindGap; print("g_remindGap = $g_remindGap"); await Storage.setInt('nRemindGap', g_remindGap); if (bVoiceRemind) { while (true) { var isRunning = await FlutterBackgroundService().isServiceRunning(); if (!isRunning) { await FlutterBackgroundService.initialize(onStart); myPlayVoiceRemind(); break; } } } else { myPlayClick(); } } Navigator.pop(context); }, ), JdButton( height: 128, width: 282, //height: 126, text: "取消", color: Colors.blueAccent, onTop: () { Navigator.pop(context); }, ) ], ), ], ), ), ); } }