Merge remote-tracking branch 'Gitea/master' into iOS

# Conflicts:
#	lib/pages/tabs/page4_myMsics_new.dart
iOS
mlch911 4 years ago
commit c89a753408

2
.gitignore vendored

@ -32,6 +32,8 @@
/build/ /build/
.fvm/flutter_sdk .fvm/flutter_sdk
android/app/release/app-release.apk android/app/release/app-release.apk
android/app/release/output.json
pubspec.lock
# Web related # Web related
lib/generated_plugin_registrant.dart lib/generated_plugin_registrant.dart

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

@ -32,6 +32,8 @@ PODS:
- BIJKPlayer (~> 0.7.10) - BIJKPlayer (~> 0.7.10)
- Flutter - Flutter
- Flutter (1.0.0) - Flutter (1.0.0)
- flutter_background_service (0.0.1):
- Flutter
- flutter_bmfbase (0.0.1): - flutter_bmfbase (0.0.1):
- BaiduMapKit (= 5.4.0) - BaiduMapKit (= 5.4.0)
- Flutter - Flutter
@ -89,6 +91,7 @@ DEPENDENCIES:
- disable_screenshots (from `.symlinks/plugins/disable_screenshots/ios`) - disable_screenshots (from `.symlinks/plugins/disable_screenshots/ios`)
- fijkplayer (from `.symlinks/plugins/fijkplayer/ios`) - fijkplayer (from `.symlinks/plugins/fijkplayer/ios`)
- Flutter (from `Flutter`) - Flutter (from `Flutter`)
- flutter_background_service (from `.symlinks/plugins/flutter_background_service/ios`)
- flutter_bmfbase (from `.symlinks/plugins/flutter_bmfbase/ios`) - flutter_bmfbase (from `.symlinks/plugins/flutter_bmfbase/ios`)
- flutter_bmfmap (from `.symlinks/plugins/flutter_bmfmap/ios`) - flutter_bmfmap (from `.symlinks/plugins/flutter_bmfmap/ios`)
- flutter_bmfutils (from `.symlinks/plugins/flutter_bmfutils/ios`) - flutter_bmfutils (from `.symlinks/plugins/flutter_bmfutils/ios`)
@ -132,6 +135,8 @@ EXTERNAL SOURCES:
:path: ".symlinks/plugins/fijkplayer/ios" :path: ".symlinks/plugins/fijkplayer/ios"
Flutter: Flutter:
:path: Flutter :path: Flutter
flutter_background_service:
:path: ".symlinks/plugins/flutter_background_service/ios"
flutter_bmfbase: flutter_bmfbase:
:path: ".symlinks/plugins/flutter_bmfbase/ios" :path: ".symlinks/plugins/flutter_bmfbase/ios"
flutter_bmfmap: flutter_bmfmap:
@ -177,6 +182,7 @@ SPEC CHECKSUMS:
disable_screenshots: 3f3a1881efa341fcdad395fb2b25e11a9a7bce0b disable_screenshots: 3f3a1881efa341fcdad395fb2b25e11a9a7bce0b
fijkplayer: 0d3793a2822d030ef5bba77f904bff1f7a91a115 fijkplayer: 0d3793a2822d030ef5bba77f904bff1f7a91a115
Flutter: 0e3d915762c693b495b44d77113d4970485de6ec Flutter: 0e3d915762c693b495b44d77113d4970485de6ec
flutter_background_service: a4644870cc76287aaa6147b47107e52680b79c90
flutter_bmfbase: 8ac2c94f3f110daec8e499dc13f8a983b0c8ee40 flutter_bmfbase: 8ac2c94f3f110daec8e499dc13f8a983b0c8ee40
flutter_bmfmap: 57030919b16b5353649fbea77b6143129f7a4ff1 flutter_bmfmap: 57030919b16b5353649fbea77b6143129f7a4ff1
flutter_bmfutils: 41b6af33c5e7d5d5f841ef9087fbd271c05b1961 flutter_bmfutils: 41b6af33c5e7d5d5f841ef9087fbd271c05b1961

@ -99,10 +99,10 @@ class UserInfo {
copyright_info = '© ' + qx_name_long + '城乡融合发展局 四川省踏石科技\n版权所有,' + service_tel.substring(1); copyright_info = '© ' + qx_name_long + '城乡融合发展局 四川省踏石科技\n版权所有,' + service_tel.substring(1);
copyright_info_PinYin = 'YIBIN SANJIANG NEW AREA BLACK SMOKE CAR CAPTURE SYSTEM'; copyright_info_PinYin = 'YIBIN SANJIANG NEW AREA BLACK SMOKE CAR CAPTURE SYSTEM';
// //
// mapPoi = {text: , pt: {latitude: 28.811272454489966, longitude: 104.67718748580859}, uid: f79d3a036020ce5fa3d23041} // coordinate = {latitude: 28.822633806922394, longitude: 104.75964294854222}
center_latitude = 28.811272454489966; // center_latitude = 28.822633806922394; //
center_longitude = 104.69745647939359; // center_longitude = 104.75964294854222; //
g_zoomLevel = g_zoomLevel_default = 12; // g_zoomLevel = g_zoomLevel_default = 13; //
break; break;
case 511523: // case 511523: //
service_tel = ''; service_tel = '';

@ -1,9 +1,13 @@
import 'dart:async';
import 'dart:convert'; import 'dart:convert';
import 'dart:developer' as developer; import 'dart:developer' as developer;
import 'dart:io'; import 'dart:io';
import 'dart:math'; import 'dart:math';
import 'package:ai_save_account/ai_save_account.dart'; import 'package:ai_save_account/ai_save_account.dart';
import 'package:audioplayers/audio_cache.dart';
import 'package:audioplayers/audioplayers.dart';
import 'package:camera/camera.dart'; import 'package:camera/camera.dart';
import 'package:convert/convert.dart'; import 'package:convert/convert.dart';
import 'package:crypto/crypto.dart' as crypto; import 'package:crypto/crypto.dart' as crypto;
@ -12,11 +16,49 @@ import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
//import '../my_wechat_assets_picker_fix/my_asset_picker_1.dart';
import 'package:fluttertoast/fluttertoast.dart'; import 'package:fluttertoast/fluttertoast.dart';
import 'package:hyzp_ybqx/provider/player_region.dart'; import 'package:hyzp_ybqx/provider/player_region.dart';
import 'UserInfo.dart'; import 'UserInfo.dart';
import 'dioFun.dart';
////////////////////////////////////////////
AudioPlayer playerClick;
AudioPlayer playerClacks;
AudioPlayer playerVoiceRemind;
myPlayClick() async {
if (null == playerClick) {
print("myPlayClick first by load mp3 file");
playerClick = await AudioCache().play('audio/click.mp3');
} else {
print("myPlayClick resume() from cache");
playerClick.seek(Duration(milliseconds: 0));
playerClick.resume();
}
}
myPlayClacks() async {
if (null == playerClick) {
print("myPlayClick first by load mp3 file");
playerClick = await AudioCache().play('audio/clacks.mp3');
} else {
print("myPlayClick resume() from cache");
playerClick.seek(Duration(milliseconds: 0));
playerClick.resume();
}
}
myPlayVoiceRemind() async {
if (null == playerVoiceRemind) {
print("myPlayVoiceRemind first by load mp3 file");
playerVoiceRemind = await AudioCache().play('audio/语音提醒.mp3');
} else {
print("myPlayVoiceRemind resume() from cache");
playerVoiceRemind.seek(Duration(milliseconds: 0));
playerVoiceRemind.resume();
}
}
//////////////////////////////////////////// ////////////////////////////////////////////
// begin hyzp_ybqx-Commit022--OK // begin hyzp_ybqx-Commit022--OK
@ -71,7 +113,51 @@ const serviceUrl_ybqx_media = 'http://125.64.218.67:9906/';
// 2sip01访使1sip // 2sip01访使1sip
const String setSphericalCameraUrl = 'http://125.64.218.67:9903/'; // const String setSphericalCameraUrl = 'http://125.64.218.67:9903/'; //
const int g_sip = 1; // sip01 const int g_sip = 1; // sip01
bool g_bVoiceRemind = false; //
///
//
List listReviewed = [];
bool g_bVoiceRemind = false; //
int g_remindGap = 60; // 60S0
Timer g_remindTimer; //
//
setRemindTimer({bool enable = true}) {
//
if (null != g_remindTimer) {
g_remindTimer.cancel(); //
}
//
if (enable && g_remindGap > 0) {
/// g_remindGap
g_remindTimer = Timer.periodic(Duration(seconds: g_remindGap), (timer) {
///
doRemind();
});
}
}
//
Future doRemind() async {
//
if (g_bVoiceRemind) {
listReviewed.clear();
print("listReviewed = $listReviewed");
await getReviewedList(); //访
print("listReviewed = $listReviewed");
// if (g_bVoiceRemind) {
// import 'dart:io';
// import 'package:audioplayers/audio_cache.dart';
// print("播放:语音提醒.mp3");
if (listReviewed.length > 0) {
// AudioCache().play(File('audio/语音提醒.mp3').path); //
myPlayVoiceRemind();
}
}
}
///
// { // {
// "ret": 200, // "ret": 200,

@ -447,9 +447,6 @@ List listGetTsjj = [];
//idlistGetZpjl //idlistGetZpjl
List listGetZpjl = []; List listGetZpjl = [];
//
List listReviewed = [];
//workflow : 1=> | 2=> | 999=> | 1000=> //workflow : 1=> | 2=> | 999=> | 1000=>
Map<int, String> mapAuditStatus = { Map<int, String> mapAuditStatus = {
1: "待审", 1: "待审",

@ -91,6 +91,9 @@ class _MyAppState extends State<MyApp> {
// g_bVoiceRemind = (null == g_bVoiceRemind) ? false : g_bVoiceRemind; // // g_bVoiceRemind = (null == g_bVoiceRemind) ? false : g_bVoiceRemind; //
g_bVoiceRemind = (null == g_bVoiceRemind) ? true : g_bVoiceRemind; // g_bVoiceRemind = (null == g_bVoiceRemind) ? true : g_bVoiceRemind; //
// print('g_bVoiceRemind = $g_bVoiceRemind'); // print('g_bVoiceRemind = $g_bVoiceRemind');
g_remindGap = await Storage.getInt('nRemindGap');
g_remindGap = (null == g_remindGap) ? 60 : g_remindGap; // 60S
eventBus.fire(VoiceRemindUpdate('g_bVoiceRemind 数据已更新')); eventBus.fire(VoiceRemindUpdate('g_bVoiceRemind 数据已更新'));
} }

@ -8,7 +8,7 @@ import 'package:flutter_screenutil/screen_util.dart';
import 'package:fluttertoast/fluttertoast.dart'; import 'package:fluttertoast/fluttertoast.dart';
import 'package:image_picker/image_picker.dart'; import 'package:image_picker/image_picker.dart';
import 'package:path_provider/path_provider.dart'; import 'package:path_provider/path_provider.dart';
import 'package:audioplayers/audio_cache.dart'; // import 'package:audioplayers/audio_cache.dart';
import '../../components/commonFun.dart'; import '../../components/commonFun.dart';
import '../../components/dioFun.dart'; import '../../components/dioFun.dart';
@ -56,7 +56,8 @@ class _TakePictuerState extends State<TakePictuer> {
Future<void> _onCamera() async { Future<void> _onCamera() async {
await Future.delayed(Duration(milliseconds: 1000), () { await Future.delayed(Duration(milliseconds: 1000), () {
print('开始拍照...'); print('开始拍照...');
AudioCache().play(File('audio/yinxiao1064.mp3').path); // // AudioCache().play(File('audio/yinxiao1064.mp3').path); //
myPlayClacks(); //
onTakePictureButtonPressed(); onTakePictureButtonPressed();
}); });
} }

@ -176,72 +176,70 @@ class _HyshGroupState extends State<HyshGroup> {
getBtnSizeX( getBtnSizeX(
text: '复审提交', text: '复审提交',
fontColor: 0 == _selectedRadio ? Colors.red : Colors.green, fontColor: 0 == _selectedRadio ? Colors.red : Colors.green,
onPressedFun: 1 == sfyc // onPressedFun: 1 == sfyc
? null // ? null
: () async { // : () async {
int ret = -1; onPressedFun: () async {
print('等待复审提交确认'); int ret = -1;
await Navigator.of(context) print('等待复审提交确认');
.push( await Navigator.of(context)
PageRouteBuilder( .push(
opaque: false, PageRouteBuilder(
pageBuilder: (context, animation, secondaryAnimation) => opaque: false,
CustomDialogHysh( pageBuilder: (context, animation, secondaryAnimation) => CustomDialogHysh(
shjg: 0 == _selectedRadio ? hyc_text : fhyc_text, shjg: 0 == _selectedRadio ? hyc_text : fhyc_text,
title: '复审', title: '复审',
content: content:
'是否进行复审提交${tsjj && 0 == sfyc ? '、同时推送交警' : ''}\n${1 == sfyc ? _sfcyTextTrue : ''}'), '是否进行复审提交${tsjj && 0 == sfyc ? '、同时推送交警' : ''}\n${1 == sfyc ? _sfcyTextTrue : ''}'),
), ),
) )
.then((value) async { .then((value) async {
print('value = $value'); print('value = $value');
if (value) { if (value) {
print('用户已确认,开始处理复审提交!'); print('用户已确认,开始处理复审提交!');
// sfyc 0- 1- // sfyc 0- 1-
// sfyc 0 // sfyc 0
// A int sfyc = 0 // A int sfyc = 0
// B>+ sfyc = 1 // B>+ sfyc = 1
// sfyc tsjj // sfyc tsjj
set_sfyc_tsjj(int.parse(listGetZpjl[widget.index]['zpsj'])) set_sfyc_tsjj(int.parse(listGetZpjl[widget.index]['zpsj']))
.then((value) async { .then((value) async {
hyshContentFirstAudit( hyshContentFirstAudit(
widget.id, widget.id,
widget.index, widget.index,
mapHyshlx[hyshlx]['audit_workflow'], mapHyshlx[hyshlx]['audit_workflow'],
topTabs_map['auditShuoming_Controller_List'][widget.index] topTabs_map['auditShuoming_Controller_List'][widget.index].text,
.text, topTabs_map['auditTitle'][widget.index],
topTabs_map['auditTitle'][widget.index], sfyc: sfyc,
sfyc: sfyc, ).then((value) {
).then((value) { eventBus.fire(
eventBus.fire(HycsDataUpdateEvent( HycsDataUpdateEvent('${mapHyshlx[hyshlx]['text']}数据已更新'));
'${mapHyshlx[hyshlx]['text']}数据已更新')); //
// print('tsjj = $tsjj');
print('tsjj = $tsjj'); if (tsjj) {
if (tsjj) { print('before tsjjFun(widget.id, _plateAndID)');
print('before tsjjFun(widget.id, _plateAndID)');
String _plateAndID = String _plateAndID = topTabs_map['car_number_List'].toString() +
topTabs_map['car_number_List'].toString() + '(ID:${widget.id.toString()})';
'(ID:${widget.id.toString()})';
tsjjFun(widget.id, _plateAndID); tsjjFun(widget.id, _plateAndID);
print('after tsjjFun(widget.id, _plateAndID)'); print('after tsjjFun(widget.id, _plateAndID)');
Fluttertoast.showToast( Fluttertoast.showToast(
msg: '$_plateAndID 已推送交警,请等待返回结果。', msg: '$_plateAndID 已推送交警,请等待返回结果。',
gravity: ToastGravity.CENTER); gravity: ToastGravity.CENTER);
}
});
});
} else {
print('用户取消了复审提交');
} }
}); });
Navigator.pop(context, ret); });
}, } else {
print('用户取消了复审提交');
}
});
Navigator.pop(context, ret);
},
width: 90.0, width: 90.0,
height: 34.0), //'复审提交' height: 34.0), //'复审提交'
getBtnSizeX( getBtnSizeX(
@ -271,46 +269,46 @@ class _HyshGroupState extends State<HyshGroup> {
getBtnSizeX( getBtnSizeX(
text: '初审提交', text: '初审提交',
fontColor: 0 == _selectedRadio ? Colors.red : Colors.green, fontColor: 0 == _selectedRadio ? Colors.red : Colors.green,
onPressedFun: 1 == sfyc // onPressedFun: 1 == sfyc
? null // ? null
: () async { // : () async {
int ret = -1; onPressedFun: () async {
print('等待初审提交确认'); int ret = -1;
await Navigator.of(context) print('等待初审提交确认');
.push( await Navigator.of(context)
PageRouteBuilder( .push(
opaque: false, PageRouteBuilder(
pageBuilder: (context, animation, secondaryAnimation) => opaque: false,
CustomDialogHysh( pageBuilder: (context, animation, secondaryAnimation) =>
shjg: 0 == _selectedRadio ? hyc_text : fhyc_text, CustomDialogHysh(
title: '初审', shjg: 0 == _selectedRadio ? hyc_text : fhyc_text,
content: '是否进行初审提交?'), title: '初审',
), content: '是否进行初审提交?'),
) ),
.then((value) async { )
print('value = $value'); .then((value) async {
if (value) { print('value = $value');
print('用户已确认,开始处理初审提交!'); if (value) {
//return; print('用户已确认,开始处理初审提交!');
//return;
hyshContentFirstAudit( hyshContentFirstAudit(
widget.id, widget.id,
widget.index, widget.index,
mapHyshlx[hyshlx]['audit_workflow'], mapHyshlx[hyshlx]['audit_workflow'],
topTabs_map['auditShuoming_Controller_List'][widget.index] topTabs_map['auditShuoming_Controller_List'][widget.index].text,
.text, topTabs_map['auditTitle'][widget.index],
topTabs_map['auditTitle'][widget.index], sfyc: 0,
sfyc: 0, ).then((value) {
).then((value) { eventBus
eventBus.fire( .fire(HycsDataUpdateEvent('${mapHyshlx[hyshlx]['text']}数据已更新'));
HycsDataUpdateEvent('${mapHyshlx[hyshlx]['text']}数据已更新')); });
}); } else {
} else { print('用户取消了初审提交');
print('用户取消了初审提交'); }
} });
}); Navigator.pop(context, ret);
Navigator.pop(context, ret); },
},
width: 90.0), //'初审提交' width: 90.0), //'初审提交'
getBtnSizeX( getBtnSizeX(
text: "取消", text: "取消",

@ -1,3 +1,4 @@
import 'dart:async';
import 'dart:io'; import 'dart:io';
import 'package:badges/badges.dart'; import 'package:badges/badges.dart';
@ -15,7 +16,7 @@ import '../../components/commonFun.dart';
import '../../services/ServiceLocator.dart'; import '../../services/ServiceLocator.dart';
import '../../services/Storage.dart'; import '../../services/Storage.dart';
import 'page1_work.dart'; import 'page1_work.dart';
import 'package:audioplayers/audio_cache.dart'; // import 'package:audioplayers/audio_cache.dart';
class Tabs extends StatefulWidget { class Tabs extends StatefulWidget {
Tabs({Key key, this.arguments = 0}) : super(key: key); Tabs({Key key, this.arguments = 0}) : super(key: key);
@ -58,6 +59,9 @@ class _TabsState extends State<Tabs> {
String sAppBar = 'Flutter Demo'; String sAppBar = 'Flutter Demo';
PageController _pageController; PageController _pageController;
///
// Timer g_remindTimer;
@override @override
void initState() { void initState() {
super.initState(); super.initState();
@ -87,17 +91,42 @@ class _TabsState extends State<Tabs> {
// // print('g_bVoiceRemind = $g_bVoiceRemind'); // // print('g_bVoiceRemind = $g_bVoiceRemind');
// eventBus.fire(VoiceRemindUpdate('g_bVoiceRemind 数据已更新')); // eventBus.fire(VoiceRemindUpdate('g_bVoiceRemind 数据已更新'));
// //
print("listReviewed = $listReviewed"); doRemind();
await getReviewedList(); //访
print("listReviewed = $listReviewed"); // g_remindGap
if (g_bVoiceRemind && listReviewed.length > 0) { setRemindTimer();
// if (g_bVoiceRemind) {
// import 'dart:io'; // g_remindTimer = Timer.periodic(Duration(seconds: g_remindGap), (timer) {
// import 'package:audioplayers/audio_cache.dart'; // ///
// print("播放:语音提醒.mp3"); // doRemind();
AudioCache().play(File('audio/语音提醒.mp3').path); // // });
}
// //
// Future doRemind() async {
// //
// listReviewed.clear();
// print("listReviewed = $listReviewed");
// await getReviewedList(); //访
// print("listReviewed = $listReviewed");
// if (g_bVoiceRemind && listReviewed.length > 0) {
// // if (g_bVoiceRemind) {
// // import 'dart:io';
// // import 'package:audioplayers/audio_cache.dart';
// // print("播放:语音提醒.mp3");
// AudioCache().play(File('audio/语音提醒.mp3').path); //
// }
// }
@override
void dispose() {
//
if (null != g_remindTimer) {
g_remindTimer.cancel(); //
} }
super.dispose();
} }
double _activeIconWidth = 68; double _activeIconWidth = 68;

@ -1,6 +1,6 @@
import 'dart:io'; import 'dart:io';
import 'package:audioplayers/audio_cache.dart'; // import 'package:audioplayers/audio_cache.dart';
import 'package:badges/badges.dart'; import 'package:badges/badges.dart';
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.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/Works/TJXX/tj_data.dart';
import 'package:hyzp_ybqx/pages/tabs/page5_userManager.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/page6_download.dart';
import 'package:hyzp_ybqx/pages/tabs/page7_setRemind.dart';
import 'package:hyzp_ybqx/services/EventBus.dart'; import 'package:hyzp_ybqx/services/EventBus.dart';
import 'package:hyzp_ybqx/widget/JdButton.dart'; import 'package:hyzp_ybqx/widget/JdButton.dart';
import 'package:package_info/package_info.dart'; import 'package:package_info/package_info.dart';
@ -202,14 +203,10 @@ class _Page4_MyMsicsNewState extends State<Page4_MyMsicsNew>
leadColor: _deepBlueColor, leadColor: _deepBlueColor,
onTapFun: OnTap_user_manager), onTapFun: OnTap_user_manager),
//bNewVer //bNewVer
_getListTile('待审提醒', _getListTile('提醒设置',
leadPath: 'assets/images/语音提醒.png', leadPath: 'assets/images/语音提醒.png',
leadColor: _deepGreyColor, leadColor: _deepGreyColor,
textColor: g_bVoiceRemind ? Colors.blue : null, onTapFun: OnTap_Remind),
onTapFun: OnTap_Remind,
trailWidget: g_bVoiceRemind
? Icon(Icons.check_box, color: Colors.blue)
: Icon(Icons.check_box_outline_blank, color: Colors.blueAccent)),
_getListTile('关于', _getListTile('关于',
leadPath: 'assets/images/关于.png', leadColor: _deepBlueColor, onTapFun: OnTap_MyAbout) leadPath: 'assets/images/关于.png', leadColor: _deepBlueColor, onTapFun: OnTap_MyAbout)
@ -441,15 +438,7 @@ class _Page4_MyMsicsNewState extends State<Page4_MyMsicsNew>
} }
OnTap_Remind() { OnTap_Remind() {
setState(() { Navigator.of(context).push(MaterialPageRoute(builder: (context) => page7_setRemind()));
g_bVoiceRemind = !g_bVoiceRemind;
print("bVoiceRemind = $g_bVoiceRemind");
Storage.setBool('bVoiceRemind', g_bVoiceRemind);
if (g_bVoiceRemind) {
AudioCache().play(File('audio/语音提醒.mp3').path); //
}
getListView();
});
} }
OnTap_MyAbout() { OnTap_MyAbout() {

@ -0,0 +1,287 @@
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<page7_setRemind> {
dispose() {
super.dispose();
}
@override
void initState() {
super.initState();
bVoiceRemind = g_bVoiceRemind;
getListView();
// // g_bVoiceRemind
// eventBus.on<VoiceRemindUpdate>().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: <Widget>[
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<Widget> _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");
// Storage.setBool('bVoiceRemind', bVoiceRemind);
if (bVoiceRemind) {
print("播放语音提醒");
// AudioCache().play(File('audio/语音提醒.mp3').path); //
myPlayVoiceRemind();
}
getListView();
});
}
bool bVoiceRemind;
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: 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: () {
g_bVoiceRemind = bVoiceRemind;
print("g_bVoiceRemind = $g_bVoiceRemind");
Storage.setBool('bVoiceRemind', g_bVoiceRemind);
g_remindGap = _gap;
print("g_remindGap = $g_remindGap");
Storage.setInt('nRemindGap', g_remindGap);
setRemindTimer(enable: g_bVoiceRemind);
// AudioCache().play(File('audio/yinxiao1064.mp3').path); //
myPlayClacks(); //
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: !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,
),
),
);
}
}

@ -11,6 +11,16 @@ class Storage {
return sp.getString(key); return sp.getString(key);
} }
static Future<void> setInt(String key, int value) async {
SharedPreferences sp = await SharedPreferences.getInstance();
sp.setInt(key, value);
}
static Future<int> getInt(String key) async {
SharedPreferences sp = await SharedPreferences.getInstance();
return sp.getInt(key);
}
static Future<void> setBool(String key, bool value) async { static Future<void> setBool(String key, bool value) async {
SharedPreferences sp = await SharedPreferences.getInstance(); SharedPreferences sp = await SharedPreferences.getInstance();
sp.setBool(key, value); sp.setBool(key, value);

@ -244,6 +244,13 @@ packages:
description: flutter description: flutter
source: sdk source: sdk
version: "0.0.0" version: "0.0.0"
flutter_background_service:
dependency: "direct main"
description:
name: flutter_background_service
url: "https://pub.flutter-io.cn"
source: hosted
version: "0.0.1+21"
flutter_blurhash: flutter_blurhash:
dependency: transitive dependency: transitive
description: description:

@ -64,7 +64,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
#version: 1.4.21+20220319 #version: 1.4.21+20220319
#version: 1.4.22+20220320 #version: 1.4.22+20220320
#version: 1.4.23+20220408 #version: 1.4.23+20220408
version: 1.4.24+20220409 version: 1.4.26+20220426
environment: environment:
sdk: ">=2.7.0 <3.0.0" sdk: ">=2.7.0 <3.0.0"
@ -97,6 +97,7 @@ dependencies:
camera: ^0.5.8+11 camera: ^0.5.8+11
audioplayers: ^0.16.2 audioplayers: ^0.16.2
flutter_background_service: ^0.0.1+21
encrypt: ^4.1.0 encrypt: ^4.1.0
device_info: ^1.0.0 device_info: ^1.0.0

Loading…
Cancel
Save