@Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { switch (seekBar.getId()) { case R.id.trackbar: if (fromUser) { application.editingTrack.editingPos = progress; } Track.TrackPoint tp = application.editingTrack.getPoint(progress); // double ele = tp.elevation * elevationFactor; ((TextView) findViewById(R.id.tp_number)).setText("#" + (progress + 1)); // FIXME Need UTM support here ((TextView) findViewById(R.id.tp_latitude)) .setText(StringFormatter.coordinate(tp.latitude)); ((TextView) findViewById(R.id.tp_longitude)) .setText(StringFormatter.coordinate(tp.longitude)); // ((TextView) findViewById(R.id.tp_elevation)).setText(String.valueOf(Math.round(ele)) + " // " + elevationAbbr); ((TextView) findViewById(R.id.tp_time)) .setText( SimpleDateFormat.getDateTimeInstance(SimpleDateFormat.SHORT, SimpleDateFormat.SHORT) .format(new Date(tp.time))); boolean mapChanged = application.setMapCenter(tp.latitude, tp.longitude, true, false, false); if (mapChanged) map.updateMapInfo(); map.updateMapCenter(); break; } }
@Override public void onClick(View v) { switch (v.getId()) { case R.id.cutbefore: // application.editingTrack.cutBefore(trackBar.getProgress()); int nb = application.editingTrack.getAllPoints().size() - 1; trackBar.setMax(nb); trackBar.setProgress(0); break; case R.id.cutafter: // application.editingTrack.cutAfter(trackBar.getProgress()); int na = application.editingTrack.getAllPoints().size() - 1; trackBar.setMax(na); trackBar.setProgress(0); trackBar.setProgress(na); break; case R.id.finishtrackedit: application.editingTrack.editing = false; application.editingTrack.editingPos = -1; application.editingTrack = null; // findViewById(R.id.edittrack).setVisibility(View.GONE); // findViewById(R.id.trackdetails).setVisibility(View.GONE); // updateGPSStatus(); if (showDistance == 2) { application.overlayManager.distanceOverlay.setEnabled(true); } map.setFocusable(true); map.setFocusableInTouchMode(true); map.requestFocus(); break; } }
@Override public boolean onOptionsItemSelected(final MenuItem item) { switch (item.getItemId()) { case R.id.menuSetAnchor: if (showDistance > 0) { application.overlayManager.distanceOverlay.setAncor(application.getMapCenter()); application.overlayManager.distanceOverlay.setEnabled(true); } return true; } return false; }
public void setFollowing(boolean follow) { if (application.editingRoute == null && application.editingTrack == null) { if (showDistance > 0 && application.overlayManager.distanceOverlay != null) { if (showDistance == 2 && !follow) { application.overlayManager.distanceOverlay.setAncor(application.getLocation()); application.overlayManager.distanceOverlay.setEnabled(true); } else { application.overlayManager.distanceOverlay.setEnabled(false); } } map.setFollowing(follow); } }
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); switch (requestCode) { case RESULT_MANAGE_TRACKS: if (resultCode == RESULT_OK) { Bundle extras = data.getExtras(); int index = extras.getInt("index"); startEditTrack(application.getTrack(index)); } break; } }
private void startEditTrack(Track track) { setFollowing(false); application.editingTrack = track; application.editingTrack.editing = true; int n = application.editingTrack.getAllPoints().size() - 1; int p = application.editingTrack.editingPos >= 0 ? application.editingTrack.editingPos : n; application.editingTrack.editingPos = p; trackBar.setMax(n); trackBar.setProgress(0); trackBar.setProgress(p); trackBar.setKeyProgressIncrement(1); onProgressChanged(trackBar, p, false); // findViewById(R.id.edittrack).setVisibility(View.VISIBLE); // findViewById(R.id.trackdetails).setVisibility(View.VISIBLE); // updateGPSStatus(); if (showDistance > 0) application.overlayManager.distanceOverlay.setEnabled(false); map.setFocusable(false); map.setFocusableInTouchMode(false); trackBar.requestFocus(); // updateMapViewArea(); }