Skip to content

Commit baab107

Browse files
SUPERCILEXamandle
authored andcommitted
Refactor SaveCredentialsActivity (#343)
* temporary: saving to work on another computer won't compile * Code compiles * Cleanup * Cleanup * Cleanup * Update SmartLock.java with new fragment logic * Fix bug in SmartLock.java * Cleanup * Cleanup * Fix broken tests * Cleanup * Cleanup * Cleanup * Bug fix * Cleanup * Add interface to SmartLock * Merge dev * working on tests * working on tests * Revert interface, working on fixing tests * Fix tests * Merge dev * Fix merge mistakes * Cleanup * Final cleanup and fix tests * Fix test * Fix test
1 parent fd4de5a commit baab107

19 files changed

+352
-403
lines changed

auth/src/main/AndroidManifest.xml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,6 @@
3434
android:name="com.firebase.ui.auth.ui.email.SignInActivity"
3535
android:label="@string/title_sign_in_activity"
3636
android:theme="@style/FirebaseUI" />
37-
<activity
38-
android:name="com.firebase.ui.auth.ui.account_link.SaveCredentialsActivity"
39-
android:label="@string/default_toolbar_title"
40-
android:theme="@style/FirebaseUI.Translucent" />
4137
<activity
4238
android:name="com.firebase.ui.auth.ui.account_link.WelcomeBackIdpPrompt"
4339
android:label="@string/title_welcome_back_idp_prompt"

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
import com.firebase.ui.auth.util.CredentialsApiHelper;
3333
import com.firebase.ui.auth.util.GoogleApiClientTaskHelper;
3434
import com.firebase.ui.auth.util.Preconditions;
35-
import com.firebase.ui.auth.util.SmartlockUtil;
35+
import com.firebase.ui.auth.util.SmartLockUtil;
3636
import com.google.android.gms.auth.api.Auth;
3737
import com.google.android.gms.auth.api.credentials.Credential;
3838
import com.google.android.gms.auth.api.signin.GoogleSignInOptions;
@@ -343,7 +343,7 @@ public Task<Void> delete(@NonNull Activity activity) {
343343
CredentialsApiHelper credentialHelper = CredentialsApiHelper.getInstance(gacHelper);
344344

345345
// Get all SmartLock credentials associated with the user
346-
List<Credential> credentials = SmartlockUtil.credentialsFromFirebaseUser(firebaseUser);
346+
List<Credential> credentials = SmartLockUtil.credentialsFromFirebaseUser(firebaseUser);
347347

348348
// For each Credential in the list, create a task to delete it.
349349
List<Task<?>> credentialTasks = new ArrayList<>();

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,9 @@
1616

1717
import android.content.Intent;
1818
import android.os.Bundle;
19+
import android.support.v7.app.AppCompatActivity;
1920

20-
public class AppCompatBase extends android.support.v7.app.AppCompatActivity {
21+
public class AppCompatBase extends AppCompatActivity {
2122
protected ActivityHelper mActivityHelper;
2223

2324
@Override
@@ -36,5 +37,4 @@ protected void onDestroy() {
3637
public void finish(int resultCode, Intent intent) {
3738
mActivityHelper.finish(resultCode, intent);
3839
}
39-
4040
}

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

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,6 @@ private boolean hasNetworkConnection() {
141141
public void onCredentialsApiConnected(
142142
CredentialsAPI credentialsApi,
143143
ActivityHelper activityHelper) {
144-
145144
String email = credentialsApi.getEmailFromCredential();
146145
String password = credentialsApi.getPasswordFromCredential();
147146
String accountType = credentialsApi.getAccountTypeFromCredential();
@@ -249,7 +248,6 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) {
249248
finish(resultCode, new Intent());
250249
}
251250
break;
252-
253251
}
254252
}
255253

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

Lines changed: 10 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
import com.firebase.ui.auth.ui.TaskFailureLogger;
3939
import com.firebase.ui.auth.ui.email.PasswordToggler;
4040
import com.firebase.ui.auth.ui.email.RecoverPasswordActivity;
41-
import com.firebase.ui.auth.util.SmartlockUtil;
41+
import com.firebase.ui.auth.util.SmartLock;
4242
import com.google.android.gms.tasks.OnFailureListener;
4343
import com.google.android.gms.tasks.OnSuccessListener;
4444
import com.google.firebase.auth.AuthCredential;
@@ -50,8 +50,6 @@
5050
* the password before initiating a link.
5151
*/
5252
public class WelcomeBackPasswordPrompt extends AppCompatBase implements View.OnClickListener {
53-
54-
private static final int RC_CREDENTIAL_SAVE = 3;
5553
private static final String TAG = "WelcomeBackPassword";
5654
private static final StyleSpan BOLD = new StyleSpan(Typeface.BOLD);
5755

@@ -107,14 +105,6 @@ public void onClick(View view) {
107105
}
108106
}
109107

110-
@Override
111-
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
112-
super.onActivityResult(requestCode, resultCode, data);
113-
if (requestCode == RC_CREDENTIAL_SAVE) {
114-
finish(RESULT_OK, new Intent());
115-
}
116-
}
117-
118108
private void next(String email, final String password) {
119109
final FirebaseAuth firebaseAuth = mActivityHelper.getFirebaseAuth();
120110

@@ -148,14 +138,15 @@ public void onSuccess(AuthResult authResult) {
148138
new OnSuccessListener<AuthResult>() {
149139
@Override
150140
public void onSuccess(AuthResult authResult) {
151-
mActivityHelper.dismissDialog();
152-
SmartlockUtil.saveCredentialOrFinish(
153-
WelcomeBackPasswordPrompt.this,
154-
RC_CREDENTIAL_SAVE,
155-
mActivityHelper.getFlowParams(),
156-
authResult.getUser(),
157-
password,
158-
null /* provider */);
141+
SmartLock
142+
.getInstance(WelcomeBackPasswordPrompt.this,
143+
TAG)
144+
.saveCredentialsOrFinish(
145+
WelcomeBackPasswordPrompt.this,
146+
mActivityHelper,
147+
authResult.getUser(),
148+
password,
149+
null /* provider */);
159150
}
160151
});
161152
}

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

Lines changed: 9 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
import com.firebase.ui.auth.ui.email.field_validators.EmailFieldValidator;
4040
import com.firebase.ui.auth.ui.email.field_validators.PasswordFieldValidator;
4141
import com.firebase.ui.auth.ui.email.field_validators.RequiredFieldValidator;
42-
import com.firebase.ui.auth.util.SmartlockUtil;
42+
import com.firebase.ui.auth.util.SmartLock;
4343
import com.google.android.gms.tasks.OnCompleteListener;
4444
import com.google.android.gms.tasks.OnFailureListener;
4545
import com.google.android.gms.tasks.OnSuccessListener;
@@ -56,8 +56,6 @@
5656
* Activity displaying a form to create a new email/password account.
5757
*/
5858
public class RegisterEmailActivity extends AppCompatBase implements View.OnClickListener {
59-
60-
private static final int RC_SAVE_CREDENTIAL = 3;
6159
private static final String TAG = "RegisterEmailActivity";
6260

6361
private EditText mEmailEditText;
@@ -97,10 +95,8 @@ protected void onCreate(Bundle savedInstanceState) {
9795
mPasswordFieldValidator = new PasswordFieldValidator((TextInputLayout)
9896
findViewById(R.id.password_layout),
9997
getResources().getInteger(R.integer.min_password_length));
100-
mNameValidator = new RequiredFieldValidator((TextInputLayout)
101-
findViewById(R.id.name_layout));
102-
mEmailFieldValidator = new EmailFieldValidator((TextInputLayout) findViewById(R.id
103-
.email_layout));
98+
mNameValidator = new RequiredFieldValidator((TextInputLayout) findViewById(R.id.name_layout));
99+
mEmailFieldValidator = new EmailFieldValidator((TextInputLayout) findViewById(R.id.email_layout));
104100

105101
if (email != null) {
106102
mEmailEditText.setText(email);
@@ -155,18 +151,15 @@ public void onSuccess(AuthResult authResult) {
155151
.addOnCompleteListener(new OnCompleteListener<Void>() {
156152
@Override
157153
public void onComplete(@NonNull Task<Void> task) {
158-
mActivityHelper.dismissDialog();
159-
160154
// This executes even if the name change fails, since
161155
// the account creation succeeded and we want to save
162156
// the credential to SmartLock (if enabled).
163-
SmartlockUtil.saveCredentialOrFinish(
164-
RegisterEmailActivity.this,
165-
RC_SAVE_CREDENTIAL,
166-
mActivityHelper.getFlowParams(),
167-
firebaseUser,
168-
password,
169-
null /* provider */);
157+
SmartLock.getInstance(RegisterEmailActivity.this, TAG)
158+
.saveCredentialsOrFinish(RegisterEmailActivity.this,
159+
mActivityHelper,
160+
firebaseUser,
161+
password,
162+
null /* provider */);
170163
}
171164
});
172165
}
@@ -199,14 +192,6 @@ public void onFailure(@NonNull Exception e) {
199192
});
200193
}
201194

202-
@Override
203-
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
204-
super.onActivityResult(requestCode, resultCode, data);
205-
if (requestCode == RC_SAVE_CREDENTIAL) {
206-
finish(RESULT_OK, new Intent());
207-
}
208-
}
209-
210195
@Override
211196
public void onClick(View view) {
212197
if (view.getId() == R.id.button_create) {

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

Lines changed: 13 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
import com.firebase.ui.auth.ui.TaskFailureLogger;
3535
import com.firebase.ui.auth.ui.email.field_validators.EmailFieldValidator;
3636
import com.firebase.ui.auth.ui.email.field_validators.RequiredFieldValidator;
37-
import com.firebase.ui.auth.util.SmartlockUtil;
37+
import com.firebase.ui.auth.util.SmartLock;
3838
import com.google.android.gms.tasks.OnFailureListener;
3939
import com.google.android.gms.tasks.OnSuccessListener;
4040
import com.google.firebase.auth.AuthResult;
@@ -44,7 +44,6 @@
4444
*/
4545
public class SignInActivity extends AppCompatBase implements View.OnClickListener {
4646
private static final String TAG = "SignInActivity";
47-
private static final int RC_CREDENTIAL_SAVE = 101;
4847

4948
private EditText mEmailEditText;
5049
private EditText mPasswordEditText;
@@ -67,7 +66,8 @@ protected void onCreate(Bundle savedInstanceState) {
6766
getResources().getValue(R.dimen.slightly_visible_icon, slightlyVisibleIcon, true);
6867

6968
mPasswordEditText = (EditText) findViewById(R.id.password);
70-
((TextInputLayout) findViewById(R.id.password_layout)).setPasswordVisibilityToggleEnabled(false);
69+
((TextInputLayout) findViewById(R.id.password_layout)).setPasswordVisibilityToggleEnabled(
70+
false);
7171
ImageView togglePasswordImage = (ImageView) findViewById(R.id.toggle_visibility);
7272

7373
mPasswordEditText.setOnFocusChangeListener(new ImageFocusTransparencyChanger(
@@ -77,24 +77,16 @@ protected void onCreate(Bundle savedInstanceState) {
7777

7878
togglePasswordImage.setOnClickListener(new PasswordToggler(mPasswordEditText));
7979

80-
mEmailValidator = new EmailFieldValidator((TextInputLayout) findViewById(R.id
81-
.email_layout));
82-
mPasswordValidator = new RequiredFieldValidator((TextInputLayout) findViewById(R.id
83-
.password_layout));
80+
mEmailValidator = new EmailFieldValidator((TextInputLayout) findViewById(R.id.email_layout));
81+
mPasswordValidator = new RequiredFieldValidator((TextInputLayout) findViewById(R.id.password_layout));
8482
Button signInButton = (Button) findViewById(R.id.button_done);
85-
TextView recoveryButton = (TextView) findViewById(R.id.trouble_signing_in);
83+
TextView recoveryButton = (TextView) findViewById(R.id.trouble_signing_in);
8684

8785
if (email != null) {
8886
mEmailEditText.setText(email);
8987
}
9088
signInButton.setOnClickListener(this);
9189
recoveryButton.setOnClickListener(this);
92-
93-
}
94-
95-
@Override
96-
public void onBackPressed () {
97-
super.onBackPressed();
9890
}
9991

10092
private void signIn(String email, final String password) {
@@ -105,16 +97,13 @@ private void signIn(String email, final String password) {
10597
.addOnSuccessListener(new OnSuccessListener<AuthResult>() {
10698
@Override
10799
public void onSuccess(AuthResult authResult) {
108-
mActivityHelper.dismissDialog();
109-
110100
// Save credential in SmartLock (if enabled)
111-
SmartlockUtil.saveCredentialOrFinish(
112-
SignInActivity.this,
113-
RC_CREDENTIAL_SAVE,
114-
mActivityHelper.getFlowParams(),
115-
authResult.getUser(),
116-
password,
117-
null /* provider */);
101+
SmartLock.getInstance(SignInActivity.this, TAG)
102+
.saveCredentialsOrFinish(SignInActivity.this,
103+
mActivityHelper,
104+
authResult.getUser(),
105+
password,
106+
null /* provider */);
118107
}
119108
})
120109
.addOnFailureListener(new OnFailureListener() {
@@ -131,32 +120,20 @@ public void onFailure(@NonNull Exception e) {
131120
});
132121
}
133122

134-
@Override
135-
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
136-
super.onActivityResult(requestCode, resultCode, data);
137-
if (requestCode == RC_CREDENTIAL_SAVE) {
138-
finish(RESULT_OK, new Intent());
139-
}
140-
}
141-
142123
@Override
143124
public void onClick(View view) {
144125
if (view.getId() == R.id.button_done) {
145126
boolean emailValid = mEmailValidator.validate(mEmailEditText.getText());
146127
boolean passwordValid = mPasswordValidator.validate(mPasswordEditText.getText());
147-
if (!emailValid || !passwordValid) {
148-
return;
149-
} else {
128+
if (emailValid && passwordValid) {
150129
mActivityHelper.showLoadingDialog(R.string.progress_dialog_signing_in);
151130
signIn(mEmailEditText.getText().toString(), mPasswordEditText.getText().toString());
152-
return;
153131
}
154132
} else if (view.getId() == R.id.trouble_signing_in) {
155133
startActivity(RecoverPasswordActivity.createIntent(
156134
this,
157135
mActivityHelper.getFlowParams(),
158136
mEmailEditText.getText().toString()));
159-
return;
160137
}
161138
}
162139

0 commit comments

Comments
 (0)