diff --git a/app/src/main/java/com/firebase/uidemo/auth/AuthUiActivity.java b/app/src/main/java/com/firebase/uidemo/auth/AuthUiActivity.java
index 5ac4d9aac..6b47a95a6 100644
--- a/app/src/main/java/com/firebase/uidemo/auth/AuthUiActivity.java
+++ b/app/src/main/java/com/firebase/uidemo/auth/AuthUiActivity.java
@@ -24,6 +24,7 @@
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.app.AppCompatDelegate;
+import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
@@ -49,6 +50,8 @@
import butterknife.OnClick;
public class AuthUiActivity extends AppCompatActivity {
+ private static final String TAG = "AuthUiActivity";
+
private static final String GOOGLE_TOS_URL = "https://www.google.com/policies/terms/";
private static final String FIREBASE_TOS_URL = "https://firebase.google.com/terms/";
private static final String GOOGLE_PRIVACY_POLICY_URL = "https://www.google.com/policies/privacy/";
@@ -239,7 +242,6 @@ private void handleSignInResponse(int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
startSignedInActivity(response);
finish();
- return;
} else {
// Sign in failed
if (response == null) {
@@ -248,18 +250,14 @@ private void handleSignInResponse(int resultCode, Intent data) {
return;
}
- if (response.getErrorCode() == ErrorCodes.NO_NETWORK) {
+ if (response.getError().getErrorCode() == ErrorCodes.NO_NETWORK) {
showSnackbar(R.string.no_internet_connection);
return;
}
- if (response.getErrorCode() == ErrorCodes.UNKNOWN_ERROR) {
- showSnackbar(R.string.unknown_error);
- return;
- }
+ showSnackbar(R.string.unknown_error);
+ Log.e(TAG, "Sign-in error: ", response.getError());
}
-
- showSnackbar(R.string.unknown_sign_in_response);
}
private void startSignedInActivity(IdpResponse response) {
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 709b662f4..39ca82bd2 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -62,7 +62,6 @@
Require first/last name with email accounts.
Unexpected onActivityResult response code
- Unknown response from AuthUI sign-in
Sign in cancelled
No internet connection
An unknown error occurred
diff --git a/auth/src/main/java/com/firebase/ui/auth/ErrorCodes.java b/auth/src/main/java/com/firebase/ui/auth/ErrorCodes.java
index 534313a03..ff4f2b0a6 100644
--- a/auth/src/main/java/com/firebase/ui/auth/ErrorCodes.java
+++ b/auth/src/main/java/com/firebase/ui/auth/ErrorCodes.java
@@ -1,20 +1,47 @@
package com.firebase.ui.auth;
+import android.support.annotation.IntDef;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
/**
- * Error codes retrieved from {@link IdpResponse#getErrorCode()}.
+ * Error codes for failed sign-in attempts.
*/
public final class ErrorCodes {
/**
- * Sign in failed due to lack of network connection
- **/
- public static final int NO_NETWORK = 10;
+ * Valid codes that can be returned from {@link FirebaseUiException#getErrorCode()}.
+ */
+ @IntDef({
+ UNKNOWN_ERROR,
+ NO_NETWORK,
+ PLAY_SERVICES_UPDATE_CANCELLED,
+ DEVELOPER_ERROR
+ })
+ @Retention(RetentionPolicy.SOURCE)
+ public @interface Code {}
+
+ /**
+ * An unknown error has occurred.
+ */
+ public static final int UNKNOWN_ERROR = 0;
+
+ /**
+ * Sign in failed due to lack of network connection.
+ */
+ public static final int NO_NETWORK = 1;
+
+ /**
+ * A required update to Play Services was cancelled by the user.
+ */
+ public static final int PLAY_SERVICES_UPDATE_CANCELLED = 2;
/**
- * An unknown error has occurred
- **/
- public static final int UNKNOWN_ERROR = 20;
+ * A sign-in operation couldn't be completed due to a developer error.
+ */
+ public static final int DEVELOPER_ERROR = 3;
private ErrorCodes() {
- // no instance
+ throw new AssertionError("No instance for you!");
}
}
diff --git a/auth/src/main/java/com/firebase/ui/auth/FirebaseUiException.java b/auth/src/main/java/com/firebase/ui/auth/FirebaseUiException.java
new file mode 100644
index 000000000..a02a35172
--- /dev/null
+++ b/auth/src/main/java/com/firebase/ui/auth/FirebaseUiException.java
@@ -0,0 +1,45 @@
+package com.firebase.ui.auth;
+
+import android.support.annotation.NonNull;
+import android.support.annotation.RestrictTo;
+
+/**
+ * Base class for all FirebaseUI exceptions.
+ */
+public class FirebaseUiException extends Exception {
+ private final int mErrorCode;
+
+ @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
+ public FirebaseUiException(@ErrorCodes.Code int code) {
+ mErrorCode = code;
+ }
+
+ @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
+ public FirebaseUiException(@ErrorCodes.Code int code, @NonNull String message) {
+ super(message);
+ mErrorCode = code;
+ }
+
+ @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
+ public FirebaseUiException(@ErrorCodes.Code int code,
+ @NonNull String message,
+ @NonNull Throwable cause) {
+ super(message, cause);
+ mErrorCode = code;
+ }
+
+ @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
+ public FirebaseUiException(@ErrorCodes.Code int code, @NonNull Throwable cause) {
+ super(cause);
+ mErrorCode = code;
+ }
+
+ /**
+ * @return error code associated with this exception
+ * @see com.firebase.ui.auth.ErrorCodes
+ */
+ @ErrorCodes.Code
+ public final int getErrorCode() {
+ return mErrorCode;
+ }
+}
diff --git a/auth/src/main/java/com/firebase/ui/auth/IdpResponse.java b/auth/src/main/java/com/firebase/ui/auth/IdpResponse.java
index d5ee1261d..939f460f7 100644
--- a/auth/src/main/java/com/firebase/ui/auth/IdpResponse.java
+++ b/auth/src/main/java/com/firebase/ui/auth/IdpResponse.java
@@ -23,7 +23,6 @@
import android.support.annotation.RestrictTo;
import android.text.TextUtils;
-import com.firebase.ui.auth.data.model.FirebaseUiException;
import com.firebase.ui.auth.data.model.User;
import com.firebase.ui.auth.util.ExtraConstants;
import com.google.firebase.auth.GoogleAuthProvider;
@@ -78,17 +77,17 @@ public static IdpResponse fromResultIntent(@Nullable Intent resultIntent) {
}
@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
- public static IdpResponse fromError(@NonNull FirebaseUiException e) {
- return new IdpResponse(e);
+ public static Intent getErrorIntent(@NonNull Exception e) {
+ return fromError(e).toIntent();
}
- /**
- * @deprecated migrate internals to {@link #fromError(FirebaseUiException)}
- */
- @Deprecated
@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
- public static Intent getErrorCodeIntent(int errorCode) {
- return new IdpResponse(new FirebaseUiException(errorCode)).toIntent();
+ public static IdpResponse fromError(@NonNull Exception e) {
+ if (e instanceof FirebaseUiException) {
+ return new IdpResponse((FirebaseUiException) e);
+ } else {
+ return new IdpResponse(new FirebaseUiException(ErrorCodes.UNKNOWN_ERROR, e));
+ }
}
@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
@@ -149,7 +148,10 @@ public String getIdpSecret() {
/**
* Get the error code for a failed sign in
+ *
+ * @deprecated use {@link #getError()} instead
*/
+ @Deprecated
public int getErrorCode() {
if (isSuccessful()) {
return Activity.RESULT_OK;
@@ -158,9 +160,11 @@ public int getErrorCode() {
}
}
+ /**
+ * Get the error for a failed sign in.
+ */
@Nullable
- @RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
- public FirebaseUiException getException() {
+ public FirebaseUiException getError() {
return mException;
}
diff --git a/auth/src/main/java/com/firebase/ui/auth/KickoffActivity.java b/auth/src/main/java/com/firebase/ui/auth/KickoffActivity.java
index 9a1df7fd8..3f55e58db 100644
--- a/auth/src/main/java/com/firebase/ui/auth/KickoffActivity.java
+++ b/auth/src/main/java/com/firebase/ui/auth/KickoffActivity.java
@@ -33,8 +33,8 @@ protected void onCreate(Bundle savedInstance) {
if (savedInstance == null || savedInstance.getBoolean(IS_WAITING_FOR_PLAY_SERVICES)) {
if (isOffline()) {
Log.d(TAG, "No network connection");
- finish(RESULT_CANCELED,
- IdpResponse.getErrorCodeIntent(ErrorCodes.NO_NETWORK));
+ finish(RESULT_CANCELED, IdpResponse.getErrorIntent(
+ new FirebaseUiException(ErrorCodes.NO_NETWORK)));
return;
}
@@ -44,9 +44,8 @@ protected void onCreate(Bundle savedInstance) {
new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
- finish(RESULT_CANCELED,
- IdpResponse.getErrorCodeIntent(
- ErrorCodes.UNKNOWN_ERROR));
+ finish(RESULT_CANCELED, IdpResponse.getErrorIntent(
+ new FirebaseUiException(ErrorCodes.PLAY_SERVICES_UPDATE_CANCELLED)));
}
});
@@ -73,8 +72,8 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
start();
} else {
- finish(RESULT_CANCELED,
- IdpResponse.getErrorCodeIntent(ErrorCodes.UNKNOWN_ERROR));
+ finish(RESULT_CANCELED, IdpResponse.getErrorIntent(
+ new FirebaseUiException(ErrorCodes.PLAY_SERVICES_UPDATE_CANCELLED)));
}
} else {
SignInDelegate delegate = SignInDelegate.getInstance(this);
diff --git a/auth/src/main/java/com/firebase/ui/auth/data/model/FirebaseUiException.java b/auth/src/main/java/com/firebase/ui/auth/data/model/FirebaseUiException.java
deleted file mode 100644
index c8882dd32..000000000
--- a/auth/src/main/java/com/firebase/ui/auth/data/model/FirebaseUiException.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package com.firebase.ui.auth.data.model;
-
-import android.support.annotation.RestrictTo;
-
-/**
- * Base class for all FirebaseUI exceptions.
- */
-@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
-public class FirebaseUiException extends Exception {
- private final int mErrorCode;
-
- public FirebaseUiException(int code) {
- mErrorCode = code;
- }
-
- public FirebaseUiException(int code, String message) {
- super(message);
- mErrorCode = code;
- }
-
- public FirebaseUiException(int code, String message, Throwable cause) {
- super(message, cause);
- mErrorCode = code;
- }
-
- public FirebaseUiException(int code, Throwable cause) {
- super(cause);
- mErrorCode = code;
- }
-
- public final int getErrorCode() {
- return mErrorCode;
- }
-}
diff --git a/auth/src/main/java/com/firebase/ui/auth/provider/FacebookProvider.java b/auth/src/main/java/com/firebase/ui/auth/provider/FacebookProvider.java
index a689d4b7e..b9adb0f9c 100644
--- a/auth/src/main/java/com/firebase/ui/auth/provider/FacebookProvider.java
+++ b/auth/src/main/java/com/firebase/ui/auth/provider/FacebookProvider.java
@@ -34,6 +34,8 @@
import com.facebook.login.LoginManager;
import com.facebook.login.LoginResult;
import com.firebase.ui.auth.AuthUI;
+import com.firebase.ui.auth.ErrorCodes;
+import com.firebase.ui.auth.FirebaseUiException;
import com.firebase.ui.auth.IdpResponse;
import com.firebase.ui.auth.R;
import com.firebase.ui.auth.data.model.User;
@@ -130,12 +132,12 @@ public void onCompleted(JSONObject object, GraphResponse response) {
FacebookRequestError requestError = response.getError();
if (requestError != null) {
Log.e(TAG, "Received Facebook error: " + requestError.getErrorMessage());
- onFailure();
+ onFailure(requestError.getException());
return;
}
if (object == null) {
Log.w(TAG, "Received null response from Facebook GraphRequest");
- onFailure();
+ onFailure(new FirebaseUiException(ErrorCodes.UNKNOWN_ERROR));
} else {
String email = null;
String name = null;
@@ -168,13 +170,13 @@ public void onCompleted(JSONObject object, GraphResponse response) {
@Override
public void onCancel() {
- onFailure();
+ onFailure(new FirebaseUiException(ErrorCodes.UNKNOWN_ERROR));
}
@Override
- public void onError(FacebookException error) {
- Log.e(TAG, "Error logging in with Facebook. " + error.getMessage());
- onFailure();
+ public void onError(FacebookException e) {
+ Log.e(TAG, "Error logging in with Facebook. " + e.getMessage());
+ onFailure(e);
}
private void onSuccess(LoginResult loginResult,
@@ -191,9 +193,9 @@ private void onSuccess(LoginResult loginResult,
.build());
}
- private void onFailure() {
+ private void onFailure(Exception e) {
gcCallbackManager();
- mCallbackObject.onFailure();
+ mCallbackObject.onFailure(e);
}
private void gcCallbackManager() {
diff --git a/auth/src/main/java/com/firebase/ui/auth/provider/GoogleProvider.java b/auth/src/main/java/com/firebase/ui/auth/provider/GoogleProvider.java
index 41b48f515..676b662f5 100644
--- a/auth/src/main/java/com/firebase/ui/auth/provider/GoogleProvider.java
+++ b/auth/src/main/java/com/firebase/ui/auth/provider/GoogleProvider.java
@@ -25,6 +25,8 @@
import android.widget.Toast;
import com.firebase.ui.auth.AuthUI.IdpConfig;
+import com.firebase.ui.auth.ErrorCodes;
+import com.firebase.ui.auth.FirebaseUiException;
import com.firebase.ui.auth.IdpResponse;
import com.firebase.ui.auth.R;
import com.firebase.ui.auth.data.model.User;
@@ -152,7 +154,7 @@ private void onError(GoogleSignInResult result) {
private void onError(String errorMessage) {
Log.e(TAG, "Error logging in with Google. " + errorMessage);
- mIdpCallback.onFailure();
+ mIdpCallback.onFailure(new FirebaseUiException(ErrorCodes.UNKNOWN_ERROR, errorMessage));
}
}
diff --git a/auth/src/main/java/com/firebase/ui/auth/provider/IdpProvider.java b/auth/src/main/java/com/firebase/ui/auth/provider/IdpProvider.java
index 9b948a770..af647fa99 100644
--- a/auth/src/main/java/com/firebase/ui/auth/provider/IdpProvider.java
+++ b/auth/src/main/java/com/firebase/ui/auth/provider/IdpProvider.java
@@ -14,13 +14,17 @@
package com.firebase.ui.auth.provider;
+import android.support.annotation.NonNull;
+import android.support.annotation.RestrictTo;
+
import com.firebase.ui.auth.IdpResponse;
+@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
public interface IdpProvider extends Provider {
interface IdpCallback {
- void onSuccess(IdpResponse idpResponse);
+ void onSuccess(@NonNull IdpResponse idpResponse);
- void onFailure();
+ void onFailure(@NonNull Exception e);
}
void setAuthenticationCallback(IdpCallback callback);
diff --git a/auth/src/main/java/com/firebase/ui/auth/provider/Provider.java b/auth/src/main/java/com/firebase/ui/auth/provider/Provider.java
index 4415ea8da..a9ac123be 100644
--- a/auth/src/main/java/com/firebase/ui/auth/provider/Provider.java
+++ b/auth/src/main/java/com/firebase/ui/auth/provider/Provider.java
@@ -4,7 +4,9 @@
import android.content.Context;
import android.content.Intent;
import android.support.annotation.LayoutRes;
+import android.support.annotation.RestrictTo;
+@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
public interface Provider {
/** Retrieves the name of the IDP, for display on-screen. */
String getName(Context context);
diff --git a/auth/src/main/java/com/firebase/ui/auth/provider/TwitterProvider.java b/auth/src/main/java/com/firebase/ui/auth/provider/TwitterProvider.java
index 1e3fb8363..2d3ec8188 100644
--- a/auth/src/main/java/com/firebase/ui/auth/provider/TwitterProvider.java
+++ b/auth/src/main/java/com/firebase/ui/auth/provider/TwitterProvider.java
@@ -108,16 +108,16 @@ public void success(Result result) {
}
@Override
- public void failure(TwitterException exception) {
- mCallbackObject.onFailure();
+ public void failure(TwitterException e) {
+ mCallbackObject.onFailure(e);
}
});
}
@Override
- public void failure(TwitterException exception) {
- Log.e(TAG, "Failure logging in to Twitter. " + exception.getMessage());
- mCallbackObject.onFailure();
+ public void failure(TwitterException e) {
+ Log.e(TAG, "Failure logging in to Twitter. " + e.getMessage());
+ mCallbackObject.onFailure(e);
}
private IdpResponse createIdpResponse(TwitterSession session,
diff --git a/auth/src/main/java/com/firebase/ui/auth/ui/idp/AuthMethodPickerActivity.java b/auth/src/main/java/com/firebase/ui/auth/ui/idp/AuthMethodPickerActivity.java
index e98d822d9..a4f9b52d9 100644
--- a/auth/src/main/java/com/firebase/ui/auth/ui/idp/AuthMethodPickerActivity.java
+++ b/auth/src/main/java/com/firebase/ui/auth/ui/idp/AuthMethodPickerActivity.java
@@ -17,6 +17,7 @@
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
+import android.support.annotation.NonNull;
import android.support.annotation.RestrictTo;
import android.support.constraint.ConstraintLayout;
import android.support.constraint.ConstraintSet;
@@ -160,7 +161,7 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) {
}
@Override
- public void onSuccess(final IdpResponse response) {
+ public void onSuccess(@NonNull final IdpResponse response) {
AuthCredential credential = ProviderUtils.getAuthCredential(response);
getAuthHelper().getFirebaseAuth()
.signInWithCredential(credential)
@@ -180,7 +181,7 @@ public void onSuccess(AuthResult authResult) {
}
@Override
- public void onFailure() {
+ public void onFailure(@NonNull Exception e) {
// stay on this screen
getDialogHolder().dismissDialog();
}
diff --git a/auth/src/main/java/com/firebase/ui/auth/ui/idp/CredentialSignInHandler.java b/auth/src/main/java/com/firebase/ui/auth/ui/idp/CredentialSignInHandler.java
index 980f51d9b..d011b1c30 100644
--- a/auth/src/main/java/com/firebase/ui/auth/ui/idp/CredentialSignInHandler.java
+++ b/auth/src/main/java/com/firebase/ui/auth/ui/idp/CredentialSignInHandler.java
@@ -20,7 +20,6 @@
import android.support.annotation.RestrictTo;
import android.util.Log;
-import com.firebase.ui.auth.ErrorCodes;
import com.firebase.ui.auth.IdpResponse;
import com.firebase.ui.auth.data.model.User;
import com.firebase.ui.auth.ui.HelperActivityBase;
@@ -66,7 +65,7 @@ public void onFailure(@NonNull Exception e) {
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
- Intent intent = IdpResponse.getErrorCodeIntent(ErrorCodes.UNKNOWN_ERROR);
+ Intent intent = IdpResponse.getErrorIntent(e);
mActivity.finish(Activity.RESULT_CANCELED, intent);
}
});
diff --git a/auth/src/main/java/com/firebase/ui/auth/ui/idp/WelcomeBackIdpPrompt.java b/auth/src/main/java/com/firebase/ui/auth/ui/idp/WelcomeBackIdpPrompt.java
index a3df16d34..0db5f8202 100644
--- a/auth/src/main/java/com/firebase/ui/auth/ui/idp/WelcomeBackIdpPrompt.java
+++ b/auth/src/main/java/com/firebase/ui/auth/ui/idp/WelcomeBackIdpPrompt.java
@@ -20,7 +20,6 @@
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.annotation.RestrictTo;
-import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
@@ -28,6 +27,7 @@
import com.firebase.ui.auth.AuthUI.IdpConfig;
import com.firebase.ui.auth.ErrorCodes;
+import com.firebase.ui.auth.FirebaseUiException;
import com.firebase.ui.auth.IdpResponse;
import com.firebase.ui.auth.R;
import com.firebase.ui.auth.data.model.FlowParameters;
@@ -97,19 +97,17 @@ protected void onCreate(Bundle savedInstanceState) {
mIdpProvider = new TwitterProvider(this);
break;
default:
- Log.w(TAG, "Unknown provider: " + providerId);
- finish(RESULT_CANCELED,
- IdpResponse.getErrorCodeIntent(ErrorCodes.UNKNOWN_ERROR));
- return;
+ throw new IllegalStateException("Unknown provider: " + providerId);
}
}
}
if (mIdpProvider == null) {
- Log.w(TAG, "Firebase login unsuccessful."
- + " Account linking failed due to provider not enabled by application: "
- + providerId);
- finish(RESULT_CANCELED, IdpResponse.getErrorCodeIntent(ErrorCodes.UNKNOWN_ERROR));
+ finish(RESULT_CANCELED, IdpResponse.getErrorIntent(new FirebaseUiException(
+ ErrorCodes.DEVELOPER_ERROR,
+ "Firebase login unsuccessful."
+ + " Account linking failed due to provider not enabled by application: "
+ + providerId)));
return;
}
@@ -137,12 +135,10 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) {
}
@Override
- public void onSuccess(final IdpResponse idpResponse) {
+ public void onSuccess(@NonNull final IdpResponse idpResponse) {
AuthCredential newCredential = ProviderUtils.getAuthCredential(idpResponse);
if (newCredential == null) {
- Log.e(TAG, "No credential returned");
- finish(RESULT_CANCELED, IdpResponse.getErrorCodeIntent(ErrorCodes.UNKNOWN_ERROR));
- return;
+ throw new IllegalStateException("Unknown provider: " + idpResponse.getProviderType());
}
FirebaseUser currentUser = getAuthHelper().getCurrentUser();
@@ -167,7 +163,7 @@ public void onSuccess(AuthResult result) {
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
- finishWithError();
+ finishWithError(e);
}
})
.addOnFailureListener(
@@ -184,13 +180,13 @@ public void onFailure(@NonNull Exception e) {
}
@Override
- public void onFailure() {
- finishWithError();
+ public void onFailure(@NonNull Exception e) {
+ finishWithError(e);
}
- private void finishWithError() {
+ private void finishWithError(Exception e) {
Toast.makeText(this, R.string.fui_general_error, Toast.LENGTH_LONG).show();
- finish(RESULT_CANCELED, IdpResponse.getErrorCodeIntent(ErrorCodes.UNKNOWN_ERROR));
+ finish(RESULT_CANCELED, IdpResponse.getErrorIntent(e));
}
private class FinishListener implements OnCompleteListener {
diff --git a/auth/src/main/java/com/firebase/ui/auth/util/signincontainer/IdpSignInContainer.java b/auth/src/main/java/com/firebase/ui/auth/util/signincontainer/IdpSignInContainer.java
index 476a08dba..7497a70a5 100644
--- a/auth/src/main/java/com/firebase/ui/auth/util/signincontainer/IdpSignInContainer.java
+++ b/auth/src/main/java/com/firebase/ui/auth/util/signincontainer/IdpSignInContainer.java
@@ -18,6 +18,7 @@
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
+import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.annotation.RestrictTo;
import android.support.v4.app.Fragment;
@@ -26,7 +27,6 @@
import android.util.Log;
import com.firebase.ui.auth.AuthUI;
-import com.firebase.ui.auth.ErrorCodes;
import com.firebase.ui.auth.IdpResponse;
import com.firebase.ui.auth.data.model.FlowParameters;
import com.firebase.ui.auth.data.model.User;
@@ -127,7 +127,7 @@ public void onSaveInstanceState(Bundle outState) {
}
@Override
- public void onSuccess(final IdpResponse response) {
+ public void onSuccess(@NonNull final IdpResponse response) {
AuthCredential credential = ProviderUtils.getAuthCredential(response);
getAuthHelper().getFirebaseAuth()
.signInWithCredential(credential)
@@ -146,8 +146,8 @@ public void onSuccess(AuthResult authResult) {
}
@Override
- public void onFailure() {
- finish(Activity.RESULT_CANCELED, IdpResponse.getErrorCodeIntent(ErrorCodes.UNKNOWN_ERROR));
+ public void onFailure(@NonNull Exception e) {
+ finish(Activity.RESULT_CANCELED, IdpResponse.getErrorIntent(e));
}
@Override
diff --git a/auth/src/main/java/com/firebase/ui/auth/viewmodel/smartlock/SmartLockHandler.java b/auth/src/main/java/com/firebase/ui/auth/viewmodel/smartlock/SmartLockHandler.java
index c89745fd3..232164b07 100644
--- a/auth/src/main/java/com/firebase/ui/auth/viewmodel/smartlock/SmartLockHandler.java
+++ b/auth/src/main/java/com/firebase/ui/auth/viewmodel/smartlock/SmartLockHandler.java
@@ -10,7 +10,7 @@
import android.util.Log;
import com.firebase.ui.auth.ErrorCodes;
-import com.firebase.ui.auth.data.model.FirebaseUiException;
+import com.firebase.ui.auth.FirebaseUiException;
import com.firebase.ui.auth.data.model.Resource;
import com.firebase.ui.auth.util.CredentialsUtil;
import com.firebase.ui.auth.viewmodel.AuthViewModelBase;