package org.osmdroid.tileprovider;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
/**
* A {@link BitmapDrawable} for a {@link MapTile} that has a state to indicate that it's expired.
*/
public class ExpirableBitmapDrawable extends BitmapDrawable {
private static final int EXPIRED = -1;
private int[] mState;
public ExpirableBitmapDrawable(final Bitmap pBitmap) {
super(pBitmap);
mState = new int[0];
}
@Override
public int[] getState() {
return mState;
}
@Override
public boolean isStateful() {
return mState.length > 0;
}
@Override
public boolean setState(final int[] pStateSet) {
mState = pStateSet;
return true;
}
public static boolean isDrawableExpired(final Drawable pTile) {
if (!pTile.isStateful()) {
return false;
}
final int[] state = pTile.getState();
for(int i = 0; i < state.length; i++) {
if (state[i] == EXPIRED) {
return true;
}
}
return false;
}
public static void setDrawableExpired(final Drawable pTile) {
pTile.setState(new int[]{ExpirableBitmapDrawable.EXPIRED});
}
}