diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml
index 091961786..1384c416b 100644
--- a/src/main/AndroidManifest.xml
+++ b/src/main/AndroidManifest.xml
@@ -267,7 +267,7 @@ limitations under the License.
@@ -275,10 +275,10 @@ limitations under the License.
-
+
diff --git a/src/main/java/de/dennisguse/opentracks/TrackRecordedActivity.java b/src/main/java/de/dennisguse/opentracks/TrackRecordedActivity.java
index b3b95ddb1..281b5471e 100644
--- a/src/main/java/de/dennisguse/opentracks/TrackRecordedActivity.java
+++ b/src/main/java/de/dennisguse/opentracks/TrackRecordedActivity.java
@@ -46,6 +46,7 @@ import de.dennisguse.opentracks.settings.PreferencesUtils;
import de.dennisguse.opentracks.settings.SettingsActivity;
import de.dennisguse.opentracks.ui.aggregatedStatistics.ConfirmDeleteDialogFragment;
import de.dennisguse.opentracks.ui.intervals.IntervalsFragment;
+import de.dennisguse.opentracks.ui.markers.MarkerListActivity;
import de.dennisguse.opentracks.util.IntentDashboardUtils;
import de.dennisguse.opentracks.util.IntentUtils;
diff --git a/src/main/java/de/dennisguse/opentracks/TrackRecordingActivity.java b/src/main/java/de/dennisguse/opentracks/TrackRecordingActivity.java
index ca98e483c..e8fc38093 100644
--- a/src/main/java/de/dennisguse/opentracks/TrackRecordingActivity.java
+++ b/src/main/java/de/dennisguse/opentracks/TrackRecordingActivity.java
@@ -33,6 +33,8 @@ import de.dennisguse.opentracks.services.TrackRecordingServiceConnection;
import de.dennisguse.opentracks.settings.PreferencesUtils;
import de.dennisguse.opentracks.settings.SettingsActivity;
import de.dennisguse.opentracks.ui.intervals.IntervalsFragment;
+import de.dennisguse.opentracks.ui.markers.MarkerEditActivity;
+import de.dennisguse.opentracks.ui.markers.MarkerListActivity;
import de.dennisguse.opentracks.util.IntentDashboardUtils;
import de.dennisguse.opentracks.util.IntentUtils;
import de.dennisguse.opentracks.util.TrackIconUtils;
diff --git a/src/main/java/de/dennisguse/opentracks/adapters/ExecutorListViewService.java b/src/main/java/de/dennisguse/opentracks/adapters/ExecutorListViewService.java
index 2e951921c..d85dd6433 100644
--- a/src/main/java/de/dennisguse/opentracks/adapters/ExecutorListViewService.java
+++ b/src/main/java/de/dennisguse/opentracks/adapters/ExecutorListViewService.java
@@ -12,7 +12,7 @@ import java.util.concurrent.Future;
*
* @param the type of the object that will be used to identified the Runnable.
*/
-class ExecutorListViewService {
+public class ExecutorListViewService {
private final List enqueueObjects = new ArrayList<>();
private final ExecutorService executorService;
diff --git a/src/main/java/de/dennisguse/opentracks/adapters/ScrollVisibleViews.java b/src/main/java/de/dennisguse/opentracks/adapters/ScrollVisibleViews.java
index 0dd041b14..9b3663e4d 100644
--- a/src/main/java/de/dennisguse/opentracks/adapters/ScrollVisibleViews.java
+++ b/src/main/java/de/dennisguse/opentracks/adapters/ScrollVisibleViews.java
@@ -36,7 +36,7 @@ public class ScrollVisibleViews implements AbsListView.OnScrollListener {
to = firstVisibleItem + visibleItemCount;
}
- interface VisibleViewsListener {
+ public interface VisibleViewsListener {
void onViewVisible(View view, int position);
}
}
diff --git a/src/main/java/de/dennisguse/opentracks/chart/ChartView.java b/src/main/java/de/dennisguse/opentracks/chart/ChartView.java
index cdf514802..7b250d050 100644
--- a/src/main/java/de/dennisguse/opentracks/chart/ChartView.java
+++ b/src/main/java/de/dennisguse/opentracks/chart/ChartView.java
@@ -44,12 +44,12 @@ import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
-import de.dennisguse.opentracks.MarkerDetailActivity;
import de.dennisguse.opentracks.R;
import de.dennisguse.opentracks.content.data.Marker;
import de.dennisguse.opentracks.stats.ExtremityMonitor;
+import de.dennisguse.opentracks.ui.markers.MarkerDetailActivity;
+import de.dennisguse.opentracks.ui.markers.MarkerUtils;
import de.dennisguse.opentracks.util.IntentUtils;
-import de.dennisguse.opentracks.util.MarkerUtils;
import de.dennisguse.opentracks.util.StringUtils;
import de.dennisguse.opentracks.util.ThemeUtils;
diff --git a/src/main/java/de/dennisguse/opentracks/fragments/DeleteMarkerDialogFragment.java b/src/main/java/de/dennisguse/opentracks/ui/markers/DeleteMarkerDialogFragment.java
similarity index 98%
rename from src/main/java/de/dennisguse/opentracks/fragments/DeleteMarkerDialogFragment.java
rename to src/main/java/de/dennisguse/opentracks/ui/markers/DeleteMarkerDialogFragment.java
index 1d736b697..d35360d66 100644
--- a/src/main/java/de/dennisguse/opentracks/fragments/DeleteMarkerDialogFragment.java
+++ b/src/main/java/de/dennisguse/opentracks/ui/markers/DeleteMarkerDialogFragment.java
@@ -14,7 +14,7 @@
* the License.
*/
-package de.dennisguse.opentracks.fragments;
+package de.dennisguse.opentracks.ui.markers;
import android.app.Dialog;
import android.content.Context;
diff --git a/src/main/java/de/dennisguse/opentracks/MarkerDetailActivity.java b/src/main/java/de/dennisguse/opentracks/ui/markers/MarkerDetailActivity.java
similarity index 95%
rename from src/main/java/de/dennisguse/opentracks/MarkerDetailActivity.java
rename to src/main/java/de/dennisguse/opentracks/ui/markers/MarkerDetailActivity.java
index 6d3f2f78f..3f65da11e 100644
--- a/src/main/java/de/dennisguse/opentracks/MarkerDetailActivity.java
+++ b/src/main/java/de/dennisguse/opentracks/ui/markers/MarkerDetailActivity.java
@@ -14,7 +14,7 @@
* the License.
*/
-package de.dennisguse.opentracks;
+package de.dennisguse.opentracks.ui.markers;
import android.database.Cursor;
import android.os.Bundle;
@@ -31,11 +31,12 @@ import androidx.viewpager.widget.ViewPager;
import java.util.ArrayList;
import java.util.List;
+import de.dennisguse.opentracks.AbstractActivity;
+import de.dennisguse.opentracks.R;
import de.dennisguse.opentracks.content.data.Marker;
import de.dennisguse.opentracks.content.provider.ContentProviderUtils;
import de.dennisguse.opentracks.databinding.MarkerDetailActivityBinding;
-import de.dennisguse.opentracks.fragments.DeleteMarkerDialogFragment.DeleteMarkerCaller;
-import de.dennisguse.opentracks.fragments.MarkerDetailFragment;
+import de.dennisguse.opentracks.ui.markers.DeleteMarkerDialogFragment.DeleteMarkerCaller;
/**
* An activity to display marker detail info.
diff --git a/src/main/java/de/dennisguse/opentracks/fragments/MarkerDetailFragment.java b/src/main/java/de/dennisguse/opentracks/ui/markers/MarkerDetailFragment.java
similarity index 98%
rename from src/main/java/de/dennisguse/opentracks/fragments/MarkerDetailFragment.java
rename to src/main/java/de/dennisguse/opentracks/ui/markers/MarkerDetailFragment.java
index 1d5663e38..5267ee0ca 100644
--- a/src/main/java/de/dennisguse/opentracks/fragments/MarkerDetailFragment.java
+++ b/src/main/java/de/dennisguse/opentracks/ui/markers/MarkerDetailFragment.java
@@ -14,7 +14,7 @@
* the License.
*/
-package de.dennisguse.opentracks.fragments;
+package de.dennisguse.opentracks.ui.markers;
import android.content.Intent;
import android.os.Bundle;
@@ -36,14 +36,12 @@ import androidx.fragment.app.FragmentActivity;
import java.time.Duration;
-import de.dennisguse.opentracks.MarkerEditActivity;
import de.dennisguse.opentracks.R;
import de.dennisguse.opentracks.content.data.Marker;
import de.dennisguse.opentracks.content.provider.ContentProviderUtils;
import de.dennisguse.opentracks.databinding.MarkerDetailFragmentBinding;
import de.dennisguse.opentracks.util.IntentUtils;
import de.dennisguse.opentracks.util.ListItemUtils;
-import de.dennisguse.opentracks.util.MarkerUtils;
import de.dennisguse.opentracks.util.StringUtils;
/**
diff --git a/src/main/java/de/dennisguse/opentracks/MarkerEditActivity.java b/src/main/java/de/dennisguse/opentracks/ui/markers/MarkerEditActivity.java
similarity index 98%
rename from src/main/java/de/dennisguse/opentracks/MarkerEditActivity.java
rename to src/main/java/de/dennisguse/opentracks/ui/markers/MarkerEditActivity.java
index c9420c792..0073cbde9 100644
--- a/src/main/java/de/dennisguse/opentracks/MarkerEditActivity.java
+++ b/src/main/java/de/dennisguse/opentracks/ui/markers/MarkerEditActivity.java
@@ -14,7 +14,7 @@
* the License.
*/
-package de.dennisguse.opentracks;
+package de.dennisguse.opentracks.ui.markers;
import android.content.Intent;
import android.content.pm.PackageManager;
@@ -38,11 +38,12 @@ import androidx.lifecycle.ViewModelProvider;
import java.io.FileDescriptor;
import java.io.IOException;
+import de.dennisguse.opentracks.AbstractActivity;
+import de.dennisguse.opentracks.R;
import de.dennisguse.opentracks.content.data.Marker;
import de.dennisguse.opentracks.content.data.Track;
import de.dennisguse.opentracks.databinding.MarkerEditBinding;
import de.dennisguse.opentracks.util.IntentUtils;
-import de.dennisguse.opentracks.viewmodels.MarkerEditViewModel;
/**
* An activity to add/edit a marker.
diff --git a/src/main/java/de/dennisguse/opentracks/viewmodels/MarkerEditViewModel.java b/src/main/java/de/dennisguse/opentracks/ui/markers/MarkerEditViewModel.java
similarity index 99%
rename from src/main/java/de/dennisguse/opentracks/viewmodels/MarkerEditViewModel.java
rename to src/main/java/de/dennisguse/opentracks/ui/markers/MarkerEditViewModel.java
index ddb1fa7d2..b6b4d9f08 100644
--- a/src/main/java/de/dennisguse/opentracks/viewmodels/MarkerEditViewModel.java
+++ b/src/main/java/de/dennisguse/opentracks/ui/markers/MarkerEditViewModel.java
@@ -1,4 +1,4 @@
-package de.dennisguse.opentracks.viewmodels;
+package de.dennisguse.opentracks.ui.markers;
import android.app.Application;
import android.net.Uri;
diff --git a/src/main/java/de/dennisguse/opentracks/MarkerListActivity.java b/src/main/java/de/dennisguse/opentracks/ui/markers/MarkerListActivity.java
similarity index 97%
rename from src/main/java/de/dennisguse/opentracks/MarkerListActivity.java
rename to src/main/java/de/dennisguse/opentracks/ui/markers/MarkerListActivity.java
index 8eea656a1..97f28b42d 100644
--- a/src/main/java/de/dennisguse/opentracks/MarkerListActivity.java
+++ b/src/main/java/de/dennisguse/opentracks/ui/markers/MarkerListActivity.java
@@ -14,7 +14,7 @@
* the License.
*/
-package de.dennisguse.opentracks;
+package de.dennisguse.opentracks.ui.markers;
import android.app.SearchManager;
import android.content.Intent;
@@ -31,17 +31,18 @@ import androidx.loader.app.LoaderManager;
import androidx.loader.content.CursorLoader;
import androidx.loader.content.Loader;
-import de.dennisguse.opentracks.adapters.MarkerResourceCursorAdapter;
+import de.dennisguse.opentracks.AbstractActivity;
+import de.dennisguse.opentracks.ContextualActionModeCallback;
+import de.dennisguse.opentracks.R;
import de.dennisguse.opentracks.adapters.ScrollVisibleViews;
import de.dennisguse.opentracks.content.data.Marker;
import de.dennisguse.opentracks.content.data.MarkerColumns;
import de.dennisguse.opentracks.content.data.Track;
import de.dennisguse.opentracks.content.provider.ContentProviderUtils;
import de.dennisguse.opentracks.databinding.MarkerListBinding;
-import de.dennisguse.opentracks.fragments.DeleteMarkerDialogFragment;
-import de.dennisguse.opentracks.fragments.DeleteMarkerDialogFragment.DeleteMarkerCaller;
import de.dennisguse.opentracks.services.TrackRecordingService;
import de.dennisguse.opentracks.services.TrackRecordingServiceConnection;
+import de.dennisguse.opentracks.ui.markers.DeleteMarkerDialogFragment.DeleteMarkerCaller;
import de.dennisguse.opentracks.util.ActivityUtils;
import de.dennisguse.opentracks.util.IntentUtils;
diff --git a/src/main/java/de/dennisguse/opentracks/adapters/MarkerResourceCursorAdapter.java b/src/main/java/de/dennisguse/opentracks/ui/markers/MarkerResourceCursorAdapter.java
similarity index 97%
rename from src/main/java/de/dennisguse/opentracks/adapters/MarkerResourceCursorAdapter.java
rename to src/main/java/de/dennisguse/opentracks/ui/markers/MarkerResourceCursorAdapter.java
index f33d4510f..58ddd60a1 100644
--- a/src/main/java/de/dennisguse/opentracks/adapters/MarkerResourceCursorAdapter.java
+++ b/src/main/java/de/dennisguse/opentracks/ui/markers/MarkerResourceCursorAdapter.java
@@ -1,4 +1,4 @@
-package de.dennisguse.opentracks.adapters;
+package de.dennisguse.opentracks.ui.markers;
import android.app.Activity;
import android.content.Context;
@@ -21,15 +21,14 @@ import java.io.IOException;
import java.io.InputStream;
import java.time.Instant;
import java.time.OffsetDateTime;
-import java.time.ZoneId;
-import java.time.ZoneOffset;
import de.dennisguse.opentracks.R;
+import de.dennisguse.opentracks.adapters.ExecutorListViewService;
+import de.dennisguse.opentracks.adapters.ScrollVisibleViews;
import de.dennisguse.opentracks.content.data.MarkerColumns;
import de.dennisguse.opentracks.content.data.Track;
import de.dennisguse.opentracks.content.provider.ContentProviderUtils;
import de.dennisguse.opentracks.util.ListItemUtils;
-import de.dennisguse.opentracks.util.MarkerUtils;
public class MarkerResourceCursorAdapter extends ResourceCursorAdapter implements ScrollVisibleViews.VisibleViewsListener {
diff --git a/src/main/java/de/dennisguse/opentracks/util/MarkerUtils.java b/src/main/java/de/dennisguse/opentracks/ui/markers/MarkerUtils.java
similarity index 91%
rename from src/main/java/de/dennisguse/opentracks/util/MarkerUtils.java
rename to src/main/java/de/dennisguse/opentracks/ui/markers/MarkerUtils.java
index 096a40a07..85c173852 100644
--- a/src/main/java/de/dennisguse/opentracks/util/MarkerUtils.java
+++ b/src/main/java/de/dennisguse/opentracks/ui/markers/MarkerUtils.java
@@ -1,4 +1,4 @@
-package de.dennisguse.opentracks.util;
+package de.dennisguse.opentracks.ui.markers;
import android.content.Context;
import android.graphics.drawable.Drawable;