import 'package:driver/constant/show_toast_dialog.dart'; import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart'; class OtpController extends GetxController { Rx otpController = TextEditingController().obs; RxString countryCode = "".obs; RxString phoneNumber = "".obs; RxString verificationId = "".obs; RxInt resendToken = 0.obs; RxBool isLoading = true.obs; @override void onInit() { getArgument(); super.onInit(); } Future getArgument() async { dynamic argumentData = Get.arguments; if (argumentData != null) { countryCode.value = argumentData['countryCode']; phoneNumber.value = argumentData['phoneNumber']; verificationId.value = argumentData['verificationId']; } isLoading.value = false; update(); } Future sendOTP() async { await FirebaseAuth.instance.verifyPhoneNumber( phoneNumber: countryCode.value + phoneNumber.value, verificationCompleted: (PhoneAuthCredential credential) {}, verificationFailed: (FirebaseAuthException e) {}, codeSent: (String verificationId0, int? resendToken0) async { verificationId.value = verificationId0; resendToken.value = resendToken0!; ShowToastDialog.showToast("OTP sent".tr); }, timeout: const Duration(seconds: 25), forceResendingToken: resendToken.value, codeAutoRetrievalTimeout: (String verificationId0) { verificationId0 = verificationId.value; }, ); return true; } }