import 'dart:async'; import 'package:flutter/cupertino.dart'; import 'package:get/get_core/src/get_main.dart'; import 'package:get/get_navigation/src/extension_navigation.dart'; import 'package:get/get_utils/get_utils.dart'; import 'package:star_lock/appRouters.dart'; import 'package:star_lock/login/register/entity/SendValidationCodeEntity.dart'; import 'package:star_lock/mine/minePersonInfo/minePersonInfoEditAccount/minePersonInfoEditAccount/mineUnbindPhoneOrEmail_entity.dart'; import 'package:star_lock/mine/minePersonInfo/minePersonInfoEditAccount/minePersonInfoEditAccount/mineUnbindPhoneOrEmail_state.dart'; import 'package:star_lock/network/api_repository.dart'; import 'package:star_lock/tools/baseGetXController.dart'; class MineUnbindPhoneOrEmailLogic extends BaseGetXController { final MineUnbindPhoneOrEmailState state = MineUnbindPhoneOrEmailState(); late Timer _timer; void _startTimer() { _timer = Timer.periodic(1.seconds, (Timer timer) { if (state.currentSecond > 1) { state.currentSecond--; } else { _cancelTimer(); state.currentSecond = state.totalSeconds; } state.resetResend(); }); } void _cancelTimer() { _timer.cancel(); } //获取验证码请求 Future sendValidationCode() async { final SendValidationCodeEntity entity = await ApiRepository.to.sendValidationCodeAuth( countryCode: '', account: '', channel:state.channel.value, codeType: state.codeType.value, xWidth: state.xWidth.value.toString()); if (entity.errorCode!.codeIsSuccessful) { _startTimer(); } else {} } //获取解绑手机号Token Future unbindPhoneTokenRequest() async { final MineUnbindPhoneOrEmailEntity entity = await ApiRepository.to.unbindPhoneToken(state.verificationCode.value); if (entity.errorCode!.codeIsSuccessful) { state.unbindToken.value = entity.data!.token!; Get.toNamed(Routers.mineBindPhoneOrEmailPage, arguments: { 'isFrom': state.channel.value, 'unbindToken': state.unbindToken.value }); } } //获取解绑邮箱Token Future unbindEmailTokenRequest() async { final MineUnbindPhoneOrEmailEntity entity = await ApiRepository.to.unbindEmailToken(state.verificationCode.value); if (entity.errorCode!.codeIsSuccessful) { state.unbindToken.value = entity.data!.token!; Get.toNamed(Routers.mineBindPhoneOrEmailPage, arguments: { 'isFrom': state.channel.value, 'unbindToken': state.unbindToken.value }); } } void checkNext(TextEditingController controller) { changeInput(controller); } void changeInput(TextEditingController controller) { if (controller == state.codeController) { state.verificationCode.value = controller.text; } _resetCanSub(); } void _resetCanSub() { state.canSub.value = state.codeIsOK; } }