package cgeo.geocaching.settings; import cgeo.geocaching.R; import cgeo.geocaching.connector.gc.GCConnector; import cgeo.geocaching.connector.gc.GCLogin; import cgeo.geocaching.enumerations.StatusCode; import cgeo.geocaching.network.HtmlImage; public class GCAuthorizationActivity extends AbstractCredentialsAuthorizationActivity { @Override protected String getCreateAccountUrl() { return GCConnector.getInstance().getCreateAccountUrl(); } @Override protected void setCredentials(final Credentials credentials) { Settings.setCredentials(GCConnector.getInstance(), credentials); } @Override protected String getAuthTitle() { return res.getString(R.string.settings_title_gc); } @Override protected StatusCode checkCredentials(final Credentials credentials) { final Credentials currentCredentials = GCConnector.getInstance().getCredentials(); if (currentCredentials.isInvalid() || !currentCredentials.getUserName().equals(credentials.getUserName()) || !currentCredentials.getPassword().equals(credentials.getPassword())) { // Force Logout before trying new credentials GCLogin.getInstance().logout(); } final StatusCode status = GCLogin.getInstance().login(credentials); if (status == StatusCode.NO_ERROR) { // Obtain avatar URL final String avatarUrl = GCLogin.getInstance().getAvatarUrl(); // Force refresh/store avatar final HtmlImage imgGetter = new HtmlImage(HtmlImage.SHARED, false, false, true); imgGetter.getDrawable(avatarUrl); // Save avatar url Settings.setAvatarUrl(GCConnector.getInstance(), avatarUrl); } return status; } }