import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
import android.content.Context;
import android.graphics.Bitmap;
import com.jakewharton.disklrucache.DiskLruCache;
import com.owncloud.android.BuildConfig;
-import com.owncloud.android.utils.Log_OC;
+import com.owncloud.android.lib.common.utils.Log_OC;
public class DiskLruImageCache {
private static final int CACHE_VERSION = 1;
private static final int VALUE_COUNT = 1;
private static final int IO_BUFFER_SIZE = 8 * 1024;
- private static final Pattern CAPITAL_LETTERS = Pattern.compile("[A-Z]");
-
- private StringBuffer mValidKeyBuffer = new StringBuffer(64);
- private StringBuffer mConversionBuffer = new StringBuffer(2).append('_');
- private static final String TAG = "DiskLruImageCache";
+ private static final String TAG = DiskLruImageCache.class.getSimpleName();
public DiskLruImageCache( Context context,String uniqueName, int diskCacheSize,
- CompressFormat compressFormat, int quality ) {
- try {
- final File diskCacheDir = getDiskCacheDir(context, uniqueName );
- mDiskCache = DiskLruCache.open(
- diskCacheDir, CACHE_VERSION, VALUE_COUNT, diskCacheSize
- );
- mCompressFormat = compressFormat;
- mCompressQuality = quality;
- } catch (IOException e) {
- e.printStackTrace();
- }
+ CompressFormat compressFormat, int quality ) throws IOException {
+ final File diskCacheDir = getDiskCacheDir(context, uniqueName );
+ mDiskCache = DiskLruCache.open(
+ diskCacheDir, CACHE_VERSION, VALUE_COUNT, diskCacheSize
+ );
+ mCompressFormat = compressFormat;
+ mCompressQuality = quality;
}
private boolean writeBitmapToFile( Bitmap bitmap, DiskLruCache.Editor editor )
}
private String convertToValidKey(String key) {
- Matcher capitalLettersMatcher = CAPITAL_LETTERS.matcher(key);
- mValidKeyBuffer.delete(0, mValidKeyBuffer.length());
- mConversionBuffer.delete(1, mConversionBuffer.length());
-
- while (capitalLettersMatcher.find()) {
- mConversionBuffer.replace(1, 2, capitalLettersMatcher.group(0).toLowerCase());
- capitalLettersMatcher.appendReplacement(mValidKeyBuffer, mConversionBuffer.toString());
- }
- capitalLettersMatcher.appendTail(mValidKeyBuffer);
- return mValidKeyBuffer.toString();
+ return Integer.toString(key.hashCode());
}
+ /**
+ * Remove passed key from cache
+ * @param key
+ */
+ public void removeKey( String key ) {
+ String validKey = convertToValidKey(key);
+ try {
+ mDiskCache.remove(validKey);
+ Log.d(TAG, "removeKey from cache: " + validKey);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
}
\ No newline at end of file