diff --git a/astrid/plugin-src/com/todoroo/astrid/actfm/TagSettingsActivity.java b/astrid/plugin-src/com/todoroo/astrid/actfm/TagSettingsActivity.java
index 1df60b4bf..9216ef820 100644
--- a/astrid/plugin-src/com/todoroo/astrid/actfm/TagSettingsActivity.java
+++ b/astrid/plugin-src/com/todoroo/astrid/actfm/TagSettingsActivity.java
@@ -55,7 +55,6 @@ import com.todoroo.astrid.data.TagData;
import com.todoroo.astrid.data.TagMetadata;
import com.todoroo.astrid.data.User;
import com.todoroo.astrid.helper.AsyncImageView;
-import com.todoroo.astrid.helper.ImageDiskCache;
import com.todoroo.astrid.helper.UUIDHelper;
import com.todoroo.astrid.service.StatisticsConstants;
import com.todoroo.astrid.service.StatisticsService;
@@ -374,7 +373,7 @@ public class TagSettingsActivity extends SherlockFragmentActivity {
private void saveTagPictureLocally(Bitmap bitmap) {
if (bitmap == null) return;
try {
- String tagPicture = ImageDiskCache.getPictureHash(tagData);
+ String tagPicture = RemoteModel.PictureHelper.getPictureHash(tagData);
imageCache.put(tagPicture, bitmap);
tagData.setValue(TagData.PICTURE, tagPicture);
}
diff --git a/astrid/src/com/todoroo/astrid/helper/ImageDiskCache.java b/astrid/src/com/todoroo/astrid/helper/ImageDiskCache.java
deleted file mode 100644
index cd7f0dbc9..000000000
--- a/astrid/src/com/todoroo/astrid/helper/ImageDiskCache.java
+++ /dev/null
@@ -1,213 +0,0 @@
-/**
- * Copyright (c) 2012 Todoroo Inc
- *
- * See the file "LICENSE" for the full license governing this code.
- */
-package com.todoroo.astrid.helper;
-/*
- * Copyright (C) 2011 MIT Mobile Experience Lab
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- */
-import java.io.File;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.Date;
-
-import android.content.Context;
-import android.graphics.Bitmap;
-import android.graphics.Bitmap.CompressFormat;
-import android.graphics.BitmapFactory;
-import android.net.Uri;
-import android.text.TextUtils;
-import android.util.Log;
-
-import com.todoroo.andlib.service.ContextManager;
-import com.todoroo.andlib.utility.DateUtilities;
-import com.todoroo.astrid.data.TagData;
-import com.todoroo.astrid.data.UserActivity;
-
-/**
- *
- * An image download-and-cacher that also knows how to efficiently generate
- * thumbnails of various sizes.
- *
- *
- *
- * The cache is shared with the entire process, so make sure you
- * {@link #registerOnImageLoadListener(OnImageLoadListener)} and
- * {@link #unregisterOnImageLoadListener(OnImageLoadListener)} any load
- * listeners in your activities.
- *
- *
- * @author Steve Pomeroy
- *
- */
-@SuppressWarnings("nls")
-public class ImageDiskCache extends DiskCache {
- private static final String TAG = ImageDiskCache.class.getSimpleName();
- public static final String CACHED_IDENTIFIER = "cached::";
-
- static final boolean DEBUG = false;
-
-
- private long mIDCounter = 0;
-
- private static ImageDiskCache mInstance;
-
-
- private final CompressFormat mCompressFormat;
- private final int mQuality;
-
- public static ImageDiskCache getInstance() {
- if (mInstance == null) {
- mInstance = new ImageDiskCache(ContextManager.getContext().getCacheDir(), CompressFormat.JPEG, 85);
- }
- return mInstance;
- }
-
- public static ImageDiskCache getInstance(Context context) {
- if (mInstance == null) {
- mInstance = new ImageDiskCache(context.getCacheDir(), CompressFormat.JPEG, 85);
- }
- return mInstance;
- }
-
- private ImageDiskCache(File file, CompressFormat format, int quality) {
- super(file, null, getExtension(format));
-
- mCompressFormat = format;
- mQuality = quality;
- }
- private static String getExtension(CompressFormat format) {
- String extension;
- switch (format) {
- case JPEG:
- extension = ".jpg";
- break;
-
- case PNG:
- extension = ".png";
- break;
-
- default:
- throw new IllegalArgumentException();
- }
-
- return extension;
- }
-
- /**
- * If loading a number of images where you don't have a unique ID to
- * represent the individual load, this can be used to generate a sequential
- * ID.
- *
- * @return a new unique ID
- */
- public synchronized long getNewID() {
- return mIDCounter++;
- }
-
- @Override
- protected Bitmap fromDisk(String key, InputStream in) {
-
- if (DEBUG) {
- Log.d(TAG, "disk cache hit");
- }
- try {
- final Bitmap image = BitmapFactory.decodeStream(in);
- return image;
-
- } catch (final OutOfMemoryError oom) {
- return null;
- }
- }
-
- @Override
- protected void toDisk(String key, Bitmap image, OutputStream out) {
- if (DEBUG) {
- Log.d(TAG, "cache write for key " + key);
- }
- if (image != null) {
- if (!image.compress(mCompressFormat, mQuality, out)) {
- Log.e(TAG, "error writing compressed image to disk for key "
- + key);
- }
- } else {
- Log.e(TAG, "attempting to write null image to cache");
- }
- }
-
-
- /**
- * @param uri
- * the image uri
- * @return a key unique to the given uri
- */
- public String getKey(Uri uri) {
- return uri.toString();
- }
-
-
- /**
- * Returns an opaque cache key representing the given uri, width and height.
- *
- * @param uri
- * an image uri
- * @param width
- * the desired image max width
- * @param height
- * the desired image max height
- * @return a cache key unique to the given parameters
- */
- public String getKey(Uri uri, int width, int height) {
- return uri.buildUpon()
- .appendQueryParameter("width", String.valueOf(width))
- .appendQueryParameter("height", String.valueOf(height)).build()
- .toString();
- }
-
-
-
- /**
- * Cancels all the asynchronous image loads.
- * Note: currently does not function properly.
- *
- */
- public void cancelLoads() {
- // TODO actually make it possible to cancel tasks
- }
-
- @Override
- public boolean contains(String key) {
- return !TextUtils.isEmpty(key) && key.startsWith(CACHED_IDENTIFIER) && super.contains(key);
- }
-
- public static String getPictureHash(UserActivity update) {
- return String.format("%s%s%s", CACHED_IDENTIFIER, update.getValue(UserActivity.TARGET_ID), update.getValue(UserActivity.CREATED_AT));
- }
-
-
- public static String getPictureHash(TagData tagData) {
- long tag_date = 0;
- if (tagData.containsValue(TagData.CREATION_DATE)) {
- tag_date = tagData.getValue(TagData.CREATION_DATE);
- }
- if (tag_date == 0) {
- tag_date = DateUtilities.dateToUnixtime(new Date());
- }
- return String.format("%s%s%s", CACHED_IDENTIFIER,tagData.getValue(TagData.NAME), tag_date);
- }
-}