@Override public boolean onContextItemSelected(MenuItem item) { int pos = ((android.widget.AdapterView.AdapterContextMenuInfo) item.getMenuInfo()).position; int itemId = item.getItemId(); if (itemId == R.id.showmod) { OsmandSettings settings = getMyApplication().getSettings(); OsmPoint info = (OsmPoint) listAdapter.getItem(pos); settings.setMapLocationToShow( info.getLatitude(), info.getLongitude(), settings.getLastKnownMapZoom()); MapActivity.launchMapActivityMoveToTop(LocalOpenstreetmapActivity.this); return true; } else if (itemId == R.id.deletemod) { OsmPoint info = (OsmPoint) listAdapter.getItem(pos); if (info.getGroup() == OsmPoint.Group.POI) { dbpoi.deletePOI((OpenstreetmapPoint) info); } else if (info.getGroup() == OsmPoint.Group.BUG) { dbbug.deleteAllBugModifications((OsmNotesPoint) info); } listAdapter.delete(info); return true; } else if (itemId == R.id.uploadmods) { toUpload = new OsmPoint[] {listAdapter.getItem(pos)}; showDialog(DIALOG_PROGRESS_UPLOAD); return true; } return super.onContextItemSelected(item); }
@Override public Node commitNodeImpl(OsmPoint.Action action, Node n, EntityInfo info, String comment) { Node newNode = n; if (n.getId() == -1) { newNode = new Node(n, --nextid); // generate local id for the created node } OpenstreetmapPoint p = new OpenstreetmapPoint(); p.setEntity(newNode); p.setAction(action); p.setComment(comment); if (p.getAction() == OsmPoint.Action.DELETE && newNode.getId() < 0) { // if it is our local poi db.deletePOI(p); } else { db.addOpenstreetmap(p); } return newNode; }
@Override protected void onDestroy() { super.onDestroy(); if (dbpoi != null) { dbpoi.close(); } if (dbbug != null) { dbbug.close(); } }
@Override protected void onResume() { super.onResume(); dataPoints = new ArrayList<OsmPoint>(); List<OpenstreetmapPoint> l1 = dbpoi.getOpenstreetmapPoints(); List<OsmNotesPoint> l2 = dbbug.getOsmbugsPoints(); dataPoints.addAll(l1); dataPoints.addAll(l2); listAdapter.clear(); for (OpenstreetmapPoint p : l1) { listAdapter.add(p); } for (OsmNotesPoint p : l2) { listAdapter.add(p); } listAdapter.notifyDataSetChanged(); }
public OpenstreetmapLocalUtil(Context uiContext) { this.ctx = uiContext; this.db = new OpenstreetmapsDbHelper(ctx); this.nextid = Math.min(-2, db.getMinID()); }