diff options
author | Sam Judd <sam@bu.mp> | 2013-07-30 10:38:38 -0700 |
---|---|---|
committer | Sam Judd <sam@bu.mp> | 2013-07-30 17:30:11 -0700 |
commit | ee687a44213cf94c1f4c18d1e38eb57bea182a35 (patch) | |
tree | 931f811247e0143fe017d5edc541d16e57a92797 /samples | |
parent | 878ad09942bf74517a761cc80815038bdbed7b06 (diff) | |
download | glide-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.java | 9 | ||||
-rw-r--r-- | samples/flickr/src/com/bumptech/flickr/api/Photo.java | 8 |
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; + } + } |