Search in sources :

Example 46 with GoogleSignInAccount

use of com.google.android.gms.auth.api.signin.GoogleSignInAccount in project WordPress-Login-Flow-Android by wordpress-mobile.

the class SignupGoogleFragment method onActivityResult.

@Override
public void onActivityResult(int request, int result, Intent data) {
    super.onActivityResult(request, result, data);
    switch(request) {
        case REQUEST_SIGNUP:
            disconnectGoogleClient();
            mSignupRequested = false;
            if (result == RESULT_OK) {
                GoogleSignInResult signInResult = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
                if (signInResult.isSuccess()) {
                    AppLog.d(T.MAIN, "GOOGLE SIGNUP: sign up result returned - succcess");
                    try {
                        GoogleSignInAccount account = signInResult.getSignInAccount();
                        if (account != null) {
                            mDisplayName = account.getDisplayName() != null ? account.getDisplayName() : "";
                            mGoogleEmail = account.getEmail() != null ? account.getEmail() : "";
                            mIdToken = account.getIdToken() != null ? account.getIdToken() : "";
                            mPhotoUrl = removeScaleFromGooglePhotoUrl(account.getPhotoUrl() != null ? account.getPhotoUrl().toString() : "");
                        }
                        AppLog.d(T.MAIN, "GOOGLE SIGNUP: sign up result returned - dispatching SocialSignupAction");
                        dispatchSocialSignup(mIdToken);
                    } catch (NullPointerException exception) {
                        AppLog.d(T.MAIN, "GOOGLE SIGNUP: sign up result returned - NPE");
                        AppLog.e(T.NUX, "Cannot get ID token from Google signup account.", exception);
                        showError(getString(R.string.login_error_generic));
                    }
                } else {
                    AppLog.d(T.MAIN, "GOOGLE SIGNUP: sign up result returned - error");
                    mAnalyticsListener.trackSignupSocialButtonFailure();
                    switch(signInResult.getStatus().getStatusCode()) {
                        // Internal error.
                        case GoogleSignInStatusCodes.INTERNAL_ERROR:
                            AppLog.e(T.NUX, "Google Signup Failed: internal error.");
                            showError(getString(R.string.login_error_generic));
                            break;
                        // Attempted to connect with an invalid account name specified.
                        case GoogleSignInStatusCodes.INVALID_ACCOUNT:
                            AppLog.e(T.NUX, "Google Signup Failed: invalid account name.");
                            showError(getString(R.string.login_error_generic) + getString(R.string.login_error_suffix));
                            break;
                        // Network error.
                        case GoogleSignInStatusCodes.NETWORK_ERROR:
                            AppLog.e(T.NUX, "Google Signup Failed: network error.");
                            showError(getString(R.string.error_generic_network));
                            break;
                        // Cancelled by the user.
                        case GoogleSignInStatusCodes.SIGN_IN_CANCELLED:
                            AppLog.e(T.NUX, "Google Signup Failed: cancelled by user.");
                            break;
                        // Attempt didn't succeed with the current account.
                        case GoogleSignInStatusCodes.SIGN_IN_FAILED:
                            AppLog.e(T.NUX, "Google Signup Failed: current account failed.");
                            showError(getString(R.string.login_error_generic));
                            break;
                        // Attempted to connect, but the user is not signed in.
                        case GoogleSignInStatusCodes.SIGN_IN_REQUIRED:
                            AppLog.e(T.NUX, "Google Signup Failed: user is not signed in.");
                            showError(getString(R.string.login_error_generic));
                            break;
                        // Timeout error.
                        case GoogleSignInStatusCodes.TIMEOUT:
                            AppLog.e(T.NUX, "Google Signup Failed: timeout error.");
                            showError(getString(R.string.google_error_timeout));
                            break;
                        // Unknown error.
                        default:
                            AppLog.e(T.NUX, "Google Signup Failed: unknown error.");
                            showError(getString(R.string.login_error_generic));
                            break;
                    }
                }
            } else if (result == RESULT_CANCELED) {
                AppLog.d(T.MAIN, "GOOGLE SIGNUP: sign up result returned - canceled");
                mAnalyticsListener.trackSignupSocialButtonFailure();
                AppLog.e(T.NUX, "Google Signup Failed: result was CANCELED.");
                finishFlow();
            } else {
                AppLog.d(T.MAIN, "GOOGLE SIGNUP: sign up result returned - unknown");
                mAnalyticsListener.trackSignupSocialButtonFailure();
                AppLog.e(T.NUX, "Google Signup Failed: result was not OK or CANCELED.");
                showError(getString(R.string.login_error_generic));
            }
            break;
    }
}
Also used : GoogleSignInAccount(com.google.android.gms.auth.api.signin.GoogleSignInAccount) GoogleSignInResult(com.google.android.gms.auth.api.signin.GoogleSignInResult)

Example 47 with GoogleSignInAccount

use of com.google.android.gms.auth.api.signin.GoogleSignInAccount in project WordPress-Login-Flow-Android by wordpress-mobile.

the class LoginGoogleFragment method onActivityResult.

@Override
public void onActivityResult(int request, int result, Intent data) {
    super.onActivityResult(request, result, data);
    switch(request) {
        case REQUEST_LOGIN:
            disconnectGoogleClient();
            mLoginRequested = false;
            if (result == RESULT_OK) {
                AppLog.d(T.MAIN, "GOOGLE LOGIN: Google has returned a sign in result - succcess");
                GoogleSignInResult loginResult = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
                if (loginResult.isSuccess()) {
                    try {
                        GoogleSignInAccount account = loginResult.getSignInAccount();
                        if (account != null) {
                            mDisplayName = account.getDisplayName() != null ? account.getDisplayName() : "";
                            mGoogleEmail = account.getEmail() != null ? account.getEmail() : "";
                            mGoogleListener.onGoogleEmailSelected(mGoogleEmail);
                            mIdToken = account.getIdToken() != null ? account.getIdToken() : "";
                            mPhotoUrl = removeScaleFromGooglePhotoUrl(account.getPhotoUrl() != null ? account.getPhotoUrl().toString() : "");
                        }
                        AppLog.d(T.MAIN, "GOOGLE LOGIN: Google has returned a sign in result - dispatching " + "SocialLoginAction");
                        PushSocialPayload payload = new PushSocialPayload(mIdToken, SERVICE_TYPE_GOOGLE);
                        mDispatcher.dispatch(AccountActionBuilder.newPushSocialLoginAction(payload));
                    } catch (NullPointerException exception) {
                        AppLog.d(T.MAIN, "GOOGLE LOGIN: Google has returned a sign in result - NPE");
                        AppLog.e(T.NUX, "Cannot get ID token from Google login account.", exception);
                        showError(getString(R.string.login_error_generic));
                    }
                } else {
                    AppLog.d(T.MAIN, "GOOGLE LOGIN: Google has returned a sign in result - error");
                    mAnalyticsListener.trackSocialButtonFailure();
                    switch(loginResult.getStatus().getStatusCode()) {
                        // Internal error.
                        case GoogleSignInStatusCodes.INTERNAL_ERROR:
                            AppLog.e(T.NUX, "Google Login Failed: internal error.");
                            showError(getString(R.string.login_error_generic));
                            break;
                        // Attempted to connect with an invalid account name specified.
                        case GoogleSignInStatusCodes.INVALID_ACCOUNT:
                            AppLog.e(T.NUX, "Google Login Failed: invalid account name.");
                            showError(getString(R.string.login_error_generic) + getString(R.string.login_error_suffix));
                            break;
                        // Network error.
                        case GoogleSignInStatusCodes.NETWORK_ERROR:
                            AppLog.e(T.NUX, "Google Login Failed: network error.");
                            showError(getString(R.string.error_generic_network));
                            break;
                        // Cancelled by the user.
                        case GoogleSignInStatusCodes.SIGN_IN_CANCELLED:
                            AppLog.e(T.NUX, "Google Login Failed: cancelled by user.");
                            break;
                        // Attempt didn't succeed with the current account.
                        case GoogleSignInStatusCodes.SIGN_IN_FAILED:
                            AppLog.e(T.NUX, "Google Login Failed: current account failed.");
                            showError(getString(R.string.login_error_generic));
                            break;
                        // Attempted to connect, but the user is not signed in.
                        case GoogleSignInStatusCodes.SIGN_IN_REQUIRED:
                            AppLog.e(T.NUX, "Google Login Failed: user is not signed in.");
                            showError(getString(R.string.login_error_generic));
                            break;
                        // Timeout error.
                        case GoogleSignInStatusCodes.TIMEOUT:
                            AppLog.e(T.NUX, "Google Login Failed: timeout error.");
                            showError(getString(R.string.google_error_timeout));
                            break;
                        // Unknown error.
                        default:
                            AppLog.e(T.NUX, "Google Login Failed: unknown error.");
                            showError(getString(R.string.login_error_generic));
                            break;
                    }
                }
            } else if (result == RESULT_CANCELED) {
                AppLog.d(T.MAIN, "GOOGLE LOGIN: Google has returned a sign in result - canceled");
                mAnalyticsListener.trackSocialButtonFailure();
                AppLog.e(T.NUX, "Google Login Failed: result was CANCELED.");
                finishFlow();
            } else {
                AppLog.d(T.MAIN, "GOOGLE LOGIN: Google has returned a sign in result - unknown");
                mAnalyticsListener.trackSocialButtonFailure();
                AppLog.e(T.NUX, "Google Login Failed: result was not OK or CANCELED.");
                showError(getString(R.string.login_error_generic));
            }
            break;
    }
}
Also used : GoogleSignInAccount(com.google.android.gms.auth.api.signin.GoogleSignInAccount) PushSocialPayload(org.wordpress.android.fluxc.store.AccountStore.PushSocialPayload) GoogleSignInResult(com.google.android.gms.auth.api.signin.GoogleSignInResult)

Example 48 with GoogleSignInAccount

use of com.google.android.gms.auth.api.signin.GoogleSignInAccount in project ARD by MobileApplicationsClub.

the class AuthHelperForGoogle method handleGoogleSignIn.

/**
 * Authenticate using google sign in data.
 *
 * @param data resulting from {@link AuthActivity#launchGoogleSignIn(Intent)}
 */
public void handleGoogleSignIn(final Intent data) {
    if (data == null) {
        hostActivity.handleGoogleSignInFailure();
        return;
    }
    final GoogleSignInResult result = getSignInResultFromIntent(data);
    if (!result.isSuccess()) {
        hostActivity.handleGoogleSignInFailure();
        return;
    }
    final GoogleSignInAccount account = result.getSignInAccount();
    if (account == null) {
        hostActivity.handleGoogleSignInFailure();
        return;
    }
    signWithCredentials(account);
}
Also used : GoogleSignInAccount(com.google.android.gms.auth.api.signin.GoogleSignInAccount) GoogleSignInResult(com.google.android.gms.auth.api.signin.GoogleSignInResult)

Aggregations

GoogleSignInAccount (com.google.android.gms.auth.api.signin.GoogleSignInAccount)48 ApiException (com.google.android.gms.common.api.ApiException)15 GoogleSignInResult (com.google.android.gms.auth.api.signin.GoogleSignInResult)12 Intent (android.content.Intent)7 IOException (java.io.IOException)5 User (com.androidstudy.andelamedmanager.data.model.User)2 GoogleSignInOptions (com.google.android.gms.auth.api.signin.GoogleSignInOptions)2 Scope (com.google.android.gms.common.api.Scope)2 Request (okhttp3.Request)2 JSONException (org.json.JSONException)2 Context (android.content.Context)1 Uri (android.net.Uri)1 Bundle (android.os.Bundle)1 NonNull (androidx.annotation.NonNull)1 ServerStatusCode (cl.smartcities.isci.transportinspector.serverConnection.ServerStatusCode)1 Response (com.android.volley.Response)1 VolleyError (com.android.volley.VolleyError)1 IntentResultListener (com.codename1.impl.android.IntentResultListener)1 AccessToken (com.codename1.io.AccessToken)1 ConnectionRequest (com.codename1.io.ConnectionRequest)1