diff --git a/auth/src/main/java/com/firebase/ui/auth/AuthUI.java b/auth/src/main/java/com/firebase/ui/auth/AuthUI.java index b1ac3afbd..305b3e04c 100644 --- a/auth/src/main/java/com/firebase/ui/auth/AuthUI.java +++ b/auth/src/main/java/com/firebase/ui/auth/AuthUI.java @@ -533,6 +533,17 @@ public EmailBuilder setAllowNewAccounts(boolean allow) { return this; } + /** + * Hide the email sign-up button in the authentication flow. + *

+ * Email sign-in is enabled by default. + */ + @NonNull + public EmailBuilder hideEmailSignUp() { + getParams().putBoolean(ExtraConstants.HIDE_EMAIL_SIGN_UP, true); + return this; + } + /** * Configures the requirement for the user to enter first and last name in the email * sign up flow. diff --git a/auth/src/main/java/com/firebase/ui/auth/ui/email/CheckEmailFragment.java b/auth/src/main/java/com/firebase/ui/auth/ui/email/CheckEmailFragment.java index b34ce6ffa..15092c73c 100644 --- a/auth/src/main/java/com/firebase/ui/auth/ui/email/CheckEmailFragment.java +++ b/auth/src/main/java/com/firebase/ui/auth/ui/email/CheckEmailFragment.java @@ -21,7 +21,6 @@ import com.firebase.ui.auth.util.data.PrivacyDisclosureUtils; import com.firebase.ui.auth.util.ui.ImeHelper; import com.firebase.ui.auth.util.ui.fieldvalidators.EmailFieldValidator; -import com.google.android.material.snackbar.Snackbar; import com.google.android.material.textfield.TextInputLayout; import com.google.firebase.auth.EmailAuthProvider; @@ -31,8 +30,6 @@ import androidx.fragment.app.FragmentActivity; import androidx.lifecycle.ViewModelProvider; -import static com.firebase.ui.auth.AuthUI.EMAIL_LINK_PROVIDER; - /** * Fragment that shows a form with an email field and checks for existing accounts with that email. *

@@ -95,8 +92,8 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat mSignInButton.setOnClickListener(this); mSignUpButton.setOnClickListener(this); - // Hide sign up button for email link authentication - if (getEmailProvider().equals(EmailAuthProvider.EMAIL_LINK_SIGN_IN_METHOD)) { + // Hide sign up button for email link authentication or if explicitly disabled. + if (getEmailProvider().equals(EmailAuthProvider.EMAIL_LINK_SIGN_IN_METHOD) || hideSignUpButton()) { mSignUpButton.setVisibility(View.GONE); } @@ -165,6 +162,15 @@ public void onDonePressed() { signIn(); } + private Boolean hideSignUpButton() { + for (AuthUI.IdpConfig config : getFlowParams().providers) { + if (EmailAuthProvider.EMAIL_PASSWORD_SIGN_IN_METHOD.equals(config.getProviderId())) { + return config.getParams().containsKey(ExtraConstants.HIDE_EMAIL_SIGN_UP); + } + } + return false; + } + private String getEmailProvider() { // Iterate through all IdpConfig entries for (AuthUI.IdpConfig config : getFlowParams().providers) { diff --git a/auth/src/main/java/com/firebase/ui/auth/util/ExtraConstants.java b/auth/src/main/java/com/firebase/ui/auth/util/ExtraConstants.java index 07211a4ea..3ef1b4f14 100644 --- a/auth/src/main/java/com/firebase/ui/auth/util/ExtraConstants.java +++ b/auth/src/main/java/com/firebase/ui/auth/util/ExtraConstants.java @@ -30,6 +30,7 @@ public final class ExtraConstants { public static final String PASSWORD = "extra_password"; public static final String DEFAULT_EMAIL = "extra_default_email"; public static final String ALLOW_NEW_EMAILS = "extra_allow_new_emails"; + public static final String HIDE_EMAIL_SIGN_UP = "extra_hide_email_sign_up"; public static final String REQUIRE_NAME = "extra_require_name"; public static final String GOOGLE_SIGN_IN_OPTIONS = "extra_google_sign_in_options"; public static final String FACEBOOK_PERMISSIONS = "extra_facebook_permissions";