Skip to content

Commit 42f22cd

Browse files
SUPERCILEXsamtstern
authored andcommitted
Update dependencies (#1203)
1 parent 60944ec commit 42f22cd

File tree

11 files changed

+93
-80
lines changed

11 files changed

+93
-80
lines changed

app/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ dependencies {
5858
// They are used to make some aspects of the demo app implementation simpler for
5959
// demonstrative purposes, and you may find them useful in your own apps; YMMV.
6060
implementation "android.arch.lifecycle:runtime:$architectureVersion"
61-
implementation 'pub.devrel:easypermissions:1.1.3'
61+
implementation 'pub.devrel:easypermissions:1.2.0'
6262
implementation 'com.jakewharton:butterknife:8.8.1'
6363
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
6464
debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.5.4'

app/src/main/java/com/firebase/uidemo/auth/SignedInActivity.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
import com.google.firebase.auth.GoogleAuthProvider;
4545
import com.google.firebase.auth.PhoneAuthProvider;
4646
import com.google.firebase.auth.TwitterAuthProvider;
47+
import com.google.firebase.auth.UserInfo;
4748

4849
import java.util.ArrayList;
4950
import java.util.List;
@@ -152,11 +153,11 @@ private void populateProfile() {
152153
TextUtils.isEmpty(user.getDisplayName()) ? "No display name" : user.getDisplayName());
153154

154155
List<String> providers = new ArrayList<>();
155-
if (user.getProviders() == null || user.getProviders().isEmpty()) {
156+
if (user.getProviderData().isEmpty()) {
156157
providers.add("Anonymous");
157158
} else {
158-
for (String provider : user.getProviders()) {
159-
switch (provider) {
159+
for (UserInfo info : user.getProviderData()) {
160+
switch (info.getProviderId()) {
160161
case GoogleAuthProvider.PROVIDER_ID:
161162
providers.add(getString(R.string.providers_google));
162163
break;
@@ -173,7 +174,8 @@ private void populateProfile() {
173174
providers.add(getString(R.string.providers_phone));
174175
break;
175176
default:
176-
throw new IllegalStateException("Unknown provider: " + provider);
177+
throw new IllegalStateException(
178+
"Unknown provider: " + info.getProviderId());
177179
}
178180
}
179181
}

auth/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ android {
3636
dependencies {
3737
implementation "com.android.support:design:$supportLibraryVersion"
3838
implementation "com.android.support:customtabs:$supportLibraryVersion"
39-
implementation 'com.android.support.constraint:constraint-layout:1.1.0-beta5'
39+
implementation 'com.android.support.constraint:constraint-layout:1.1.0-beta6'
4040

4141
implementation "android.arch.lifecycle:extensions:$architectureVersion"
4242
annotationProcessor "android.arch.lifecycle:compiler:$architectureVersion"

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

Lines changed: 23 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import android.arch.lifecycle.ViewModelProviders;
44
import android.content.Context;
5-
import android.content.DialogInterface;
65
import android.content.Intent;
76
import android.net.ConnectivityManager;
87
import android.os.Bundle;
@@ -14,23 +13,21 @@
1413
import com.firebase.ui.auth.data.model.UserCancellationException;
1514
import com.firebase.ui.auth.data.remote.SignInKickstarter;
1615
import com.firebase.ui.auth.ui.HelperActivityBase;
17-
import com.firebase.ui.auth.util.PlayServicesHelper;
18-
import com.firebase.ui.auth.viewmodel.RequestCodes;
1916
import com.firebase.ui.auth.viewmodel.ResourceObserver;
17+
import com.google.android.gms.common.GoogleApiAvailability;
18+
import com.google.android.gms.tasks.OnFailureListener;
19+
import com.google.android.gms.tasks.OnSuccessListener;
2020

2121
@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
2222
public class KickoffActivity extends HelperActivityBase {
23-
private static final String IS_WAITING_FOR_PLAY_SERVICES = "is_waiting_for_play_services";
24-
2523
private SignInKickstarter mKickstarter;
26-
private boolean mIsWaitingForPlayServices = false;
2724

2825
public static Intent createIntent(Context context, FlowParameters flowParams) {
2926
return createBaseIntent(context, KickoffActivity.class, flowParams);
3027
}
3128

3229
@Override
33-
protected void onCreate(@Nullable Bundle savedInstanceState) {
30+
protected void onCreate(@Nullable final Bundle savedInstanceState) {
3431
super.onCreate(savedInstanceState);
3532
mKickstarter = ViewModelProviders.of(this).get(SignInKickstarter.class);
3633
mKickstarter.init(getFlowParams());
@@ -51,55 +48,34 @@ protected void onFailure(@NonNull Exception e) {
5148
}
5249
});
5350

54-
if (savedInstanceState == null || savedInstanceState.getBoolean(IS_WAITING_FOR_PLAY_SERVICES)) {
55-
init();
56-
}
57-
}
58-
59-
private void init() {
60-
if (isOffline()) {
61-
finish(RESULT_CANCELED, IdpResponse.getErrorIntent(
62-
new FirebaseUiException(ErrorCodes.NO_NETWORK)));
63-
return;
64-
}
51+
GoogleApiAvailability.getInstance()
52+
.makeGooglePlayServicesAvailable(this)
53+
.addOnSuccessListener(this, new OnSuccessListener<Void>() {
54+
@Override
55+
public void onSuccess(Void aVoid) {
56+
if (savedInstanceState != null) { return; }
6557

66-
boolean isPlayServicesAvailable = PlayServicesHelper.makePlayServicesAvailable(
67-
this,
68-
RequestCodes.PLAY_SERVICES_CHECK,
69-
new DialogInterface.OnCancelListener() {
58+
if (isOffline()) {
59+
finish(RESULT_CANCELED, IdpResponse.getErrorIntent(
60+
new FirebaseUiException(ErrorCodes.NO_NETWORK)));
61+
} else {
62+
mKickstarter.start();
63+
}
64+
}
65+
})
66+
.addOnFailureListener(this, new OnFailureListener() {
7067
@Override
71-
public void onCancel(DialogInterface dialog) {
72-
finish(RESULT_CANCELED, IdpResponse.getErrorIntent(
73-
new FirebaseUiException(ErrorCodes.PLAY_SERVICES_UPDATE_CANCELLED)));
68+
public void onFailure(@NonNull Exception e) {
69+
finish(RESULT_CANCELED, IdpResponse.getErrorIntent(new FirebaseUiException(
70+
ErrorCodes.PLAY_SERVICES_UPDATE_CANCELLED, e)));
7471
}
7572
});
76-
77-
if (isPlayServicesAvailable) {
78-
mKickstarter.start();
79-
} else {
80-
mIsWaitingForPlayServices = true;
81-
}
82-
}
83-
84-
@Override
85-
public void onSaveInstanceState(Bundle outState) {
86-
super.onSaveInstanceState(outState);
87-
outState.putBoolean(IS_WAITING_FOR_PLAY_SERVICES, mIsWaitingForPlayServices);
8873
}
8974

9075
@Override
9176
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
9277
super.onActivityResult(requestCode, resultCode, data);
93-
if (requestCode == RequestCodes.PLAY_SERVICES_CHECK) {
94-
if (resultCode == RESULT_OK) {
95-
mKickstarter.start();
96-
} else {
97-
finish(RESULT_CANCELED, IdpResponse.getErrorIntent(
98-
new FirebaseUiException(ErrorCodes.PLAY_SERVICES_UPDATE_CANCELLED)));
99-
}
100-
} else {
101-
mKickstarter.onActivityResult(requestCode, resultCode, data);
102-
}
78+
mKickstarter.onActivityResult(requestCode, resultCode, data);
10379
}
10480

10581
/**

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,14 @@
99
/**
1010
* Helper class wrapping {@link GoogleApiAvailability}. Used internally but can also be used by
1111
* client application
12+
*
13+
* @deprecated use {@link GoogleApiAvailability} instead
1214
*/
15+
@Deprecated
1316
public class PlayServicesHelper {
17+
/**
18+
* @deprecated use {@link GoogleApiAvailability#getInstance()} instead
19+
*/
1420
@Deprecated
1521
public static GoogleApiAvailability getGoogleApiAvailability() {
1622
return GoogleApiAvailability.getInstance();
@@ -21,7 +27,10 @@ public static GoogleApiAvailability getGoogleApiAvailability() {
2127
* @param requestCode A request code to be used to return results to the Activity.
2228
* @param cancelListener A Dialog listener if the user cancels the recommended action.
2329
* @return true if play services is available, false otherwise.
30+
* @deprecated use {@link GoogleApiAvailability#makeGooglePlayServicesAvailable(Activity)}
31+
* instead.
2432
*/
33+
@Deprecated
2534
public static boolean makePlayServicesAvailable(Activity activity,
2635
int requestCode,
2736
DialogInterface.OnCancelListener cancelListener) {

auth/src/main/java/com/firebase/ui/auth/util/data/ProviderUtils.java

Lines changed: 37 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
import com.google.firebase.auth.FirebaseAuth;
3232
import com.google.firebase.auth.GoogleAuthProvider;
3333
import com.google.firebase.auth.PhoneAuthProvider;
34-
import com.google.firebase.auth.ProviderQueryResult;
34+
import com.google.firebase.auth.SignInMethodQueryResult;
3535
import com.google.firebase.auth.TwitterAuthProvider;
3636

3737
import java.util.List;
@@ -68,6 +68,26 @@ public static String idpResponseToAccountType(@Nullable IdpResponse response) {
6868
return providerIdToAccountType(response.getProviderType());
6969
}
7070

71+
@NonNull
72+
@AuthUI.SupportedProvider
73+
public static String signInMethodToProviderId(@NonNull String method) {
74+
switch (method) {
75+
case GoogleAuthProvider.GOOGLE_SIGN_IN_METHOD:
76+
return GoogleAuthProvider.PROVIDER_ID;
77+
case FacebookAuthProvider.FACEBOOK_SIGN_IN_METHOD:
78+
return FacebookAuthProvider.PROVIDER_ID;
79+
case TwitterAuthProvider.TWITTER_SIGN_IN_METHOD:
80+
return TwitterAuthProvider.PROVIDER_ID;
81+
case PhoneAuthProvider.PHONE_SIGN_IN_METHOD:
82+
return PhoneAuthProvider.PROVIDER_ID;
83+
case EmailAuthProvider.EMAIL_PASSWORD_SIGN_IN_METHOD:
84+
case EmailAuthProvider.EMAIL_LINK_SIGN_IN_METHOD:
85+
return EmailAuthProvider.PROVIDER_ID;
86+
default:
87+
throw new IllegalStateException("Unknown method: + " + method);
88+
}
89+
}
90+
7191
/**
7292
* Translate a Firebase Auth provider ID (such as {@link GoogleAuthProvider#PROVIDER_ID}) to a
7393
* Credentials API account type (such as {@link IdentityProviders#GOOGLE}).
@@ -128,15 +148,25 @@ public static Task<String> fetchTopProvider(FirebaseAuth auth, @NonNull String e
128148
return Tasks.forException(new NullPointerException("Email cannot be empty"));
129149
}
130150

131-
return auth.fetchProvidersForEmail(email)
132-
.continueWith(new Continuation<ProviderQueryResult, String>() {
151+
return auth.fetchSignInMethodsForEmail(email)
152+
.continueWith(new Continuation<SignInMethodQueryResult, String>() {
133153
@Override
134-
public String then(@NonNull Task<ProviderQueryResult> task) {
154+
public String then(@NonNull Task<SignInMethodQueryResult> task) {
135155
if (!task.isSuccessful()) return null;
136156

137-
List<String> providers = task.getResult().getProviders();
138-
return providers == null || providers.isEmpty()
139-
? null : providers.get(providers.size() - 1);
157+
List<String> methods = task.getResult().getSignInMethods();
158+
return methods == null || methods.isEmpty()
159+
? null : methods.get(methods.size() - 1);
160+
}
161+
}).continueWith(new Continuation<String, String>() {
162+
@Override
163+
public String then(@NonNull Task<String> task) {
164+
String method = task.getResult();
165+
if (method == null) {
166+
return null;
167+
} else {
168+
return signInMethodToProviderId(method);
169+
}
140170
}
141171
});
142172
}

auth/src/main/java/com/firebase/ui/auth/viewmodel/RequestCodes.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,6 @@ public final class RequestCodes {
3737
/** Request code for retrieving a Google credential. */
3838
public static final int GOOGLE_PROVIDER = 110;
3939

40-
/** Request code for checking if a valid version of Play Services exists. */
41-
public static final int PLAY_SERVICES_CHECK = 111;
42-
4340
private RequestCodes() {
4441
throw new AssertionError("No instance for you!");
4542
}

auth/src/test/java/com/firebase/ui/auth/testhelpers/FakeProviderQueryResult.java renamed to auth/src/test/java/com/firebase/ui/auth/testhelpers/FakeSignInMethodQueryResult.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,20 +16,20 @@
1616

1717
import android.support.annotation.Nullable;
1818

19-
import com.google.firebase.auth.ProviderQueryResult;
19+
import com.google.firebase.auth.SignInMethodQueryResult;
2020

2121
import java.util.List;
2222

23-
public class FakeProviderQueryResult implements ProviderQueryResult {
24-
private List<String> mProviders;
23+
public class FakeSignInMethodQueryResult implements SignInMethodQueryResult {
24+
private List<String> mMethods;
2525

26-
public FakeProviderQueryResult(List<String> providers) {
27-
mProviders = providers;
26+
public FakeSignInMethodQueryResult(List<String> methods) {
27+
mMethods = methods;
2828
}
2929

3030
@Nullable
3131
@Override
32-
public List<String> getProviders() {
33-
return mProviders;
32+
public List<String> getSignInMethods() {
33+
return mMethods;
3434
}
3535
}

auth/src/test/java/com/firebase/ui/auth/viewmodel/SocialProviderResponseHandlerTest.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import com.firebase.ui.auth.data.model.User;
1212
import com.firebase.ui.auth.testhelpers.AutoCompleteTask;
1313
import com.firebase.ui.auth.testhelpers.FakeAuthResult;
14-
import com.firebase.ui.auth.testhelpers.FakeProviderQueryResult;
14+
import com.firebase.ui.auth.testhelpers.FakeSignInMethodQueryResult;
1515
import com.firebase.ui.auth.testhelpers.ResourceMatchers;
1616
import com.firebase.ui.auth.testhelpers.TestConstants;
1717
import com.firebase.ui.auth.testhelpers.TestHelper;
@@ -24,7 +24,7 @@
2424
import com.google.firebase.auth.FirebaseAuth;
2525
import com.google.firebase.auth.FirebaseAuthUserCollisionException;
2626
import com.google.firebase.auth.GoogleAuthProvider;
27-
import com.google.firebase.auth.ProviderQueryResult;
27+
import com.google.firebase.auth.SignInMethodQueryResult;
2828
import com.google.firebase.auth.UserProfileChangeRequest;
2929

3030
import org.junit.Before;
@@ -122,10 +122,10 @@ public void testSignInIdp_resolution() {
122122
when(mMockAuth.signInWithCredential(any(AuthCredential.class)))
123123
.thenReturn(AutoCompleteTask.<AuthResult>forFailure(
124124
new FirebaseAuthUserCollisionException("foo", "bar")));
125-
when(mMockAuth.fetchProvidersForEmail(any(String.class)))
126-
.thenReturn(AutoCompleteTask.<ProviderQueryResult>forSuccess(
127-
new FakeProviderQueryResult(Collections.singletonList(
128-
FacebookAuthProvider.PROVIDER_ID))));
125+
when(mMockAuth.fetchSignInMethodsForEmail(any(String.class)))
126+
.thenReturn(AutoCompleteTask.<SignInMethodQueryResult>forSuccess(
127+
new FakeSignInMethodQueryResult(Collections.singletonList(
128+
FacebookAuthProvider.FACEBOOK_SIGN_IN_METHOD))));
129129

130130
IdpResponse response = new IdpResponse.Builder(new User.Builder(
131131
GoogleAuthProvider.PROVIDER_ID, TestConstants.EMAIL).build())

build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ buildscript {
88
}
99

1010
dependencies {
11-
classpath 'com.android.tools.build:gradle:3.0.1'
11+
classpath 'com.android.tools.build:gradle:3.1.0'
1212
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
1313
classpath 'com.google.gms:google-services:3.2.0'
1414
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3'
@@ -118,7 +118,7 @@ allprojects { project ->
118118
def archivesBaseName = isLibrary ? 'firebase-ui' : "firebase-ui-${project.name}"
119119

120120
def groupName = project.ext.group
121-
def versionName = project.ext.version;
121+
def versionName = project.ext.version
122122

123123
publishing {
124124
publications {

gradle.properties

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
org.gradle.jvmargs=-Xmx6g -XX:MaxPermSize=6g -XX:ReservedCodeCacheSize=2g -Dfile.encoding=UTF-8
1+
org.gradle.jvmargs=-Xmx6g -XX:ReservedCodeCacheSize=2g -Dfile.encoding=UTF-8
22
org.gradle.parallel=true
33
org.gradle.configureondemand=true
44
org.gradle.caching=true
5-
android.enableD8=true

0 commit comments

Comments
 (0)