/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package org.osmdroid.samplefragments.cache;
import android.os.Bundle;
import android.widget.Toast;
import org.osmdroid.config.Configuration;
import org.osmdroid.samplefragments.BaseSampleFragment;
import org.osmdroid.tileprovider.constants.OpenStreetMapTileProviderConstants;
import org.osmdroid.views.overlay.Overlay;
import org.osmdroid.views.overlay.TilesOverlay;
import java.util.Iterator;
/**
* An example on increasing the in memory tile cache. This is NOT the disk cache!
*
* Caution, setting these values too high may cause OOM errors on less capable devices!
* @author alex
*/
public class SampleJumboCache extends BaseSampleFragment {
// ===========================================================
// Constants
// ===========================================================
public static final String TITLE = "Jumbo Memory Cache";
@Override
public String getSampleTitle() {
return TITLE;
}
// ===========================================================
// Constructors
// ===========================================================
/** Called when the activity is first created. */
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
@Override
protected void addOverlays() {
super.addOverlays();
Iterator<Overlay> iterator = mMapView.getOverlays().iterator();
while(iterator.hasNext()){
Overlay next = iterator.next();
if (next instanceof TilesOverlay){
TilesOverlay x = (TilesOverlay)next;
x.setOvershootTileCache(x.getOvershootTileCache() * 2);
Toast.makeText(getActivity(), "Tiles overlay cache set to " + x.getOvershootTileCache(), Toast.LENGTH_LONG).show();
break;
}
}
//this will set the disk cache size in MB to 1GB , 900MB trim size
//Configuration.getInstance().setTileFileSystemCacheTrimBytes(900L * 1024 * 1024);
//Configuration.getInstance().setTileFileSystemCacheMaxBytes(1000L * 1024 * 1024);
}
@Override
public void onPause(){
super.onPause();
//OpenStreetMapTileProviderConstants.setCacheSizes(500L, 600L);
Iterator<Overlay> iterator = mMapView.getOverlays().iterator();
while(iterator.hasNext()){
Overlay next = iterator.next();
if (next instanceof TilesOverlay){
TilesOverlay x = (TilesOverlay)next;
x.setOvershootTileCache(x.getOvershootTileCache() / 2);
Toast.makeText(getActivity(), "Tiles overlay cache set to " + x.getOvershootTileCache(), Toast.LENGTH_LONG).show();
break;
}
}
}
}