/** * Creates/Restore the layer switcher or restore the old one and add all other menu * * @param savedInstanceState * @param layerManager */ private void setupLeftMenu(Bundle savedInstanceState, MultiSourceOverlayManager layerManager) { // work on fragment management FragmentManager fManager = getSupportFragmentManager(); LayerSwitcherFragment osf; if (savedInstanceState != null) { osf = (LayerSwitcherFragment) fManager.findFragmentById(R.id.left_drawer_container); if (osf == null) { Log.e("MAPSACTIVITY", "unable to restore layer switcher"); } layerManager.setLayerChangeListener(osf); layerManager.restoreInstanceState(savedInstanceState); } else { layerManager.defaultInit(); // @SuppressWarnings("unchecked") // ArrayList<Layer> layers = (ArrayList<Layer>) LocalPersistence.readObjectFromFile(this, // LocalPersistence.CURRENT_MAP); // if(layers != null){ // layerManager.setLayers(layers); // }else{ if (getIntent() != null && getIntent().getExtras() != null && getIntent().getExtras().containsKey(MSM_MAP)) { layerManager.loadMap((MSMMap) getIntent().getExtras().getSerializable(MSM_MAP)); } else { boolean dontLoadMBTileLayer = MapFilesProvider.getBackgroundSourceType() == BackgroundSourceType.MBTILES; MSMMap map = SpatialDbUtils.mapFromDb(dontLoadMBTileLayer); StorageUtils.setupSources(this); // This adds layers also if its called loadMap but it will not order layers // layerManager.loadMap(map); // so use this instead addLayersOrdered(map.layers); } // } // setup left drawer fragments if (mDrawerMode != DrawerMode.NONE) { osf = new LayerSwitcherFragment(); layerManager.setLayerChangeListener(osf); FragmentTransaction fragmentTransaction = fManager.beginTransaction(); fragmentTransaction.add(R.id.left_drawer_container, osf); GenericMenuFragment other = new GenericMenuFragment(); // fragmentTransaction.add(R.id.right_drawer, other); if (mDrawerMode == DrawerMode.BOTH) { SourcesFragment sf = new SourcesFragment(); fragmentTransaction.add(R.id.right_drawer, sf); } fragmentTransaction.commit(); } } }