Skip to content

Commit 687a603

Browse files
authored
Allow force NASCAR screen (#1467)
1 parent d1a92a2 commit 687a603

File tree

6 files changed

+32
-8
lines changed

6 files changed

+32
-8
lines changed

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

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1025,6 +1025,7 @@ private abstract class AuthIntentBuilder<T extends AuthIntentBuilder> {
10251025
final List<IdpConfig> mProviders = new ArrayList<>();
10261026
String mTosUrl;
10271027
String mPrivacyPolicyUrl;
1028+
boolean mAlwaysShowProviderChoice = false;
10281029
boolean mEnableCredentials = true;
10291030
boolean mEnableHints = true;
10301031

@@ -1156,6 +1157,19 @@ public T setIsSmartLockEnabled(boolean enableCredentials, boolean enableHints) {
11561157
return (T) this;
11571158
}
11581159

1160+
/**
1161+
* Forces the sign-in method choice screen to always show, even if there is only
1162+
* a single provider configured.
1163+
* <p>
1164+
* <p>This is false by default.
1165+
* @param alwaysShow if true, force the sign-in choice screen to show.
1166+
*/
1167+
@NonNull
1168+
public T setAlwaysShowSignInMethodScreen(boolean alwaysShow) {
1169+
mAlwaysShowProviderChoice = alwaysShow;
1170+
return (T) this;
1171+
}
1172+
11591173
@CallSuper
11601174
@NonNull
11611175
public Intent build() {
@@ -1201,7 +1215,8 @@ protected FlowParameters getFlowParams() {
12011215
mPrivacyPolicyUrl,
12021216
mEnableCredentials,
12031217
mEnableHints,
1204-
mEnableAnonymousUpgrade);
1218+
mEnableAnonymousUpgrade,
1219+
mAlwaysShowProviderChoice);
12051220
}
12061221
}
12071222
}

auth/src/main/java/com/firebase/ui/auth/data/model/FlowParameters.java

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import android.support.annotation.StyleRes;
2525
import android.text.TextUtils;
2626

27-
import com.firebase.ui.auth.AuthUI;
2827
import com.firebase.ui.auth.AuthUI.IdpConfig;
2928
import com.firebase.ui.auth.util.ExtraConstants;
3029
import com.firebase.ui.auth.util.Preconditions;
@@ -59,6 +58,7 @@ public class FlowParameters implements Parcelable {
5958
public final boolean enableCredentials;
6059
public final boolean enableHints;
6160
public final boolean enableAnonymousUpgrade;
61+
public final boolean alwaysShowProviderChoice;
6262

6363
public FlowParameters(
6464
@NonNull String appName,
@@ -69,7 +69,8 @@ public FlowParameters(
6969
@Nullable String privacyPolicyUrl,
7070
boolean enableCredentials,
7171
boolean enableHints,
72-
boolean enableAnonymousUpgrade) {
72+
boolean enableAnonymousUpgrade,
73+
boolean alwaysShowProviderChoice) {
7374
this.appName = Preconditions.checkNotNull(appName, "appName cannot be null");
7475
this.providers = Collections.unmodifiableList(
7576
Preconditions.checkNotNull(providers, "providers cannot be null"));
@@ -80,6 +81,7 @@ public FlowParameters(
8081
this.enableCredentials = enableCredentials;
8182
this.enableHints = enableHints;
8283
this.enableAnonymousUpgrade = enableAnonymousUpgrade;
84+
this.alwaysShowProviderChoice = alwaysShowProviderChoice;
8385
}
8486

8587
/**
@@ -108,6 +110,7 @@ public void writeToParcel(Parcel dest, int flags) {
108110
dest.writeInt(enableCredentials ? 1 : 0);
109111
dest.writeInt(enableHints ? 1 : 0);
110112
dest.writeInt(enableAnonymousUpgrade ? 1 : 0);
113+
dest.writeInt(alwaysShowProviderChoice ? 1 : 0);
111114
}
112115

113116
@Override
@@ -127,6 +130,7 @@ public FlowParameters createFromParcel(Parcel in) {
127130
boolean enableCredentials = in.readInt() != 0;
128131
boolean enableHints = in.readInt() != 0;
129132
boolean enableAnonymousUpgrade = in.readInt() != 0;
133+
boolean alwaysShowProviderChoice = in.readInt() != 0;
130134

131135
return new FlowParameters(
132136
appName,
@@ -137,7 +141,8 @@ public FlowParameters createFromParcel(Parcel in) {
137141
privacyPolicyUrl,
138142
enableCredentials,
139143
enableHints,
140-
enableAnonymousUpgrade);
144+
enableAnonymousUpgrade,
145+
alwaysShowProviderChoice);
141146
}
142147

143148
@Override
@@ -162,4 +167,7 @@ public boolean isAnonymousUpgradeEnabled() {
162167
return enableAnonymousUpgrade;
163168
}
164169

170+
public boolean shouldShowProviderChoice() {
171+
return !isSingleProviderFlow() || alwaysShowProviderChoice;
172+
}
165173
}

auth/src/main/java/com/firebase/ui/auth/data/remote/SignInKickstarter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ public void onComplete(@NonNull Task<CredentialRequestResponse> task) {
9696

9797
private void startAuthMethodChoice() {
9898
// If there is only one provider selected, launch the flow directly
99-
if (getArguments().isSingleProviderFlow()) {
99+
if (!getArguments().shouldShowProviderChoice()) {
100100
AuthUI.IdpConfig firstIdpConfig = getArguments().providers.get(0);
101101
String firstProvider = firstIdpConfig.getProviderId();
102102
switch (firstProvider) {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat
113113
TextView footerText = view.findViewById(R.id.email_footer_tos_and_pp_text);
114114
FlowParameters flowParameters = getFlowParams();
115115

116-
if (flowParameters.isSingleProviderFlow()) {
116+
if (!flowParameters.shouldShowProviderChoice()) {
117117
PrivacyDisclosureUtils.setupTermsOfServiceAndPrivacyPolicyText(requireContext(),
118118
flowParameters,
119119
termsText);

auth/src/main/java/com/firebase/ui/auth/ui/phone/CheckPhoneNumberFragment.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ private String getPseudoValidPhoneNumber() {
173173
private void setupPrivacyDisclosures(TextView footerText) {
174174
FlowParameters params = getFlowParams();
175175

176-
if (params.isSingleProviderFlow()) {
176+
if (!params.shouldShowProviderChoice()) {
177177
PrivacyDisclosureUtils.setupTermsOfServiceAndPrivacyPolicySmsText(requireContext(),
178178
params,
179179
mSmsTermsText);

auth/src/test/java/com/firebase/ui/auth/testhelpers/TestHelper.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,8 @@ public static FlowParameters getFlowParameters(Collection<String> providerIds,
142142
null,
143143
true,
144144
true,
145-
enableAnonymousUpgrade);
145+
enableAnonymousUpgrade,
146+
false);
146147
}
147148

148149

0 commit comments

Comments
 (0)