diff --git a/app/src/main/java/com/firebase/uidemo/auth/SignedInActivity.java b/app/src/main/java/com/firebase/uidemo/auth/SignedInActivity.java index ebc374e3b..6ade8e329 100644 --- a/app/src/main/java/com/firebase/uidemo/auth/SignedInActivity.java +++ b/app/src/main/java/com/firebase/uidemo/auth/SignedInActivity.java @@ -46,11 +46,11 @@ import java.util.ArrayList; import java.util.Iterator; +import java.util.List; import butterknife.BindView; import butterknife.ButterKnife; import butterknife.OnClick; -import java.util.List; public class SignedInActivity extends AppCompatActivity { private static final String EXTRA_SIGNED_IN_CONFIG = "extra_signed_in_config"; @@ -241,12 +241,11 @@ static final class SignedInConfig implements Parcelable { String tosUrl; boolean isSmartLockEnabled; - SignedInConfig( - int logo, - int theme, - List providerInfo, - String tosUrl, - boolean isSmartLockEnabled) { + SignedInConfig(int logo, + int theme, + List providerInfo, + String tosUrl, + boolean isSmartLockEnabled) { this.logo = logo; this.theme = theme; this.providerInfo = providerInfo; 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 c5c5aa7df..c20a194be 100644 --- a/auth/src/main/java/com/firebase/ui/auth/AuthUI.java +++ b/auth/src/main/java/com/firebase/ui/auth/AuthUI.java @@ -18,11 +18,11 @@ import android.content.Intent; import android.os.Parcel; import android.os.Parcelable; +import android.support.annotation.CallSuper; import android.support.annotation.DrawableRes; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.annotation.StyleRes; -import android.support.annotation.VisibleForTesting; import android.support.v4.app.FragmentActivity; import com.facebook.login.LoginManager; @@ -439,10 +439,7 @@ private abstract class AuthIntentBuilder { String mTosUrl; boolean mIsSmartLockEnabled = true; - private AuthIntentBuilder() { - mProviders.add(new IdpConfig.Builder(EMAIL_PROVIDER).build()); - } - + private AuthIntentBuilder() {} /** * Specifies the theme to use for the application flow. If no theme is specified, @@ -450,9 +447,9 @@ private AuthIntentBuilder() { */ public T setTheme(@StyleRes int theme) { Preconditions.checkValidStyle( - mApp.getApplicationContext(), - theme, - "theme identifier is unknown or not a style definition"); + mApp.getApplicationContext(), + theme, + "theme identifier is unknown or not a style definition"); mTheme = theme; return (T) this; } @@ -542,12 +539,16 @@ public T setIsSmartLockEnabled(boolean enabled) { return (T) this; } + @CallSuper public Intent build() { + if (mProviders.isEmpty()) { + mProviders.add(new IdpConfig.Builder(EMAIL_PROVIDER).build()); + } + return KickoffActivity.createIntent(mApp.getApplicationContext(), getFlowParams()); } - @VisibleForTesting() - public abstract FlowParameters getFlowParams(); + protected abstract FlowParameters getFlowParams(); } /** @@ -574,18 +575,17 @@ public ReauthIntentBuilder setReauthReason(String reauthReason) { @Override public Intent build() { if (FirebaseAuth.getInstance(mApp).getCurrentUser() == null) { - throw new IllegalStateException( - "User must be currently logged in to reauthenticate"); + throw new IllegalStateException("User must be currently logged in to reauthenticate"); } return super.build(); } @Override - public FlowParameters getFlowParams() { + protected FlowParameters getFlowParams() { return new FlowParameters( mApp.getName(), - new ArrayList<>(mProviders), + mProviders, mTheme, mLogo, mTosUrl, @@ -617,15 +617,10 @@ public SignInIntentBuilder setAllowNewEmailAccounts(boolean enabled) { } @Override - @VisibleForTesting() - public FlowParameters getFlowParams() { - if (mProviders.isEmpty()) { - mProviders.add(new IdpConfig.Builder(EMAIL_PROVIDER).build()); - } - + protected FlowParameters getFlowParams() { return new FlowParameters( mApp.getName(), - new ArrayList<>(mProviders), + mProviders, mTheme, mLogo, mTosUrl, diff --git a/auth/src/test/java/com/firebase/ui/auth/AuthUITest.java b/auth/src/test/java/com/firebase/ui/auth/AuthUITest.java index b71412cd2..21b3a9b62 100644 --- a/auth/src/test/java/com/firebase/ui/auth/AuthUITest.java +++ b/auth/src/test/java/com/firebase/ui/auth/AuthUITest.java @@ -19,6 +19,7 @@ import com.firebase.ui.auth.testhelpers.CustomRobolectricGradleTestRunner; import com.firebase.ui.auth.testhelpers.TestConstants; import com.firebase.ui.auth.testhelpers.TestHelper; +import com.firebase.ui.auth.ui.ExtraConstants; import com.firebase.ui.auth.ui.FlowParameters; import com.google.firebase.FirebaseApp; @@ -48,7 +49,8 @@ public void testCreateStartIntent_deprecatedSetProvidersShouldStillWork() { .getInstance(mFirebaseApp) .createSignInIntentBuilder() .setProviders(new String[]{AuthUI.EMAIL_PROVIDER, AuthUI.TWITTER_PROVIDER}) - .getFlowParams(); + .build() + .getParcelableExtra(ExtraConstants.EXTRA_FLOW_PARAMS); assertEquals(2, flowParameters.providerInfo.size()); assertEquals(AuthUI.EMAIL_PROVIDER, flowParameters.providerInfo.get(0).getProviderId()); } @@ -58,7 +60,8 @@ public void testCreateStartIntent_shouldHaveEmailAsDefaultProvider() { FlowParameters flowParameters = AuthUI .getInstance(mFirebaseApp) .createSignInIntentBuilder() - .getFlowParams(); + .build() + .getParcelableExtra(ExtraConstants.EXTRA_FLOW_PARAMS); assertEquals(1, flowParameters.providerInfo.size()); assertEquals(AuthUI.EMAIL_PROVIDER, flowParameters.providerInfo.get(0).getProviderId()); } @@ -79,7 +82,8 @@ public void testCreatingStartIntent() { new IdpConfig.Builder(AuthUI.GOOGLE_PROVIDER).build(), new IdpConfig.Builder(AuthUI.FACEBOOK_PROVIDER).build())) .setTosUrl(TestConstants.TOS_URL) - .getFlowParams(); + .build() + .getParcelableExtra(ExtraConstants.EXTRA_FLOW_PARAMS); assertEquals(3, flowParameters.providerInfo.size()); assertEquals(mFirebaseApp.getName(), flowParameters.appName);