/** * galaxy inc. * meetup client for android */ package com.galaxy.meetup.client.android.content; import android.text.TextUtils; import com.galaxy.meetup.client.android.content.cache.CachedImageRequest; import com.galaxy.meetup.client.util.ImageUtils; /** * * @author sihai * */ public class AvatarImageRequest extends CachedImageRequest { private String mDownloadUrl; private final String mGaiaId; private int mHashCode; private final int mSize; private final int mSizeInPx; private final String mUrl; public AvatarImageRequest(String gaiaId, String url, int size, int sizeInPx) { mGaiaId = gaiaId; mUrl = url; mSize = size; mSizeInPx = sizeInPx; } @Override protected String getCacheFilePrefix() { String prefix = null; switch(mSize) { case 0: prefix = "AT"; break; case 1: prefix = "AS"; break; case 2: prefix = "AM"; break; default: break; } return prefix; } public final String getCanonicalDownloadUrl() { return getDownloadUrl(); } public final String getDownloadUrl() { if(mDownloadUrl == null) mDownloadUrl = ImageUtils.getCroppedAndResizedUrl(mSizeInPx, mUrl); return mDownloadUrl; } public final String getGaiaId() { return mGaiaId; } public final String getUriForLogging() { return (new StringBuilder("avatar:")).append(mGaiaId).append("/size=").append(mSize).toString(); } public final boolean isEmpty() { return false; } public final int hashCode() { if (mHashCode == 0) { if (mUrl != null) mHashCode = mUrl.hashCode(); else mHashCode = 1; mHashCode = 31 * mHashCode + mSize; } return mHashCode; } public final boolean equals(Object obj) { if(!(obj instanceof AvatarImageRequest)) { return false; } AvatarImageRequest avatarimagerequest = (AvatarImageRequest)obj; if(avatarimagerequest.mSize != mSize || !TextUtils.equals(mUrl, avatarimagerequest.mUrl)) { return false; } return true; } public final String toString() { String size = null; switch(mSize) { case 0: size = "tiny"; break; case 1: size = "small"; break; case 2: size = "medium"; break; default: break; } return (new StringBuilder("AvatarImageRequest: ")).append(mGaiaId).append(" (").append(size).append(")").toString(); } }