/** * galaxy inc. * meetup client for android */ package com.galaxy.meetup.client.android.content.cache; /** * * @author sihai * */ public abstract class CachedImageRequest extends ImageRequest { private String mCacheDir; private String mCacheFileName; public CachedImageRequest() { } private void buildCacheFilePath() { String s = getCanonicalDownloadUrl(); long l = 0x3ffffffffffe5L; int i = s.length(); for (int j = 0; j < i; j++) l = 31L * l + (long) s.charAt(j); mCacheDir = Integer.toHexString(i % 16); mCacheFileName = (new StringBuilder()).append(getCacheFilePrefix()) .append(Long.toHexString(0xfffffffffffffffL & l >> 4)) .toString(); } public final String getCacheDir() { if(mCacheDir == null) buildCacheFilePath(); return mCacheDir; } public final String getCacheFileName() { if(mCacheFileName == null) buildCacheFilePath(); return mCacheFileName; } protected abstract String getCacheFilePrefix(); public abstract String getCanonicalDownloadUrl(); public abstract String getDownloadUrl(); public String getUriForLogging() { return getDownloadUrl(); } }