@Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == R.id.credits) { startActivity(new Intent(this, LegalNoticesActivity.class)); return (true); } else if (item.getItemId() == R.id.satellite) { ViewMapFragment mMapFragment = (ViewMapFragment) getSupportFragmentManager().findFragmentByTag("map"); mMapFragment.changeView(ViewMapFragment.MapType.Satellite); } else if (item.getItemId() == R.id.hybrid) { ViewMapFragment mMapFragment = (ViewMapFragment) getSupportFragmentManager().findFragmentByTag("map"); mMapFragment.changeView(ViewMapFragment.MapType.Hybrid); } else if (item.getItemId() == R.id.map_only) { ViewMapFragment mMapFragment = (ViewMapFragment) getSupportFragmentManager().findFragmentByTag("map"); mMapFragment.changeView(ViewMapFragment.MapType.Map); } else if (item.getItemId() == R.id.terrain) { ViewMapFragment mMapFragment = (ViewMapFragment) getSupportFragmentManager().findFragmentByTag("map"); mMapFragment.changeView(ViewMapFragment.MapType.Terrain); } else if (item.getItemId() == R.id.add_new) { if (isOnline()) { if (PreferenceManager.getDefaultSharedPreferences(this) .getString("accessToken", "") .equals("")) { FragmentManager fm = getSupportFragmentManager(); OAuthFragmentDialog oAuthFragmentDialog = OAuthFragmentDialog.newInstance(); oAuthFragmentDialog.show(fm, "fragment_login"); } else { // TODO verify token if (adview != null) { // adview.destroy(); adview.setVisibility(View.GONE); } addNewNode(); } } } else if (item.getItemId() == R.id.menu_settings) { // launch prefs Intent gopref = new Intent(this, PreferencesActivity.class); gopref.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(gopref); finish(); return true; } return super.onOptionsItemSelected(item); }
@Background public void updatePOIs(LatLng loc) { double lat = loc.latitude; double lon = loc.longitude; Log.d(TAG, "Camera center: Lat: " + lat + " Long: " + lon); ViewMapFragment frag = (ViewMapFragment) mMapFragment; List<OSMNode> NodesList = null; boolean fountain = false; boolean toilet = false; boolean rest = false; if (PreferenceManager.getDefaultSharedPreferences(this).getBoolean("show_fountain", true)) { fountain = true; } if (PreferenceManager.getDefaultSharedPreferences(this).getBoolean("show_toilet", true)) { toilet = true; } if (PreferenceManager.getDefaultSharedPreferences(this).getBoolean("show_rest", false)) { rest = true; } try { NodesList = OSMWrapperAPI.fetch(lon, lat, 0.005, fountain, toilet, rest); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SAXException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ParserConfigurationException e) { // TODO Auto-generated catch block e.printStackTrace(); } Iterator<OSMNode> geolistIterator; try { geolistIterator = NodesList.iterator(); } // If the list is empty... catch (NullPointerException e) { stopProgressbar(); return; } try { while (geolistIterator.hasNext()) { // Log.d(MapActivity.tag,"Adding GeoPoint"); OSMNode osmNode = geolistIterator.next(); Map<String, String> tag = osmNode.getTags(); // Remove duplicates // TODO: move this into a method boolean tapExists = false; boolean toiletExists = false; boolean foodExists = false; Iterator<OSMNode> tapItemIterator = allTapItem.iterator(); while (tapItemIterator.hasNext()) { OSMNode item = tapItemIterator.next(); if (item.getId().equals(osmNode.getId())) { tapExists = true; // Log.d(TAG, item.getId() + ": Node Exists"); } tapItemIterator.remove(); } Iterator<OSMNode> toiletItemIterator = allToiletItem.iterator(); while (toiletItemIterator.hasNext()) { OSMNode item = toiletItemIterator.next(); if (item.getId().equals(osmNode.getId())) { toiletExists = true; // Log.d(TAG, item.getId() + ": Node Exists"); } toiletItemIterator.remove(); } Iterator<OSMNode> foodItemIterator = allFoodItem.iterator(); while (foodItemIterator.hasNext()) { OSMNode item = foodItemIterator.next(); if (item.getId().equals(osmNode.getId())) { foodExists = true; // Log.d(TAG, item.getId() + ": Node Exists"); } foodItemIterator.remove(); } if (tag.containsValue("drinking_water") && !tapExists) { allTapItem.add(osmNode); } else if (tag.containsValue("toilets") && !toiletExists) { allToiletItem.add(osmNode); } else if ((tag.containsValue("fast_food") || tag.containsValue("cafe") || tag.containsValue("food_court") || tag.containsValue("restaurant")) && !foodExists) { allFoodItem.add(osmNode); } frag.addMarker(osmNode); geolistIterator.remove(); } Log.d( TAG, "Tap Overlay Size: " + allTapItem.size() + "\nToilet Overlay Size: " + allToiletItem.size() + "\nFood Overlay Size: " + allFoodItem.size()); } catch (ConcurrentModificationException e) { Log.e(TAG, "ConcurrentModificationException has occured " + e.getStackTrace()); } stopProgressbar(); }
@UiThread public void cancel_node_add_handler() { ViewMapFragment mMapFragment = (ViewMapFragment) getSupportFragmentManager().findFragmentByTag("map"); mMapFragment.hideNewNodeOverlay(); }
public void showAddNodeFragmentDialog(View v) { ViewMapFragment mMapFragment = (ViewMapFragment) getSupportFragmentManager().findFragmentByTag("map"); mMapFragment.showAddNodeFragmentDialog(); }
@UiThread public void addNewNode() { ViewMapFragment mMapFragment = (ViewMapFragment) getSupportFragmentManager().findFragmentByTag("map"); mMapFragment.addNewNode(); }