aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSamuel Tardieu <sam@rfc1149.net>2014-08-12 15:59:20 +0200
committerSamuel Tardieu <sam@rfc1149.net>2014-08-12 16:02:22 +0200
commit93714d1741b23529bf607442ddabd866dc67a077 (patch)
tree76acd9cf867608d3b93d26fa22dac2b8eafb4c69
parent5f8e8986ecea475f9afdd6bf2bdd4ac9378ddf60 (diff)
downloadcgeo-93714d1741b23529bf607442ddabd866dc67a077.zip
cgeo-93714d1741b23529bf607442ddabd866dc67a077.tar.gz
cgeo-93714d1741b23529bf607442ddabd866dc67a077.tar.bz2
fix #4165: avatar no longer recognized
-rw-r--r--main/src/cgeo/geocaching/connector/gc/GCConstants.java2
-rw-r--r--main/src/cgeo/geocaching/connector/gc/GCLogin.java13
2 files changed, 4 insertions, 11 deletions
diff --git a/main/src/cgeo/geocaching/connector/gc/GCConstants.java b/main/src/cgeo/geocaching/connector/gc/GCConstants.java
index 7cf43dc..fbe5323 100644
--- a/main/src/cgeo/geocaching/connector/gc/GCConstants.java
+++ b/main/src/cgeo/geocaching/connector/gc/GCConstants.java
@@ -73,7 +73,7 @@ public final class GCConstants {
public static final String MEMBER_STATUS_PM = "Premium Member";
/** Use replaceAll("[,.]","") on the resulting string before converting to an int */
public static final Pattern PATTERN_CACHES_FOUND = Pattern.compile("<strong[^>]*>.*?([\\d,.]+) Caches? Found", Pattern.DOTALL);
- public static final Pattern PATTERN_AVATAR_IMAGE_PROFILE_PAGE = Pattern.compile("src=\"(https?://(imgcdn\\.geocaching\\.com|[^>\"]+\\.cloudfront\\.net)/avatar/[0-9a-f-]+\\.jpg)\"[^>]*alt=\"Avatar\"");
+ public static final Pattern PATTERN_AVATAR_IMAGE_PROFILE_PAGE = Pattern.compile("src=\"(https?://(imgcdn\\.geocaching\\.com|[^>\"]+\\.cloudfront\\.net)/avatar/[0-9a-f-]+\\.jpg)\"[^>]*alt=\"");
public static final Pattern PATTERN_LOGIN_NAME_LOGIN_PAGE = Pattern.compile("ctl00_ContentBody_lbUsername\">.*<strong>(.*)</strong>");
public static final Pattern PATTERN_CUSTOMDATE = Pattern.compile("<option selected=\"selected\" value=\"([ /Mdy-]+)\">");
public static final Pattern PATTERN_MAP_LOGGED_IN = Pattern.compile("<a href=\"https?://www.geocaching.com/my/\" class=\"CommonUsername\"");
diff --git a/main/src/cgeo/geocaching/connector/gc/GCLogin.java b/main/src/cgeo/geocaching/connector/gc/GCLogin.java
index e84851e..456a81b 100644
--- a/main/src/cgeo/geocaching/connector/gc/GCLogin.java
+++ b/main/src/cgeo/geocaching/connector/gc/GCLogin.java
@@ -22,8 +22,6 @@ import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
import rx.Observable;
-import rx.functions.Func0;
-import rx.util.async.Async;
import android.graphics.drawable.Drawable;
@@ -271,14 +269,9 @@ public class GCLogin extends AbstractLogin {
setActualCachesFound(Integer.parseInt(TextUtils.getMatch(profile, GCConstants.PATTERN_CACHES_FOUND, true, "-1").replaceAll("[,.]", "")));
final String avatarURL = TextUtils.getMatch(profile, GCConstants.PATTERN_AVATAR_IMAGE_PROFILE_PAGE, false, null);
- if (null != avatarURL) {
- return Async.start(new Func0<Drawable>() {
- @Override
- public Drawable call() {
- final HtmlImage imgGetter = new HtmlImage("", false, 0, false);
- return imgGetter.getDrawable(avatarURL.replace("avatar", "user/large"));
- }
- });
+ if (avatarURL != null) {
+ final HtmlImage imgGetter = new HtmlImage("", false, 0, false);
+ return imgGetter.fetchDrawable(avatarURL.replace("avatar", "user/large")).cast(Drawable.class);
}
// No match? There may be no avatar set by user.
Log.d("No avatar set for user");