Initial commit
This commit is contained in:
50
lib/controllers/otp_controller.dart
Normal file
50
lib/controllers/otp_controller.dart
Normal file
@@ -0,0 +1,50 @@
|
||||
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<TextEditingController> 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<void> 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<bool> 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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user