autoLogin method

void autoLogin()

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');
    }
  }
}