Skip to content

Commit

Permalink
Merge pull request #152 from gametimesf/async-fix
Browse files Browse the repository at this point in the history
Ensure bitmaps (even assets) are loaded on a background thread.
  • Loading branch information
moagrius committed Dec 4, 2014
2 parents b35a665 + 886c47f commit 573dddc
Showing 1 changed file with 14 additions and 2 deletions.
16 changes: 14 additions & 2 deletions src/com/qozix/tileview/samples/SampleManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import android.graphics.Rect;
import android.view.View;

import com.qozix.os.AsyncTask;
import com.qozix.tileview.detail.DetailLevel;
import com.qozix.tileview.detail.DetailLevelEventListener;
import com.qozix.tileview.detail.DetailManager;
Expand All @@ -21,6 +22,7 @@ public class SampleManager extends View implements DetailLevelEventListener {

private Bitmap bitmap;
private String lastFileName;
private String currentFileName;

public SampleManager( Context context, DetailManager dm ) {

Expand All @@ -42,14 +44,24 @@ public void clear(){
lastFileName = null;
}

private class BitmapDecodeTask implements Runnable {
@Override
public void run() {
bitmap = decoder.decode(currentFileName, getContext());
postInvalidate();
}
}

private BitmapDecodeTask decodeTask = new BitmapDecodeTask();

public void update() {
DetailLevel detailLevel = detailManager.getCurrentDetailLevel();
if( detailLevel != null ) {
String fileName = detailLevel.getDownsample();
if( fileName != null ) {
if( !fileName.equals( lastFileName ) ) {
bitmap = decoder.decode( fileName, getContext() );
invalidate();
currentFileName = fileName;
AsyncTask.execute(decodeTask);
}
}
lastFileName = fileName;
Expand Down

0 comments on commit 573dddc

Please sign in to comment.