package org.osmdroid.samplefragments; import android.os.Build; import org.osmdroid.ISampleFactory; import org.osmdroid.samplefragments.cache.CacheImport; import org.osmdroid.samplefragments.cache.CachePurge; import org.osmdroid.samplefragments.cache.SampleAlternateCacheDir; import org.osmdroid.samplefragments.cache.SampleCacheDownloader; import org.osmdroid.samplefragments.cache.SampleCacheDownloaderArchive; import org.osmdroid.samplefragments.cache.SampleCacheDownloaderCustomUI; import org.osmdroid.samplefragments.cache.SampleJumboCache; import org.osmdroid.samplefragments.cache.SampleSqliteOnly; import org.osmdroid.samplefragments.data.AsyncTaskDemoFragment; import org.osmdroid.samplefragments.data.Gridlines2; import org.osmdroid.samplefragments.data.HeatMap; import org.osmdroid.samplefragments.data.SampleGridlines; import org.osmdroid.samplefragments.data.SampleIISTracker; import org.osmdroid.samplefragments.data.SampleIISTrackerMotionTrails; import org.osmdroid.samplefragments.data.SampleMarker; import org.osmdroid.samplefragments.data.SampleMilitaryIconsItemizedIcons; import org.osmdroid.samplefragments.data.SampleMilitaryIconsMarker; import org.osmdroid.samplefragments.data.SampleOsmPath; import org.osmdroid.samplefragments.data.SampleSimpleFastPointOverlay; import org.osmdroid.samplefragments.data.SampleSimpleLocation; import org.osmdroid.samplefragments.data.SampleWithMinimapItemizedOverlayWithFocus; import org.osmdroid.samplefragments.data.SampleWithMinimapItemizedOverlayWithScale; import org.osmdroid.samplefragments.drawing.SampleDrawPolyline; import org.osmdroid.samplefragments.events.SampleAnimateTo; import org.osmdroid.samplefragments.events.SampleAnimatedZoomToLocation; import org.osmdroid.samplefragments.events.SampleLimitedScrollArea; import org.osmdroid.samplefragments.events.SampleMapBootListener; import org.osmdroid.samplefragments.events.SampleMapEventListener; import org.osmdroid.samplefragments.events.SampleZoomToBounding; import org.osmdroid.samplefragments.events.ZoomToBoundsOnStartup; import org.osmdroid.samplefragments.layouts.MapInAViewPagerFragment; import org.osmdroid.samplefragments.layouts.MapInScrollView; import org.osmdroid.samplefragments.layouts.RecyclerCardView; import org.osmdroid.samplefragments.layouts.SampleFragmentXmlLayout; import org.osmdroid.samplefragments.layouts.SampleSplitScreen; import org.osmdroid.samplefragments.layouts.ScaleBarOnBottom; import org.osmdroid.samplefragments.location.SampleCustomIconDirectedLocationOverlay; import org.osmdroid.samplefragments.location.SampleFollowMe; import org.osmdroid.samplefragments.location.SampleHeadingCompassUp; import org.osmdroid.samplefragments.location.SampleMyLocationWithClick; import org.osmdroid.samplefragments.location.SampleRotation; import org.osmdroid.samplefragments.tileproviders.GeopackageSample; import org.osmdroid.samplefragments.tileproviders.MapsforgeTileProviderSample; import org.osmdroid.samplefragments.tileproviders.SampleAssetsOnly; import org.osmdroid.samplefragments.tilesources.SampleBingHybrid; import org.osmdroid.samplefragments.tilesources.SampleBingRoad; import org.osmdroid.samplefragments.tilesources.SampleCopyrightOverlay; import org.osmdroid.samplefragments.tilesources.SampleCustomLoadingImage; import org.osmdroid.samplefragments.tilesources.SampleCustomTileSource; import org.osmdroid.samplefragments.tilesources.SampleHereWeGo; import org.osmdroid.samplefragments.tilesources.SampleInvertedTiles_NightMode; import org.osmdroid.samplefragments.tilesources.SampleMapBox; import org.osmdroid.samplefragments.tilesources.SampleMapQuest; import org.osmdroid.samplefragments.tileproviders.SampleOfflineOnly; import org.osmdroid.samplefragments.tilesources.SampleOpenSeaMap; import org.osmdroid.samplefragments.tilesources.SampleWhackyColorFilter; import org.osmdroid.samplefragments.tilesources.SepiaToneTiles; import java.util.ArrayList; import java.util.List; /** * factory for all examples */ public final class SampleFactory implements ISampleFactory { private final List<Class<? extends BaseSampleFragment>> mSamples = new ArrayList<>(); private static ISampleFactory _instance; public static ISampleFactory getInstance() { if (_instance == null) { _instance = new SampleFactory(); } return _instance; } private SampleFactory() { //these are indexed with comments to make life easier when running //stress/memory leak testing //0 mSamples.add(SampleWithMinimapItemizedOverlayWithFocus.class); //1 mSamples.add(SampleWithMinimapItemizedOverlayWithScale.class); //2 mSamples.add(SampleLimitedScrollArea.class); //3 mSamples.add(SampleFragmentXmlLayout.class); //4 mSamples.add(SampleOsmPath.class); //5 mSamples.add(SampleInvertedTiles_NightMode.class); //6 mSamples.add(SampleOfflineOnly.class); //7 mSamples.add(SampleAlternateCacheDir.class); //8 mSamples.add(SampleMilitaryIconsItemizedIcons.class); //9 mSamples.add(SampleMilitaryIconsMarker.class); //10 mSamples.add(SampleMapBox.class); //11 mSamples.add(SampleJumboCache.class); //12 mSamples.add(SampleCustomTileSource.class); //13 mSamples.add(SampleAnimatedZoomToLocation.class); //14 mSamples.add(SampleWhackyColorFilter.class); //15 mSamples.add(SampleCustomIconDirectedLocationOverlay.class); //16 mSamples.add(SampleAssetsOnly.class); //17 mSamples.add(SampleSqliteOnly.class); //18 mSamples.add(SampleCacheDownloader.class); //19 mSamples.add(SampleCacheDownloaderCustomUI.class); //20 mSamples.add(SampleCacheDownloaderArchive.class); //21 mSamples.add(SampleGridlines.class); //22 mSamples.add(SampleMapEventListener.class); //23 mSamples.add(SampleAnimateTo.class); //24 mSamples.add(SampleHeadingCompassUp.class); //25 mSamples.add(SampleSplitScreen.class); //26 mSamples.add(SampleMapBootListener.class); //27 mSamples.add(SampleFollowMe.class); //28 mSamples.add(SampleMapQuest.class); //29 mSamples.add(SampleHereWeGo.class); //30 mSamples.add(SampleCustomLoadingImage.class); //31 mSamples.add(AsyncTaskDemoFragment.class); //32 mSamples.add(CacheImport.class); //33 mSamples.add(CachePurge.class); //34 mSamples.add(SampleZoomToBounding.class); //35 mSamples.add(MapInAViewPagerFragment.class); //36 mSamples.add(ZoomToBoundsOnStartup.class); //37 mSamples.add(SampleSimpleLocation.class); //38 mSamples.add(SampleSimpleFastPointOverlay.class); //39 mSamples.add(SampleOpenSeaMap.class); //40 mSamples.add(SampleMarker.class); //41 mSamples.add(SampleRotation.class); //42 mSamples.add(HeatMap.class); //43 mSamples.add(MapInScrollView.class); //44 mSamples.add(SampleCopyrightOverlay.class); //45 mSamples.add(SampleIISTracker.class); //46 mSamples.add(SampleIISTrackerMotionTrails.class); //47 mSamples.add(SampleMyLocationWithClick.class); //48 mSamples.add(SampleDrawPolyline.class); //49 mSamples.add(RecyclerCardView.class); //50 mSamples.add(ScaleBarOnBottom.class); //51 mSamples.add(SampleBingHybrid.class); //52 mSamples.add(SampleBingRoad.class); //53 mSamples.add(Gridlines2.class); //54 mSamples.add(SepiaToneTiles.class); //55 if (Build.VERSION.SDK_INT >= 10) mSamples.add(MapsforgeTileProviderSample.class); //56 if (Build.VERSION.SDK_INT >= 14) mSamples.add(GeopackageSample.class); } public void addSample(Class<? extends BaseSampleFragment> clz) { mSamples.add(clz); } public BaseSampleFragment getSample(int index) { try { return mSamples.get(index).newInstance(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } return null; } public int count() { return mSamples.size(); } }