Skip to content

Commit 331cb28

Browse files
committed
feat: Hide email sign up button if specified
1 parent 387e7c2 commit 331cb28

File tree

3 files changed

+23
-5
lines changed

3 files changed

+23
-5
lines changed

auth/src/main/java/com/firebase/ui/auth/AuthUI.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -533,6 +533,17 @@ public EmailBuilder setAllowNewAccounts(boolean allow) {
533533
return this;
534534
}
535535

536+
/**
537+
* Hide the email sign-up button in the authentication flow.
538+
* <p>
539+
* Email sign-in is enabled by default.
540+
*/
541+
@NonNull
542+
public EmailBuilder hideEmailSignUp() {
543+
getParams().putBoolean(ExtraConstants.HIDE_EMAIL_SIGN_UP, true);
544+
return this;
545+
}
546+
536547
/**
537548
* Configures the requirement for the user to enter first and last name in the email
538549
* sign up flow.

auth/src/main/java/com/firebase/ui/auth/ui/email/CheckEmailFragment.java

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121
import com.firebase.ui.auth.util.data.PrivacyDisclosureUtils;
2222
import com.firebase.ui.auth.util.ui.ImeHelper;
2323
import com.firebase.ui.auth.util.ui.fieldvalidators.EmailFieldValidator;
24-
import com.google.android.material.snackbar.Snackbar;
2524
import com.google.android.material.textfield.TextInputLayout;
2625
import com.google.firebase.auth.EmailAuthProvider;
2726

@@ -31,8 +30,6 @@
3130
import androidx.fragment.app.FragmentActivity;
3231
import androidx.lifecycle.ViewModelProvider;
3332

34-
import static com.firebase.ui.auth.AuthUI.EMAIL_LINK_PROVIDER;
35-
3633
/**
3734
* Fragment that shows a form with an email field and checks for existing accounts with that email.
3835
* <p>
@@ -95,8 +92,8 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat
9592
mSignInButton.setOnClickListener(this);
9693
mSignUpButton.setOnClickListener(this);
9794

98-
// Hide sign up button for email link authentication
99-
if (getEmailProvider().equals(EmailAuthProvider.EMAIL_LINK_SIGN_IN_METHOD)) {
95+
// Hide sign up button for email link authentication or if explicitly disabled.
96+
if (getEmailProvider().equals(EmailAuthProvider.EMAIL_LINK_SIGN_IN_METHOD) || hideSignUpButton()) {
10097
mSignUpButton.setVisibility(View.GONE);
10198
}
10299

@@ -165,6 +162,15 @@ public void onDonePressed() {
165162
signIn();
166163
}
167164

165+
private Boolean hideSignUpButton() {
166+
for (AuthUI.IdpConfig config : getFlowParams().providers) {
167+
if (EmailAuthProvider.EMAIL_PASSWORD_SIGN_IN_METHOD.equals(config.getProviderId())) {
168+
return config.getParams().containsKey(ExtraConstants.HIDE_EMAIL_SIGN_UP);
169+
}
170+
}
171+
return false;
172+
}
173+
168174
private String getEmailProvider() {
169175
// Iterate through all IdpConfig entries
170176
for (AuthUI.IdpConfig config : getFlowParams().providers) {

auth/src/main/java/com/firebase/ui/auth/util/ExtraConstants.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ public final class ExtraConstants {
3030
public static final String PASSWORD = "extra_password";
3131
public static final String DEFAULT_EMAIL = "extra_default_email";
3232
public static final String ALLOW_NEW_EMAILS = "extra_allow_new_emails";
33+
public static final String HIDE_EMAIL_SIGN_UP = "extra_hide_email_sign_up";
3334
public static final String REQUIRE_NAME = "extra_require_name";
3435
public static final String GOOGLE_SIGN_IN_OPTIONS = "extra_google_sign_in_options";
3536
public static final String FACEBOOK_PERMISSIONS = "extra_facebook_permissions";

0 commit comments

Comments
 (0)