use of org.wordpress.android.fluxc.store.AccountStore.PushSocialPayload in project WordPress-Login-Flow-Android by wordpress-mobile.
the class Login2FaFragment method onAuthenticationChanged.
// OnChanged events
@SuppressWarnings("unused")
@Subscribe(threadMode = ThreadMode.MAIN)
public void onAuthenticationChanged(OnAuthenticationChanged event) {
if (event.isError()) {
endProgress();
AppLog.e(T.API, "onAuthenticationChanged has error: " + event.error.type + " - " + event.error.message);
mAnalyticsListener.trackLoginFailed(event.getClass().getSimpleName(), event.error.type.toString(), event.error.message);
if (mIsSocialLogin) {
mAnalyticsListener.trackSocialFailure(event.getClass().getSimpleName(), event.error.type.toString(), event.error.message);
}
if (isAdded()) {
handleAuthError(event.error.type, event.error.message);
}
return;
}
AppLog.i(T.NUX, "onAuthenticationChanged: " + event.toString());
if (mIsSocialLoginConnect) {
PushSocialPayload payload = new PushSocialPayload(mIdToken, mService);
mDispatcher.dispatch(AccountActionBuilder.newPushSocialConnectAction(payload));
} else {
doFinishLogin();
}
}
use of org.wordpress.android.fluxc.store.AccountStore.PushSocialPayload in project WordPress-Login-Flow-Android by wordpress-mobile.
the class SignupGoogleFragment method onSocialChanged.
@SuppressWarnings("unused")
@Subscribe(threadMode = ThreadMode.MAIN)
public void onSocialChanged(AccountStore.OnSocialChanged event) {
if (event.isError()) {
AppLog.e(T.API, "SignupGoogleFragment.onSocialChanged: " + event.error.type + " - " + event.error.message);
switch(event.error.type) {
// WordPress account exists with input email address, and two-factor authentication is required.
case TWO_STEP_ENABLED:
mAnalyticsListener.trackSignupSocial2faNeeded();
mAnalyticsListener.trackSignupSocialToLogin();
mLoginListener.showSignupToLoginMessage();
// Dispatch social login action to retrieve data required for two-factor authentication.
PushSocialPayload payload = new PushSocialPayload(mIdToken, SERVICE_TYPE_GOOGLE);
mDispatcher.dispatch(AccountActionBuilder.newPushSocialLoginAction(payload));
break;
// WordPress account exists with input email address, but not connected.
case USER_EXISTS:
mAnalyticsListener.trackSignupSocialAccountsNeedConnecting();
mAnalyticsListener.trackSignupSocialToLogin();
mLoginListener.showSignupToLoginMessage();
mLoginListener.loginViaSocialAccount(mGoogleEmail, mIdToken, SERVICE_TYPE_GOOGLE, true);
// Kill connections with FluxC and this fragment since the flow is changing to login.
mDispatcher.unregister(this);
getActivity().getSupportFragmentManager().beginTransaction().remove(this).commit();
break;
default:
showErrorDialog(getString(R.string.login_error_generic));
break;
}
// Response does not return error when two-factor authentication is required.
} else if (event.requiresTwoStepAuth) {
mAnalyticsListener.trackSignupSocialToLogin();
mLoginListener.needs2faSocial(mGoogleEmail, event.userId, event.nonceAuthenticator, event.nonceBackup, event.nonceSms);
// Kill connections with FluxC and this fragment since the flow is changing to login.
mDispatcher.unregister(this);
getActivity().getSupportFragmentManager().beginTransaction().remove(this).commit();
}
}
use of org.wordpress.android.fluxc.store.AccountStore.PushSocialPayload 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:
if (result == RESULT_OK) {
GoogleSignInResult signInResult = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
if (signInResult.isSuccess()) {
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() : "");
}
PushSocialPayload payload = new PushSocialPayload(mIdToken, SERVICE_TYPE_GOOGLE);
mDispatcher.dispatch(AccountActionBuilder.newPushSocialSignupAction(payload));
mOldSitesIds = SiteUtils.getCurrentSiteIds(mSiteStore, false);
} catch (NullPointerException exception) {
disconnectGoogleClient();
AppLog.e(T.NUX, "Cannot get ID token from Google signup account.", exception);
showErrorDialog(getString(R.string.login_error_generic));
}
} else {
mAnalyticsListener.trackSignupSocialButtonFailure();
switch(signInResult.getStatus().getStatusCode()) {
// Internal error.
case GoogleSignInStatusCodes.INTERNAL_ERROR:
AppLog.e(T.NUX, "Google Signup Failed: internal error.");
showErrorDialog(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.");
showErrorDialog(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.");
showErrorDialog(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.");
showErrorDialog(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.");
showErrorDialog(getString(R.string.login_error_generic));
break;
// Timeout error.
case GoogleSignInStatusCodes.TIMEOUT:
AppLog.e(T.NUX, "Google Signup Failed: timeout error.");
showErrorDialog(getString(R.string.google_error_timeout));
break;
// Unknown error.
default:
AppLog.e(T.NUX, "Google Signup Failed: unknown error.");
showErrorDialog(getString(R.string.login_error_generic));
break;
}
}
} else if (result == RESULT_CANCELED) {
mAnalyticsListener.trackSignupSocialButtonFailure();
AppLog.e(T.NUX, "Google Signup Failed: result was CANCELED.");
dismissProgressDialog();
} else {
mAnalyticsListener.trackSignupSocialButtonFailure();
AppLog.e(T.NUX, "Google Signup Failed: result was not OK or CANCELED.");
showErrorDialog(getString(R.string.login_error_generic));
dismissProgressDialog();
}
break;
}
}
use of org.wordpress.android.fluxc.store.AccountStore.PushSocialPayload in project WordPress-Login-Flow-Android by wordpress-mobile.
the class LoginWpcomService method onAuthenticationChanged.
// OnChanged events
@SuppressWarnings("unused")
@Subscribe(threadMode = ThreadMode.MAIN)
public void onAuthenticationChanged(OnAuthenticationChanged event) {
if (event.isError()) {
AppLog.e(T.API, "onAuthenticationChanged has error: " + event.error.type + " - " + event.error.message);
handleAuthError(event.error.type, event.error.message);
return;
}
AppLog.i(T.NUX, "onAuthenticationChanged: " + event.toString());
if (mIsSocialLogin) {
setState(LoginStep.SOCIAL_LOGIN);
PushSocialPayload payload = new PushSocialPayload(mIdToken, mService);
mDispatcher.dispatch(AccountActionBuilder.newPushSocialConnectAction(payload));
} else {
signalCredentialsOK();
fetchAccount();
}
}
use of org.wordpress.android.fluxc.store.AccountStore.PushSocialPayload 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:
if (result == RESULT_OK) {
GoogleSignInResult signInResult = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
if (signInResult.isSuccess()) {
try {
GoogleSignInAccount account = signInResult.getSignInAccount();
if (account != null) {
mGoogleEmail = account.getEmail() != null ? account.getEmail() : "";
mGoogleListener.onGoogleEmailSelected(mGoogleEmail);
mIdToken = account.getIdToken() != null ? account.getIdToken() : "";
}
PushSocialPayload payload = new PushSocialPayload(mIdToken, SERVICE_TYPE_GOOGLE);
mDispatcher.dispatch(AccountActionBuilder.newPushSocialLoginAction(payload));
} catch (NullPointerException exception) {
disconnectGoogleClient();
AppLog.e(T.NUX, "Cannot get ID token from Google login account.", exception);
showErrorDialog(getString(R.string.login_error_generic));
}
} else {
mAnalyticsListener.trackSocialButtonFailure();
switch(signInResult.getStatus().getStatusCode()) {
// Internal error.
case GoogleSignInStatusCodes.INTERNAL_ERROR:
AppLog.e(T.NUX, "Google Login Failed: internal error.");
showErrorDialog(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.");
showErrorDialog(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.");
showErrorDialog(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.");
showErrorDialog(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.");
showErrorDialog(getString(R.string.login_error_generic));
break;
// Timeout error.
case GoogleSignInStatusCodes.TIMEOUT:
AppLog.e(T.NUX, "Google Login Failed: timeout error.");
showErrorDialog(getString(R.string.google_error_timeout));
break;
// Unknown error.
default:
AppLog.e(T.NUX, "Google Login Failed: unknown error.");
showErrorDialog(getString(R.string.login_error_generic));
break;
}
}
} else if (result == RESULT_CANCELED) {
mAnalyticsListener.trackSocialButtonFailure();
AppLog.e(T.NUX, "Google Login Failed: result was CANCELED.");
} else {
mAnalyticsListener.trackSocialButtonFailure();
AppLog.e(T.NUX, "Google Login Failed: result was not OK or CANCELED.");
showErrorDialog(getString(R.string.login_error_generic));
}
break;
}
}
Aggregations