From 867b7036441bd4fffc23f1d91719dcaa2bd29a0b Mon Sep 17 00:00:00 2001 From: Cameron Gutman Date: Fri, 27 Feb 2015 15:13:43 -0500 Subject: [PATCH] Evict cached bitmaps when closing the app list --- app/src/main/java/com/limelight/grid/AppGridAdapter.java | 2 ++ .../java/com/limelight/grid/assets/CachedAppAssetLoader.java | 4 ++++ .../java/com/limelight/grid/assets/MemoryAssetLoader.java | 4 ++++ 3 files changed, 10 insertions(+) diff --git a/app/src/main/java/com/limelight/grid/AppGridAdapter.java b/app/src/main/java/com/limelight/grid/AppGridAdapter.java index e2fb87cc..381d4def 100644 --- a/app/src/main/java/com/limelight/grid/AppGridAdapter.java +++ b/app/src/main/java/com/limelight/grid/AppGridAdapter.java @@ -75,6 +75,8 @@ public class AppGridAdapter extends GenericGridAdapter { public void cancelQueuedOperations() { cancelTuples(loadingTuples); cancelTuples(backgroundLoadingTuples); + + loader.freeCacheMemory(); } private void sortList() { diff --git a/app/src/main/java/com/limelight/grid/assets/CachedAppAssetLoader.java b/app/src/main/java/com/limelight/grid/assets/CachedAppAssetLoader.java index 7c813c32..611a2aed 100644 --- a/app/src/main/java/com/limelight/grid/assets/CachedAppAssetLoader.java +++ b/app/src/main/java/com/limelight/grid/assets/CachedAppAssetLoader.java @@ -30,6 +30,10 @@ public class CachedAppAssetLoader { this.diskLoader = diskLoader; } + public void freeCacheMemory() { + memoryLoader.clearCache(); + } + private Runnable createLoaderRunnable(final LoaderTuple tuple, final Object context, final LoadListener listener) { return new Runnable() { @Override diff --git a/app/src/main/java/com/limelight/grid/assets/MemoryAssetLoader.java b/app/src/main/java/com/limelight/grid/assets/MemoryAssetLoader.java index 995a4f36..47831a75 100644 --- a/app/src/main/java/com/limelight/grid/assets/MemoryAssetLoader.java +++ b/app/src/main/java/com/limelight/grid/assets/MemoryAssetLoader.java @@ -30,4 +30,8 @@ public class MemoryAssetLoader { public void populateCache(CachedAppAssetLoader.LoaderTuple tuple, Bitmap bitmap) { memoryCache.put(constructKey(tuple), bitmap); } + + public void clearCache() { + memoryCache.evictAll(); + } }