Skip to content

Commit cf4b27a

Browse files
authored
Kill all instances of GoogleApiClient (#1109)
1 parent f3f15a3 commit cf4b27a

File tree

7 files changed

+20
-250
lines changed

7 files changed

+20
-250
lines changed

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

Lines changed: 8 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
import android.content.Context;
1919
import android.content.Intent;
2020
import android.support.annotation.LayoutRes;
21-
import android.support.annotation.NonNull;
2221
import android.support.annotation.Nullable;
2322
import android.support.v4.app.FragmentActivity;
2423
import android.text.TextUtils;
@@ -30,23 +29,22 @@
3029
import com.firebase.ui.auth.R;
3130
import com.firebase.ui.auth.data.model.User;
3231
import com.firebase.ui.auth.util.ExtraConstants;
33-
import com.firebase.ui.auth.util.GoogleApiHelper;
3432
import com.google.android.gms.auth.api.Auth;
33+
import com.google.android.gms.auth.api.signin.GoogleSignIn;
3534
import com.google.android.gms.auth.api.signin.GoogleSignInAccount;
35+
import com.google.android.gms.auth.api.signin.GoogleSignInClient;
3636
import com.google.android.gms.auth.api.signin.GoogleSignInOptions;
3737
import com.google.android.gms.auth.api.signin.GoogleSignInResult;
38-
import com.google.android.gms.common.ConnectionResult;
3938
import com.google.android.gms.common.api.CommonStatusCodes;
40-
import com.google.android.gms.common.api.GoogleApiClient;
4139
import com.google.android.gms.common.api.Status;
4240
import com.google.firebase.auth.AuthCredential;
4341
import com.google.firebase.auth.GoogleAuthProvider;
4442

45-
public class GoogleProvider implements IdpProvider, GoogleApiClient.OnConnectionFailedListener {
43+
public class GoogleProvider implements IdpProvider {
4644
private static final String TAG = "GoogleProvider";
4745
private static final int RC_SIGN_IN = 20;
4846

49-
private GoogleApiClient mGoogleApiClient;
47+
private GoogleSignInClient mSignInClient;
5048
private FragmentActivity mActivity;
5149
private IdpConfig mIdpConfig;
5250
private IdpCallback mIdpCallback;
@@ -60,10 +58,8 @@ public GoogleProvider(FragmentActivity activity, IdpConfig idpConfig, @Nullable
6058
mActivity = activity;
6159
mIdpConfig = idpConfig;
6260
mSpecificAccount = !TextUtils.isEmpty(email);
63-
mGoogleApiClient = new GoogleApiClient.Builder(mActivity)
64-
.enableAutoManage(mActivity, GoogleApiHelper.getSafeAutoManageId(), this)
65-
.addApi(Auth.GOOGLE_SIGN_IN_API, getSignInOptions(email))
66-
.build();
61+
62+
mSignInClient = GoogleSignIn.getClient(mActivity, getSignInOptions(email));
6763
}
6864

6965
public static AuthCredential createAuthCredential(IdpResponse response) {
@@ -98,13 +94,6 @@ public void setAuthenticationCallback(IdpCallback callback) {
9894
mIdpCallback = callback;
9995
}
10096

101-
public void disconnect() {
102-
if (mGoogleApiClient != null) {
103-
mGoogleApiClient.disconnect();
104-
mGoogleApiClient = null;
105-
}
106-
}
107-
10897
private IdpResponse createIdpResponse(GoogleSignInAccount account) {
10998
return new IdpResponse.Builder(
11099
new User.Builder(GoogleAuthProvider.PROVIDER_ID, account.getEmail())
@@ -141,20 +130,15 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) {
141130

142131
@Override
143132
public void startLogin(Activity activity) {
144-
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
133+
Intent signInIntent = mSignInClient.getSignInIntent();
145134
activity.startActivityForResult(signInIntent, RC_SIGN_IN);
146135
}
147136

148137
private void onError(GoogleSignInResult result) {
149138
Status status = result.getStatus();
150139

151140
if (status.getStatusCode() == CommonStatusCodes.INVALID_ACCOUNT) {
152-
mGoogleApiClient.stopAutoManage(mActivity);
153-
mGoogleApiClient.disconnect();
154-
mGoogleApiClient = new GoogleApiClient.Builder(mActivity)
155-
.enableAutoManage(mActivity, GoogleApiHelper.getSafeAutoManageId(), this)
156-
.addApi(Auth.GOOGLE_SIGN_IN_API, getSignInOptions(null))
157-
.build();
141+
mSignInClient = GoogleSignIn.getClient(mActivity, getSignInOptions(null));
158142
startLogin(mActivity);
159143
} else {
160144
if (status.getStatusCode() == CommonStatusCodes.DEVELOPER_ERROR) {
@@ -170,10 +154,5 @@ private void onError(String errorMessage) {
170154
Log.e(TAG, "Error logging in with Google. " + errorMessage);
171155
mIdpCallback.onFailure();
172156
}
173-
174-
@Override
175-
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
176-
Log.w(TAG, "onConnectionFailed:" + connectionResult);
177-
}
178157
}
179158

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

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,14 @@
2222
import com.firebase.ui.auth.data.model.User;
2323
import com.firebase.ui.auth.ui.FragmentBase;
2424
import com.firebase.ui.auth.util.ExtraConstants;
25-
import com.firebase.ui.auth.util.GoogleApiHelper;
2625
import com.firebase.ui.auth.util.data.ProviderUtils;
2726
import com.firebase.ui.auth.util.ui.ImeHelper;
2827
import com.firebase.ui.auth.util.ui.fieldvalidators.EmailFieldValidator;
29-
import com.google.android.gms.auth.api.Auth;
3028
import com.google.android.gms.auth.api.credentials.Credential;
3129
import com.google.android.gms.auth.api.credentials.CredentialPickerConfig;
30+
import com.google.android.gms.auth.api.credentials.Credentials;
31+
import com.google.android.gms.auth.api.credentials.CredentialsClient;
3232
import com.google.android.gms.auth.api.credentials.HintRequest;
33-
import com.google.android.gms.common.ConnectionResult;
34-
import com.google.android.gms.common.api.GoogleApiClient;
3533
import com.google.android.gms.tasks.OnCompleteListener;
3634
import com.google.android.gms.tasks.OnSuccessListener;
3735
import com.google.android.gms.tasks.Task;
@@ -234,16 +232,7 @@ private void showEmailAutoCompleteHint() {
234232
}
235233

236234
private PendingIntent getEmailHintIntent() {
237-
GoogleApiClient client = new GoogleApiClient.Builder(getContext())
238-
.addApi(Auth.CREDENTIALS_API)
239-
.enableAutoManage(getActivity(), GoogleApiHelper.getSafeAutoManageId(),
240-
new GoogleApiClient.OnConnectionFailedListener() {
241-
@Override
242-
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
243-
Log.e(TAG, "Client connection failed: " + connectionResult.getErrorMessage());
244-
}
245-
})
246-
.build();
235+
CredentialsClient client = Credentials.getClient(getContext());
247236

248237
HintRequest hintRequest = new HintRequest.Builder()
249238
.setHintPickerConfig(new CredentialPickerConfig.Builder()
@@ -252,7 +241,7 @@ public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
252241
.setEmailAddressIdentifierSupported(true)
253242
.build();
254243

255-
return Auth.CredentialsApi.getHintPickerIntent(client, hintRequest);
244+
return client.getHintPickerIntent(hintRequest);
256245
}
257246

258247
@Override

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

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -189,16 +189,4 @@ public void onFailure() {
189189
// stay on this screen
190190
getDialogHolder().dismissDialog();
191191
}
192-
193-
@Override
194-
protected void onDestroy() {
195-
super.onDestroy();
196-
if (mProviders != null) {
197-
for (Provider provider : mProviders) {
198-
if (provider instanceof GoogleProvider) {
199-
((GoogleProvider) provider).disconnect();
200-
}
201-
}
202-
}
203-
}
204192
}

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

Lines changed: 4 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import android.content.Intent;
2020
import android.content.IntentSender;
2121
import android.os.Bundle;
22-
import android.support.annotation.NonNull;
2322
import android.support.annotation.Nullable;
2423
import android.support.annotation.RestrictTo;
2524
import android.support.design.widget.TextInputLayout;
@@ -39,15 +38,13 @@
3938
import com.firebase.ui.auth.data.model.PhoneNumber;
4039
import com.firebase.ui.auth.ui.FragmentBase;
4140
import com.firebase.ui.auth.util.ExtraConstants;
42-
import com.firebase.ui.auth.util.GoogleApiHelper;
4341
import com.firebase.ui.auth.util.data.PhoneNumberUtils;
4442
import com.firebase.ui.auth.util.ui.ImeHelper;
45-
import com.google.android.gms.auth.api.Auth;
4643
import com.google.android.gms.auth.api.credentials.Credential;
4744
import com.google.android.gms.auth.api.credentials.CredentialPickerConfig;
45+
import com.google.android.gms.auth.api.credentials.Credentials;
46+
import com.google.android.gms.auth.api.credentials.CredentialsClient;
4847
import com.google.android.gms.auth.api.credentials.HintRequest;
49-
import com.google.android.gms.common.ConnectionResult;
50-
import com.google.android.gms.common.api.GoogleApiClient;
5148

5249
import java.util.Locale;
5350

@@ -244,20 +241,7 @@ private void showPhoneAutoCompleteHint() {
244241
}
245242

246243
private PendingIntent getPhoneHintIntent() {
247-
GoogleApiClient client = new GoogleApiClient.Builder(getContext())
248-
.addApi(Auth.CREDENTIALS_API)
249-
.enableAutoManage(
250-
getActivity(),
251-
GoogleApiHelper.getSafeAutoManageId(),
252-
new GoogleApiClient.OnConnectionFailedListener() {
253-
@Override
254-
public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
255-
Log.e(TAG,
256-
"Client connection failed: " + connectionResult.getErrorMessage());
257-
}
258-
})
259-
.build();
260-
244+
CredentialsClient client = Credentials.getClient(getContext());
261245

262246
HintRequest hintRequest = new HintRequest.Builder()
263247
.setHintPickerConfig(
@@ -266,7 +250,7 @@ public void onConnectionFailed(@NonNull ConnectionResult connectionResult) {
266250
.setEmailAddressIdentifierSupported(false)
267251
.build();
268252

269-
return Auth.CredentialsApi.getHintPickerIntent(client, hintRequest);
253+
return client.getHintPickerIntent(hintRequest);
270254
}
271255

272256
private void setPhoneNumber(PhoneNumber phoneNumber) {

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

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

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

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

0 commit comments

Comments
 (0)