Skip to content

Commit 2b9020b

Browse files
authored
Various bugfixes for 1.0 (#380)
* Various bugfixes for 1.0 * Review feedback and fix tests * Fix a few mistakes
1 parent 932cb3d commit 2b9020b

File tree

8 files changed

+75
-46
lines changed

8 files changed

+75
-46
lines changed

auth/src/main/AndroidManifest.xml

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,46 +13,57 @@
1313
<activity
1414
android:name="com.firebase.ui.auth.ui.email.ConfirmRecoverPasswordActivity"
1515
android:label="@string/title_confirm_recover_password_activity"
16+
android:exported="false"
1617
android:theme="@style/FirebaseUI.Dialog" />
1718
<activity
18-
android:name="com.firebase.ui.auth.ui.email.EmailHintContainerActivity"
19+
android:name=".ui.email.EmailHintContainerActivity"
1920
android:label="@string/default_toolbar_title"
21+
android:exported="false"
2022
android:theme="@style/FirebaseUI.Translucent" />
2123
<activity
22-
android:name="com.firebase.ui.auth.ui.email.RecoverPasswordActivity"
24+
android:name=".ui.email.RecoverPasswordActivity"
2325
android:label="@string/title_recover_password_activity"
26+
android:exported="false"
2427
android:theme="@style/FirebaseUI" />
2528
<activity
26-
android:name="com.firebase.ui.auth.ui.email.RegisterEmailActivity"
29+
android:name=".ui.email.RegisterEmailActivity"
2730
android:label="@string/title_register_email_activity"
31+
android:exported="false"
2832
android:theme="@style/FirebaseUI" />
2933
<activity
30-
android:name="com.firebase.ui.auth.ui.email.SignInNoPasswordActivity"
34+
android:name=".ui.email.SignInNoPasswordActivity"
3135
android:label="@string/title_sign_in_no_password_activity"
36+
android:exported="false"
3237
android:theme="@style/FirebaseUI" />
3338
<activity
34-
android:name="com.firebase.ui.auth.ui.email.SignInActivity"
39+
android:name=".ui.email.SignInActivity"
3540
android:label="@string/title_sign_in_activity"
41+
android:exported="false"
3642
android:theme="@style/FirebaseUI" />
3743
<activity
38-
android:name="com.firebase.ui.auth.ui.account_link.WelcomeBackIdpPrompt"
44+
android:name=".ui.account_link.WelcomeBackIdpPrompt"
3945
android:label="@string/title_welcome_back_idp_prompt"
46+
android:exported="false"
4047
android:theme="@style/FirebaseUI" />
4148
<activity
42-
android:name="com.firebase.ui.auth.ui.account_link.WelcomeBackPasswordPrompt"
49+
android:name=".ui.account_link.WelcomeBackPasswordPrompt"
4350
android:label="@string/title_welcome_back_password_prompt"
51+
android:exported="false"
4452
android:theme="@style/FirebaseUI" />
4553
<activity
4654
android:name=".ui.idp.AuthMethodPickerActivity"
4755
android:label="@string/default_toolbar_title"
56+
android:exported="false"
4857
android:theme="@style/FirebaseUI" />
4958
<activity
50-
android:name="com.firebase.ui.auth.ui.idp.IdpSignInContainerActivity"
59+
android:name=".ui.idp.IdpSignInContainerActivity"
5160
android:label="@string/default_toolbar_title"
61+
android:exported="false"
5262
android:theme="@style/FirebaseUI.Translucent" />
5363
<activity
5464
android:name=".ui.ChooseAccountActivity"
5565
android:label="@string/default_toolbar_title"
66+
android:exported="false"
5667
android:theme="@style/FirebaseUI.Translucent" />
5768

5869
<activity

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import android.widget.EditText;
2929
import android.widget.TextView;
3030

31+
import com.firebase.ui.auth.AuthUI;
3132
import com.firebase.ui.auth.IdpResponse;
3233
import com.firebase.ui.auth.R;
3334
import com.firebase.ui.auth.ui.ActivityHelper;
@@ -105,7 +106,7 @@ public void onClick(View view) {
105106
}
106107
}
107108

108-
private void next(String email, final String password) {
109+
private void next(final String email, final String password) {
109110
final FirebaseAuth firebaseAuth = mActivityHelper.getFirebaseAuth();
110111

111112
// Check for null or empty password
@@ -146,14 +147,15 @@ public void onSuccess(AuthResult authResult) {
146147
mActivityHelper,
147148
authResult.getUser(),
148149
password,
149-
null /* provider */);
150+
null);
150151
}
151152
});
152153
}
153154
})
154155
.addOnFailureListener(new OnFailureListener() {
155156
@Override
156157
public void onFailure(@NonNull Exception e) {
158+
mActivityHelper.dismissDialog();
157159
String error = e.getLocalizedMessage();
158160
mPasswordLayout.setError(error);
159161
}

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

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@
3030
import android.widget.ImageView;
3131
import android.widget.TextView;
3232

33+
import com.firebase.ui.auth.AuthUI;
34+
import com.firebase.ui.auth.IdpResponse;
3335
import com.firebase.ui.auth.R;
3436
import com.firebase.ui.auth.ui.ActivityHelper;
3537
import com.firebase.ui.auth.ui.AppCompatBase;
@@ -131,7 +133,7 @@ public void onClick(View view) {
131133
});
132134
}
133135

134-
private void registerUser(String email, final String name, final String password) {
136+
private void registerUser(final String email, final String name, final String password) {
135137
final FirebaseAuth firebaseAuth = mActivityHelper.getFirebaseAuth();
136138
// create the user
137139
firebaseAuth.createUserWithEmailAndPassword(email, password)
@@ -155,11 +157,12 @@ public void onComplete(@NonNull Task<Void> task) {
155157
// the account creation succeeded and we want to save
156158
// the credential to SmartLock (if enabled).
157159
SmartLock.getInstance(RegisterEmailActivity.this, TAG)
158-
.saveCredentialsOrFinish(RegisterEmailActivity.this,
159-
mActivityHelper,
160-
firebaseUser,
161-
password,
162-
null /* provider */);
160+
.saveCredentialsOrFinish(
161+
RegisterEmailActivity.this,
162+
mActivityHelper,
163+
firebaseUser,
164+
password,
165+
null);
163166
}
164167
});
165168
}

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@
2626
import android.widget.ImageView;
2727
import android.widget.TextView;
2828

29+
import com.firebase.ui.auth.AuthUI;
30+
import com.firebase.ui.auth.IdpResponse;
2931
import com.firebase.ui.auth.R;
3032
import com.firebase.ui.auth.ui.ActivityHelper;
3133
import com.firebase.ui.auth.ui.AppCompatBase;
@@ -89,7 +91,7 @@ protected void onCreate(Bundle savedInstanceState) {
8991
recoveryButton.setOnClickListener(this);
9092
}
9193

92-
private void signIn(String email, final String password) {
94+
private void signIn(final String email, final String password) {
9395
mActivityHelper.getFirebaseAuth()
9496
.signInWithEmailAndPassword(email, password)
9597
.addOnFailureListener(
@@ -103,7 +105,7 @@ public void onSuccess(AuthResult authResult) {
103105
mActivityHelper,
104106
authResult.getUser(),
105107
password,
106-
null /* provider */);
108+
null);
107109
}
108110
})
109111
.addOnFailureListener(new OnFailureListener() {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ public void onComplete(@NonNull Task<AuthResult> task) {
6565
mActivityHelper,
6666
firebaseUser,
6767
null /* password */,
68-
mResponse.getProviderType());
68+
mResponse);
6969
} else {
7070
if (task.getException() instanceof FirebaseAuthUserCollisionException) {
7171
final String email = mResponse.getEmail();

auth/src/main/java/com/firebase/ui/auth/util/SmartLock.java

Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,11 @@
2525
import android.support.v4.app.FragmentManager;
2626
import android.support.v4.app.FragmentTransaction;
2727
import android.util.Log;
28-
2928
import com.firebase.ui.auth.BuildConfig;
29+
import com.firebase.ui.auth.IdpResponse;
3030
import com.firebase.ui.auth.ui.ActivityHelper;
3131
import com.firebase.ui.auth.ui.AppCompatBase;
32+
import com.firebase.ui.auth.ui.ExtraConstants;
3233
import com.google.android.gms.auth.api.Auth;
3334
import com.google.android.gms.auth.api.credentials.Credential;
3435
import com.google.android.gms.auth.api.credentials.IdentityProviders;
@@ -42,8 +43,6 @@
4243
import com.google.firebase.auth.GoogleAuthProvider;
4344
import com.google.firebase.auth.TwitterAuthProvider;
4445

45-
import static android.app.Activity.RESULT_CANCELED;
46-
import static android.app.Activity.RESULT_FIRST_USER;
4746
import static android.app.Activity.RESULT_OK;
4847

4948
public class SmartLock extends Fragment
@@ -61,13 +60,14 @@ public class SmartLock extends Fragment
6160
private String mPassword;
6261
private String mProvider;
6362
private String mProfilePictureUri;
63+
private IdpResponse mResponse;
6464
private GoogleApiClient mCredentialsApiClient;
6565

6666
@Override
6767
public void onConnected(@Nullable Bundle bundle) {
6868
if (mEmail == null) {
6969
Log.e(TAG, "Unable to save null credential!");
70-
finish(RESULT_CANCELED);
70+
finish();
7171
return;
7272
}
7373

@@ -90,7 +90,7 @@ public void onConnected(@Nullable Bundle bundle) {
9090
break;
9191
default:
9292
Log.e(TAG, "Unable to save null credential!");
93-
finish(RESULT_CANCELED);
93+
finish();
9494
return;
9595
}
9696

@@ -140,15 +140,15 @@ public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
140140
null);
141141
} catch (IntentSender.SendIntentException e) {
142142
e.printStackTrace();
143-
finish(RESULT_CANCELED);
143+
finish();
144144
}
145145
}
146146

147147

148148
@Override
149149
public void onResult(@NonNull Status status) {
150150
if (status.isSuccess()) {
151-
finish(RESULT_OK);
151+
finish();
152152
} else {
153153
if (status.hasResolution()) {
154154
// Try to resolve the save request. This will prompt the user if
@@ -164,10 +164,10 @@ public void onResult(@NonNull Status status) {
164164
} catch (IntentSender.SendIntentException e) {
165165
// Could not resolve the request
166166
Log.e(TAG, "STATUS: Failed to send resolution.", e);
167-
finish(RESULT_CANCELED);
167+
finish();
168168
}
169169
} else {
170-
finish(RESULT_CANCELED);
170+
finish();
171171
}
172172
}
173173
}
@@ -181,10 +181,10 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) {
181181
if (BuildConfig.DEBUG) {
182182
Log.d(TAG, "SAVE: OK");
183183
}
184-
finish(RESULT_OK);
184+
finish();
185185
} else {
186186
Log.e(TAG, "SAVE: Canceled by user");
187-
finish(RESULT_FIRST_USER);
187+
finish();
188188
}
189189
} else if (requestCode == RC_UPDATE_SERVICE) {
190190
if (resultCode == RESULT_OK) {
@@ -195,13 +195,14 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) {
195195
.setResultCallback(this);
196196
} else {
197197
Log.e(TAG, "SAVE: Canceled by user");
198-
finish(RESULT_FIRST_USER);
198+
finish();
199199
}
200200
}
201201
}
202202

203-
private void finish(int resultCode) {
204-
mActivity.finish(RESULT_OK, mActivity.getIntent());
203+
private void finish() {
204+
Intent resultIntent = new Intent().putExtra(ExtraConstants.EXTRA_IDP_RESPONSE, mResponse);
205+
mActivity.finish(RESULT_OK, resultIntent);
205206
}
206207

207208
/**
@@ -217,32 +218,37 @@ public void saveCredentialsOrFinish(AppCompatBase activity,
217218
ActivityHelper helper,
218219
FirebaseUser firebaseUser,
219220
@Nullable String password,
220-
@Nullable String provider) {
221+
@Nullable IdpResponse response) {
221222
mActivity = activity;
222223
mActivityHelper = helper;
223224
mName = firebaseUser.getDisplayName();
224225
mEmail = firebaseUser.getEmail();
225226
mPassword = password;
226-
mProvider = provider;
227+
mResponse = response;
228+
if (response != null) {
229+
mProvider = response.getProviderType();
230+
} else {
231+
mProvider = null;
232+
}
227233
mProfilePictureUri = firebaseUser.getPhotoUrl() != null ? firebaseUser.getPhotoUrl()
228234
.toString() : null;
229235

230236
// If SmartLock is disabled, finish the Activity
231237
if (!helper.getFlowParams().smartLockEnabled) {
232-
finish(RESULT_CANCELED);
238+
finish();
233239
return;
234240
}
235241

236242
// If Play Services is not available, finish the Activity
237243
if (!PlayServicesHelper.getInstance(activity).isPlayServicesAvailable()) {
238-
finish(RESULT_CANCELED);
244+
finish();
239245
return;
240246
}
241247

242248
if (!FirebaseAuthWrapperFactory
243249
.getFirebaseAuthWrapper(helper.getFlowParams().appName)
244250
.isPlayServicesAvailable(activity)) {
245-
finish(RESULT_CANCELED);
251+
finish();
246252
return;
247253
}
248254

auth/src/test/java/com/firebase/ui/auth/test_helpers/SmartLockResult.java

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import android.support.annotation.Nullable;
44
import android.support.v4.app.FragmentActivity;
55

6+
import com.firebase.ui.auth.IdpResponse;
67
import com.firebase.ui.auth.ui.ActivityHelper;
78
import com.firebase.ui.auth.ui.AppCompatBase;
89
import com.firebase.ui.auth.util.SmartLock;
@@ -26,13 +27,17 @@ public void saveCredentialsOrFinish(AppCompatBase activity,
2627
ActivityHelper helper,
2728
FirebaseUser firebaseUser,
2829
@Nullable String password,
29-
@Nullable String provider) {
30-
assertEquals(firebaseUser.getEmail(), TestConstants.EMAIL);
31-
assertEquals(firebaseUser.getDisplayName(), TestConstants.NAME);
32-
assertEquals(firebaseUser.getPhotoUrl() != null
33-
? firebaseUser.getPhotoUrl().toString() : null, TestConstants.PHOTO_URL);
34-
assertEquals(password, mPassword);
35-
assertEquals(provider, mProvider);
30+
@Nullable IdpResponse idpResponse) {
31+
assertEquals(TestConstants.EMAIL, firebaseUser.getEmail());
32+
assertEquals(TestConstants.NAME, firebaseUser.getDisplayName());
33+
assertEquals(TestConstants.PHOTO_URL, firebaseUser.getPhotoUrl() != null
34+
? firebaseUser.getPhotoUrl().toString() : null);
35+
assertEquals(mPassword, password);
36+
String provider = null;
37+
if (idpResponse != null) {
38+
provider = idpResponse.getProviderType();
39+
}
40+
assertEquals(mProvider, provider);
3641
mCountDownLatch.countDown();
3742
}
3843

auth/src/test/java/com/firebase/ui/auth/ui/idp/CredentialSignInHandlerTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ public void testSignInSucceeded() {
117117
mockActivityHelper,
118118
mockFirebaseUser,
119119
null,
120-
GoogleAuthProvider.PROVIDER_ID);
120+
idpResponse);
121121
}
122122

123123
@Test

0 commit comments

Comments
 (0)