diff --git a/auth/src/main/java/com/firebase/ui/auth/ui/account_link/SaveCredentialsActivity.java b/auth/src/main/java/com/firebase/ui/auth/ui/account_link/SaveCredentialsActivity.java index 6700ed0ea..4adddf39a 100644 --- a/auth/src/main/java/com/firebase/ui/auth/ui/account_link/SaveCredentialsActivity.java +++ b/auth/src/main/java/com/firebase/ui/auth/ui/account_link/SaveCredentialsActivity.java @@ -79,26 +79,10 @@ protected void onCreate(Bundle savedInstanceState) { .addConnectionCallbacks(this) .addOnConnectionFailedListener(this) .addApi(Auth.CREDENTIALS_API) + .enableAutoManage(this, this) .build(); - mCredentialsApiClient.connect(); } - - @Override - protected void onStart() { - super.onStart(); - mCredentialsApiClient.connect(); - } - - @Override - protected void onStop() { - super.onStop(); - if (mCredentialsApiClient != null) { - mCredentialsApiClient.disconnect(); - } - } - - @Override public void onConnected(@Nullable Bundle bundle) { if (mEmail == null) { diff --git a/auth/src/main/java/com/firebase/ui/auth/ui/email/SignInActivity.java b/auth/src/main/java/com/firebase/ui/auth/ui/email/SignInActivity.java index e1404c0e7..4392d12b4 100644 --- a/auth/src/main/java/com/firebase/ui/auth/ui/email/SignInActivity.java +++ b/auth/src/main/java/com/firebase/ui/auth/ui/email/SignInActivity.java @@ -122,6 +122,7 @@ public void onFailure(@NonNull Exception e) { TextInputLayout passwordInput = (TextInputLayout) findViewById(R.id.password_layout); passwordInput.setError(getString(R.string.login_error)); + mActivityHelper.dismissDialog(); } }); } diff --git a/auth/src/main/java/com/firebase/ui/auth/util/FirebaseAuthWrapper.java b/auth/src/main/java/com/firebase/ui/auth/util/FirebaseAuthWrapper.java index 4bc4265a8..4fe06d163 100644 --- a/auth/src/main/java/com/firebase/ui/auth/util/FirebaseAuthWrapper.java +++ b/auth/src/main/java/com/firebase/ui/auth/util/FirebaseAuthWrapper.java @@ -21,6 +21,7 @@ import android.support.annotation.Nullable; import android.support.annotation.WorkerThread; +import android.support.v4.app.FragmentActivity; import com.google.firebase.auth.AuthCredential; import com.google.firebase.auth.FirebaseUser; @@ -68,7 +69,7 @@ FirebaseUser linkWithCredential( boolean isPlayServicesAvailable(Context context); - PendingIntent getEmailHintIntent(Context context); + PendingIntent getEmailHintIntent(FragmentActivity context); void setTimeOut(long timeoutMs); diff --git a/auth/src/main/java/com/firebase/ui/auth/util/FirebaseAuthWrapperImpl.java b/auth/src/main/java/com/firebase/ui/auth/util/FirebaseAuthWrapperImpl.java index 21e3faf09..df8e06953 100644 --- a/auth/src/main/java/com/firebase/ui/auth/util/FirebaseAuthWrapperImpl.java +++ b/auth/src/main/java/com/firebase/ui/auth/util/FirebaseAuthWrapperImpl.java @@ -14,12 +14,14 @@ package com.firebase.ui.auth.util; +import android.app.Fragment; import android.app.PendingIntent; import android.content.Context; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.annotation.WorkerThread; +import android.support.v4.app.FragmentActivity; import android.util.Log; import com.firebase.ui.auth.BuildConfig; @@ -29,6 +31,7 @@ import com.google.android.gms.common.ConnectionResult; import com.google.android.gms.common.GoogleApiAvailability; import com.google.android.gms.common.api.GoogleApiClient; +import com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener; import com.google.android.gms.tasks.Task; import com.google.android.gms.tasks.Tasks; import com.google.firebase.auth.AuthCredential; @@ -153,18 +156,23 @@ protected boolean isPlayServicesAvailable( } @Override - public PendingIntent getEmailHintIntent(Context context) { - if (!isPlayServicesAvailable(context, GoogleApiAvailability.getInstance())) { + public PendingIntent getEmailHintIntent(FragmentActivity fragmentActivity) { + if (!isPlayServicesAvailable(fragmentActivity, GoogleApiAvailability.getInstance())) { return null; } - GoogleApiClient client = new GoogleApiClient.Builder(context) + GoogleApiClient client = new GoogleApiClient.Builder(fragmentActivity) .addConnectionCallbacks(this) .addApi(Auth.CREDENTIALS_API) + .enableAutoManage(fragmentActivity, new OnConnectionFailedListener() { + @Override + public void onConnectionFailed(@NonNull ConnectionResult connectionResult) { + Log.e(TAG, + "Client connection failed: " + connectionResult.getErrorMessage()); + } + }) .build(); - client.connect(); - HintRequest hintRequest = new HintRequest.Builder() .setHintPickerConfig(new CredentialPickerConfig.Builder() .setShowCancelButton(true)