Skip to content

Commit 16156d9

Browse files
author
Aaron Mandle
committed
Refactor the AuthMethodPicker and IDPSignInContainer to not use a controller and clean up some of the activity finishing code.
Change-Id: I2678417a214890b0320fd5dfa330b7dd3c4b5b08
1 parent 8df2f11 commit 16156d9

File tree

11 files changed

+188
-259
lines changed

11 files changed

+188
-259
lines changed

auth/src/main/java/com/firebase/ui/auth/choreographer/idp/IDPController.java

Lines changed: 0 additions & 170 deletions
This file was deleted.

auth/src/main/java/com/firebase/ui/auth/choreographer/idp/provider/FacebookProvider.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,6 @@
1919
import android.content.Intent;
2020
import android.os.Bundle;
2121
import android.util.Log;
22-
import android.view.View;
23-
import android.view.ViewGroup;
24-
import android.widget.Button;
2522

2623
import com.facebook.CallbackManager;
2724
import com.facebook.FacebookCallback;

auth/src/main/java/com/firebase/ui/auth/choreographer/idp/provider/GoogleProvider.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@
2020
import android.os.Bundle;
2121
import android.view.View;
2222
import android.view.View.OnClickListener;
23-
import android.view.ViewGroup;
24-
import android.widget.Button;
2523

2624
import com.firebase.ui.auth.R;
2725
import com.google.android.gms.auth.api.Auth;
@@ -30,7 +28,6 @@
3028
import com.google.android.gms.auth.api.signin.GoogleSignInResult;
3129
import com.google.android.gms.common.api.GoogleApiClient;
3230
import com.google.firebase.auth.AuthCredential;
33-
import com.google.firebase.auth.FacebookAuthProvider;
3431
import com.google.firebase.auth.GoogleAuthProvider;
3532

3633
public class GoogleProvider implements IDPProvider, OnClickListener {

auth/src/main/java/com/firebase/ui/auth/choreographer/idp/provider/IDPProvider.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,6 @@
1818
import android.content.Context;
1919
import android.content.Intent;
2020
import android.os.Bundle;
21-
import android.view.View;
22-
import android.view.ViewGroup;
2321

2422
public interface IDPProvider {
2523

auth/src/main/java/com/firebase/ui/auth/ui/account_link/AccountLinkInitActivity.java

Lines changed: 48 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,18 @@
3030
import com.google.firebase.auth.FirebaseAuth;
3131
import com.google.firebase.auth.ProviderQueryResult;
3232

33+
import java.util.Arrays;
3334
import java.util.List;
3435

3536
public class AccountLinkInitActivity extends NoControllerBaseActivity {
36-
FirebaseAuthWrapper mApiWrapper;
37+
protected FirebaseAuthWrapper mApiWrapper;
38+
private static final int RC_SAVE_CREDENTIALS = 3;
39+
private static final int RC_WELCOME_BACK_IDP_PROMPT = 4;
40+
private static final int RC_WELCOME_BACK_PASSWORD_PROMPT = 5;
41+
private static final List<Integer> REQUEST_CODES = Arrays.asList(
42+
RC_SAVE_CREDENTIALS,
43+
RC_WELCOME_BACK_IDP_PROMPT,
44+
RC_WELCOME_BACK_PASSWORD_PROMPT);
3745

3846
@Override
3947
protected void onCreate(Bundle savedInstanceState) {
@@ -54,9 +62,15 @@ public static Intent createStartIntent(Context context, String appName, String i
5462
.putExtra(ControllerConstants.EXTRA_PROVIDER, provider);
5563
}
5664

65+
public void onActivityResult(int requestCode, int resultCode, Intent data) {
66+
if (REQUEST_CODES.contains(requestCode)) {
67+
finish(resultCode, data);
68+
}
69+
}
70+
5771
void next(final String email, final String password, final String provider) {
5872
if (email == null) {
59-
finish();
73+
finish(RESULT_OK, new Intent());
6074
return;
6175
}
6276
FirebaseAuth firebaseAuth = getFirebaseAuth();
@@ -69,44 +83,56 @@ public void onComplete(@NonNull Task<ProviderQueryResult> task) {
6983
List<String> providers = task.getResult().getProviders();
7084
if (providers.size() == 0) {
7185
// new account for this email
72-
startActivity(SaveCredentialsActivity.createIntent(
86+
startActivityForResult(SaveCredentialsActivity.createIntent(
7387
getApplicationContext(),
7488
null,
7589
email,
7690
password,
7791
provider,
7892
null,
79-
mAppName));
80-
finish();
93+
mAppName), RC_SAVE_CREDENTIALS);
8194
} else if (providers.size() == 1) {
8295
if (providers.get(0).equals(provider)) {
8396
// existing account but has this IDP linked
84-
startActivity(
85-
new Intent(getApplicationContext(), SaveCredentialsActivity.class)
86-
.putExtra(ControllerConstants.EXTRA_EMAIL, email)
87-
.putExtra(ControllerConstants.EXTRA_PROVIDER, provider)
88-
.putExtra(ControllerConstants.EXTRA_PASSWORD, password));
89-
finish();
97+
startActivityForResult(
98+
SaveCredentialsActivity.createIntent(
99+
AccountLinkInitActivity.this,
100+
null,
101+
email,
102+
password,
103+
provider,
104+
null,
105+
mAppName),
106+
RC_SAVE_CREDENTIALS);
90107
} else {
91108
if (providers.get(0).equals(EmailAuthProvider.PROVIDER_ID)) {
92-
startActivity(
93-
new Intent(getApplicationContext(), WelcomeBackPasswordPrompt.class)
94-
.putExtra(ControllerConstants.EXTRA_EMAIL, email)
95-
.putExtra(ControllerConstants.EXTRA_APP_NAME, mAppName));
96-
finish();
109+
startActivityForResult(
110+
WelcomeBackPasswordPrompt.createIntent(
111+
getApplicationContext(), email, mAppName),
112+
RC_WELCOME_BACK_PASSWORD_PROMPT);
97113
} else {
98114
// existing account but has a different IDP linked
99-
startActivity(
100-
new Intent(getApplicationContext(), WelcomeBackIDPPrompt.class)
101-
.putExtra(ControllerConstants.EXTRA_EMAIL, email)
102-
.putExtra(ControllerConstants.EXTRA_PROVIDER, provider)
115+
startActivityForResult(
116+
WelcomeBackIDPPrompt.createIntent(
117+
getApplicationContext(),
118+
provider,
119+
mAppName,
120+
email
121+
),
122+
RC_WELCOME_BACK_IDP_PROMPT
103123
);
104124
}
105125
}
106126
} else {
107127
// more than one providers
108-
startActivity(new Intent(getApplicationContext(), WelcomeBackIDPPrompt.class)
109-
.putExtra(ControllerConstants.EXTRA_EMAIL, email));
128+
startActivityForResult(
129+
WelcomeBackIDPPrompt.createIntent(
130+
getApplicationContext(),
131+
provider,
132+
mAppName,
133+
email
134+
),
135+
RC_WELCOME_BACK_IDP_PROMPT);
110136
finish();
111137
}
112138
}

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
package com.firebase.ui.auth.ui.account_link;
1616

17+
import android.content.Context;
1718
import android.content.Intent;
1819
import android.graphics.Typeface;
1920
import android.os.Bundle;
@@ -72,6 +73,12 @@ protected void onCreate(Bundle savedInstanceState) {
7273
troubleSigningIn.setOnClickListener(this);
7374
}
7475

76+
public static Intent createIntent(Context context, String email, String appName) {
77+
return new Intent(context, WelcomeBackPasswordPrompt.class)
78+
.putExtra(ControllerConstants.EXTRA_EMAIL, email)
79+
.putExtra(ControllerConstants.EXTRA_APP_NAME, appName);
80+
}
81+
7582
@Override
7683
public void onClick(View view) {
7784
int id = view.getId();

0 commit comments

Comments
 (0)