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;