Skip to content

Commit 226808b

Browse files
SUPERCILEXsamtstern
authored andcommitted
Auth instances cleanup (#786)
1 parent 6aeafd4 commit 226808b

24 files changed

+146
-134
lines changed

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

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,20 @@
88
import android.support.v4.app.Fragment;
99
import android.view.ContextThemeWrapper;
1010

11+
import com.firebase.ui.auth.util.AuthHelper;
12+
1113
@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
1214
public class FragmentBase extends Fragment {
1315

1416
private FlowParameters mFlowParameters;
17+
private AuthHelper mAuthHelper;
1518
private ProgressDialogHolder mProgressDialogHolder;
1619

1720
@Override
1821
public void onCreate(@Nullable Bundle savedInstanceState) {
1922
super.onCreate(savedInstanceState);
2023

24+
mAuthHelper = new AuthHelper(getFlowParams());
2125
ContextThemeWrapper context = new ContextThemeWrapper(
2226
getContext(), getFlowParams().themeId);
2327
mProgressDialogHolder = new ProgressDialogHolder(context);
@@ -37,6 +41,10 @@ public FlowParameters getFlowParams() {
3741
return mFlowParameters;
3842
}
3943

44+
public AuthHelper getAuthHelper() {
45+
return mAuthHelper;
46+
}
47+
4048
public ProgressDialogHolder getDialogHolder() {
4149
return mProgressDialogHolder;
4250
}

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
import com.firebase.ui.auth.IdpResponse;
1313
import com.firebase.ui.auth.ResultCodes;
14+
import com.firebase.ui.auth.util.AuthHelper;
1415
import com.firebase.ui.auth.util.signincontainer.SaveSmartLock;
1516
import com.google.firebase.auth.FirebaseUser;
1617

@@ -21,6 +22,7 @@
2122
public class HelperActivityBase extends AppCompatActivity {
2223

2324
private FlowParameters mFlowParameters;
25+
private AuthHelper mAuthHelper;
2426
private ProgressDialogHolder mProgressDialogHolder;
2527

2628
public static Intent createBaseIntent(
@@ -37,6 +39,7 @@ public static Intent createBaseIntent(
3739
@Override
3840
protected void onCreate(Bundle savedInstance) {
3941
super.onCreate(savedInstance);
42+
mAuthHelper = new AuthHelper(getFlowParams());
4043
mProgressDialogHolder = new ProgressDialogHolder(this);
4144
}
4245

@@ -54,6 +57,10 @@ public FlowParameters getFlowParams() {
5457
return mFlowParameters;
5558
}
5659

60+
public AuthHelper getAuthHelper() {
61+
return mAuthHelper;
62+
}
63+
5764
public ProgressDialogHolder getDialogHolder() {
5865
return mProgressDialogHolder;
5966
}
@@ -84,4 +91,3 @@ public void saveCredentialsOrFinish(
8491
}
8592

8693
}
87-

auth/src/main/java/com/firebase/ui/auth/ui/accountlink/WelcomeBackIdpPrompt.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@
4242
import com.firebase.ui.auth.ui.HelperActivityBase;
4343
import com.firebase.ui.auth.ui.TaskFailureLogger;
4444
import com.firebase.ui.auth.ui.User;
45-
import com.firebase.ui.auth.util.AuthInstances;
4645
import com.google.android.gms.tasks.OnCompleteListener;
4746
import com.google.android.gms.tasks.OnFailureListener;
4847
import com.google.android.gms.tasks.OnSuccessListener;
@@ -148,9 +147,9 @@ public void onSuccess(final IdpResponse idpResponse) {
148147
return;
149148
}
150149

151-
FirebaseUser currentUser = AuthInstances.getCurrentUser(getFlowParams());
150+
FirebaseUser currentUser = getAuthHelper().getCurrentUser();
152151
if (currentUser == null) {
153-
AuthInstances.getFirebaseAuth(getFlowParams())
152+
getAuthHelper().getFirebaseAuth()
154153
.signInWithCredential(newCredential)
155154
.addOnSuccessListener(new OnSuccessListener<AuthResult>() {
156155
@Override

auth/src/main/java/com/firebase/ui/auth/ui/accountlink/WelcomeBackPasswordPrompt.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@
4343
import com.firebase.ui.auth.ui.ImeHelper;
4444
import com.firebase.ui.auth.ui.TaskFailureLogger;
4545
import com.firebase.ui.auth.ui.email.RecoverPasswordActivity;
46-
import com.firebase.ui.auth.util.AuthInstances;
4746
import com.firebase.ui.auth.util.signincontainer.SaveSmartLock;
4847
import com.google.android.gms.tasks.OnFailureListener;
4948
import com.google.android.gms.tasks.OnSuccessListener;
@@ -84,8 +83,7 @@ protected void onCreate(Bundle savedInstanceState) {
8483
// Show keyboard
8584
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_VISIBLE);
8685

87-
mSaveSmartLock = AuthInstances.getSaveSmartLockInstance(
88-
this, getFlowParams());
86+
mSaveSmartLock = getAuthHelper().getSaveSmartLockInstance(this);
8987
mIdpResponse = IdpResponse.fromResultIntent(getIntent());
9088
mEmail = mIdpResponse.getEmail();
9189

@@ -145,7 +143,7 @@ private void validateAndSignIn(final String email, final String password) {
145143
}
146144
getDialogHolder().showLoadingDialog(R.string.progress_dialog_signing_in);
147145

148-
final FirebaseAuth firebaseAuth = AuthInstances.getFirebaseAuth(getFlowParams());
146+
final FirebaseAuth firebaseAuth = getAuthHelper().getFirebaseAuth();
149147

150148
// Sign in with known email and the password provided
151149
firebaseAuth.signInWithEmailAndPassword(email, password)

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import com.firebase.ui.auth.ui.ImeHelper;
2525
import com.firebase.ui.auth.ui.User;
2626
import com.firebase.ui.auth.ui.email.fieldvalidators.EmailFieldValidator;
27-
import com.firebase.ui.auth.util.AuthInstances;
2827
import com.firebase.ui.auth.util.GoogleApiHelper;
2928
import com.google.android.gms.auth.api.Auth;
3029
import com.google.android.gms.auth.api.credentials.Credential;
@@ -193,7 +192,7 @@ private void checkAccountExists(@NonNull final String email) {
193192
final String finalName = name;
194193
final Uri finalPhotoUri = photoUri;
195194

196-
FirebaseAuth auth = AuthInstances.getFirebaseAuth(getFlowParams());
195+
FirebaseAuth auth = getAuthHelper().getFirebaseAuth();
197196
ProviderUtils.fetchTopProvider(auth, email)
198197
.addOnSuccessListener(getActivity(), new OnSuccessListener<String>() {
199198
@Override

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@
3030
import com.firebase.ui.auth.ui.HelperActivityBase;
3131
import com.firebase.ui.auth.ui.TaskFailureLogger;
3232
import com.firebase.ui.auth.ui.email.fieldvalidators.EmailFieldValidator;
33-
import com.firebase.ui.auth.util.AuthInstances;
3433
import com.google.android.gms.tasks.OnFailureListener;
3534
import com.google.android.gms.tasks.OnSuccessListener;
3635
import com.google.firebase.auth.FirebaseAuthInvalidUserException;
@@ -68,7 +67,7 @@ protected void onCreate(Bundle savedInstanceState) {
6867
}
6968

7069
private void next(final String email) {
71-
AuthInstances.getFirebaseAuth(getFlowParams())
70+
getAuthHelper().getFirebaseAuth()
7271
.sendPasswordResetEmail(email)
7372
.addOnFailureListener(
7473
new TaskFailureLogger(TAG, "Error sending password reset email"))

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
import com.firebase.ui.auth.ui.email.fieldvalidators.EmailFieldValidator;
2929
import com.firebase.ui.auth.ui.email.fieldvalidators.PasswordFieldValidator;
3030
import com.firebase.ui.auth.ui.email.fieldvalidators.RequiredFieldValidator;
31-
import com.firebase.ui.auth.util.AuthInstances;
3231
import com.firebase.ui.auth.util.signincontainer.SaveSmartLock;
3332
import com.google.android.gms.tasks.OnCompleteListener;
3433
import com.google.android.gms.tasks.OnFailureListener;
@@ -166,7 +165,7 @@ public void onActivityCreated(@Nullable Bundle savedInstanceState) {
166165
}
167166

168167
mActivity = (HelperActivityBase) getActivity();
169-
mSaveSmartLock = AuthInstances.getSaveSmartLockInstance(getActivity(), getFlowParams());
168+
mSaveSmartLock = getAuthHelper().getSaveSmartLockInstance(mActivity);
170169
new PreambleHandler(getContext(), getFlowParams(), R.string.button_text_save)
171170
.setPreamble(mAgreementText);
172171
}
@@ -222,7 +221,7 @@ private void validateAndRegisterUser() {
222221
}
223222

224223
private void registerUser(final String email, final String name, final String password) {
225-
AuthInstances.getFirebaseAuth(getFlowParams())
224+
getAuthHelper().getFirebaseAuth()
226225
.createUserWithEmailAndPassword(email, password)
227226
.addOnFailureListener(new TaskFailureLogger(TAG, "Error creating user"))
228227
.addOnSuccessListener(new OnSuccessListener<AuthResult>() {
@@ -267,7 +266,7 @@ public void onFailure(@NonNull Exception e) {
267266
// Collision with existing user email, it should be very hard for
268267
// the user to even get to this error due to CheckEmailFragment.
269268

270-
FirebaseAuth auth = AuthInstances.getFirebaseAuth(getFlowParams());
269+
FirebaseAuth auth = getAuthHelper().getFirebaseAuth();
271270
ProviderUtils.fetchTopProvider(auth, email).addOnSuccessListener(
272271
getActivity(),
273272
new OnSuccessListener<String>() {

auth/src/main/java/com/firebase/ui/auth/ui/idp/AuthMethodPickerActivity.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@
4242
import com.firebase.ui.auth.ui.HelperActivityBase;
4343
import com.firebase.ui.auth.ui.TaskFailureLogger;
4444
import com.firebase.ui.auth.ui.email.RegisterEmailActivity;
45-
import com.firebase.ui.auth.util.AuthInstances;
4645
import com.firebase.ui.auth.util.signincontainer.SaveSmartLock;
4746
import com.google.firebase.auth.AuthCredential;
4847

@@ -74,7 +73,7 @@ public static Intent createIntent(Context context, FlowParameters flowParams) {
7473
protected void onCreate(Bundle savedInstanceState) {
7574
super.onCreate(savedInstanceState);
7675
setContentView(R.layout.auth_method_picker_layout);
77-
mSaveSmartLock = AuthInstances.getSaveSmartLockInstance(this, getFlowParams());
76+
mSaveSmartLock = getAuthHelper().getSaveSmartLockInstance(this);
7877

7978
populateIdpList(getFlowParams().providerInfo);
8079

@@ -149,7 +148,7 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) {
149148
@Override
150149
public void onSuccess(final IdpResponse response) {
151150
AuthCredential credential = ProviderUtils.getAuthCredential(response);
152-
AuthInstances.getFirebaseAuth(getFlowParams())
151+
getAuthHelper().getFirebaseAuth()
153152
.signInWithCredential(credential)
154153
.addOnFailureListener(
155154
new TaskFailureLogger(TAG, "Firebase sign in with credential "

auth/src/main/java/com/firebase/ui/auth/ui/idp/CredentialSignInHandler.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@
2828
import com.firebase.ui.auth.ui.User;
2929
import com.firebase.ui.auth.ui.accountlink.WelcomeBackIdpPrompt;
3030
import com.firebase.ui.auth.ui.accountlink.WelcomeBackPasswordPrompt;
31-
import com.firebase.ui.auth.util.AuthInstances;
3231
import com.firebase.ui.auth.util.signincontainer.SaveSmartLock;
3332
import com.google.android.gms.tasks.OnCompleteListener;
3433
import com.google.android.gms.tasks.OnFailureListener;
@@ -70,7 +69,7 @@ public void onComplete(@NonNull Task<AuthResult> task) {
7069
if (task.getException() instanceof FirebaseAuthUserCollisionException) {
7170
String email = mResponse.getEmail();
7271
if (email != null) {
73-
FirebaseAuth auth = AuthInstances.getFirebaseAuth(mActivity.getFlowParams());
72+
FirebaseAuth auth = mActivity.getAuthHelper().getFirebaseAuth();
7473
ProviderUtils.fetchTopProvider(auth, email)
7574
.addOnSuccessListener(new StartWelcomeBackFlow())
7675
.addOnFailureListener(new OnFailureListener() {

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
import com.firebase.ui.auth.ui.ExtraConstants;
3535
import com.firebase.ui.auth.ui.FlowParameters;
3636
import com.firebase.ui.auth.ui.HelperActivityBase;
37-
import com.firebase.ui.auth.util.AuthInstances;
3837
import com.google.android.gms.tasks.OnFailureListener;
3938
import com.google.android.gms.tasks.OnSuccessListener;
4039
import com.google.firebase.FirebaseException;
@@ -122,7 +121,7 @@ protected void onStart() {
122121
sendCode(mPhoneNumber, false);
123122
} else if (mVerificationState == VerificationState.VERIFIED) {
124123
// activity was recreated when verified dialog was displayed
125-
finish(AuthInstances.getCurrentUser(getFlowParams()));
124+
finish(getAuthHelper().getCurrentUser());
126125
}
127126
}
128127

@@ -233,7 +232,7 @@ private void sendCode(String phoneNumber, boolean forceResend) {
233232
mPhoneNumber = phoneNumber;
234233
mVerificationState = VerificationState.VERIFICATION_STARTED;
235234

236-
AuthInstances.getPhoneAuthProviderInstance().verifyPhoneNumber(
235+
getAuthHelper().getPhoneAuthProviderInstance().verifyPhoneNumber(
237236
phoneNumber,
238237
AUTO_RETRIEVAL_TIMEOUT_MILLIS,
239238
TimeUnit.MILLISECONDS,
@@ -306,7 +305,7 @@ private void showAlertDialog(@NonNull String s, DialogInterface.OnClickListener
306305
}
307306

308307
private void signingWithCreds(@NonNull PhoneAuthCredential phoneAuthCredential) {
309-
AuthInstances.getFirebaseAuth(getFlowParams())
308+
getAuthHelper().getFirebaseAuth()
310309
.signInWithCredential(phoneAuthCredential)
311310
.addOnSuccessListener(this, new OnSuccessListener<AuthResult>() {
312311
@Override
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
package com.firebase.ui.auth.util;
22

33
import android.support.annotation.Nullable;
4-
import android.support.v4.app.FragmentActivity;
54

65
import com.firebase.ui.auth.ui.FlowParameters;
6+
import com.firebase.ui.auth.ui.HelperActivityBase;
77
import com.firebase.ui.auth.util.signincontainer.SaveSmartLock;
88
import com.google.android.gms.auth.api.Auth;
99
import com.google.android.gms.auth.api.credentials.CredentialsApi;
@@ -16,29 +16,31 @@
1616
* Factory for instances of authentication classes. Should eventually be replaced by dependency
1717
* injection.
1818
*/
19-
public class AuthInstances {
19+
public class AuthHelper {
20+
private final FlowParameters mFlowParams;
2021

21-
public static FirebaseAuth getFirebaseAuth(FlowParameters parameters) {
22-
return FirebaseAuth.getInstance(FirebaseApp.getInstance(parameters.appName));
22+
public AuthHelper(FlowParameters params) {
23+
mFlowParams = params;
2324
}
2425

25-
public static CredentialsApi getCredentialsApi() {
26+
public FirebaseAuth getFirebaseAuth() {
27+
return FirebaseAuth.getInstance(FirebaseApp.getInstance(mFlowParams.appName));
28+
}
29+
30+
public CredentialsApi getCredentialsApi() {
2631
return Auth.CredentialsApi;
2732
}
2833

2934
@Nullable
30-
public static FirebaseUser getCurrentUser(FlowParameters parameters) {
31-
return getFirebaseAuth(parameters).getCurrentUser();
35+
public FirebaseUser getCurrentUser() {
36+
return getFirebaseAuth().getCurrentUser();
3237
}
3338

34-
public static SaveSmartLock getSaveSmartLockInstance(FragmentActivity activity,
35-
FlowParameters parameters) {
36-
return SaveSmartLock.getInstance(activity, parameters);
39+
public SaveSmartLock getSaveSmartLockInstance(HelperActivityBase activity) {
40+
return SaveSmartLock.getInstance(activity);
3741
}
3842

39-
public static PhoneAuthProvider getPhoneAuthProviderInstance() {
43+
public PhoneAuthProvider getPhoneAuthProviderInstance() {
4044
return PhoneAuthProvider.getInstance();
4145
}
42-
43-
4446
}

auth/src/main/java/com/firebase/ui/auth/util/signincontainer/IdpSignInContainer.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@
4040
import com.firebase.ui.auth.ui.TaskFailureLogger;
4141
import com.firebase.ui.auth.ui.User;
4242
import com.firebase.ui.auth.ui.idp.CredentialSignInHandler;
43-
import com.firebase.ui.auth.util.AuthInstances;
4443
import com.google.firebase.auth.AuthCredential;
4544
import com.google.firebase.auth.FacebookAuthProvider;
4645
import com.google.firebase.auth.GoogleAuthProvider;
@@ -86,7 +85,7 @@ public static IdpSignInContainer getInstance(FragmentActivity activity) {
8685
@Override
8786
public void onCreate(@Nullable Bundle savedInstanceState) {
8887
super.onCreate(savedInstanceState);
89-
mSaveSmartLock = AuthInstances.getSaveSmartLockInstance(getActivity(), getFlowParams());
88+
mSaveSmartLock = getAuthHelper().getSaveSmartLockInstance(mActivity);
9089

9190
User user = User.getUser(getArguments());
9291
String provider = user.getProvider();
@@ -143,7 +142,7 @@ public void onSaveInstanceState(Bundle outState) {
143142
@Override
144143
public void onSuccess(final IdpResponse response) {
145144
AuthCredential credential = ProviderUtils.getAuthCredential(response);
146-
AuthInstances.getFirebaseAuth(getFlowParams())
145+
getAuthHelper().getFirebaseAuth()
147146
.signInWithCredential(credential)
148147
.addOnFailureListener(
149148
new TaskFailureLogger(TAG, "Failure authenticating with credential " +

auth/src/main/java/com/firebase/ui/auth/util/signincontainer/SaveSmartLock.java

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import android.support.annotation.Nullable;
2525
import android.support.annotation.RestrictTo;
2626
import android.support.v4.app.Fragment;
27-
import android.support.v4.app.FragmentActivity;
2827
import android.support.v4.app.FragmentManager;
2928
import android.text.TextUtils;
3029
import android.util.Log;
@@ -33,8 +32,7 @@
3332
import com.firebase.ui.auth.IdpResponse;
3433
import com.firebase.ui.auth.R;
3534
import com.firebase.ui.auth.ResultCodes;
36-
import com.firebase.ui.auth.ui.FlowParameters;
37-
import com.firebase.ui.auth.util.AuthInstances;
35+
import com.firebase.ui.auth.ui.HelperActivityBase;
3836
import com.firebase.ui.auth.util.GoogleApiHelper;
3937
import com.firebase.ui.auth.util.PlayServicesHelper;
4038
import com.google.android.gms.auth.api.Auth;
@@ -59,14 +57,14 @@ public class SaveSmartLock extends SmartLockBase<Status> {
5957
private IdpResponse mResponse;
6058

6159
@Nullable
62-
public static SaveSmartLock getInstance(FragmentActivity activity, FlowParameters parameters) {
60+
public static SaveSmartLock getInstance(HelperActivityBase activity) {
6361
SaveSmartLock result;
6462

6563
FragmentManager fm = activity.getSupportFragmentManager();
6664
Fragment fragment = fm.findFragmentByTag(TAG);
6765
if (!(fragment instanceof SaveSmartLock)) {
6866
result = new SaveSmartLock();
69-
result.setArguments(parameters.toBundle());
67+
result.setArguments(activity.getFlowParams().toBundle());
7068
try {
7169
fm.beginTransaction().add(result, TAG).disallowAddToBackStack().commit();
7270
} catch (IllegalStateException e) {
@@ -115,7 +113,7 @@ public void onConnected(Bundle bundle) {
115113
builder.setProfilePictureUri(Uri.parse(mProfilePictureUri));
116114
}
117115

118-
AuthInstances.getCredentialsApi()
116+
getAuthHelper().getCredentialsApi()
119117
.save(mGoogleApiClient, builder.build())
120118
.setResultCallback(this);
121119
}
@@ -173,7 +171,7 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) {
173171
Credential credential = new Credential.Builder(mEmail).setPassword(mPassword)
174172
.build();
175173

176-
AuthInstances.getCredentialsApi()
174+
getAuthHelper().getCredentialsApi()
177175
.save(mGoogleApiClient, credential)
178176
.setResultCallback(this);
179177
} else {

0 commit comments

Comments
 (0)