depart login clock timer

master
张萌 3 years ago
parent 9917395f9f
commit 02305ecf2f

@ -2,6 +2,7 @@
// Project imports: // Project imports:
import 'package:aku_new_community_manager/provider/app_provider.dart'; import 'package:aku_new_community_manager/provider/app_provider.dart';
import 'package:aku_new_community_manager/provider/clock_timer_provider.dart';
import 'package:aku_new_community_manager/provider/data_provider.dart'; import 'package:aku_new_community_manager/provider/data_provider.dart';
import 'package:aku_new_community_manager/provider/message_provider.dart'; import 'package:aku_new_community_manager/provider/message_provider.dart';
import 'package:aku_new_community_manager/provider/user_provider.dart'; import 'package:aku_new_community_manager/provider/user_provider.dart';
@ -77,6 +78,7 @@ class MyApp extends StatelessWidget {
ChangeNotifierProvider(create: (context) => AppProvider()), ChangeNotifierProvider(create: (context) => AppProvider()),
ChangeNotifierProvider(create: (context) => MessageProvider()), ChangeNotifierProvider(create: (context) => MessageProvider()),
ChangeNotifierProvider(create: (context) => DataProvider()), ChangeNotifierProvider(create: (context) => DataProvider()),
ChangeNotifierProvider(create: (context) => ClockTimerProvider()),
], ],
child: GestureDetector( child: GestureDetector(
onTap: () { onTap: () {

@ -1,10 +1,12 @@
import 'package:aku_new_community_manager/new_ui/auth/sign_func.dart'; import 'package:aku_new_community_manager/new_ui/auth/sign_func.dart';
import 'package:aku_new_community_manager/provider/clock_timer_provider.dart';
import 'package:aku_new_community_manager/tools/user_tool.dart'; import 'package:aku_new_community_manager/tools/user_tool.dart';
import 'package:aku_new_community_manager/ui/widgets/common/aku_scaffold.dart'; import 'package:aku_new_community_manager/ui/widgets/common/aku_scaffold.dart';
import 'package:bot_toast/bot_toast.dart'; import 'package:bot_toast/bot_toast.dart';
import 'package:flutter/material.dart'; 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 'package:provider/provider.dart';
import 'package:sms_autofill/sms_autofill.dart'; import 'package:sms_autofill/sms_autofill.dart';
import 'package:velocity_x/velocity_x.dart'; import 'package:velocity_x/velocity_x.dart';
@ -24,20 +26,20 @@ class _CodeMessagePageState extends State<CodeMessagePage> {
@override @override
void initState() { void initState() {
Future.delayed(Duration(milliseconds: 0), () async {
await SmsAutoFill().listenForCode();
});
super.initState(); super.initState();
SmsAutoFill().listenForCode();
} }
@override @override
void dispose() { void dispose() {
_controller.dispose(); _controller.dispose();
SmsAutoFill().unregisterListener();
super.dispose(); super.dispose();
} }
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
ClockTimerProvider clockTimer = Provider.of<ClockTimerProvider>(context);
return AkuScaffold( return AkuScaffold(
title: '', title: '',
body: SafeArea( body: SafeArea(
@ -115,14 +117,14 @@ class _CodeMessagePageState extends State<CodeMessagePage> {
.communityModel!.id); .communityModel!.id);
if (base.success) { if (base.success) {
_errorMessage = null; _errorMessage = null;
UserTool.appProvider.startTimer(); clockTimer.startTimer();
} else { } else {
BotToast.showText(text: base.msg); BotToast.showText(text: base.msg);
} }
}, },
child: (UserTool.appProvider.second >= 60 child: (clockTimer.second >= 60
? '重新发送验证码' ? '重新发送验证码'
: '${UserTool.appProvider.second}秒后可重新发送') : '${clockTimer.second}秒后可重新发送')
.text .text
.size(28.sp) .size(28.sp)
.color(Color(0xFF5096F1)) .color(Color(0xFF5096F1))

@ -1,6 +1,7 @@
import 'package:aku_new_community_manager/new_ui/auth/sign_func.dart'; import 'package:aku_new_community_manager/new_ui/auth/sign_func.dart';
import 'package:aku_new_community_manager/new_ui/auth/widget/login_button_widget.dart'; import 'package:aku_new_community_manager/new_ui/auth/widget/login_button_widget.dart';
import 'package:aku_new_community_manager/new_ui/auth/widget/tel_textfield.dart'; import 'package:aku_new_community_manager/new_ui/auth/widget/tel_textfield.dart';
import 'package:aku_new_community_manager/provider/clock_timer_provider.dart';
import 'package:aku_new_community_manager/tools/user_tool.dart'; import 'package:aku_new_community_manager/tools/user_tool.dart';
import 'package:aku_new_community_manager/ui/widgets/common/aku_scaffold.dart'; import 'package:aku_new_community_manager/ui/widgets/common/aku_scaffold.dart';
import 'package:bot_toast/bot_toast.dart'; import 'package:bot_toast/bot_toast.dart';
@ -8,6 +9,7 @@ import 'package:common_utils/common_utils.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:provider/provider.dart';
import 'package:velocity_x/velocity_x.dart'; import 'package:velocity_x/velocity_x.dart';
import 'forgot_set_psd_page.dart'; import 'forgot_set_psd_page.dart';
@ -30,6 +32,7 @@ class _ForgotPsdPageState extends State<ForgotPsdPage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
ClockTimerProvider clockTimer = Provider.of<ClockTimerProvider>(context);
return AkuScaffold( return AkuScaffold(
title: '', title: '',
backgroundColor: Colors.white, backgroundColor: Colors.white,
@ -84,7 +87,7 @@ class _ForgotPsdPageState extends State<ForgotPsdPage> {
Get.to(() => ForgotSetPsdPage( Get.to(() => ForgotSetPsdPage(
tel: _telController.text, tel: _telController.text,
)); ));
UserTool.appProvider.startTimer(); clockTimer.startTimer();
} else { } else {
BotToast.showText(text: base.msg); BotToast.showText(text: base.msg);
} }

@ -3,6 +3,7 @@ import 'package:aku_new_community_manager/new_ui/auth/psd_verify.dart';
import 'package:aku_new_community_manager/new_ui/auth/sign_func.dart'; import 'package:aku_new_community_manager/new_ui/auth/sign_func.dart';
import 'package:aku_new_community_manager/new_ui/auth/widget/login_button_widget.dart'; import 'package:aku_new_community_manager/new_ui/auth/widget/login_button_widget.dart';
import 'package:aku_new_community_manager/new_ui/auth/widget/psd_textfield.dart'; import 'package:aku_new_community_manager/new_ui/auth/widget/psd_textfield.dart';
import 'package:aku_new_community_manager/provider/clock_timer_provider.dart';
import 'package:aku_new_community_manager/tools/user_tool.dart'; import 'package:aku_new_community_manager/tools/user_tool.dart';
import 'package:aku_new_community_manager/ui/widgets/common/aku_scaffold.dart'; import 'package:aku_new_community_manager/ui/widgets/common/aku_scaffold.dart';
import 'package:bot_toast/bot_toast.dart'; import 'package:bot_toast/bot_toast.dart';
@ -10,6 +11,7 @@ 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 'package:get/get.dart'; import 'package:get/get.dart';
import 'package:provider/provider.dart';
import 'package:velocity_x/velocity_x.dart'; import 'package:velocity_x/velocity_x.dart';
class ForgotSetPsdPage extends StatefulWidget { class ForgotSetPsdPage extends StatefulWidget {
@ -52,6 +54,7 @@ class _ForgotSetPsdPageState extends State<ForgotSetPsdPage> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
ClockTimerProvider clockTimer = Provider.of<ClockTimerProvider>(context);
return AkuScaffold( return AkuScaffold(
title: '', title: '',
backgroundColor: Colors.white, backgroundColor: Colors.white,
@ -137,7 +140,7 @@ class _ForgotSetPsdPageState extends State<ForgotSetPsdPage> {
child: Row( child: Row(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
children: [ children: [
'${UserTool.appProvider.second < 60 ? '${UserTool.appProvider.second}秒后重新获取' : '获取验证码'}' '${clockTimer.second < 60 ? '${clockTimer.second}秒后重新获取' : '获取验证码'}'
.text .text
.size(28.sp) .size(28.sp)
.color(Color(0xFF5096F1)) .color(Color(0xFF5096F1))

@ -3,6 +3,7 @@ import 'package:aku_new_community_manager/new_ui/auth/widget/login_button_widget
import 'package:aku_new_community_manager/new_ui/auth/widget/psd_textfield.dart'; import 'package:aku_new_community_manager/new_ui/auth/widget/psd_textfield.dart';
import 'package:aku_new_community_manager/new_ui/auth/widget/tel_textfield.dart'; import 'package:aku_new_community_manager/new_ui/auth/widget/tel_textfield.dart';
import 'package:aku_new_community_manager/provider/app_provider.dart'; import 'package:aku_new_community_manager/provider/app_provider.dart';
import 'package:aku_new_community_manager/provider/clock_timer_provider.dart';
import 'package:aku_new_community_manager/tools/user_tool.dart'; import 'package:aku_new_community_manager/tools/user_tool.dart';
import 'package:aku_new_community_manager/ui/widgets/common/aku_scaffold.dart'; import 'package:aku_new_community_manager/ui/widgets/common/aku_scaffold.dart';
import 'package:bot_toast/bot_toast.dart'; import 'package:bot_toast/bot_toast.dart';
@ -154,7 +155,7 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
} }
Widget _verificationView() { Widget _verificationView() {
AppProvider appProvider = Provider.of<AppProvider>(context); ClockTimerProvider clockTimer = Provider.of<ClockTimerProvider>(context);
return ListView( return ListView(
padding: EdgeInsets.symmetric(horizontal: 32.w), padding: EdgeInsets.symmetric(horizontal: 32.w),
children: [ children: [
@ -171,7 +172,7 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
), ),
100.w.heightBox, 100.w.heightBox,
LoginButtonWidget( LoginButtonWidget(
onTap: UserTool.appProvider.second < 60 onTap: clockTimer.second < 60
? () {} ? () {}
: () async { : () async {
var check = checkInput(); var check = checkInput();
@ -184,13 +185,13 @@ class _OtherLoginPageState extends State<OtherLoginPage> {
.communityModel!.id); .communityModel!.id);
if (base.success) { if (base.success) {
Get.to(() => CodeMessagePage(tel: _tel.text)); Get.to(() => CodeMessagePage(tel: _tel.text));
appProvider.startTimer(); clockTimer.startTimer();
} else { } else {
BotToast.showText(text: base.msg); BotToast.showText(text: base.msg);
} }
}, },
text: appProvider.timerStart text: clockTimer.timerStart
? '${appProvider.second}秒后重新获取' ? '${clockTimer.second}秒后重新获取'
: '获取验证码'), : '获取验证码'),
24.w.heightBox, 24.w.heightBox,
Row( Row(

@ -0,0 +1,30 @@
import 'dart:async';
import 'package:flutter/material.dart';
class ClockTimerProvider extends ChangeNotifier{
///
int second = 60;
bool timerStart = false;
Timer? timer;
void startTimer() {
timerStart = true;
timer = Timer.periodic(Duration(seconds: 1), (timer) {
if (second > 0) {
second--;
notifyListeners();
} else {
stopTimer();
}
});
}
void stopTimer() {
second = 60;
timerStart = false;
timer?.cancel();
timer = null;
notifyListeners();
}
}
Loading…
Cancel
Save