aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2014-02-20 11:26:50 +0100
committerSamuel Tardieu <sam@rfc1149.net>2014-02-22 12:46:59 +0100
commitebebe91b77c5473aa58f72f9f45cb49af6c2dcaf (patch)
tree768cf54720c66c4b60c1ad6538971866affe3854
parent638b0546668884d2e0b63e95123f766cc4e96d8a (diff)
downloadcgeo-ebebe91b77c5473aa58f72f9f45cb49af6c2dcaf.zip
cgeo-ebebe91b77c5473aa58f72f9f45cb49af6c2dcaf.tar.gz
cgeo-ebebe91b77c5473aa58f72f9f45cb49af6c2dcaf.tar.bz2
refactoring: properly type login result
-rw-r--r--main/src/cgeo/geocaching/settings/AbstractCheckCredentialsPreference.java16
-rw-r--r--main/src/cgeo/geocaching/settings/CheckECCredentialsPreference.java10
-rw-r--r--main/src/cgeo/geocaching/settings/CheckGcCredentialsPreference.java14
3 files changed, 19 insertions, 21 deletions
diff --git a/main/src/cgeo/geocaching/settings/AbstractCheckCredentialsPreference.java b/main/src/cgeo/geocaching/settings/AbstractCheckCredentialsPreference.java
index bcc6942..1efbc96 100644
--- a/main/src/cgeo/geocaching/settings/AbstractCheckCredentialsPreference.java
+++ b/main/src/cgeo/geocaching/settings/AbstractCheckCredentialsPreference.java
@@ -38,7 +38,7 @@ public abstract class AbstractCheckCredentialsPreference extends AbstractClickab
protected abstract ImmutablePair<String, String> getCredentials();
- protected abstract Object login();
+ protected abstract ImmutablePair<StatusCode, Drawable> login();
private class LoginCheckClickListener implements OnPreferenceClickListener {
final private SettingsActivity activity;
@@ -65,22 +65,22 @@ public abstract class AbstractCheckCredentialsPreference extends AbstractClickab
loginDialog.setCancelable(false);
Cookies.clearCookies();
- AndroidObservable.fromActivity(activity, Observable.defer(new Func0<Observable<?>>() {
+ AndroidObservable.fromActivity(activity, Observable.defer(new Func0<Observable<ImmutablePair<StatusCode, Drawable>>>() {
@Override
- public Observable<?> call() {
+ public Observable<ImmutablePair<StatusCode, Drawable>> call() {
return Observable.from(login());
}
- }).subscribeOn(Schedulers.io())).subscribe(new Action1<Object>() {
+ }).subscribeOn(Schedulers.io())).subscribe(new Action1<ImmutablePair<StatusCode, Drawable>>() {
@Override
- public void call(final Object obj) {
+ public void call(final ImmutablePair<StatusCode, Drawable> loginInfo) {
loginDialog.dismiss();
- if (obj == null || obj instanceof Drawable) {
- Dialogs.message(activity, R.string.init_login_popup, R.string.init_login_popup_ok, (Drawable) obj);
+ if (loginInfo.getLeft() == StatusCode.NO_ERROR) {
+ Dialogs.message(activity, R.string.init_login_popup, R.string.init_login_popup_ok, loginInfo.getRight());
} else {
Dialogs.message(activity, R.string.init_login_popup,
res.getString(R.string.init_login_popup_failed_reason)
+ " "
- + ((StatusCode) obj).getErrorString(res)
+ + loginInfo.getLeft().getErrorString(res)
+ ".");
}
activity.initBasicMemberPreferences();
diff --git a/main/src/cgeo/geocaching/settings/CheckECCredentialsPreference.java b/main/src/cgeo/geocaching/settings/CheckECCredentialsPreference.java
index 661e111..c1cf740 100644
--- a/main/src/cgeo/geocaching/settings/CheckECCredentialsPreference.java
+++ b/main/src/cgeo/geocaching/settings/CheckECCredentialsPreference.java
@@ -7,6 +7,7 @@ import cgeo.geocaching.enumerations.StatusCode;
import org.apache.commons.lang3.tuple.ImmutablePair;
import android.content.Context;
+import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
public class CheckECCredentialsPreference extends AbstractCheckCredentialsPreference {
@@ -25,12 +26,7 @@ public class CheckECCredentialsPreference extends AbstractCheckCredentialsPrefer
}
@Override
- protected Object login() {
- final StatusCode loginResult = ECLogin.getInstance().login();
- Object payload = loginResult;
- if (loginResult == StatusCode.NO_ERROR) {
- payload = null;
- }
- return payload;
+ protected ImmutablePair<StatusCode, Drawable> login() {
+ return new ImmutablePair<StatusCode, Drawable>(ECLogin.getInstance().login(), null);
}
}
diff --git a/main/src/cgeo/geocaching/settings/CheckGcCredentialsPreference.java b/main/src/cgeo/geocaching/settings/CheckGcCredentialsPreference.java
index f65ba1b..8257fdd 100644
--- a/main/src/cgeo/geocaching/settings/CheckGcCredentialsPreference.java
+++ b/main/src/cgeo/geocaching/settings/CheckGcCredentialsPreference.java
@@ -6,6 +6,7 @@ import cgeo.geocaching.enumerations.StatusCode;
import org.apache.commons.lang3.tuple.ImmutablePair;
import android.content.Context;
+import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
public class CheckGcCredentialsPreference extends AbstractCheckCredentialsPreference {
@@ -24,13 +25,14 @@ public class CheckGcCredentialsPreference extends AbstractCheckCredentialsPrefer
}
@Override
- protected Object login() {
+ protected ImmutablePair<StatusCode, Drawable> login() {
final StatusCode loginResult = GCLogin.getInstance().login();
- Object payload = loginResult;
- if (loginResult == StatusCode.NO_ERROR) {
- GCLogin.detectGcCustomDate();
- payload = GCLogin.getInstance().downloadAvatarAndGetMemberStatus();
+ switch (loginResult) {
+ case NO_ERROR:
+ GCLogin.detectGcCustomDate();
+ return new ImmutablePair<StatusCode, Drawable>(StatusCode.NO_ERROR, GCLogin.getInstance().downloadAvatarAndGetMemberStatus());
+ default:
+ return new ImmutablePair<StatusCode, Drawable>(loginResult, null);
}
- return payload;
}
}