From e939778beb7dd5fb43edcacd1045c1328786d1c5 Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Wed, 23 Sep 2020 17:16:34 +0200 Subject: [PATCH] Refactor: use marker instead of waypoint. Fixes #389. --- .../io/file/importer/ExportImportTest.java | 2 +- .../services/TrackRecordingServiceTest.java | 2 +- .../opentracks/MarkerDetailActivity.java | 24 ++-- .../opentracks/MarkerEditActivity.java | 119 +++++++++--------- .../opentracks/MarkerListActivity.java | 26 ++-- .../opentracks/SearchListActivity.java | 40 +++--- .../opentracks/TrackRecordedActivity.java | 10 +- .../opentracks/chart/ChartView.java | 74 +++++------ .../opentracks/content/data/Marker.java | 4 +- .../content/data/MarkerColumns.java | 10 +- .../provider/CustomContentProvider.java | 51 +++----- .../opentracks/fragments/ChartFragment.java | 4 +- .../fragments/DeleteMarkerDialogFragment.java | 4 +- .../fragments/MarkerDetailFragment.java | 81 ++++++------ .../io/file/exporter/FileTrackExporter.java | 29 ++--- .../io/file/exporter/GpxTrackWriter.java | 16 +-- .../io/file/exporter/KmlTrackWriter.java | 50 ++++---- .../io/file/exporter/KmzTrackExporter.java | 22 ++-- .../io/file/exporter/TrackWriter.java | 69 ++-------- .../importer/AbstractFileTrackImporter.java | 67 +++++----- .../file/importer/GpxFileTrackImporter.java | 28 ++--- .../file/importer/KmlFileTrackImporter.java | 35 ++---- .../io/file/importer/KmzTrackImporter.java | 12 +- .../services/TrackRecordingService.java | 2 +- .../opentracks/util/IntentDashboardUtils.java | 6 +- .../opentracks/util/IntentUtils.java | 6 +- .../res/layout/marker_detail_fragment.xml | 14 +-- src/main/res/layout/marker_edit.xml | 10 +- src/main/res/values/do_not_translate.xml | 4 +- 29 files changed, 349 insertions(+), 472 deletions(-) diff --git a/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/ExportImportTest.java b/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/ExportImportTest.java index 7520f790f..1c12b8fc0 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/ExportImportTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/ExportImportTest.java @@ -76,7 +76,7 @@ public class ExportImportTest { marker.setName("the marker " + i); marker.setDescription("the marker description " + i); marker.setCategory("the marker category" + i); - marker.setIcon("the waypoing icon" + i); + marker.setIcon("the marker icon" + i); marker.setPhotoUrl("the photo url" + i); marker.setTrackId(trackId); contentProviderUtils.insertMarker(marker); diff --git a/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTest.java b/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTest.java index dabe2efb0..a9e24c5f1 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTest.java @@ -318,7 +318,7 @@ public class TrackRecordingServiceTest { // then assertNotEquals(-1L, waypointId); Marker wpt = contentProviderUtils.getMarker(waypointId); - assertEquals(context.getString(R.string.marker_waypoint_icon_url), wpt.getIcon()); + assertEquals(context.getString(R.string.marker_icon_url), wpt.getIcon()); assertEquals(context.getString(R.string.marker_name_format, 1), wpt.getName()); assertEquals(trackId, wpt.getTrackId()); assertEquals(0.0, wpt.getLength(), 0.01); diff --git a/src/main/java/de/dennisguse/opentracks/MarkerDetailActivity.java b/src/main/java/de/dennisguse/opentracks/MarkerDetailActivity.java index ef82aba39..a8b6f438a 100644 --- a/src/main/java/de/dennisguse/opentracks/MarkerDetailActivity.java +++ b/src/main/java/de/dennisguse/opentracks/MarkerDetailActivity.java @@ -48,33 +48,33 @@ public class MarkerDetailActivity extends AbstractActivity implements DeleteMark private static final String TAG = MarkerDetailActivity.class.getSimpleName(); - private List waypointIds; + private List markerIds; @Override protected void onCreate(Bundle bundle) { super.onCreate(bundle); - Marker.Id waypointId = getIntent().getParcelableExtra(EXTRA_MARKER_ID); - if (waypointId == null) { + Marker.Id markerId = getIntent().getParcelableExtra(EXTRA_MARKER_ID); + if (markerId == null) { Log.d(TAG, "invalid marker id"); finish(); return; } ContentProviderUtils contentProviderUtils = new ContentProviderUtils(this); - Marker waypoint = contentProviderUtils.getMarker(waypointId); + Marker marker = contentProviderUtils.getMarker(markerId); - waypointIds = new ArrayList<>(); + markerIds = new ArrayList<>(); int markerIndex = -1; - //TODO Load only waypointIds, not the whole waypoint - try (Cursor cursor = contentProviderUtils.getMarkerCursor(waypoint.getTrackId(), null, -1)) { + //TODO Load only markerIds, not the whole marker + try (Cursor cursor = contentProviderUtils.getMarkerCursor(marker.getTrackId(), null, -1)) { if (cursor != null && cursor.moveToFirst()) { for (int i = 0; i < cursor.getCount(); i++) { Marker currentMarker = contentProviderUtils.createMarker(cursor); - waypointIds.add(currentMarker.getId()); - if (waypointId.equals(currentMarker.getId())) { - markerIndex = waypointIds.size() - 1; + markerIds.add(currentMarker.getId()); + if (markerId.equals(currentMarker.getId())) { + markerIndex = markerIds.size() - 1; } cursor.moveToNext(); @@ -127,7 +127,7 @@ public class MarkerDetailActivity extends AbstractActivity implements DeleteMark @Override @NonNull public Fragment getItem(int position) { - return MarkerDetailFragment.newInstance(waypointIds.get(position)); + return MarkerDetailFragment.newInstance(markerIds.get(position)); } @Nullable @@ -138,7 +138,7 @@ public class MarkerDetailActivity extends AbstractActivity implements DeleteMark @Override public int getCount() { - return waypointIds.size(); + return markerIds.size(); } } } \ No newline at end of file diff --git a/src/main/java/de/dennisguse/opentracks/MarkerEditActivity.java b/src/main/java/de/dennisguse/opentracks/MarkerEditActivity.java index c2c73e394..c5d17e65c 100644 --- a/src/main/java/de/dennisguse/opentracks/MarkerEditActivity.java +++ b/src/main/java/de/dennisguse/opentracks/MarkerEditActivity.java @@ -68,7 +68,7 @@ public class MarkerEditActivity extends AbstractActivity { private static final String TAG = MarkerEditActivity.class.getSimpleName(); private Track.Id trackId; private TrackRecordingServiceConnection trackRecordingServiceConnection = new TrackRecordingServiceConnection(); - private Marker waypoint; + private Marker marker; private MenuItem insertPhotoMenuItem; private MenuItem insertGalleryImgMenuItem; @@ -77,35 +77,35 @@ public class MarkerEditActivity extends AbstractActivity { private boolean hasCamera; // UI elements - private TextInputEditText waypointName; - private AutoCompleteTextView waypointMarkerType; - private TextInputEditText waypointDescription; - private ImageView waypointPhoto; - private ImageView waypointDeletePhotoBtn; + private TextInputEditText markerName; + private AutoCompleteTextView markerType; + private TextInputEditText markerDescription; + private ImageView markerPhoto; + private ImageView markerDeletePhotoBtn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); trackId = getIntent().getParcelableExtra(EXTRA_TRACK_ID); - Marker.Id waypointId = getIntent().getParcelableExtra(EXTRA_MARKER_ID); + Marker.Id markerId = getIntent().getParcelableExtra(EXTRA_MARKER_ID); hasCamera = getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_ANY); // Setup UI elements - waypointName = findViewById(R.id.marker_edit_waypoint_name); - waypointMarkerType = findViewById(R.id.marker_edit_waypoint_marker_type); - ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.waypoint_types, android.R.layout.simple_dropdown_item_1line); - waypointMarkerType.setAdapter(adapter); - waypointDescription = findViewById(R.id.marker_edit_waypoint_description); - waypointPhoto = findViewById(R.id.marker_edit_waypoint_photo); + markerName = findViewById(R.id.marker_edit_name); + markerType = findViewById(R.id.marker_edit_marker_type); + ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.marker_types, android.R.layout.simple_dropdown_item_1line); + markerType.setAdapter(adapter); + markerDescription = findViewById(R.id.marker_edit_description); + markerPhoto = findViewById(R.id.marker_edit_photo); - waypointDeletePhotoBtn = findViewById(R.id.marker_edit_waypoint_photo_delete); - waypointDeletePhotoBtn.setOnClickListener(v -> { - if (waypoint != null && waypoint.hasPhoto()) { - waypoint.setPhotoUrl(null); + markerDeletePhotoBtn = findViewById(R.id.marker_edit_photo_delete); + markerDeletePhotoBtn.setOnClickListener(v -> { + if (marker != null && marker.hasPhoto()) { + marker.setPhotoUrl(null); } - waypointPhoto.setImageBitmap(null); + markerPhoto.setImageBitmap(null); photoUri = null; hideAndShowOptions(); }); @@ -113,7 +113,7 @@ public class MarkerEditActivity extends AbstractActivity { Button cancel = findViewById(R.id.marker_edit_cancel); cancel.setOnClickListener(v -> finish()); - final boolean isNewMarker = waypointId == null; + final boolean isNewMarker = markerId == null; setTitle(isNewMarker ? R.string.menu_insert_marker : R.string.menu_edit); Button done = findViewById(R.id.marker_edit_done); @@ -128,37 +128,37 @@ public class MarkerEditActivity extends AbstractActivity { }); if (isNewMarker) { - int nextWaypointNumber = trackId == null ? -1 : new ContentProviderUtils(this).getNextMarkerNumber(trackId); - if (nextWaypointNumber == -1) { - nextWaypointNumber = 0; + int nextMarkerNumber = trackId == null ? -1 : new ContentProviderUtils(this).getNextMarkerNumber(trackId); + if (nextMarkerNumber == -1) { + nextMarkerNumber = 0; } - waypointName.setText(getString(R.string.marker_name_format, nextWaypointNumber)); - waypointName.selectAll(); - waypointMarkerType.setText(""); - waypointDescription.setText(""); + markerName.setText(getString(R.string.marker_name_format, nextMarkerNumber)); + markerName.selectAll(); + markerType.setText(""); + markerDescription.setText(""); } else { - waypoint = new ContentProviderUtils(this).getMarker(waypointId); - if (waypoint == null) { - Log.d(TAG, "waypoint is null"); + marker = new ContentProviderUtils(this).getMarker(markerId); + if (marker == null) { + Log.d(TAG, "marker is null"); finish(); return; } - waypointName.setText(waypoint.getName()); - waypointMarkerType.setText(waypoint.getCategory()); - waypointDescription.setText(waypoint.getDescription()); - if (waypoint.hasPhoto()) { - photoUri = waypoint.getPhotoURI(); + markerName.setText(marker.getName()); + markerType.setText(marker.getCategory()); + markerDescription.setText(marker.getDescription()); + if (marker.hasPhoto()) { + photoUri = marker.getPhotoURI(); } } if (savedInstanceState != null) { photoUri = savedInstanceState.getParcelable(BUNDLE_PHOTO_URI); - if (waypoint != null) { - waypoint.setPhotoUrl(photoUri != null ? photoUri.toString() : null); + if (marker != null) { + marker.setPhotoUrl(photoUri != null ? photoUri.toString() : null); } } if (photoUri != null) { - setWaypointImageView(photoUri); + setMarkerImageView(photoUri); } hideAndShowOptions(); @@ -203,10 +203,10 @@ public class MarkerEditActivity extends AbstractActivity { public boolean onOptionsItemSelected(@NonNull MenuItem item) { switch (item.getItemId()) { case R.id.marker_edit_insert_photo: - createWaypointWithPicture(); + createMarkerWithPicture(); return true; case R.id.marker_edit_insert_gallery_img: - createWaypointWithGalleryImage(); + createMarkerWithGalleryImage(); return true; default: return super.onOptionsItemSelected(item); @@ -220,7 +220,7 @@ public class MarkerEditActivity extends AbstractActivity { Toast.makeText(this, R.string.marker_add_photo_canceled, Toast.LENGTH_LONG).show(); return; } else if (resultCode == RESULT_OK) { - setWaypointImageView(photoUri); + setMarkerImageView(photoUri); } } else if (requestCode == GALLERY_IMG_REQUEST_CODE) { if (resultCode == RESULT_CANCELED) { @@ -234,7 +234,7 @@ public class MarkerEditActivity extends AbstractActivity { FileUtils.copy(srcFd, dstFile); photoUri = FileUtils.getUriForFile(this, dstFile); - setWaypointImageView(photoUri); + setMarkerImageView(photoUri); } catch(Exception e) { Log.e(TAG, e.getMessage()); Toast.makeText(this, R.string.marker_add_canceled, Toast.LENGTH_LONG).show(); @@ -251,31 +251,26 @@ public class MarkerEditActivity extends AbstractActivity { * If a photo is set then one's options are shown, otherwise another ones are shown. */ private void hideAndShowOptions() { - boolean isPhotoSet = (waypoint != null && waypoint.hasPhoto()) || photoUri != null; + boolean isPhotoSet = (marker != null && marker.hasPhoto()) || photoUri != null; if (insertPhotoMenuItem != null && insertGalleryImgMenuItem != null) { insertPhotoMenuItem.setVisible(!isPhotoSet); insertGalleryImgMenuItem.setVisible(!isPhotoSet); } - waypointDeletePhotoBtn.setVisibility(isPhotoSet ? View.VISIBLE : View.GONE); + markerDeletePhotoBtn.setVisibility(isPhotoSet ? View.VISIBLE : View.GONE); } /** - * Returns the trackId. If trackId == -1 then get it from waypoint object. + * Returns the trackId; either from track or marker. */ private Track.Id getTrackId() { - return trackId == null ? waypoint.getTrackId() : trackId; + return trackId == null ? marker.getTrackId() : trackId; } - /** - * Sets the ImageView waypointPhoto with the uri photo. - * - * @param uri the uri photo. - */ - private void setWaypointImageView(@NonNull Uri uri) { + private void setMarkerImageView(@NonNull Uri uri) { try (ParcelFileDescriptor pfd = getContentResolver().openFileDescriptor(uri, "r")) { FileDescriptor fd = pfd.getFileDescriptor(); Bitmap bitmap = BitmapFactory.decodeFileDescriptor(fd); - waypointPhoto.setImageBitmap(bitmap); + markerPhoto.setImageBitmap(bitmap); hideAndShowOptions(); } catch (IOException e) { Log.e(TAG, e.getMessage()); @@ -283,31 +278,31 @@ public class MarkerEditActivity extends AbstractActivity { } } - private void createWaypointWithPicture() { + private void createMarkerWithPicture() { Pair intentAndPhotoUri = IntentUtils.createTakePictureIntent(this, getTrackId()); photoUri = intentAndPhotoUri.second; startActivityForResult(intentAndPhotoUri.first, CAMERA_REQUEST_CODE); } - private void createWaypointWithGalleryImage() { + private void createMarkerWithGalleryImage() { Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI); startActivityForResult(intent, GALLERY_IMG_REQUEST_CODE); } private void addMarker() { trackRecordingServiceConnection.addMarker(this, - waypointName.getText().toString(), - waypointMarkerType.getText().toString(), - waypointDescription.getText().toString(), + markerName.getText().toString(), + markerType.getText().toString(), + markerDescription.getText().toString(), photoUri != null ? photoUri.toString() : null); } private void saveMarker() { - waypoint.setName(waypointName.getText().toString()); - waypoint.setCategory(waypointMarkerType.getText().toString()); - waypoint.setDescription(waypointDescription.getText().toString()); - waypoint.setPhotoUrl(photoUri != null ? photoUri.toString() : null); + marker.setName(markerName.getText().toString()); + marker.setCategory(markerType.getText().toString()); + marker.setDescription(markerDescription.getText().toString()); + marker.setPhotoUrl(photoUri != null ? photoUri.toString() : null); - new ContentProviderUtils(this).updateMarker(this, waypoint); + new ContentProviderUtils(this).updateMarker(this, marker); } } diff --git a/src/main/java/de/dennisguse/opentracks/MarkerListActivity.java b/src/main/java/de/dennisguse/opentracks/MarkerListActivity.java index d09011ae9..be70044ee 100644 --- a/src/main/java/de/dennisguse/opentracks/MarkerListActivity.java +++ b/src/main/java/de/dennisguse/opentracks/MarkerListActivity.java @@ -229,35 +229,35 @@ public class MarkerListActivity extends AbstractActivity implements DeleteMarker /** * Handles a context item selection. * - * @param itemId the menu item id - * @param longWaypointIds the marker ids + * @param itemId the menu item id + * @param longMarkerds the marker ids * @return true if handled. */ - private boolean handleContextItem(int itemId, long... longWaypointIds) { - Marker.Id[] waypointIds = new Marker.Id[longWaypointIds.length]; - for (int i = 0; i < longWaypointIds.length; i++) { - waypointIds[i] = new Marker.Id(longWaypointIds[i]); + private boolean handleContextItem(int itemId, long... longMarkerds) { + Marker.Id[] markerIds = new Marker.Id[longMarkerds.length]; + for (int i = 0; i < longMarkerds.length; i++) { + markerIds[i] = new Marker.Id(longMarkerds[i]); } Intent intent; switch (itemId) { case R.id.list_context_menu_show_on_map: - if (waypointIds.length == 1) { - IntentUtils.showCoordinateOnMap(this, contentProviderUtils.getMarker(waypointIds[0])); + if (markerIds.length == 1) { + IntentUtils.showCoordinateOnMap(this, contentProviderUtils.getMarker(markerIds[0])); } return true; case R.id.list_context_menu_edit: - if (waypointIds.length == 1) { + if (markerIds.length == 1) { intent = IntentUtils.newIntent(this, MarkerEditActivity.class) - .putExtra(MarkerEditActivity.EXTRA_MARKER_ID, waypointIds[0]); + .putExtra(MarkerEditActivity.EXTRA_MARKER_ID, markerIds[0]); startActivity(intent); } return true; case R.id.list_context_menu_delete: - if (waypointIds.length > 1 && waypointIds.length == listView.getCount()) { - waypointIds = null; + if (markerIds.length > 1 && markerIds.length == listView.getCount()) { + markerIds = null; } - DeleteMarkerDialogFragment.showDialog(getSupportFragmentManager(), waypointIds); + DeleteMarkerDialogFragment.showDialog(getSupportFragmentManager(), markerIds); return true; case R.id.list_context_menu_select_all: for (int i = 0; i < listView.getCount(); i++) { diff --git a/src/main/java/de/dennisguse/opentracks/SearchListActivity.java b/src/main/java/de/dennisguse/opentracks/SearchListActivity.java index 3f1a56520..a471320f5 100644 --- a/src/main/java/de/dennisguse/opentracks/SearchListActivity.java +++ b/src/main/java/de/dennisguse/opentracks/SearchListActivity.java @@ -271,7 +271,7 @@ public class SearchListActivity extends AbstractListActivity implements DeleteMa } Map item = arrayAdapter.getItem(positions[0]); Track.Id trackId = (Track.Id) item.get(TRACK_ID_FIELD); - Marker.Id waypointId = (Marker.Id) item.get(MARKER_ID_FIELD); + Marker.Id markerId = (Marker.Id) item.get(MARKER_ID_FIELD); Intent intent; switch (itemId) { case R.id.list_context_menu_show_on_map: @@ -283,9 +283,9 @@ public class SearchListActivity extends AbstractListActivity implements DeleteMa startActivity(intent); return true; case R.id.list_context_menu_edit: - if (waypointId != null) { + if (markerId != null) { intent = IntentUtils.newIntent(this, MarkerEditActivity.class) - .putExtra(MarkerEditActivity.EXTRA_MARKER_ID, waypointId); + .putExtra(MarkerEditActivity.EXTRA_MARKER_ID, markerId); } else { intent = IntentUtils.newIntent(this, TrackEditActivity.class) .putExtra(TrackEditActivity.EXTRA_TRACK_ID, trackId); @@ -296,8 +296,8 @@ public class SearchListActivity extends AbstractListActivity implements DeleteMa finish(); return true; case R.id.list_context_menu_delete: - if (waypointId != null) { - DeleteMarkerDialogFragment.showDialog(getSupportFragmentManager(), waypointId); + if (markerId != null) { + DeleteMarkerDialogFragment.showDialog(getSupportFragmentManager(), markerId); } else { deleteTracks(trackId); } @@ -349,7 +349,7 @@ public class SearchListActivity extends AbstractListActivity implements DeleteMa * @return a list of result maps */ private List> prepareResultsforDisplay(Collection scoredResults) { - //TODO Replace use of map, but rather provide Track or Waypoint directly. + //TODO Replace use of map, but rather provide Track or Marker directly. ArrayList> output = new ArrayList<>(scoredResults.size()); for (ScoredResult result : scoredResults) { if (result.track != null) { @@ -361,18 +361,12 @@ public class SearchListActivity extends AbstractListActivity implements DeleteMa return output; } - /** - * Prepares a marker for display by filling in a result map. - * - * @param waypoint the marker - * @return the result map - */ - private Map prepareMarkerForDisplay(Marker waypoint) { + private Map prepareMarkerForDisplay(Marker marker) { Map resultMap = new HashMap<>(); //TODO: It may be more appropriate to obtain the track name as a join in the retrieval phase of the searchable. String trackName = null; - Track.Id trackId = waypoint.getTrackId(); + Track.Id trackId = marker.getTrackId(); if (!trackId.isValid()) { Track track = contentProviderUtils.getTrack(trackId); if (track != null) { @@ -384,20 +378,20 @@ public class SearchListActivity extends AbstractListActivity implements DeleteMa resultMap.put(IS_PAUSED_FIELD, true); resultMap.put(ICON_ID_FIELD, MarkerUtils.ICON_ID); resultMap.put(ICON_CONTENT_DESCRIPTION_ID_FIELD, R.string.image_marker); - resultMap.put(NAME_FIELD, waypoint.getName()); + resultMap.put(NAME_FIELD, marker.getName()); // Display the marker's track name in the total time field resultMap.put(TOTAL_TIME_FIELD, trackName == null ? null : getString(R.string.search_list_marker_track_location, trackName)); resultMap.put(TOTAL_DISTANCE_FIELD, null); resultMap.put(MARKER_COUNT_FIELD, 0); - resultMap.put(START_TIME_FIELD, waypoint.getLocation().getTime()); - resultMap.put(CATEGORY_FIELD, waypoint.getCategory()); - resultMap.put(DESCRIPTION_FIELD, waypoint.getDescription()); - resultMap.put(PHOTO_URL_FIELD, waypoint.getPhotoUrl()); - resultMap.put(TRACK_ID_FIELD, waypoint.getTrackId()); - resultMap.put(MARKER_ID_FIELD, waypoint.getId()); + resultMap.put(START_TIME_FIELD, marker.getLocation().getTime()); + resultMap.put(CATEGORY_FIELD, marker.getCategory()); + resultMap.put(DESCRIPTION_FIELD, marker.getDescription()); + resultMap.put(PHOTO_URL_FIELD, marker.getPhotoUrl()); + resultMap.put(TRACK_ID_FIELD, marker.getTrackId()); + resultMap.put(MARKER_ID_FIELD, marker.getId()); - resultMap.put(MARKER_LATITUDE_FIELD, waypoint.getLocation().getLatitude()); - resultMap.put(MARKER_LONGITUDE_FIELD, waypoint.getLocation().getLongitude()); + resultMap.put(MARKER_LATITUDE_FIELD, marker.getLocation().getLatitude()); + resultMap.put(MARKER_LONGITUDE_FIELD, marker.getLocation().getLongitude()); return resultMap; } diff --git a/src/main/java/de/dennisguse/opentracks/TrackRecordedActivity.java b/src/main/java/de/dennisguse/opentracks/TrackRecordedActivity.java index f75b570bd..97cb81b02 100644 --- a/src/main/java/de/dennisguse/opentracks/TrackRecordedActivity.java +++ b/src/main/java/de/dennisguse/opentracks/TrackRecordedActivity.java @@ -206,15 +206,15 @@ public class TrackRecordedActivity extends AbstractListActivity implements Choos private void handleIntent(Intent intent) { Track.Id trackId = intent.getParcelableExtra(EXTRA_TRACK_ID); - Marker.Id waypointId = intent.getParcelableExtra(EXTRA_MARKER_ID); - if (waypointId != null) { + Marker.Id markerId = intent.getParcelableExtra(EXTRA_MARKER_ID); + if (markerId != null) { // Use the trackId from the marker - Marker waypoint = contentProviderUtils.getMarker(waypointId); - if (waypoint == null) { + Marker marker = contentProviderUtils.getMarker(markerId); + if (marker == null) { finish(); return; } - trackId = waypoint.getTrackId(); + trackId = marker.getTrackId(); } if (trackId == null) { diff --git a/src/main/java/de/dennisguse/opentracks/chart/ChartView.java b/src/main/java/de/dennisguse/opentracks/chart/ChartView.java index 30a5a9440..3a5a0d05d 100644 --- a/src/main/java/de/dennisguse/opentracks/chart/ChartView.java +++ b/src/main/java/de/dennisguse/opentracks/chart/ChartView.java @@ -75,7 +75,7 @@ public class ChartView extends View { private static final int Y_AXIS_OFFSET = 16; //TODO Determine from actual size of the used drawable - private static final float WAYPOINT_X_ANCHOR = 13f / 48f; + private static final float MARKER_X_ANCHOR = 13f / 48f; static { X_FRACTION_FORMAT.setMaximumFractionDigits(1); @@ -87,7 +87,7 @@ public class ChartView extends View { private final ChartValueSeries paceSeries; private final List chartPoints = new ArrayList<>(); - private final List waypoints = new ArrayList<>(); + private final List markers = new ArrayList<>(); private final ExtremityMonitor xExtremityMonitor = new ExtremityMonitor(); private final int backgroundColor; private final Paint axisPaint; @@ -95,7 +95,7 @@ public class ChartView extends View { private final Paint gridPaint; private final Paint markerPaint; private final Drawable pointer; - private final Drawable waypointMarker; + private final Drawable markerPin; private final int markerWidth; private final int markerHeight; private final Scroller scroller; @@ -151,19 +151,19 @@ public class ChartView extends View { // Check if the y event is within markerHeight of the marker center if (Math.abs(event.getY() - topBorder - spacer - markerHeight / 2f) < markerHeight) { int minDistance = Integer.MAX_VALUE; - Marker nearestWaypoint = null; - synchronized (waypoints) { - for (Marker waypoint : waypoints) { - int distance = Math.abs(getX(getWaypointXValue(waypoint)) - (int) event.getX() - getScrollX()); + Marker nearestMarker = null; + synchronized (markers) { + for (Marker marker : markers) { + int distance = Math.abs(getX(getMarkerXValue(marker)) - (int) event.getX() - getScrollX()); if (distance < minDistance) { minDistance = distance; - nearestWaypoint = waypoint; + nearestMarker = marker; } } } - if (nearestWaypoint != null && minDistance < markerWidth) { + if (nearestMarker != null && minDistance < markerWidth) { Intent intent = IntentUtils.newIntent(getContext(), MarkerDetailActivity.class) - .putExtra(MarkerDetailActivity.EXTRA_MARKER_ID, nearestWaypoint.getId()); + .putExtra(MarkerDetailActivity.EXTRA_MARKER_ID, nearestMarker.getId()); getContext().startActivity(intent); return true; } @@ -333,10 +333,10 @@ public class ChartView extends View { pointer = context.getResources().getDrawable(R.drawable.ic_logo_color_24dp); pointer.setBounds(0, 0, pointer.getIntrinsicWidth(), pointer.getIntrinsicHeight()); - waypointMarker = MarkerUtils.getDefaultPhoto(context); - markerWidth = waypointMarker.getIntrinsicWidth(); - markerHeight = waypointMarker.getIntrinsicHeight(); - waypointMarker.setBounds(0, 0, markerWidth, markerHeight); + markerPin = MarkerUtils.getDefaultPhoto(context); + markerWidth = markerPin.getIntrinsicWidth(); + markerHeight = markerPin.getIntrinsicHeight(); + markerPin.setBounds(0, 0, markerWidth, markerHeight); scroller = new Scroller(context); setFocusable(true); @@ -435,15 +435,15 @@ public class ChartView extends View { scrollTo(0, 0); } - public void addWaypoint(Marker waypoint) { - synchronized (waypoints) { - waypoints.add(waypoint); + public void addMarker(Marker marker) { + synchronized (markers) { + markers.add(marker); } } - public void clearWaypoints() { - synchronized (waypoints) { - waypoints.clear(); + public void clearMarker() { + synchronized (markers) { + markers.clear(); } } @@ -547,7 +547,7 @@ public class ChartView extends View { clipToGraphArea(canvas); drawDataSeries(canvas); - drawWaypoints(canvas); + drawMarker(canvas); drawGrid(canvas); canvas.restore(); @@ -588,24 +588,19 @@ public class ChartView extends View { } } - /** - * Draws the waypoints. - * - * @param canvas the canvas - */ - private void drawWaypoints(Canvas canvas) { - synchronized (waypoints) { - for (Marker waypoint : waypoints) { - double xValue = getWaypointXValue(waypoint); + private void drawMarker(Canvas canvas) { + synchronized (markers) { + for (Marker marker : markers) { + double xValue = getMarkerXValue(marker); if (xValue > maxX) { continue; } canvas.save(); - float x = getX(getWaypointXValue(waypoint)); + float x = getX(getMarkerXValue(marker)); canvas.drawLine(x, topBorder + spacer + markerHeight / 2, x, topBorder + effectiveHeight, markerPaint); - canvas.translate(x - (markerWidth * WAYPOINT_X_ANCHOR), topBorder + spacer); + canvas.translate(x - (markerWidth * MARKER_X_ANCHOR), topBorder + spacer); - waypointMarker.draw(canvas); + markerPin.draw(canvas); canvas.restore(); } } @@ -976,17 +971,12 @@ public class ChartView extends View { return topBorder + yAxisOffset + (int) ((1 - percentage) * rangeHeight); } - /** - * Gets a waypoint's x value. - * - * @param waypoint the waypoint - */ - private double getWaypointXValue(Marker waypoint) { + private double getMarkerXValue(Marker marker) { if (chartByDistance) { - double lenghtInKm = waypoint.getLength() * UnitConversions.M_TO_KM; - return metricUnits ? lenghtInKm : lenghtInKm * UnitConversions.KM_TO_MI; + double length_km = marker.getLength() * UnitConversions.M_TO_KM; + return metricUnits ? length_km : length_km * UnitConversions.KM_TO_MI; } else { - return waypoint.getDuration(); + return marker.getDuration(); } } diff --git a/src/main/java/de/dennisguse/opentracks/content/data/Marker.java b/src/main/java/de/dennisguse/opentracks/content/data/Marker.java index d637ef05a..a056ca09e 100644 --- a/src/main/java/de/dennisguse/opentracks/content/data/Marker.java +++ b/src/main/java/de/dennisguse/opentracks/content/data/Marker.java @@ -69,7 +69,7 @@ public final class Marker { } /** - * May be null if the waypoint was not loaded from the database. + * May be null if the it was not loaded from the database. */ public @Nullable Id getId() { @@ -170,7 +170,7 @@ public final class Marker { return id; } - @Deprecated //TODO Use a Waypoint.Id of null instead + @Deprecated //TODO Use a Id of null instead public boolean isValid() { return id != PreferencesUtils.RECORDING_TRACK_ID_DEFAULT; } diff --git a/src/main/java/de/dennisguse/opentracks/content/data/MarkerColumns.java b/src/main/java/de/dennisguse/opentracks/content/data/MarkerColumns.java index 99cdd04c6..a410d0797 100644 --- a/src/main/java/de/dennisguse/opentracks/content/data/MarkerColumns.java +++ b/src/main/java/de/dennisguse/opentracks/content/data/MarkerColumns.java @@ -22,7 +22,7 @@ import android.provider.BaseColumns; import de.dennisguse.opentracks.content.provider.ContentProviderUtils; /** - * Constants for waypoints table. + * Constants for markers table. * * @author Leif Hendrik Wilden */ @@ -36,10 +36,10 @@ public interface MarkerColumns extends BaseColumns { String DEFAULT_SORT_ORDER = _ID; // Columns - String NAME = "name"; // waypoint name - String DESCRIPTION = "description"; // waypoint description - String CATEGORY = "category"; // waypoint category - String ICON = "icon"; // waypoint icon + String NAME = "name"; // marker name + String DESCRIPTION = "description"; // marker description + String CATEGORY = "category"; // marker category + String ICON = "icon"; // marker icon String TRACKID = "trackid"; // track id String LENGTH = "length"; // length of the track (without smoothing) diff --git a/src/main/java/de/dennisguse/opentracks/content/provider/CustomContentProvider.java b/src/main/java/de/dennisguse/opentracks/content/provider/CustomContentProvider.java index e3eb42860..8babebc5b 100644 --- a/src/main/java/de/dennisguse/opentracks/content/provider/CustomContentProvider.java +++ b/src/main/java/de/dennisguse/opentracks/content/provider/CustomContentProvider.java @@ -38,7 +38,7 @@ import de.dennisguse.opentracks.content.data.TrackPointsColumns; import de.dennisguse.opentracks.content.data.TracksColumns; /** - * A {@link ContentProvider} that handles access to track points, tracks, and waypoints tables. + * A {@link ContentProvider} that handles access to track points, tracks, and markers tables. * * @author Leif Hendrik Wilden */ @@ -61,9 +61,9 @@ public class CustomContentProvider extends ContentProvider { uriMatcher.addURI(ContentProviderUtils.AUTHORITY_PACKAGE, TracksColumns.CONTENT_URI.getPath(), UrlType.TRACKS.ordinal()); uriMatcher.addURI(ContentProviderUtils.AUTHORITY_PACKAGE, TracksColumns.CONTENT_URI.getPath() + "/*", UrlType.TRACKS_BY_ID.ordinal()); - uriMatcher.addURI(ContentProviderUtils.AUTHORITY_PACKAGE, MarkerColumns.CONTENT_URI.getPath(), UrlType.WAYPOINTS.ordinal()); - uriMatcher.addURI(ContentProviderUtils.AUTHORITY_PACKAGE, MarkerColumns.CONTENT_URI.getPath() + "/#", UrlType.WAYPOINTS_BY_ID.ordinal()); - uriMatcher.addURI(ContentProviderUtils.AUTHORITY_PACKAGE, MarkerColumns.CONTENT_URI_BY_TRACKID.getPath() + "/*", UrlType.WAYPOINTS_BY_TRACKID.ordinal()); + uriMatcher.addURI(ContentProviderUtils.AUTHORITY_PACKAGE, MarkerColumns.CONTENT_URI.getPath(), UrlType.MARKERS.ordinal()); + uriMatcher.addURI(ContentProviderUtils.AUTHORITY_PACKAGE, MarkerColumns.CONTENT_URI.getPath() + "/#", UrlType.MARKERS_BY_ID.ordinal()); + uriMatcher.addURI(ContentProviderUtils.AUTHORITY_PACKAGE, MarkerColumns.CONTENT_URI_BY_TRACKID.getPath() + "/*", UrlType.MARKERS_BY_TRACKID.ordinal()); } @Override @@ -100,7 +100,7 @@ public class CustomContentProvider extends ContentProvider { table = TracksColumns.TABLE_NAME; shouldVacuum = true; break; - case WAYPOINTS: + case MARKERS: table = MarkerColumns.TABLE_NAME; break; default: @@ -138,10 +138,10 @@ public class CustomContentProvider extends ContentProvider { return TracksColumns.CONTENT_TYPE; case TRACKS_BY_ID: return TracksColumns.CONTENT_ITEMTYPE; - case WAYPOINTS: + case MARKERS: return MarkerColumns.CONTENT_TYPE; - case WAYPOINTS_BY_ID: - case WAYPOINTS_BY_TRACKID: + case MARKERS_BY_ID: + case MARKERS_BY_TRACKID: return MarkerColumns.CONTENT_ITEMTYPE; default: throw new IllegalArgumentException("Unknown URL " + url); @@ -213,15 +213,15 @@ public class CustomContentProvider extends ContentProvider { queryBuilder.setTables(TracksColumns.TABLE_NAME); queryBuilder.appendWhere(TracksColumns._ID + " IN (" + TextUtils.join(SQL_LIST_DELIMITER, ContentProviderUtils.parseTrackIdsFromUri(url)) + ")"); break; - case WAYPOINTS: + case MARKERS: queryBuilder.setTables(MarkerColumns.TABLE_NAME); sortOrder = sort != null ? sort : MarkerColumns.DEFAULT_SORT_ORDER; break; - case WAYPOINTS_BY_ID: + case MARKERS_BY_ID: queryBuilder.setTables(MarkerColumns.TABLE_NAME); queryBuilder.appendWhere(MarkerColumns._ID + "=" + ContentUris.parseId(url)); break; - case WAYPOINTS_BY_TRACKID: + case MARKERS_BY_TRACKID: queryBuilder.setTables(MarkerColumns.TABLE_NAME); queryBuilder.appendWhere(MarkerColumns.TRACKID + " IN (" + TextUtils.join(SQL_LIST_DELIMITER, ContentProviderUtils.parseTrackIdsFromUri(url)) + ")"); break; @@ -261,11 +261,11 @@ public class CustomContentProvider extends ContentProvider { whereClause += " AND (" + where + ")"; } break; - case WAYPOINTS: + case MARKERS: table = MarkerColumns.TABLE_NAME; whereClause = where; break; - case WAYPOINTS_BY_ID: + case MARKERS_BY_ID: table = MarkerColumns.TABLE_NAME; whereClause = MarkerColumns._ID + "=" + ContentUris.parseId(url); if (!TextUtils.isEmpty(where)) { @@ -316,8 +316,8 @@ public class CustomContentProvider extends ContentProvider { return insertTrackPoint(url, contentValues); case TRACKS: return insertTrack(url, contentValues); - case WAYPOINTS: - return insertWaypoint(url, contentValues); + case MARKERS: + return insertMarker(url, contentValues); default: throw new IllegalArgumentException("Unknown url " + url); } @@ -361,25 +361,14 @@ public class CustomContentProvider extends ContentProvider { throw new SQLException("Failed to insert a track " + url); } - /** - * Inserts a waypoint. - * - * @param url the content url - * @param contentValues the content values - */ - private Uri insertWaypoint(Uri url, ContentValues contentValues) { + private Uri insertMarker(Uri url, ContentValues contentValues) { long rowId = db.insert(MarkerColumns.TABLE_NAME, MarkerColumns._ID, contentValues); if (rowId >= 0) { return ContentUris.appendId(MarkerColumns.CONTENT_URI.buildUpon(), rowId).build(); } - throw new SQLException("Failed to insert a waypoint " + url); + throw new SQLException("Failed to insert a marker " + url); } - /** - * Types of url. - * - * @author Jimmy Shih - */ @VisibleForTesting enum UrlType { TRACKPOINTS, @@ -387,8 +376,8 @@ public class CustomContentProvider extends ContentProvider { TRACKPOINTS_BY_TRACKID, TRACKS, TRACKS_BY_ID, - WAYPOINTS, - WAYPOINTS_BY_ID, - WAYPOINTS_BY_TRACKID + MARKERS, + MARKERS_BY_ID, + MARKERS_BY_TRACKID } } diff --git a/src/main/java/de/dennisguse/opentracks/fragments/ChartFragment.java b/src/main/java/de/dennisguse/opentracks/fragments/ChartFragment.java index f9270e1ea..29efb2442 100644 --- a/src/main/java/de/dennisguse/opentracks/fragments/ChartFragment.java +++ b/src/main/java/de/dennisguse/opentracks/fragments/ChartFragment.java @@ -244,14 +244,14 @@ public class ChartFragment extends Fragment implements TrackDataListener { @Override public void clearMarkers() { if (isResumed()) { - chartView.clearWaypoints(); + chartView.clearMarker(); } } @Override public void onNewMarker(Marker marker) { if (isResumed() && marker != null && LocationUtils.isValidLocation(marker.getLocation())) { - chartView.addWaypoint(marker); + chartView.addMarker(marker); } } diff --git a/src/main/java/de/dennisguse/opentracks/fragments/DeleteMarkerDialogFragment.java b/src/main/java/de/dennisguse/opentracks/fragments/DeleteMarkerDialogFragment.java index 812d212cd..9198095c1 100644 --- a/src/main/java/de/dennisguse/opentracks/fragments/DeleteMarkerDialogFragment.java +++ b/src/main/java/de/dennisguse/opentracks/fragments/DeleteMarkerDialogFragment.java @@ -42,9 +42,9 @@ public class DeleteMarkerDialogFragment extends DialogFragment { private DeleteMarkerCaller caller; - public static void showDialog(FragmentManager fragmentManager, Marker.Id... waypointIds) { + public static void showDialog(FragmentManager fragmentManager, Marker.Id... markerIds) { Bundle bundle = new Bundle(); - bundle.putParcelableArray(KEY_MARKER_IDS, waypointIds); + bundle.putParcelableArray(KEY_MARKER_IDS, markerIds); DeleteMarkerDialogFragment deleteMarkerDialogFragment = new DeleteMarkerDialogFragment(); deleteMarkerDialogFragment.setArguments(bundle); diff --git a/src/main/java/de/dennisguse/opentracks/fragments/MarkerDetailFragment.java b/src/main/java/de/dennisguse/opentracks/fragments/MarkerDetailFragment.java index bd6d40e3f..c2c717fd4 100644 --- a/src/main/java/de/dennisguse/opentracks/fragments/MarkerDetailFragment.java +++ b/src/main/java/de/dennisguse/opentracks/fragments/MarkerDetailFragment.java @@ -66,8 +66,8 @@ public class MarkerDetailFragment extends Fragment { private Handler handler; private ImageView photoView; private ImageView textGradient; - private LinearLayout waypointInfo; - private Marker waypoint; + private LinearLayout markerInfo; + private Marker marker; private final Runnable hideText = new Runnable() { @Override public void run() { @@ -85,17 +85,17 @@ public class MarkerDetailFragment extends Fragment { @Override public void onAnimationEnd(Animation anim) { textGradient.setVisibility(View.GONE); - waypointInfo.setVisibility(View.GONE); + markerInfo.setVisibility(View.GONE); } }); textGradient.startAnimation(animation); - waypointInfo.startAnimation(animation); + markerInfo.startAnimation(animation); } }; - public static MarkerDetailFragment newInstance(Marker.Id waypointId) { + public static MarkerDetailFragment newInstance(Marker.Id markerId) { Bundle bundle = new Bundle(); - bundle.putParcelable(KEY_MARKER_ID, waypointId); + bundle.putParcelable(KEY_MARKER_ID, markerId); MarkerDetailFragment fragment = new MarkerDetailFragment(); fragment.setArguments(bundle); @@ -106,8 +106,8 @@ public class MarkerDetailFragment extends Fragment { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - Marker.Id waypointId = getArguments().getParcelable(KEY_MARKER_ID); - if (waypointId == null) { + Marker.Id markerId = getArguments().getParcelable(KEY_MARKER_ID); + if (markerId == null) { Log.d(TAG, "invalid marker id"); getParentFragmentManager().popBackStack(); return; @@ -121,15 +121,15 @@ public class MarkerDetailFragment extends Fragment { public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.marker_detail_fragment, container, false); - photoView = view.findViewById(R.id.marker_detail_waypoint_photo); - textGradient = view.findViewById(R.id.marker_detail_waypoint_text_gradient); - waypointInfo = view.findViewById(R.id.marker_detail_waypoint_info); + photoView = view.findViewById(R.id.marker_detail_marker_photo); + textGradient = view.findViewById(R.id.marker_detail_marker_text_gradient); + markerInfo = view.findViewById(R.id.marker_detail_marker_info); photoView.setOnClickListener(v -> { handler.removeCallbacks(hideText); - int visibility = waypointInfo.getVisibility() == View.GONE ? View.VISIBLE : View.GONE; + int visibility = markerInfo.getVisibility() == View.GONE ? View.VISIBLE : View.GONE; textGradient.setVisibility(visibility); - waypointInfo.setVisibility(visibility); + markerInfo.setVisibility(visibility); if (visibility == View.VISIBLE) { handler.postDelayed(hideText, HIDE_TEXT_DELAY); } @@ -141,8 +141,8 @@ public class MarkerDetailFragment extends Fragment { public void onResume() { super.onResume(); - // Need to update the waypoint in case returning after an edit - updateWaypoint(true); + // Need to update the marker in case returning after an edit + updateMarker(true); updateUi(); updateMenuItems(); } @@ -171,64 +171,59 @@ public class MarkerDetailFragment extends Fragment { public void onCreateOptionsMenu(@NonNull Menu menu, MenuInflater inflater) { inflater.inflate(R.menu.marker_detail, menu); shareMarkerImageMenuItem = menu.findItem(R.id.marker_detail_share); - updateWaypoint(false); + updateMarker(false); updateMenuItems(); } private void updateMenuItems() { if (shareMarkerImageMenuItem != null) - shareMarkerImageMenuItem.setVisible(waypoint.hasPhoto()); + shareMarkerImageMenuItem.setVisible(marker.hasPhoto()); } @Override public boolean onOptionsItemSelected(MenuItem item) { - Marker.Id waypointId = getArguments().getParcelable(KEY_MARKER_ID); //TODO Should only happen in onCreate? + Marker.Id markerId = getArguments().getParcelable(KEY_MARKER_ID); //TODO Should only happen in onCreate? FragmentActivity fragmentActivity = getActivity(); Intent intent; switch (item.getItemId()) { case R.id.marker_detail_show_on_map: - IntentUtils.showCoordinateOnMap(getContext(), waypoint); + IntentUtils.showCoordinateOnMap(getContext(), marker); return true; case R.id.marker_detail_edit: intent = IntentUtils.newIntent(fragmentActivity, MarkerEditActivity.class) - .putExtra(MarkerEditActivity.EXTRA_MARKER_ID, waypointId); + .putExtra(MarkerEditActivity.EXTRA_MARKER_ID, markerId); startActivity(intent); return true; case R.id.marker_detail_share: - if (waypoint.hasPhoto()) { - intent = IntentUtils.newShareImageIntent(getContext(), waypoint.getPhotoURI()); + if (marker.hasPhoto()) { + intent = IntentUtils.newShareImageIntent(getContext(), marker.getPhotoURI()); intent = Intent.createChooser(intent, null); startActivity(intent); } return true; case R.id.marker_detail_delete: - DeleteMarkerDialogFragment.showDialog(getChildFragmentManager(), waypointId); + DeleteMarkerDialogFragment.showDialog(getChildFragmentManager(), markerId); return true; default: return super.onOptionsItemSelected(item); } } - /** - * Updates the waypoint. - * - * @param refresh true to always update - */ - private void updateWaypoint(boolean refresh) { - if (refresh || waypoint == null) { - waypoint = contentProviderUtils.getMarker(getArguments().getParcelable(KEY_MARKER_ID)); //TODO Should only happen in onCreate? - if (waypoint == null) { - Log.d(TAG, "waypoint is null"); + private void updateMarker(boolean refresh) { + if (refresh || marker == null) { + marker = contentProviderUtils.getMarker(getArguments().getParcelable(KEY_MARKER_ID)); //TODO Should only happen in onCreate? + if (marker == null) { + Log.d(TAG, "marker is null"); getParentFragmentManager().popBackStack(); } } } private void updateUi() { - boolean hasPhoto = waypoint.hasPhoto(); + boolean hasPhoto = marker.hasPhoto(); if (hasPhoto) { handler.removeCallbacks(hideText); - photoView.setImageURI(waypoint.getPhotoURI()); + photoView.setImageURI(marker.getPhotoURI()); handler.postDelayed(hideText, HIDE_TEXT_DELAY); } else { photoView.setImageResource(MarkerUtils.ICON_ID); @@ -236,23 +231,23 @@ public class MarkerDetailFragment extends Fragment { setName(hasPhoto); - TextView category = getView().findViewById(R.id.marker_detail_waypoint_category); - ListItemUtils.setTextView(getActivity(), category, StringUtils.getCategory(waypoint.getCategory()), hasPhoto); + TextView category = getView().findViewById(R.id.marker_detail_marker_category); + ListItemUtils.setTextView(getActivity(), category, StringUtils.getCategory(marker.getCategory()), hasPhoto); - TextView description = getView().findViewById(R.id.marker_detail_waypoint_description); - ListItemUtils.setTextView(getActivity(), description, waypoint.getDescription(), hasPhoto); + TextView description = getView().findViewById(R.id.marker_detail_marker_description); + ListItemUtils.setTextView(getActivity(), description, marker.getDescription(), hasPhoto); setLocation(hasPhoto); } private void setName(boolean addShadow) { - TextView textView = getView().findViewById(R.id.marker_detail_waypoint_name); - ListItemUtils.setTextView(getActivity(), textView, waypoint.getName(), addShadow); + TextView textView = getView().findViewById(R.id.marker_detail_marker_name); + ListItemUtils.setTextView(getActivity(), textView, marker.getName(), addShadow); } private void setLocation(boolean addShadow) { - TextView textView = getView().findViewById(R.id.marker_detail_waypoint_location); - Location location = waypoint.getLocation(); + TextView textView = getView().findViewById(R.id.marker_detail_marker_location); + Location location = marker.getLocation(); String value; if (location == null) { value = null; diff --git a/src/main/java/de/dennisguse/opentracks/io/file/exporter/FileTrackExporter.java b/src/main/java/de/dennisguse/opentracks/io/file/exporter/FileTrackExporter.java index 517d0d7bd..595527156 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/exporter/FileTrackExporter.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/exporter/FileTrackExporter.java @@ -64,8 +64,8 @@ public class FileTrackExporter implements TrackExporter { try { trackWriter.prepare(outputStream); trackWriter.writeHeader(tracks); - for (Track track1 : tracks) { - writeWaypoints(track1); + for (Track track : tracks) { + writeMarkers(track); } boolean hasMultipleTracks = tracks.length > 1; if (hasMultipleTracks) { @@ -89,34 +89,31 @@ public class FileTrackExporter implements TrackExporter { } } - /** - * Writes the waypoints. - */ - private void writeWaypoints(Track track) throws InterruptedException { + private void writeMarkers(Track track) throws InterruptedException { /* - * TODO: Stream through the waypoints in chunks. - * I am leaving the number of waypoints very high which should not be a problem, because we don't try to load them into objects all at the same time. + * TODO: Stream through the markers in chunks. + * I am leaving the number of markers very high which should not be a problem, because we don't try to load them into objects all at the same time. */ - boolean hasWaypoints = false; + boolean hasMarkers = false; try (Cursor cursor = contentProviderUtils.getMarkerCursor(track.getId(), null, ContentProviderUtils.MAX_LOADED_MARKERS)) { if (cursor != null && cursor.moveToFirst()) { for (int i = 0; i < cursor.getCount(); i++) { if (Thread.interrupted()) { throw new InterruptedException(); } - if (!hasWaypoints) { - trackWriter.writeBeginWaypoints(track); - hasWaypoints = true; + if (!hasMarkers) { + trackWriter.writeBeginMarkers(track); + hasMarkers = true; } - Marker waypoint = contentProviderUtils.createMarker(cursor); - trackWriter.writeWaypoint(waypoint); + Marker marker = contentProviderUtils.createMarker(cursor); + trackWriter.writeMarker(marker); cursor.moveToNext(); } } } - if (hasWaypoints) { - trackWriter.writeEndWaypoints(); + if (hasMarkers) { + trackWriter.writeEndMarkers(); } } diff --git a/src/main/java/de/dennisguse/opentracks/io/file/exporter/GpxTrackWriter.java b/src/main/java/de/dennisguse/opentracks/io/file/exporter/GpxTrackWriter.java index 69971304f..f488ae6ba 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/exporter/GpxTrackWriter.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/exporter/GpxTrackWriter.java @@ -33,7 +33,7 @@ import de.dennisguse.opentracks.util.StringUtils; * * @author Sandor Dornbush */ -//TODO Export waypoints +//TODO Export markers public class GpxTrackWriter implements TrackWriter { private static final NumberFormat ELEVATION_FORMAT = NumberFormat.getInstance(Locale.US); @@ -120,27 +120,27 @@ public class GpxTrackWriter implements TrackWriter { } @Override - public void writeBeginWaypoints(Track track) { + public void writeBeginMarkers(Track track) { // Do nothing } @Override - public void writeEndWaypoints() { + public void writeEndMarkers() { // Do nothing } @Override - public void writeWaypoint(Marker waypoint) { + public void writeMarker(Marker marker) { if (printWriter != null) { - Location location = waypoint.getLocation(); + Location location = marker.getLocation(); printWriter.println(""); if (location.hasAltitude()) { printWriter.println("" + ELEVATION_FORMAT.format(location.getAltitude()) + ""); } printWriter.println(""); - printWriter.println("" + StringUtils.formatCData(waypoint.getName()) + ""); - printWriter.println("" + StringUtils.formatCData(waypoint.getDescription()) + ""); - printWriter.println("" + StringUtils.formatCData(waypoint.getCategory()) + ""); + printWriter.println("" + StringUtils.formatCData(marker.getName()) + ""); + printWriter.println("" + StringUtils.formatCData(marker.getDescription()) + ""); + printWriter.println("" + StringUtils.formatCData(marker.getCategory()) + ""); printWriter.println(""); } } diff --git a/src/main/java/de/dennisguse/opentracks/io/file/exporter/KmlTrackWriter.java b/src/main/java/de/dennisguse/opentracks/io/file/exporter/KmlTrackWriter.java index 4e34c54d3..1b224aa5e 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/exporter/KmlTrackWriter.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/exporter/KmlTrackWriter.java @@ -40,7 +40,7 @@ import de.dennisguse.opentracks.util.StringUtils; */ public class KmlTrackWriter implements TrackWriter { - public static final String WAYPOINT_STYLE = "waypoint"; + public static final String MARKER_STYLE = "waypoint"; private static final String START_STYLE = "start"; private static final String END_STYLE = "end"; private static final String TRACK_STYLE = "track"; @@ -52,7 +52,7 @@ public class KmlTrackWriter implements TrackWriter { public static final String EXTENDED_DATA_TYPE_POWER = "power"; public static final String EXTENDED_DATA_TYPE_ELEVATION_GAIN = "elevation_gain"; - private static final String WAYPOINT_ICON = "http://maps.google.com/mapfiles/kml/pushpin/blue-pushpin.png"; + private static final String MARKER_ICON = "http://maps.google.com/mapfiles/kml/pushpin/blue-pushpin.png"; private static final String START_ICON = "http://maps.google.com/mapfiles/kml/paddle/grn-circle.png"; private static final String END_ICON = "http://maps.google.com/mapfiles/kml/paddle/red-circle.png"; private static final String TRACK_ICON = "http://earth.google.com/images/kml-icons/track-directional/track-0.png"; @@ -75,7 +75,7 @@ public class KmlTrackWriter implements TrackWriter { /** * @param context the context - * @param exportTrackDetail should detailed information about the track be exported (e.g., title, description, waypoints, timing)? + * @param exportTrackDetail should detailed information about the track be exported (e.g., title, description, markers, timing)? * @param exportSensorData should {@link TrackPoint}'s sensor data be exported? * @param exportPhotos should pictures be exported (if true: exports to KMZ)? */ @@ -124,7 +124,7 @@ public class KmlTrackWriter implements TrackWriter { writeTrackStyle(); writePlacemarkerStyle(START_STYLE, START_ICON, 32, 1); writePlacemarkerStyle(END_STYLE, END_ICON, 32, 1); - writePlacemarkerStyle(WAYPOINT_STYLE, WAYPOINT_ICON, 20, 2); + writePlacemarkerStyle(MARKER_STYLE, MARKER_ICON, 20, 2); printWriter.println(""); writeSimpleArrayStyle(EXTENDED_DATA_TYPE_SPEED, context.getString(R.string.description_speed_ms)); @@ -147,7 +147,7 @@ public class KmlTrackWriter implements TrackWriter { } @Override - public void writeBeginWaypoints(Track track) { + public void writeBeginMarkers(Track track) { if (printWriter != null) { printWriter.println(""); if (exportTrackDetail) { @@ -158,21 +158,21 @@ public class KmlTrackWriter implements TrackWriter { } @Override - public void writeEndWaypoints() { + public void writeEndMarkers() { if (printWriter != null) { printWriter.println(""); } } @Override - public void writeWaypoint(Marker waypoint) { + public void writeMarker(Marker marker) { if (printWriter != null && exportTrackDetail) { - boolean existsPhoto = FileUtils.getPhotoFileIfExists(context, waypoint.getTrackId(), waypoint.getPhotoURI()) != null; - if (waypoint.hasPhoto() && exportPhotos && existsPhoto) { - float heading = getHeading(waypoint.getTrackId(), waypoint.getLocation()); - writePhotoOverlay(waypoint, heading); + boolean existsPhoto = FileUtils.getPhotoFileIfExists(context, marker.getTrackId(), marker.getPhotoURI()) != null; + if (marker.hasPhoto() && exportPhotos && existsPhoto) { + float heading = getHeading(marker.getTrackId(), marker.getLocation()); + writePhotoOverlay(marker, heading); } else { - writePlacemark(waypoint.getName(), waypoint.getCategory(), waypoint.getDescription(), WAYPOINT_STYLE, waypoint.getLocation()); + writePlacemark(marker.getName(), marker.getCategory(), marker.getDescription(), MARKER_STYLE, marker.getLocation()); } } } @@ -337,30 +337,24 @@ public class KmlTrackWriter implements TrackWriter { } } - /** - * Writes a photo overlay from waypoint. - * - * @param waypoint Waypoint object. - * @param heading the heading. - */ - private void writePhotoOverlay(Marker waypoint, float heading) { + private void writePhotoOverlay(Marker marker, float heading) { if (exportTrackDetail) { printWriter.println(""); - printWriter.println("" + StringUtils.formatCData(waypoint.getName()) + ""); - printWriter.println("" + StringUtils.formatCData(waypoint.getDescription()) + ""); + printWriter.println("" + StringUtils.formatCData(marker.getName()) + ""); + printWriter.println("" + StringUtils.formatCData(marker.getDescription()) + ""); printWriter.print(""); - printWriter.print("" + waypoint.getLocation().getLongitude() + ""); - printWriter.print("" + waypoint.getLocation().getLatitude() + ""); + printWriter.print("" + marker.getLocation().getLongitude() + ""); + printWriter.print("" + marker.getLocation().getLatitude() + ""); printWriter.print("20"); printWriter.print("" + heading + ""); printWriter.print("90"); printWriter.println(""); - printWriter.println("" + getTime(waypoint.getLocation()) + ""); - printWriter.println("#" + KmlTrackWriter.WAYPOINT_STYLE + ""); - writeCategory(waypoint.getCategory()); + printWriter.println("" + getTime(marker.getLocation()) + ""); + printWriter.println("#" + KmlTrackWriter.MARKER_STYLE + ""); + writeCategory(marker.getCategory()); if (exportPhotos) { - printWriter.println("" + KmzTrackExporter.buildKmzImageFilePath(waypoint) + ""); + printWriter.println("" + KmzTrackExporter.buildKmzImageFilePath(marker) + ""); } printWriter.print(""); @@ -371,7 +365,7 @@ public class KmlTrackWriter implements TrackWriter { printWriter.print("45"); printWriter.println(""); printWriter.println(""); - printWriter.println("" + getCoordinates(waypoint.getLocation(), ",") + ""); + printWriter.println("" + getCoordinates(marker.getLocation(), ",") + ""); printWriter.println(""); printWriter.println(""); } diff --git a/src/main/java/de/dennisguse/opentracks/io/file/exporter/KmzTrackExporter.java b/src/main/java/de/dennisguse/opentracks/io/file/exporter/KmzTrackExporter.java index 478b67731..9d94b21c2 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/exporter/KmzTrackExporter.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/exporter/KmzTrackExporter.java @@ -105,12 +105,12 @@ public class KmzTrackExporter implements TrackExporter { if (Thread.interrupted()) { throw new InterruptedException(); } - Marker waypoint = contentProviderUtils.createMarker(cursor); - if (waypoint.hasPhoto()) { - Uri uriPhoto = waypoint.getPhotoURI(); + Marker marker = contentProviderUtils.createMarker(cursor); + if (marker.hasPhoto()) { + Uri uriPhoto = marker.getPhotoURI(); boolean existsPhoto = FileUtils.getPhotoFileIfExists(context, track.getId(), uriPhoto) != null; if (existsPhoto) { - addImage(context, zipOutputStream, uriPhoto, waypoint); + addImage(context, zipOutputStream, uriPhoto, marker); } } @@ -121,9 +121,9 @@ public class KmzTrackExporter implements TrackExporter { } } - private void addImage(Context context, ZipOutputStream zipOutputStream, Uri uri, Marker waypoint) throws IOException { + private void addImage(Context context, ZipOutputStream zipOutputStream, Uri uri, Marker marker) throws IOException { try (InputStream inputStream = context.getContentResolver().openInputStream(uri)) { - ZipEntry zipEntry = new ZipEntry(buildKmzImageFilePath(waypoint)); + ZipEntry zipEntry = new ZipEntry(buildKmzImageFilePath(marker)); zipOutputStream.putNextEntry(zipEntry); if (inputStream == null) throw new FileNotFoundException(); @@ -146,13 +146,11 @@ public class KmzTrackExporter implements TrackExporter { } /** - * Builds and returns the path for the image that will be saved inside KMZ_IMAGES_DIR for the waypoint. - * - * @param waypoint Waypoint object. + * Builds and returns the path for the image that will be saved inside KMZ_IMAGES_DIR for the marker. */ - public static String buildKmzImageFilePath(Marker waypoint) { - String ext = FileUtils.getExtension(waypoint.getPhotoUrl()); + public static String buildKmzImageFilePath(Marker marker) { + String ext = FileUtils.getExtension(marker.getPhotoUrl()); ext = ext == null ? "" : "." + ext; - return KMZ_IMAGES_DIR + File.separatorChar + FileUtils.sanitizeFileName(waypoint.getId().getId() + ext); + return KMZ_IMAGES_DIR + File.separatorChar + FileUtils.sanitizeFileName(marker.getId().getId() + ext); } } \ No newline at end of file diff --git a/src/main/java/de/dennisguse/opentracks/io/file/exporter/TrackWriter.java b/src/main/java/de/dennisguse/opentracks/io/file/exporter/TrackWriter.java index 363788173..6fca72845 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/exporter/TrackWriter.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/exporter/TrackWriter.java @@ -28,10 +28,10 @@ import de.dennisguse.opentracks.content.data.TrackPoint; * {@link #prepare(OutputStream)} * {@link #writeHeader(Track[])} * For each track: - * {@link #writeBeginWaypoints(Track)} - * For each waypoint: - * {@link #writeWaypoint(Marker)} - * {@link #writeEndWaypoints()} + * {@link #writeBeginMarkers(Track)} + * For each marker: + * {@link #writeMarker(Marker)} + * {@link #writeEndMarkers()} * {@link #writeMultiTrackBegin()} * For each track: * {@link #writeBeginTrack(Track, TrackPoint)} @@ -50,11 +50,6 @@ import de.dennisguse.opentracks.content.data.TrackPoint; */ public interface TrackWriter { - /** - * Prepares the output stream. - * - * @param outputStream the output stream - */ void prepare(OutputStream outputStream); /** @@ -62,77 +57,27 @@ public interface TrackWriter { */ void close(); - /** - * Writes the header - * - * @param tracks the tracks - */ void writeHeader(Track[] tracks); - /** - * Writes the footer. - */ void writeFooter(); - /** - * Writes the beginning of the waypoints. - * - * @param track the track - */ - void writeBeginWaypoints(Track track); + void writeBeginMarkers(Track track); - /** - * Writes the end of the waypoints. - */ - void writeEndWaypoints(); + void writeEndMarkers(); - /** - * Writes a waypoint. - * - * @param waypoint the waypoint - */ - void writeWaypoint(Marker waypoint); + void writeMarker(Marker marker); - /** - * Writes the beginning of the tracks. - */ void writeMultiTrackBegin(); - /** - * Writes the end of the tracks, - */ void writeMultiTrackEnd(); - /** - * Writes the beginning of a track. - * - * @param track the track - * @param startTrackPoint the start location - */ void writeBeginTrack(Track track, TrackPoint startTrackPoint); - /** - * Writes the end of a track. - * - * @param track the track - * @param endTrackPoint the end location - */ void writeEndTrack(Track track, TrackPoint endTrackPoint); - /** - * Writes open segment. - */ void writeOpenSegment(); - /** - * Writes close segment. - */ void writeCloseSegment(); - /** - * Writes a trackPoint. - * - * @param trackPoint the trackPoint - */ void writeTrackPoint(TrackPoint trackPoint); } \ No newline at end of file diff --git a/src/main/java/de/dennisguse/opentracks/io/file/importer/AbstractFileTrackImporter.java b/src/main/java/de/dennisguse/opentracks/io/file/importer/AbstractFileTrackImporter.java index 9cb0a3bb4..5f2a63451 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/importer/AbstractFileTrackImporter.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/importer/AbstractFileTrackImporter.java @@ -70,7 +70,7 @@ abstract class AbstractFileTrackImporter extends DefaultHandler implements Track private Track.Id importTrackId; private final List trackIds = new ArrayList<>(); - private final List waypoints = new ArrayList<>(); + private final List markers = new ArrayList<>(); // The current element content //TODO Should be made private and getter be used by child classes. @@ -88,7 +88,7 @@ abstract class AbstractFileTrackImporter extends DefaultHandler implements Track protected String heartrate; protected String cadence; protected String power; - protected String waypointType; + protected String markerType; protected String photoUrl; protected String uuid; @@ -148,7 +148,7 @@ abstract class AbstractFileTrackImporter extends DefaultHandler implements Track * On file end. */ protected void onFileEnd() { - // Add waypoints to the last imported track + // Add markers to the last imported track int size = trackIds.size(); if (size == 0) { return; @@ -159,8 +159,8 @@ abstract class AbstractFileTrackImporter extends DefaultHandler implements Track return; } - int waypointPosition = -1; - Marker waypoint = null; + int markerPosition = -1; + Marker marker = null; TrackPoint trackPoint = null; TrackStatisticsUpdater trackStatisticsUpdater = new TrackStatisticsUpdater(track.getTrackStatistics().getStartTime_ms()); // TODO Should not be necessary anymore? @@ -169,18 +169,18 @@ abstract class AbstractFileTrackImporter extends DefaultHandler implements Track try (TrackPointIterator trackPointIterator = contentProviderUtils.getTrackPointLocationIterator(track.getId(), -1L, false)) { while (true) { - if (waypoint == null) { - waypointPosition++; - waypoint = waypointPosition < waypoints.size() ? waypoints.get(waypointPosition) : null; - if (waypoint == null) { - // No more waypoints + if (marker == null) { + markerPosition++; + marker = markerPosition < markers.size() ? markers.get(markerPosition) : null; + if (marker == null) { + // No more markers return; } } if (trackPoint == null) { if (!trackPointIterator.hasNext()) { - // No more track points. Ignore the rest of the waypoints. + // No more track points. Ignore the rest of the markers. return; } trackPoint = trackPointIterator.next(); @@ -188,13 +188,13 @@ abstract class AbstractFileTrackImporter extends DefaultHandler implements Track markerTrackStatisticsUpdater.addTrackPoint(trackPoint, recordingDistanceInterval); } - if (waypoint.getLocation().getTime() > trackPoint.getTime()) { + if (marker.getLocation().getTime() > trackPoint.getTime()) { trackPoint = null; - } else if (waypoint.getLocation().getTime() < trackPoint.getTime()) { - Log.w(TAG, "Ignoring waypoint: current trackPoint was after waypoint."); - waypoint = null; + } else if (marker.getLocation().getTime() < trackPoint.getTime()) { + Log.w(TAG, "Ignoring marker: current trackPoint was after marker."); + marker = null; } else { - // The waypoint trackPoint time matches the track point time + // The marker trackPoint time matches the track point time if (!LocationUtils.isValidLocation(trackPoint.getLocation())) { // Invalid trackPoint, load the next trackPoint trackPoint = null; @@ -202,19 +202,19 @@ abstract class AbstractFileTrackImporter extends DefaultHandler implements Track } // Valid trackPoint - if (trackPoint.getLatitude() == waypoint.getLocation().getLatitude() && trackPoint.getLongitude() == waypoint.getLocation().getLongitude()) { - String waypointDescription = waypoint.getDescription(); - String icon = context.getString(R.string.marker_waypoint_icon_url); + if (trackPoint.getLatitude() == marker.getLocation().getLatitude() && trackPoint.getLongitude() == marker.getLocation().getLongitude()) { + String markerDescription = marker.getDescription(); + String icon = context.getString(R.string.marker_icon_url); double length = trackStatisticsUpdater.getTrackStatistics().getTotalDistance(); long duration = trackStatisticsUpdater.getTrackStatistics().getTotalTime(); - // Insert waypoint - Marker newWaypoint = new Marker(waypoint.getName(), waypointDescription, waypoint.getCategory(), icon, track.getId(), length, duration, trackPoint.getLocation(), waypoint.getPhotoUrl()); - contentProviderUtils.insertMarker(newWaypoint); + // Insert marker + Marker newMarker = new Marker(marker.getName(), markerDescription, marker.getCategory(), icon, track.getId(), length, duration, trackPoint.getLocation(), marker.getPhotoUrl()); + contentProviderUtils.insertMarker(newMarker); } - // Load the next waypoint - waypoint = null; + // Load the next marker + marker = null; } } } @@ -300,11 +300,8 @@ abstract class AbstractFileTrackImporter extends DefaultHandler implements Track trackData.lastLocationInCurrentSegment = null; } - /** - * Adds a waypoint. - */ - protected void addWaypoint() throws SAXException { - // Waypoint must have a time, else cannot match to the track points + protected void addMarker() throws SAXException { + // Markers must have a time, else cannot match to the track points if (time == null) { return; } @@ -314,22 +311,22 @@ abstract class AbstractFileTrackImporter extends DefaultHandler implements Track if (!LocationUtils.isValidLocation(trackPoint.getLocation())) { throw new SAXException(createErrorMessage("Invalid location detected: " + trackPoint)); } - Marker waypoint = new Marker(trackPoint.getLocation()); + Marker marker = new Marker(trackPoint.getLocation()); if (name != null) { - waypoint.setName(name); + marker.setName(name); } if (description != null) { - waypoint.setDescription(description); + marker.setDescription(description); } if (category != null) { - waypoint.setCategory(category); + marker.setCategory(category); } if (photoUrl != null) { - waypoint.setPhotoUrl(photoUrl); + marker.setPhotoUrl(photoUrl); } - waypoints.add(waypoint); + markers.add(marker); } /** diff --git a/src/main/java/de/dennisguse/opentracks/io/file/importer/GpxFileTrackImporter.java b/src/main/java/de/dennisguse/opentracks/io/file/importer/GpxFileTrackImporter.java index 107a1679e..fa685bf4d 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/importer/GpxFileTrackImporter.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/importer/GpxFileTrackImporter.java @@ -44,7 +44,7 @@ public class GpxFileTrackImporter extends AbstractFileTrackImporter { private static final String TAG_TRACK_POINT = "trkpt"; private static final String TAG_TRACK_SEGMENT = "trkseg"; private static final String TAG_TYPE = "type"; - private static final String TAG_WAYPOINT = "wpt"; + private static final String TAG_MARKER = "wpt"; private static final String TAG_ID = "opentracks:trackid"; private static final String ATTRIBUTE_LAT = "lat"; @@ -71,8 +71,8 @@ public class GpxFileTrackImporter extends AbstractFileTrackImporter { @Override public void startElement(String uri, String localName, String tag, Attributes attributes) throws SAXException { switch (tag) { - case TAG_WAYPOINT: - onWaypointStart(attributes); + case TAG_MARKER: + onMarkerStart(attributes); break; case TAG_TRACK: onTrackStart(); @@ -92,8 +92,8 @@ public class GpxFileTrackImporter extends AbstractFileTrackImporter { case TAG_GPX: onFileEnd(); break; - case TAG_WAYPOINT: - onWaypointEnd(); + case TAG_MARKER: + onMarkerEnd(); break; case TAG_TRACK: onTrackEnd(); @@ -128,7 +128,7 @@ public class GpxFileTrackImporter extends AbstractFileTrackImporter { break; case TAG_COMMENT: if (content != null) { - waypointType = content.trim(); + markerType = content.trim(); } break; case TAG_EXTENSION_SPEED: @@ -187,12 +187,7 @@ public class GpxFileTrackImporter extends AbstractFileTrackImporter { insertTrackPoint(trackPoint); } - /** - * On waypoint start. - * - * @param attributes the attributes - */ - private void onWaypointStart(Attributes attributes) { + private void onMarkerStart(Attributes attributes) { name = null; description = null; category = null; @@ -201,13 +196,10 @@ public class GpxFileTrackImporter extends AbstractFileTrackImporter { longitude = attributes.getValue(ATTRIBUTE_LON); altitude = null; time = null; - waypointType = null; + markerType = null; } - /** - * On waypoint end. - */ - private void onWaypointEnd() throws SAXException { - addWaypoint(); + private void onMarkerEnd() throws SAXException { + addMarker(); } } diff --git a/src/main/java/de/dennisguse/opentracks/io/file/importer/KmlFileTrackImporter.java b/src/main/java/de/dennisguse/opentracks/io/file/importer/KmlFileTrackImporter.java index dbea4f76c..081249179 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/importer/KmlFileTrackImporter.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/importer/KmlFileTrackImporter.java @@ -39,7 +39,7 @@ public class KmlFileTrackImporter extends AbstractFileTrackImporter { private static final String TAG = KmlFileTrackImporter.class.getSimpleName(); - private static final String WAYPOINT_STYLE = "#" + KmlTrackWriter.WAYPOINT_STYLE; + private static final String MARKER_STYLE = "#" + KmlTrackWriter.MARKER_STYLE; private static final String TAG_COORDINATES = "coordinates"; private static final String TAG_DESCRIPTION = "description"; @@ -84,8 +84,8 @@ public class KmlFileTrackImporter extends AbstractFileTrackImporter { switch (tag) { case TAG_PLACEMARK: case TAG_PHOTO_OVERLAY: - // Note that a track is contained in a Placemark, calling onWaypointStart will clear various track variables like name, category, and description. - onWaypointStart(); + // Note that a track is contained in a Placemark, calling onMarkerStart will clear various track variables like name, category, and description. + onMarkerStart(); break; case TAG_GX_MULTI_TRACK: trackStarted = true; @@ -111,11 +111,11 @@ public class KmlFileTrackImporter extends AbstractFileTrackImporter { break; case TAG_PLACEMARK: case TAG_PHOTO_OVERLAY: - // Note that a track is contained in a Placemark, calling onWaypointend is save since waypointType is not set for a track. - onWaypointEnd(); + // Note that a track is contained in a Placemark, calling onMarkerEnd is save since markerType is not set for a track. + onMarkerEnd(); break; case TAG_COORDINATES: - onWaypointLocationEnd(); + onMarkerLocationEnd(); break; case TAG_GX_MULTI_TRACK: onTrackEnd(); @@ -161,7 +161,7 @@ public class KmlFileTrackImporter extends AbstractFileTrackImporter { break; case TAG_STYLE_URL: if (content != null) { - waypointType = content.trim(); + markerType = content.trim(); } break; case TAG_HREF: @@ -175,10 +175,7 @@ public class KmlFileTrackImporter extends AbstractFileTrackImporter { content = null; } - /** - * On waypoint start. - */ - private void onWaypointStart() { + private void onMarkerStart() { // Reset all Placemark variables name = null; icon = null; @@ -189,27 +186,21 @@ public class KmlFileTrackImporter extends AbstractFileTrackImporter { longitude = null; altitude = null; time = null; - waypointType = null; + markerType = null; } - /** - * On waypoint end. - */ - private void onWaypointEnd() throws SAXException { - if (!WAYPOINT_STYLE.equals(waypointType)) { + private void onMarkerEnd() throws SAXException { + if (!MARKER_STYLE.equals(markerType)) { return; } // If there is photoUrl it has to be changed because that url in kml file is a relative path to the internal kmz file. photoUrl = getInternalPhotoUrl(photoUrl); - addWaypoint(); + addMarker(); } - /** - * On waypoint location end. - */ - private void onWaypointLocationEnd() { + private void onMarkerLocationEnd() { if (content != null) { String[] parts = content.trim().split(","); if (parts.length != 2 && parts.length != 3) { diff --git a/src/main/java/de/dennisguse/opentracks/io/file/importer/KmzTrackImporter.java b/src/main/java/de/dennisguse/opentracks/io/file/importer/KmzTrackImporter.java index d7c3c0c84..71b943e43 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/importer/KmzTrackImporter.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/importer/KmzTrackImporter.java @@ -191,20 +191,20 @@ public class KmzTrackImporter implements TrackImporter { } /** - * Deletes all images that remained in external storage that doesn't have waypoint (marker) associated. + * Deletes all images that remained in external storage that doesn't have a marker associated. * * @param context the Context object. * @param trackId the id of the Track. */ private void deleteOrphanImages(Context context, Track.Id trackId) { if (!trackId.isValid()) { - // 1.- Gets all photo names in the waypoints of the track identified by id. + // 1.- Gets all photo names in the markers of the track identified by id. ContentProviderUtils contentProviderUtils = new ContentProviderUtils(context); - List waypoints = contentProviderUtils.getMarkers(trackId); + List markers = contentProviderUtils.getMarkers(trackId); List photosName = new ArrayList<>(); - for (Marker w : waypoints) { - if (w.hasPhoto()) { - String photoUrl = Uri.decode(w.getPhotoUrl()); + for (Marker marker : markers) { + if (marker.hasPhoto()) { + String photoUrl = Uri.decode(marker.getPhotoUrl()); photosName.add(photoUrl.substring(photoUrl.lastIndexOf(File.separatorChar) + 1)); } } diff --git a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java index bc7a9685b..46b929d08 100644 --- a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java +++ b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java @@ -254,7 +254,7 @@ public class TrackRecordingService extends Service implements HandlerServer.Hand category = category != null ? category : ""; description = description != null ? description : ""; - String icon = getString(R.string.marker_waypoint_icon_url); + String icon = getString(R.string.marker_icon_url); photoUrl = photoUrl != null ? photoUrl : ""; TrackStatistics stats = trackStatisticsUpdater.getTrackStatistics(); diff --git a/src/main/java/de/dennisguse/opentracks/util/IntentDashboardUtils.java b/src/main/java/de/dennisguse/opentracks/util/IntentDashboardUtils.java index 44f47fc22..63480bd41 100644 --- a/src/main/java/de/dennisguse/opentracks/util/IntentDashboardUtils.java +++ b/src/main/java/de/dennisguse/opentracks/util/IntentDashboardUtils.java @@ -34,7 +34,7 @@ public class IntentDashboardUtils { private static final int TRACK_URI_INDEX = 0; private static final int TRACKPOINTS_URI_INDEX = 1; - private static final int WAYPOINTS_URI_INDEX = 2; + private static final int MARKERS_URI_INDEX = 2; private IntentDashboardUtils() { } @@ -55,7 +55,7 @@ public class IntentDashboardUtils { ArrayList uris = new ArrayList<>(); uris.add(TRACK_URI_INDEX, Uri.withAppendedPath(TracksColumns.CONTENT_URI, trackIdList)); uris.add(TRACKPOINTS_URI_INDEX, Uri.withAppendedPath(TrackPointsColumns.CONTENT_URI_BY_TRACKID, trackIdList)); - uris.add(WAYPOINTS_URI_INDEX, Uri.withAppendedPath(MarkerColumns.CONTENT_URI_BY_TRACKID, trackIdList)); + uris.add(MARKERS_URI_INDEX, Uri.withAppendedPath(MarkerColumns.CONTENT_URI_BY_TRACKID, trackIdList)); Intent intent = new Intent(ACTION_DASHBOARD); intent.putParcelableArrayListExtra(ACTION_DASHBOARD_PAYLOAD, uris); @@ -70,7 +70,7 @@ public class IntentDashboardUtils { intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); ClipData clipData = ClipData.newRawUri(null, uris.get(TRACK_URI_INDEX)); clipData.addItem(new ClipData.Item(uris.get(TRACKPOINTS_URI_INDEX))); - clipData.addItem(new ClipData.Item(uris.get(WAYPOINTS_URI_INDEX))); + clipData.addItem(new ClipData.Item(uris.get(MARKERS_URI_INDEX))); intent.setClipData(clipData); context.startActivity(intent); diff --git a/src/main/java/de/dennisguse/opentracks/util/IntentUtils.java b/src/main/java/de/dennisguse/opentracks/util/IntentUtils.java index 1007d19fa..12007d04d 100644 --- a/src/main/java/de/dennisguse/opentracks/util/IntentUtils.java +++ b/src/main/java/de/dennisguse/opentracks/util/IntentUtils.java @@ -105,7 +105,7 @@ public class IntentUtils { } /** - * Creates an intent to share a waypoint image with an app. + * Creates an intent to share an image with an app. * * @param context the context. * @param uri uri with the image to share. @@ -128,8 +128,8 @@ public class IntentUtils { .putExtra(Intent.EXTRA_TEXT, context.getString(R.string.share_image_body)); } - public static void showCoordinateOnMap(Context context, Marker waypoint) { - showCoordinateOnMap(context, waypoint.getLocation().getLatitude(), waypoint.getLocation().getLongitude(), waypoint.getName()); + public static void showCoordinateOnMap(Context context, Marker marker) { + showCoordinateOnMap(context, marker.getLocation().getLatitude(), marker.getLocation().getLongitude(), marker.getName()); } /** diff --git a/src/main/res/layout/marker_detail_fragment.xml b/src/main/res/layout/marker_detail_fragment.xml index 7a0826026..d9917415f 100644 --- a/src/main/res/layout/marker_detail_fragment.xml +++ b/src/main/res/layout/marker_detail_fragment.xml @@ -18,7 +18,7 @@ limitations under the License. android:layout_height="match_parent"> diff --git a/src/main/res/layout/marker_edit.xml b/src/main/res/layout/marker_edit.xml index 5c0f98792..d22462cfc 100644 --- a/src/main/res/layout/marker_edit.xml +++ b/src/main/res/layout/marker_edit.xml @@ -37,7 +37,7 @@ limitations under the License. @@ -49,7 +49,7 @@ limitations under the License. android:importantForAutofill="no"> @@ -75,7 +75,7 @@ limitations under the License. android:layout_marginTop="16dp"> Material Components for Android (Apache License, Version 2.0) - http://maps.google.com/mapfiles/ms/micons/blue-pushpin.png + http://maps.google.com/mapfiles/ms/micons/blue-pushpin.png BPM RPM - - + @string/waypoint_type_atm @string/waypoint_type_bank @string/waypoint_type_bar