package org.osmdroid.forge.app;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.os.RemoteException;
import android.test.AndroidTestCase;
import org.osmdroid.mapsforge.MapsForgeTileModuleProvider;
import org.osmdroid.mapsforge.MapsForgeTileSource;
import org.osmdroid.tileprovider.MapTile;
import org.osmdroid.tileprovider.constants.OpenStreetMapTileProviderConstants;
import org.osmdroid.tileprovider.modules.TileWriter;
import org.osmdroid.tileprovider.tilesource.BitmapTileSourceBase;
import org.osmdroid.tileprovider.util.SimpleRegisterReceiver;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Set;
/**
* Borrowed from the osmdroid-android-it test classes by Neil Boyd
* <p></p>
* assumes that the sample world.map is copied to external storage/osmdroid/
*
* @author Alex O'Ree
*/
public class MapsForgeMapTileProviderDirectTest extends AndroidTestCase {
MapsForgeTileModuleProvider mProvider;
MapsForgeTileSource source;
TileWriter writer = new TileWriter();
@Override
protected void setUp() throws Exception {
Set<File> mapfiles = MainActivity.findMapFiles();
//do a simple scan of local storage for .map files.
File[] maps = new File[mapfiles.size()];
maps = mapfiles.toArray(maps);
source = MapsForgeTileSource.createFromFiles(maps);
mProvider = new MapsForgeTileModuleProvider(new SimpleRegisterReceiver(getContext()),
source, writer);
super.setUp();
}
public void test_getMapTile_found() throws RemoteException, FileNotFoundException, BitmapTileSourceBase.LowMemoryException, IOException {
for (int i = 3; i < 22; i++) {
final MapTile tile = new MapTile(i, 3, 4);
BitmapDrawable drawable = (BitmapDrawable) source.renderTile(tile);
assertNotNull(tile.toString() + " failed", drawable);
//new File(OpenStreetMapTileProviderConstants.TILE_PATH_BASE.getPath() + "/" + tile.toString()).mkdirs();
//FileOutputStream fos = new FileOutputStream(OpenStreetMapTileProviderConstants.TILE_PATH_BASE.getPath() + "/" + tile.toString() + ".png");
//((BitmapDrawable) drawable).getBitmap().compress(Bitmap.CompressFormat.PNG, 100, fos);
//fos.close();
}
}
}