Skip to content

Commit 9d954e4

Browse files
authored
Rewrite email logic with new architecture (#1214)
2 parents fb23799 + ad671f2 commit 9d954e4

File tree

107 files changed

+397
-531
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

107 files changed

+397
-531
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -390,7 +390,7 @@ private static List<Credential> getCredentialsFromFirebaseUser(@NonNull Firebase
390390
String type = ProviderUtils.providerIdToAccountType(userInfo.getProviderId());
391391

392392
credentials.add(new Credential.Builder(
393-
user.getEmail() == null ? user.getPhoneNumber() : user.getEmail())
393+
TextUtils.isEmpty(user.getEmail()) ? user.getPhoneNumber() : user.getEmail())
394394
.setAccountType(type)
395395
.build());
396396
}

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

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
package com.firebase.ui.auth.data.model;
1515

1616
import android.content.Intent;
17-
import android.os.Bundle;
1817
import android.os.Parcel;
1918
import android.os.Parcelable;
2019
import android.support.annotation.DrawableRes;
@@ -84,13 +83,6 @@ public static FlowParameters fromIntent(Intent intent) {
8483
return intent.getParcelableExtra(ExtraConstants.FLOW_PARAMS);
8584
}
8685

87-
/**
88-
* Extract FlowParameters from a Bundle.
89-
*/
90-
public static FlowParameters fromBundle(Bundle bundle) {
91-
return bundle.getParcelable(ExtraConstants.FLOW_PARAMS);
92-
}
93-
9486
@Override
9587
public void writeToParcel(Parcel dest, int flags) {
9688
dest.writeString(appName);

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,6 @@ public class AppCompatBase extends HelperActivityBase {
2727
protected void onCreate(@Nullable Bundle savedInstanceState) {
2828
super.onCreate(savedInstanceState);
2929
setTheme(R.style.FirebaseUI); // Provides default values
30-
setTheme(getFlowHolder().getArguments().themeId);
30+
setTheme(getFlowParams().themeId);
3131
}
3232
}
Lines changed: 16 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,31 @@
11
package com.firebase.ui.auth.ui;
22

3-
import android.content.IntentSender;
43
import android.os.Bundle;
54
import android.support.annotation.Nullable;
65
import android.support.annotation.RestrictTo;
76
import android.support.v4.app.Fragment;
87
import android.view.ContextThemeWrapper;
98

9+
import com.firebase.ui.auth.IdpResponse;
1010
import com.firebase.ui.auth.data.model.FlowParameters;
11-
import com.firebase.ui.auth.util.AuthHelper;
11+
import com.google.firebase.auth.FirebaseUser;
1212

1313
@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
1414
public class FragmentBase extends Fragment {
15-
16-
private FlowParameters mFlowParameters;
17-
private AuthHelper mAuthHelper;
15+
private HelperActivityBase mActivity;
1816
private ProgressDialogHolder mProgressDialogHolder;
1917

2018
@Override
2119
public void onCreate(@Nullable Bundle savedInstanceState) {
2220
super.onCreate(savedInstanceState);
2321

24-
mAuthHelper = new AuthHelper(getFlowParams());
25-
ContextThemeWrapper context = new ContextThemeWrapper(
26-
getContext(), getFlowParams().themeId);
27-
mProgressDialogHolder = new ProgressDialogHolder(context);
22+
if (!(getActivity() instanceof HelperActivityBase)) {
23+
throw new IllegalStateException("Cannot use this fragment without the helper activity");
24+
}
25+
mActivity = (HelperActivityBase) getActivity();
26+
27+
mProgressDialogHolder = new ProgressDialogHolder(new ContextThemeWrapper(
28+
getContext(), getFlowParams().themeId));
2829
}
2930

3031
@Override
@@ -34,23 +35,13 @@ public void onDestroy() {
3435
}
3536

3637
public FlowParameters getFlowParams() {
37-
if (mFlowParameters == null) {
38-
mFlowParameters = FlowParameters.fromBundle(getArguments());
39-
}
40-
41-
return mFlowParameters;
42-
}
43-
44-
public AuthHelper getAuthHelper() {
45-
return mAuthHelper;
46-
}
47-
48-
public ProgressDialogHolder getDialogHolder() {
49-
return mProgressDialogHolder;
38+
return mActivity.getFlowParams();
5039
}
5140

52-
public void startIntentSenderForResult(IntentSender sender, int requestCode)
53-
throws IntentSender.SendIntentException {
54-
startIntentSenderForResult(sender, requestCode, null, 0, 0, 0, null);
41+
public void startSaveCredentials(
42+
FirebaseUser firebaseUser,
43+
IdpResponse response,
44+
@Nullable String password) {
45+
mActivity.startSaveCredentials(firebaseUser, response, password);
5546
}
5647
}

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

Lines changed: 9 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com.firebase.ui.auth.ui;
22

33
import android.app.Activity;
4-
import android.arch.lifecycle.ViewModelProviders;
54
import android.content.Context;
65
import android.content.Intent;
76
import android.os.Bundle;
@@ -17,7 +16,6 @@
1716
import com.firebase.ui.auth.util.CredentialsUtil;
1817
import com.firebase.ui.auth.util.ExtraConstants;
1918
import com.firebase.ui.auth.util.data.ProviderUtils;
20-
import com.firebase.ui.auth.viewmodel.FlowHolder;
2119
import com.firebase.ui.auth.viewmodel.RequestCodes;
2220
import com.google.android.gms.auth.api.credentials.Credential;
2321
import com.google.firebase.auth.FirebaseUser;
@@ -27,9 +25,8 @@
2725
@SuppressWarnings("Registered")
2826
@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
2927
public class HelperActivityBase extends AppCompatActivity {
30-
private FlowHolder mFlowHolder;
28+
private FlowParameters mParams;
3129

32-
private FlowParameters mFlowParameters;
3330
private AuthHelper mAuthHelper;
3431
private ProgressDialogHolder mProgressDialogHolder;
3532

@@ -60,28 +57,17 @@ protected void onDestroy() {
6057
@Override
6158
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
6259
super.onActivityResult(requestCode, resultCode, data);
63-
64-
// Forward the results of Smartlock Saving
60+
// Forward the results of Smart Lock saving
6561
if (requestCode == RequestCodes.CRED_SAVE_FLOW) {
6662
finish(RESULT_OK, data);
6763
}
6864
}
6965

70-
public FlowHolder getFlowHolder() {
71-
if (mFlowHolder == null) {
72-
mFlowHolder = ViewModelProviders.of(this).get(FlowHolder.class);
73-
mFlowHolder.init(FlowParameters.fromIntent(getIntent()));
74-
}
75-
76-
return mFlowHolder;
77-
}
78-
7966
public FlowParameters getFlowParams() {
80-
if (mFlowParameters == null) {
81-
mFlowParameters = FlowParameters.fromIntent(getIntent());
67+
if (mParams == null) {
68+
mParams = FlowParameters.fromIntent(getIntent());
8269
}
83-
84-
return mFlowParameters;
70+
return mParams;
8571
}
8672

8773
public AuthHelper getAuthHelper() {
@@ -99,17 +85,16 @@ public void finish(int resultCode, @Nullable Intent intent) {
9985

10086
public void startSaveCredentials(
10187
FirebaseUser firebaseUser,
102-
@Nullable String password,
103-
IdpResponse response) {
104-
88+
IdpResponse response,
89+
@Nullable String password) {
10590
// Build credential
10691
String accountType = ProviderUtils.idpResponseToAccountType(response);
10792
Credential credential = CredentialsUtil.buildCredential(
10893
firebaseUser, password, accountType);
10994

11095
// Start the dedicated SmartLock Activity
111-
Intent intent = CredentialSaveActivity.createIntent(this, getFlowParams(),
112-
credential, response);
96+
Intent intent = CredentialSaveActivity.createIntent(
97+
this, getFlowParams(), credential, response);
11398
startActivityForResult(intent, RequestCodes.CRED_SAVE_FLOW);
11499
}
115100
}

0 commit comments

Comments
 (0)