aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrsudev <rasch@munin-soft.de>2015-10-03 00:35:35 +0200
committerrsudev <rasch@munin-soft.de>2015-10-03 00:35:35 +0200
commitd581ff572cb28bfe79400e35105506ad977d5173 (patch)
treef00ef98818d436c4af849e771fe00d7de71a57da
parent0498e52f9a09b4499933fe107f252b9cf2b8d6d3 (diff)
downloadcgeo-d581ff572cb28bfe79400e35105506ad977d5173.zip
cgeo-d581ff572cb28bfe79400e35105506ad977d5173.tar.gz
cgeo-d581ff572cb28bfe79400e35105506ad977d5173.tar.bz2
Fixes #5218, NPE checking credentials in preference
- make all credential methods return <EMPTY, EMPTY> instead of null
-rw-r--r--main/src/cgeo/geocaching/gcvote/GCVote.java6
-rw-r--r--main/src/cgeo/geocaching/settings/AbstractCheckCredentialsPreference.java2
-rw-r--r--main/src/cgeo/geocaching/settings/CheckECCredentialsPreference.java2
-rw-r--r--main/src/cgeo/geocaching/settings/CheckGCVoteCredentialsPreference.java6
-rw-r--r--main/src/cgeo/geocaching/settings/CheckGcCredentialsPreference.java2
-rw-r--r--main/src/cgeo/geocaching/settings/Settings.java5
6 files changed, 16 insertions, 7 deletions
diff --git a/main/src/cgeo/geocaching/gcvote/GCVote.java b/main/src/cgeo/geocaching/gcvote/GCVote.java
index 1c99367..188af88 100644
--- a/main/src/cgeo/geocaching/gcvote/GCVote.java
+++ b/main/src/cgeo/geocaching/gcvote/GCVote.java
@@ -46,7 +46,7 @@ public final class GCVote {
public static StatusCode login() {
final ImmutablePair<String, String> login = Settings.getGCVoteLogin();
- if (login == null) {
+ if (StringUtils.isBlank(login.left)) {
Log.e("Credentials can't be retreived");
return StatusCode.NO_LOGIN_INFO_STORED;
}
@@ -110,7 +110,7 @@ public final class GCVote {
final Parameters params = new Parameters("version", "cgeo");
final ImmutablePair<String, String> login = Settings.getGCVoteLogin();
- if (login != null) {
+ if (StringUtils.isNotBlank(login.left)) {
params.put("userName", login.left, "password", login.right);
}
@@ -181,7 +181,7 @@ public final class GCVote {
}
final ImmutablePair<String, String> login = Settings.getGCVoteLogin();
- if (login == null) {
+ if (StringUtils.isBlank(login.left)) {
Log.e("GCVote.setRating: cannot find credentials");
return false;
}
diff --git a/main/src/cgeo/geocaching/settings/AbstractCheckCredentialsPreference.java b/main/src/cgeo/geocaching/settings/AbstractCheckCredentialsPreference.java
index 7978d76..08babd5 100644
--- a/main/src/cgeo/geocaching/settings/AbstractCheckCredentialsPreference.java
+++ b/main/src/cgeo/geocaching/settings/AbstractCheckCredentialsPreference.java
@@ -9,6 +9,7 @@ import cgeo.geocaching.utils.RxUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.tuple.ImmutablePair;
+import org.eclipse.jdt.annotation.NonNull;
import rx.Observable;
import rx.android.app.AppObservable;
@@ -37,6 +38,7 @@ public abstract class AbstractCheckCredentialsPreference extends AbstractClickab
return new LoginCheckClickListener(activity);
}
+ @NonNull
protected abstract ImmutablePair<String, String> getCredentials();
/**
diff --git a/main/src/cgeo/geocaching/settings/CheckECCredentialsPreference.java b/main/src/cgeo/geocaching/settings/CheckECCredentialsPreference.java
index 8f7da2c..2aec35f 100644
--- a/main/src/cgeo/geocaching/settings/CheckECCredentialsPreference.java
+++ b/main/src/cgeo/geocaching/settings/CheckECCredentialsPreference.java
@@ -5,6 +5,7 @@ import cgeo.geocaching.connector.ec.ECLogin;
import cgeo.geocaching.enumerations.StatusCode;
import org.apache.commons.lang3.tuple.ImmutablePair;
+import org.eclipse.jdt.annotation.NonNull;
import rx.Observable;
@@ -23,6 +24,7 @@ public class CheckECCredentialsPreference extends AbstractCheckCredentialsPrefer
}
@Override
+ @NonNull
protected ImmutablePair<String, String> getCredentials() {
return Settings.getCredentials(ECConnector.getInstance());
}
diff --git a/main/src/cgeo/geocaching/settings/CheckGCVoteCredentialsPreference.java b/main/src/cgeo/geocaching/settings/CheckGCVoteCredentialsPreference.java
index eb3723e..1de03ea 100644
--- a/main/src/cgeo/geocaching/settings/CheckGCVoteCredentialsPreference.java
+++ b/main/src/cgeo/geocaching/settings/CheckGCVoteCredentialsPreference.java
@@ -4,13 +4,14 @@ import cgeo.geocaching.enumerations.StatusCode;
import cgeo.geocaching.gcvote.GCVote;
import org.apache.commons.lang3.tuple.ImmutablePair;
+import org.eclipse.jdt.annotation.NonNull;
+
+import rx.Observable;
import android.content.Context;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
-import rx.Observable;
-
public class CheckGCVoteCredentialsPreference extends AbstractCheckCredentialsPreference {
public CheckGCVoteCredentialsPreference(final Context context, final AttributeSet attrs) {
@@ -22,6 +23,7 @@ public class CheckGCVoteCredentialsPreference extends AbstractCheckCredentialsPr
}
@Override
+ @NonNull
protected ImmutablePair<String, String> getCredentials() {
return Settings.getGCVoteLogin();
}
diff --git a/main/src/cgeo/geocaching/settings/CheckGcCredentialsPreference.java b/main/src/cgeo/geocaching/settings/CheckGcCredentialsPreference.java
index 04f406f..316728b 100644
--- a/main/src/cgeo/geocaching/settings/CheckGcCredentialsPreference.java
+++ b/main/src/cgeo/geocaching/settings/CheckGcCredentialsPreference.java
@@ -4,6 +4,7 @@ import cgeo.geocaching.connector.gc.GCLogin;
import cgeo.geocaching.enumerations.StatusCode;
import org.apache.commons.lang3.tuple.ImmutablePair;
+import org.eclipse.jdt.annotation.NonNull;
import rx.Observable;
@@ -22,6 +23,7 @@ public class CheckGcCredentialsPreference extends AbstractCheckCredentialsPrefer
}
@Override
+ @NonNull
protected ImmutablePair<String, String> getCredentials() {
return Settings.getGcCredentials();
}
diff --git a/main/src/cgeo/geocaching/settings/Settings.java b/main/src/cgeo/geocaching/settings/Settings.java
index 6fc32cf..e186f35 100644
--- a/main/src/cgeo/geocaching/settings/Settings.java
+++ b/main/src/cgeo/geocaching/settings/Settings.java
@@ -321,6 +321,7 @@ public class Settings {
*
* @return a pair either with (login, password) or (empty, empty) if no valid information is stored
*/
+ @NonNull
public static ImmutablePair<String, String> getCredentials(final @NonNull ICredentials connector) {
final String username = getString(connector.getUsernamePreferenceKey(), null);
final String password = getString(connector.getPasswordPreferenceKey(), null);
@@ -388,7 +389,7 @@ public class Settings {
}
public static boolean isGCVoteLogin() {
- return getGCVoteLogin() != null;
+ return StringUtils.isNotBlank(getGCVoteLogin().left);
}
public static ImmutablePair<String, String> getGCVoteLogin() {
@@ -396,7 +397,7 @@ public class Settings {
final String password = getString(R.string.pref_pass_vote, null);
if (StringUtils.isBlank(username) || StringUtils.isBlank(password)) {
- return null;
+ return new ImmutablePair<>(StringUtils.EMPTY, StringUtils.EMPTY);
}
return new ImmutablePair<>(username, password);