package me.guillaumin.android.osmtracker.service.resources;
import java.io.File;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
/**
* Implementation of {@link IconResolver} which reads icon
* from an external directory.
*
* @author Nicolas Guillaumin
*
*/
public class ExternalDirectoryIconResolver implements IconResolver {
/**
* Base directory to read icon files.
*/
private File directory;
public ExternalDirectoryIconResolver(File baseDir) {
if (!baseDir.isDirectory()) {
throw new IllegalArgumentException("baseDir must be a directory. " + baseDir + " is not.");
}
directory = baseDir;
}
@Override
public Drawable getIcon(String key) {
if (key == null) {
return null;
} else {
File iconFile = new File(directory, key);
if (iconFile.exists() && iconFile.canRead()) {
Bitmap iconBitmap = BitmapFactory.decodeFile(iconFile.getAbsolutePath());
BitmapDrawable iconDrawable = new BitmapDrawable(iconBitmap);
return iconDrawable;
} else {
return null;
}
}
}
}