autoLogin method
Implementation
void autoLogin() async {
if (isAutoLoginTried) {
return;
}
isAutoLoginTried = true;
await Future.delayed(const Duration(seconds: 2), () {});
if (FirebaseAuth.instance.currentUser != null) {
loadingDialog();
try {
final loginResult =
await Requests.createUser(FirebaseAuth.instance.currentUser!.uid);
if (loginResult?['statusCode'] == 200 &&
(loginResult?['role'] == 'SUBSCRIBER' ||
loginResult?['role'] == 'FOUNDER')) {
closeDialog();
bool didUserCancelDialog = false;
if(loginResult["phone"] == null || loginResult["phone"].toString().isEmpty){
await ResidentCountryView.show(
barrierDismissible: false,
onConfirm: () async {
closeDialog();
},
onPressClose: (){
didUserCancelDialog = true;
closeDialog();
},
);
if(didUserCancelDialog){
return ;
}else{
phoneNumberController.text = mobileNumTxtController.text.replaceAll(countryCodeController.text, "");
bool result =await verifyPhone();
if (!result){
return ;
}
await onLoginSuccessful(referralCode: loginResult?['referrerCode']);
}
} else {
closeDialog();
await onLoginSuccessful(referralCode: loginResult?['referrerCode']);
}
}
} catch (e) {
closeDialog();
log('Auto-login failed: $e');
}
}
}