aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorScott Jackson <daneren2005@gmail.com>2015-01-28 08:36:38 -0800
committerScott Jackson <daneren2005@gmail.com>2015-01-28 08:36:38 -0800
commit69f2c3ea0efe53e04a70ebf29dbf93d6c9558498 (patch)
tree265e0cf25ad7fe182138155b38592aa83844507e /src
parent13f20479c896832b58af269edf119a040dfa6d6e (diff)
downloaddsub-69f2c3ea0efe53e04a70ebf29dbf93d6c9558498.tar.gz
dsub-69f2c3ea0efe53e04a70ebf29dbf93d6c9558498.tar.bz2
dsub-69f2c3ea0efe53e04a70ebf29dbf93d6c9558498.zip
Put ImageLoader.clearAll in background thread to not block close
Diffstat (limited to 'src')
-rw-r--r--src/github/daneren2005/dsub/util/ImageLoader.java13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/github/daneren2005/dsub/util/ImageLoader.java b/src/github/daneren2005/dsub/util/ImageLoader.java
index a6f482eb..41b4da03 100644
--- a/src/github/daneren2005/dsub/util/ImageLoader.java
+++ b/src/github/daneren2005/dsub/util/ImageLoader.java
@@ -64,6 +64,7 @@ public class ImageLoader {
private final int imageSizeDefault;
private final int imageSizeLarge;
private final int avatarSizeDefault;
+ private boolean clearingCache = false;
private final static int[] COLORS = {0xFF33B5E5, 0xFFAA66CC, 0xFF99CC00, 0xFFFFBB33, 0xFFFF4444};
@@ -81,7 +82,7 @@ public class ImageLoader {
@Override
protected void entryRemoved(boolean evicted, String key, Bitmap oldBitmap, Bitmap newBitmap) {
if(evicted) {
- if(oldBitmap != nowPlaying && key.indexOf("unknown") == -1) {
+ if(oldBitmap != nowPlaying && key.indexOf("unknown") == -1 || clearingCache) {
if(sizeOf("", oldBitmap) > 500) {
oldBitmap.recycle();
}
@@ -101,7 +102,15 @@ public class ImageLoader {
public void clearCache() {
nowPlaying = null;
- cache.evictAll();
+ new SilentBackgroundTask<Void>(context) {
+ @Override
+ protected Void doInBackground() throws Throwable {
+ clearingCache = true;
+ cache.evictAll();
+ clearingCache = false;
+ return null;
+ }
+ }.execute();
}
private Bitmap getUnknownImage(MusicDirectory.Entry entry, int size) {