use of com.firebase.ui.auth.data.model.FlowParameters in project FirebaseUI-Android by firebase.
the class CheckPhoneNumberFragment method setupPrivacyDisclosures.
private void setupPrivacyDisclosures() {
FlowParameters params = getFlowParams();
boolean termsAndPrivacyUrlsProvided = params.isTermsOfServiceUrlProvided() && params.isPrivacyPolicyUrlProvided();
if (!params.shouldShowProviderChoice() && termsAndPrivacyUrlsProvided) {
PrivacyDisclosureUtils.setupTermsOfServiceAndPrivacyPolicySmsText(requireContext(), params, mSmsTermsText);
} else {
PrivacyDisclosureUtils.setupTermsOfServiceFooter(requireContext(), params, mFooterText);
String verifyText = getString(R.string.fui_verify_phone_number);
mSmsTermsText.setText(getString(R.string.fui_sms_terms_of_service, verifyText));
}
}
use of com.firebase.ui.auth.data.model.FlowParameters in project FirebaseUI-Android by firebase.
the class GenericIdpSignInHandler method handleAnonymousUpgradeFlow.
private void handleAnonymousUpgradeFlow(final FirebaseAuth auth, final HelperActivityBase activity, final OAuthProvider provider, final FlowParameters flowParameters) {
final boolean useEmulator = activity.getAuthUI().isUseEmulator();
auth.getCurrentUser().startActivityForLinkWithProvider(activity, provider).addOnSuccessListener(authResult -> handleSuccess(useEmulator, provider.getProviderId(), authResult.getUser(), (OAuthCredential) authResult.getCredential(), authResult.getAdditionalUserInfo().isNewUser())).addOnFailureListener(e -> {
if (!(e instanceof FirebaseAuthUserCollisionException)) {
setResult(Resource.forFailure(e));
return;
}
FirebaseAuthUserCollisionException collisionException = (FirebaseAuthUserCollisionException) e;
final AuthCredential credential = collisionException.getUpdatedCredential();
final String email = collisionException.getEmail();
// Case 1: Anonymous user trying to link with an existing user
// Case 2: Anonymous user trying to link with a provider keyed
// by an email that already belongs to an existing account
// (linking flow)
ProviderUtils.fetchSortedProviders(auth, flowParameters, email).addOnSuccessListener(providers -> {
if (providers.isEmpty()) {
String errorMessage = "Unable to complete the linkingflow -" + " the user is using " + "unsupported providers.";
setResult(Resource.forFailure(new FirebaseUiException(ErrorCodes.DEVELOPER_ERROR, errorMessage)));
return;
}
if (providers.contains(provider.getProviderId())) {
// Case 1
handleMergeFailure(credential);
} else {
// Case 2 - linking flow to be handled by
// SocialProviderResponseHandler
setResult(Resource.forFailure(new FirebaseUiUserCollisionException(ErrorCodes.ERROR_GENERIC_IDP_RECOVERABLE_ERROR, "Recoverable error.", provider.getProviderId(), email, credential)));
}
});
});
}
use of com.firebase.ui.auth.data.model.FlowParameters in project FirebaseUI-Android by firebase.
the class GenericIdpSignInHandler method startSignIn.
@Override
public void startSignIn(@NonNull FirebaseAuth auth, @NonNull HelperActivityBase activity, @NonNull String providerId) {
setResult(Resource.forLoading());
FlowParameters flowParameters = activity.getFlowParams();
OAuthProvider provider = buildOAuthProvider(providerId, auth);
if (flowParameters != null && AuthOperationManager.getInstance().canUpgradeAnonymous(auth, flowParameters)) {
handleAnonymousUpgradeFlow(auth, activity, provider, flowParameters);
return;
}
handleNormalSignInFlow(auth, activity, provider);
}
use of com.firebase.ui.auth.data.model.FlowParameters in project FirebaseUI-Android by firebase.
the class KickoffActivity method invalidateEmailLink.
public void invalidateEmailLink() {
FlowParameters flowParameters = getFlowParams();
flowParameters.emailLink = null;
setIntent(getIntent().putExtra(ExtraConstants.FLOW_PARAMS, flowParameters));
}
use of com.firebase.ui.auth.data.model.FlowParameters in project FirebaseUI-Android by firebase.
the class EmailLinkSignInHandlerTest method initializeHandlerWithSessionInfo.
private void initializeHandlerWithSessionInfo(@Nullable String sessionId, @Nullable String anonymousUserId, @Nullable String providerId, boolean forceSameDevice) {
FlowParameters testParams = TestHelper.getFlowParameters(new ArrayList<String>());
ContinueUrlBuilder continueUrlBuilder = new ContinueUrlBuilder(CONTINUE_URL);
continueUrlBuilder.appendSessionId(sessionId);
continueUrlBuilder.appendAnonymousUserId(anonymousUserId);
continueUrlBuilder.appendProviderId(providerId);
continueUrlBuilder.appendForceSameDeviceBit(forceSameDevice);
testParams.emailLink = EMAIL_LINK + continueUrlBuilder.build();
mHandler.initializeForTesting(testParams, mMockAuth, null);
}
Aggregations