aboutsummaryrefslogtreecommitdiff
path: root/samples
diff options
context:
space:
mode:
authorSam Judd <sam@bu.mp>2013-07-30 10:38:38 -0700
committerSam Judd <sam@bu.mp>2013-07-30 17:30:11 -0700
commitee687a44213cf94c1f4c18d1e38eb57bea182a35 (patch)
tree931f811247e0143fe017d5edc541d16e57a92797 /samples
parent878ad09942bf74517a761cc80815038bdbed7b06 (diff)
downloadglide-ee687a44213cf94c1f4c18d1e38eb57bea182a35.tar.gz
Cache inefficient Url creation per photo
String.format is rather terrible
Diffstat (limited to 'samples')
-rw-r--r--samples/flickr/src/com/bumptech/flickr/api/Api.java9
-rw-r--r--samples/flickr/src/com/bumptech/flickr/api/Photo.java8
2 files changed, 15 insertions, 2 deletions
diff --git a/samples/flickr/src/com/bumptech/flickr/api/Api.java b/samples/flickr/src/com/bumptech/flickr/api/Api.java
index 0d526cbb..b55ae551 100644
--- a/samples/flickr/src/com/bumptech/flickr/api/Api.java
+++ b/samples/flickr/src/com/bumptech/flickr/api/Api.java
@@ -30,7 +30,8 @@ public class Api {
private static Api API;
private static final String API_KEY = "f0e6fbb5fdf1f3842294a1d21f84e8a6";
private static final String SIGNED_API_URL = "http://api.flickr.com/services/rest/?method=%s&format=json&api_key=" + API_KEY;
- private static final String PHOTO_URL = "http://farm%s.staticflickr.com/%s/%s_%s_%s.jpg";
+ //incomplete size independent url for photos that can be cached per photo
+ private static final String CACHEABLE_PHOTO_URL = "http://farm%s.staticflickr.com/%s/%s_%s_";
private static final Map<Integer, String> EDGE_TO_SIZE_KEY = new HashMap<Integer, String>() {{
put(75, "s");
@@ -82,6 +83,10 @@ public class Api {
return getPhotoUrl(photo, getSizeKey(width, height));
}
+ public static String getCacheableUrl(Photo photo) {
+ return String.format(CACHEABLE_PHOTO_URL, photo.farm, photo.server, photo.id, photo.secret);
+ }
+
private static String getUrlForMethod(String method) {
return String.format(SIGNED_API_URL, method);
}
@@ -91,7 +96,7 @@ public class Api {
}
private static String getPhotoUrl(Photo photo, String sizeKey) {
- return String.format(PHOTO_URL, photo.farm, photo.server, photo.id, photo.secret, sizeKey);
+ return photo.getPartialUrl() + sizeKey + ".jpg";
}
public void search(String text, final SearchCallback cb) {
diff --git a/samples/flickr/src/com/bumptech/flickr/api/Photo.java b/samples/flickr/src/com/bumptech/flickr/api/Photo.java
index 448364ed..2635fcc0 100644
--- a/samples/flickr/src/com/bumptech/flickr/api/Photo.java
+++ b/samples/flickr/src/com/bumptech/flickr/api/Photo.java
@@ -17,6 +17,7 @@ public class Photo {
public final String server;
public final String farm;
public final String secret;
+ private String partialUrl = null;
public Photo(JSONObject jsonPhoto) throws JSONException {
this.id = jsonPhoto.getString("id");
@@ -27,4 +28,11 @@ public class Photo {
this.secret = jsonPhoto.getString("secret");
}
+ public String getPartialUrl() {
+ if (partialUrl == null ) {
+ partialUrl = Api.getCacheableUrl(this);
+ }
+ return partialUrl;
+ }
+
}