com.xtremelabs.imageutils
Class ImageCacher

java.lang.Object
  extended by com.xtremelabs.imageutils.ImageCacher
All Implemented Interfaces:
AsyncOperationsObserver, ImageDiskObserver

public class ImageCacher
extends java.lang.Object
implements ImageDiskObserver, AsyncOperationsObserver

This class defensively handles requests from four locations: LifecycleReferenceManager, ImageMemoryCacherInterface, ImageDiskCacherInterface, ImageNetworkInterface and the AsyncOperationsMaps. The job of this class is to "route" messages appropriately in order to ensure synchronized handling of image downloading and caching operations.


Nested Class Summary
static class ImageCacher.ImageCacherListener
           
 
Method Summary
 void cancelRequestForBitmap(ImageCacher.ImageCacherListener imageCacherListener)
           
 void clearMemCache()
           
 com.xtremelabs.imageutils.ImageResponse getBitmap(com.xtremelabs.imageutils.ImageRequest imageRequest, ImageCacher.ImageCacherListener imageCacherListener)
           
static ImageCacher getInstance(Context appContext)
           
 int getSampleSize(com.xtremelabs.imageutils.ImageRequest imageRequest)
           
 void invalidateFileSystemUri(java.lang.String uri)
           
 boolean isDecodeRequestPending(DecodeSignature decodeSignature)
           
 boolean isNetworkRequestPending(java.lang.String uri)
           
 void onImageDecoded(DecodeSignature decodeSignature, Bitmap bitmap, ImageReturnedFrom returnedFrom)
           
 void onImageDecodeFailed(DecodeSignature decodeSignature, java.lang.String message)
           
 void onImageDecodeRequired(DecodeSignature decodeSignature)
           
 void onImageDetailsRequestFailed(java.lang.String uri, java.lang.String message)
           
 void onImageDetailsRequired(java.lang.String uri)
           
 void onImageDetailsRetrieved(java.lang.String uri)
           
 void onImageDownloaded(java.lang.String uri)
           
 void onImageDownloadFailed(java.lang.String uri, java.lang.String message)
           
 void precacheImageToDisk(com.xtremelabs.imageutils.ImageRequest imageRequest)
          Caches the image at the provided uri to disk.
 void setMaximumDiskCacheSize(long maxSizeInBytes)
           
 void setMaximumMemCacheSize(long size)
           
 void setNetworkRequestCreator(NetworkRequestCreator networkRequestCreator)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

getInstance

public static ImageCacher getInstance(Context appContext)

getBitmap

public com.xtremelabs.imageutils.ImageResponse getBitmap(com.xtremelabs.imageutils.ImageRequest imageRequest,
                                                         ImageCacher.ImageCacherListener imageCacherListener)

getSampleSize

public int getSampleSize(com.xtremelabs.imageutils.ImageRequest imageRequest)
Specified by:
getSampleSize in interface AsyncOperationsObserver

precacheImageToDisk

public void precacheImageToDisk(com.xtremelabs.imageutils.ImageRequest imageRequest)
Caches the image at the provided uri to disk. If the image is already on disk, it gets bumped on the eviction queue.

Parameters:
uri -

clearMemCache

public void clearMemCache()

setMaximumMemCacheSize

public void setMaximumMemCacheSize(long size)

setMaximumDiskCacheSize

public void setMaximumDiskCacheSize(long maxSizeInBytes)

cancelRequestForBitmap

public void cancelRequestForBitmap(ImageCacher.ImageCacherListener imageCacherListener)

onImageDecoded

public void onImageDecoded(DecodeSignature decodeSignature,
                           Bitmap bitmap,
                           ImageReturnedFrom returnedFrom)
Specified by:
onImageDecoded in interface ImageDiskObserver

onImageDecodeFailed

public void onImageDecodeFailed(DecodeSignature decodeSignature,
                                java.lang.String message)
Specified by:
onImageDecodeFailed in interface ImageDiskObserver

onImageDownloaded

public void onImageDownloaded(java.lang.String uri)

onImageDownloadFailed

public void onImageDownloadFailed(java.lang.String uri,
                                  java.lang.String message)

onImageDecodeRequired

public void onImageDecodeRequired(DecodeSignature decodeSignature)
Specified by:
onImageDecodeRequired in interface AsyncOperationsObserver

isNetworkRequestPending

public boolean isNetworkRequestPending(java.lang.String uri)
Specified by:
isNetworkRequestPending in interface AsyncOperationsObserver

isDecodeRequestPending

public boolean isDecodeRequestPending(DecodeSignature decodeSignature)
Specified by:
isDecodeRequestPending in interface AsyncOperationsObserver

setNetworkRequestCreator

public void setNetworkRequestCreator(NetworkRequestCreator networkRequestCreator)

onImageDetailsRetrieved

public void onImageDetailsRetrieved(java.lang.String uri)
Specified by:
onImageDetailsRetrieved in interface ImageDiskObserver

onImageDetailsRequestFailed

public void onImageDetailsRequestFailed(java.lang.String uri,
                                        java.lang.String message)
Specified by:
onImageDetailsRequestFailed in interface ImageDiskObserver

onImageDetailsRequired

public void onImageDetailsRequired(java.lang.String uri)
Specified by:
onImageDetailsRequired in interface AsyncOperationsObserver

invalidateFileSystemUri

public void invalidateFileSystemUri(java.lang.String uri)