diff --git a/README.md b/README.md index 33b0d289..a06415f2 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,7 @@ Javadocs are [here](http://moagrius.github.io/TileView/index.html?com/qozix/tile ###Installation Gradle: ``` -compile 'com.qozix:tileview:2.1.6' +compile 'com.qozix:tileview:2.1.7' ``` The library is hosted on jcenter, and is not currently available from maven. @@ -56,7 +56,7 @@ A demo application, built in Android Studio, is available in the `demo` folder o at the 2nd column from left and 3rd row from top. 1. Create a new application with a single activity ('Main'). 1. Save the image tiles to your `assets` directory. -1. Add `compile 'com.qozix:tileview:2.1.6'` to your gradle dependencies. +1. Add `compile 'com.qozix:tileview:2.1.7'` to your gradle dependencies. 1. In the Main Activity, use this for `onCreate`: ``` @Override diff --git a/tileview/build.gradle b/tileview/build.gradle index abce339d..be514520 100644 --- a/tileview/build.gradle +++ b/tileview/build.gradle @@ -7,7 +7,7 @@ android { minSdkVersion 11 targetSdkVersion 22 versionCode 31 - versionName "2.1.6" + versionName "2.1.7" } buildTypes { release { diff --git a/tileview/src/main/java/com/qozix/tileview/tiles/TileCanvasViewGroup.java b/tileview/src/main/java/com/qozix/tileview/tiles/TileCanvasViewGroup.java index 99610d3f..4adf68f5 100644 --- a/tileview/src/main/java/com/qozix/tileview/tiles/TileCanvasViewGroup.java +++ b/tileview/src/main/java/com/qozix/tileview/tiles/TileCanvasViewGroup.java @@ -28,6 +28,7 @@ public class TileCanvasViewGroup extends ScalingLayout implements TileCanvasView private HashMap mTileCanvasViewHashMap = new HashMap<>(); private DetailLevel mDetailLevelToRender; + private DetailLevel mLastRequestedDetailLevel; private DetailLevel mLastRenderedDetailLevel; private TileCanvasView mCurrentTileCanvasView; @@ -147,10 +148,10 @@ public void updateTileSet( DetailLevel detailLevel ) { if( mDetailLevelToRender == null ) { return; } - if( mDetailLevelToRender.equals( mLastRenderedDetailLevel ) ) { + if( mDetailLevelToRender.equals( mLastRequestedDetailLevel ) ) { return; } - mLastRenderedDetailLevel = mDetailLevelToRender; + mLastRequestedDetailLevel = mDetailLevelToRender; mCurrentTileCanvasView = getCurrentTileCanvasView(); mCurrentTileCanvasView.bringToFront(); cancelRender(); @@ -211,7 +212,7 @@ void renderTiles() { private void beginRenderTask() { boolean changed = mDetailLevelToRender.computeCurrentState(); - if( !changed ) { + if( !changed && mDetailLevelToRender.equals( mLastRenderedDetailLevel ) ) { return; } Set visibleTiles = mDetailLevelToRender.getVisibleTilesFromLastViewportComputation(); @@ -352,6 +353,7 @@ public void run() { if( mTileRenderListener != null ) { mTileRenderListener.onRenderComplete(); } + mLastRenderedDetailLevel = mDetailLevelToRender; invalidate(); requestRender(); }