Skip to content

Commit fe48809

Browse files
committed
Merge branch 'develop' of https://github.com/wordpress-mobile/WordPress-Android into issue/2306-reader-feed-preview
Conflicts: WordPress/src/main/java/org/wordpress/android/ui/reader/adapters/ReaderBlogAdapter.java WordPress/src/main/java/org/wordpress/android/ui/stats/StatsFollowersFragment.java
2 parents 30ce072 + 4f21616 commit fe48809

File tree

2 files changed

+70
-25
lines changed

2 files changed

+70
-25
lines changed
Lines changed: 70 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,84 @@
11
package org.wordpress.android.util;
22

3+
import android.text.TextUtils;
4+
5+
/**
6+
* see https://en.gravatar.com/site/implement/images/
7+
*/
38
public class GravatarUtils {
9+
10+
// by default tell gravatar to respond to non-existent images with a 404 - this means
11+
// it's up to the caller to catch the 404 and provide a suitable default image
12+
private static final DefaultImage DEFAULT_GRAVATAR = DefaultImage.STATUS_404;
13+
14+
public static enum DefaultImage {
15+
MYSTERY_MAN,
16+
STATUS_404,
17+
IDENTICON,
18+
MONSTER,
19+
WAVATAR,
20+
RETRO,
21+
BLANK;
22+
23+
@Override
24+
public String toString() {
25+
switch (this) {
26+
case MYSTERY_MAN:
27+
return "mm";
28+
case STATUS_404:
29+
return "404";
30+
case IDENTICON:
31+
return "identicon";
32+
case MONSTER:
33+
return "monsterid";
34+
case WAVATAR:
35+
return "wavatar";
36+
case RETRO:
37+
return "retro";
38+
default:
39+
return "blank";
40+
}
41+
}
42+
}
43+
444
/*
5-
* see https://en.gravatar.com/site/implement/images/
6-
*/
45+
* gravatars often contain the ?s= parameter which determines their size - detect this and
46+
* replace it with a new ?s= parameter which requests the avatar at the exact size needed
47+
*/
48+
public static String fixGravatarUrl(final String imageUrl, int avatarSz) {
49+
return fixGravatarUrl(imageUrl, avatarSz, DEFAULT_GRAVATAR);
50+
}
51+
public static String fixGravatarUrl(final String imageUrl, int avatarSz, DefaultImage defaultImage) {
52+
if (TextUtils.isEmpty(imageUrl)) {
53+
return "";
54+
}
55+
56+
// if this isn't a gravatar image, return as resized photon image url
57+
if (!imageUrl.contains("gravatar.com")) {
58+
return PhotonUtils.getPhotonImageUrl(imageUrl, avatarSz, avatarSz);
59+
}
60+
61+
// remove all other params, then add query string for size and default image
62+
return UrlUtils.removeQuery(imageUrl) + "?s=" + avatarSz + "&d=" + defaultImage.toString();
63+
}
64+
765
public static String gravatarFromEmail(final String email, int size) {
66+
return gravatarFromEmail(email, size, DEFAULT_GRAVATAR);
67+
}
68+
public static String gravatarFromEmail(final String email, int size, DefaultImage defaultImage) {
869
return "http://gravatar.com/avatar/"
970
+ StringUtils.getMd5Hash(StringUtils.notNullStr(email))
10-
+ "?d=mm&size=" + Integer.toString(size);
71+
+ "?d=" + defaultImage.toString()
72+
+ "&size=" + Integer.toString(size);
1173
}
1274

13-
/*
14-
* important: the 404 default means the request will 404 if there is no blavatar
15-
* for the passed site - so the caller needs to trap the 404 to provide a default
16-
*/
1775
public static String blavatarFromUrl(final String url, int size) {
76+
return blavatarFromUrl(url, size, DEFAULT_GRAVATAR);
77+
}
78+
public static String blavatarFromUrl(final String url, int size, DefaultImage defaultImage) {
1879
return "http://gravatar.com/blavatar/"
1980
+ StringUtils.getMd5Hash(UrlUtils.getDomainFromUrl(url))
20-
+ "?d=404&size=" + Integer.toString(size);
81+
+ "?d=" + defaultImage.toString()
82+
+ "&size=" + Integer.toString(size);
2183
}
2284
}

WordPressUtils/src/main/java/org/wordpress/android/util/PhotonUtils.java

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -12,23 +12,6 @@ private PhotonUtils() {
1212
throw new AssertionError();
1313
}
1414

15-
/*
16-
* gravatars often contain the ?s= parameter which determines their size - detect this and
17-
* replace it with a new ?s= parameter which requests the avatar at the exact size needed
18-
*/
19-
public static String fixAvatar(final String imageUrl, int avatarSz) {
20-
if (TextUtils.isEmpty(imageUrl))
21-
return "";
22-
23-
// if this isn't a gravatar image, return as resized photon image url
24-
if (!imageUrl.contains("gravatar.com")) {
25-
return getPhotonImageUrl(imageUrl, avatarSz, avatarSz);
26-
}
27-
28-
// remove all other params, then add query string for size and "mystery man" default
29-
return UrlUtils.removeQuery(imageUrl) + "?s=" + avatarSz + "&d=mm";
30-
}
31-
3215
/*
3316
* returns true if the passed url is an obvious "mshots" url
3417
*/

0 commit comments

Comments
 (0)