diff --git a/src/androidTest/java/de/dennisguse/opentracks/chart/ChartPointTest.java b/src/androidTest/java/de/dennisguse/opentracks/chart/ChartPointTest.java index 818f16a4a..5289251b3 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/chart/ChartPointTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/chart/ChartPointTest.java @@ -10,11 +10,10 @@ import org.junit.runner.RunWith; import java.time.Duration; -import de.dennisguse.opentracks.content.data.Altitude; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.Speed; -import de.dennisguse.opentracks.content.data.TrackPoint; -import de.dennisguse.opentracks.fragments.TrackStubUtils; +import de.dennisguse.opentracks.data.models.Altitude; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Speed; +import de.dennisguse.opentracks.data.models.TrackPoint; import de.dennisguse.opentracks.stats.TrackStatistics; @RunWith(AndroidJUnit4.class) diff --git a/src/androidTest/java/de/dennisguse/opentracks/fragments/TrackStubUtils.java b/src/androidTest/java/de/dennisguse/opentracks/chart/TrackStubUtils.java similarity index 89% rename from src/androidTest/java/de/dennisguse/opentracks/fragments/TrackStubUtils.java rename to src/androidTest/java/de/dennisguse/opentracks/chart/TrackStubUtils.java index ba8b3c473..7ae4bb9d6 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/fragments/TrackStubUtils.java +++ b/src/androidTest/java/de/dennisguse/opentracks/chart/TrackStubUtils.java @@ -14,20 +14,20 @@ * the License. */ -package de.dennisguse.opentracks.fragments; +package de.dennisguse.opentracks.chart; import java.time.Instant; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.Speed; -import de.dennisguse.opentracks.content.data.TrackPoint; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Speed; +import de.dennisguse.opentracks.data.models.TrackPoint; /** * Commons utilities for creating stubs of track, location. * * @author Youtao Liu */ -public class TrackStubUtils { +class TrackStubUtils { public static final double INITIAL_ALTITUDE = 22; public static final long INITIAL_TIME = 1000L; diff --git a/src/androidTest/java/de/dennisguse/opentracks/content/data/TestDataUtil.java b/src/androidTest/java/de/dennisguse/opentracks/content/data/TestDataUtil.java index 21c2af510..bb66cce06 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/content/data/TestDataUtil.java +++ b/src/androidTest/java/de/dennisguse/opentracks/content/data/TestDataUtil.java @@ -11,8 +11,13 @@ import java.time.Instant; import java.util.ArrayList; import java.util.List; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; -import de.dennisguse.opentracks.content.provider.TrackPointIterator; +import de.dennisguse.opentracks.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.TrackPointIterator; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Marker; +import de.dennisguse.opentracks.data.models.Speed; +import de.dennisguse.opentracks.data.models.Track; +import de.dennisguse.opentracks.data.models.TrackPoint; import de.dennisguse.opentracks.stats.TrackStatistics; import de.dennisguse.opentracks.stats.TrackStatisticsUpdater; import de.dennisguse.opentracks.util.FileUtils; diff --git a/src/androidTest/java/de/dennisguse/opentracks/content/data/TestSensorDataUtil.java b/src/androidTest/java/de/dennisguse/opentracks/content/data/TestSensorDataUtil.java index c48e96576..1b56ea7d6 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/content/data/TestSensorDataUtil.java +++ b/src/androidTest/java/de/dennisguse/opentracks/content/data/TestSensorDataUtil.java @@ -5,6 +5,10 @@ import java.time.Instant; import java.util.ArrayList; import java.util.List; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Speed; +import de.dennisguse.opentracks.data.models.TrackPoint; + public class TestSensorDataUtil { private final List trackPointList = new ArrayList<>(); diff --git a/src/androidTest/java/de/dennisguse/opentracks/content/provider/CustomContentProviderTest.java b/src/androidTest/java/de/dennisguse/opentracks/data/CustomContentProviderTest.java similarity index 91% rename from src/androidTest/java/de/dennisguse/opentracks/content/provider/CustomContentProviderTest.java rename to src/androidTest/java/de/dennisguse/opentracks/data/CustomContentProviderTest.java index 26e4b9d1a..213cc2199 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/content/provider/CustomContentProviderTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/data/CustomContentProviderTest.java @@ -14,7 +14,10 @@ * the License. */ -package de.dennisguse.opentracks.content.provider; +package de.dennisguse.opentracks.data; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; import android.content.ContentUris; import android.content.Context; @@ -25,12 +28,9 @@ import androidx.test.core.app.ApplicationProvider; import org.junit.Before; import org.junit.Test; -import de.dennisguse.opentracks.content.data.MarkerColumns; -import de.dennisguse.opentracks.content.data.TrackPointsColumns; -import de.dennisguse.opentracks.content.data.TracksColumns; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import de.dennisguse.opentracks.data.tables.MarkerColumns; +import de.dennisguse.opentracks.data.tables.TrackPointsColumns; +import de.dennisguse.opentracks.data.tables.TracksColumns; /** * Tests {@link CustomContentProvider}. diff --git a/src/androidTest/java/de/dennisguse/opentracks/content/provider/CustomContentProviderUtilsTest.java b/src/androidTest/java/de/dennisguse/opentracks/data/CustomContentProviderUtilsTest.java similarity index 99% rename from src/androidTest/java/de/dennisguse/opentracks/content/provider/CustomContentProviderUtilsTest.java rename to src/androidTest/java/de/dennisguse/opentracks/data/CustomContentProviderUtilsTest.java index 9842c0d95..c05bdf244 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/content/provider/CustomContentProviderUtilsTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/data/CustomContentProviderUtilsTest.java @@ -13,7 +13,7 @@ * License for the specific language governing permissions and limitations under * the License. */ -package de.dennisguse.opentracks.content.provider; +package de.dennisguse.opentracks.data; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -49,16 +49,16 @@ import java.util.Random; import java.util.UUID; import java.util.stream.Collectors; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.Marker; -import de.dennisguse.opentracks.content.data.MarkerColumns; -import de.dennisguse.opentracks.content.data.Speed; import de.dennisguse.opentracks.content.data.TestDataUtil; import de.dennisguse.opentracks.content.data.TestSensorDataUtil; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.data.TrackPoint; -import de.dennisguse.opentracks.content.data.TrackPointsColumns; -import de.dennisguse.opentracks.content.data.TracksColumns; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Marker; +import de.dennisguse.opentracks.data.models.Speed; +import de.dennisguse.opentracks.data.models.Track; +import de.dennisguse.opentracks.data.models.TrackPoint; +import de.dennisguse.opentracks.data.tables.MarkerColumns; +import de.dennisguse.opentracks.data.tables.TrackPointsColumns; +import de.dennisguse.opentracks.data.tables.TracksColumns; import de.dennisguse.opentracks.stats.SensorStatistics; import de.dennisguse.opentracks.stats.TrackStatistics; import de.dennisguse.opentracks.util.FileUtils; diff --git a/src/androidTest/java/de/dennisguse/opentracks/content/provider/CustomSQLiteOpenHelperTest.java b/src/androidTest/java/de/dennisguse/opentracks/data/CustomSQLiteOpenHelperTest.java similarity index 98% rename from src/androidTest/java/de/dennisguse/opentracks/content/provider/CustomSQLiteOpenHelperTest.java rename to src/androidTest/java/de/dennisguse/opentracks/data/CustomSQLiteOpenHelperTest.java index cfab30ab6..cdfd90d5d 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/content/provider/CustomSQLiteOpenHelperTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/data/CustomSQLiteOpenHelperTest.java @@ -1,4 +1,8 @@ -package de.dennisguse.opentracks.content.provider; +package de.dennisguse.opentracks.data; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; import android.content.Context; import android.database.Cursor; @@ -20,13 +24,9 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import de.dennisguse.opentracks.content.data.MarkerColumns; -import de.dennisguse.opentracks.content.data.TrackPointsColumns; -import de.dennisguse.opentracks.content.data.TracksColumns; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; +import de.dennisguse.opentracks.data.tables.MarkerColumns; +import de.dennisguse.opentracks.data.tables.TrackPointsColumns; +import de.dennisguse.opentracks.data.tables.TracksColumns; @RunWith(AndroidJUnit4.class) public class CustomSQLiteOpenHelperTest { diff --git a/src/androidTest/java/de/dennisguse/opentracks/content/provider/ShareContentProviderTest.java b/src/androidTest/java/de/dennisguse/opentracks/data/ShareContentProviderTest.java similarity index 93% rename from src/androidTest/java/de/dennisguse/opentracks/content/provider/ShareContentProviderTest.java rename to src/androidTest/java/de/dennisguse/opentracks/data/ShareContentProviderTest.java index 5a4b51c8c..c5e22120c 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/content/provider/ShareContentProviderTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/data/ShareContentProviderTest.java @@ -1,4 +1,6 @@ -package de.dennisguse.opentracks.content.provider; +package de.dennisguse.opentracks.data; + +import static org.junit.Assert.assertEquals; import android.net.Uri; import android.util.Pair; @@ -8,11 +10,9 @@ import org.junit.Test; import java.util.HashSet; import java.util.Set; -import de.dennisguse.opentracks.content.data.Track; +import de.dennisguse.opentracks.data.models.Track; import de.dennisguse.opentracks.io.file.TrackFileFormat; -import static org.junit.Assert.assertEquals; - public class ShareContentProviderTest { @Test diff --git a/src/androidTest/java/de/dennisguse/opentracks/content/data/TrackSelectionTest.java b/src/androidTest/java/de/dennisguse/opentracks/data/TrackSelectionTest.java similarity index 98% rename from src/androidTest/java/de/dennisguse/opentracks/content/data/TrackSelectionTest.java rename to src/androidTest/java/de/dennisguse/opentracks/data/TrackSelectionTest.java index 6b7f2ccde..e73ca914e 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/content/data/TrackSelectionTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/data/TrackSelectionTest.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.content.data; +package de.dennisguse.opentracks.data; import androidx.test.ext.junit.runners.AndroidJUnit4; @@ -9,7 +9,7 @@ import org.junit.runner.RunWith; import java.time.Instant; -import de.dennisguse.opentracks.content.provider.SelectionData; +import de.dennisguse.opentracks.data.models.Track; @RunWith(AndroidJUnit4.class) public class TrackSelectionTest extends TestCase { diff --git a/src/androidTest/java/de/dennisguse/opentracks/content/provider/UUIDUtilsTest.java b/src/androidTest/java/de/dennisguse/opentracks/data/UUIDUtilsTest.java similarity index 90% rename from src/androidTest/java/de/dennisguse/opentracks/content/provider/UUIDUtilsTest.java rename to src/androidTest/java/de/dennisguse/opentracks/data/UUIDUtilsTest.java index ce6149301..440910dfc 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/content/provider/UUIDUtilsTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/data/UUIDUtilsTest.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.content.provider; +package de.dennisguse.opentracks.data; import static org.junit.Assert.assertEquals; diff --git a/src/androidTest/java/de/dennisguse/opentracks/content/data/TrackPointTest.java b/src/androidTest/java/de/dennisguse/opentracks/data/model/TrackPointTest.java similarity index 91% rename from src/androidTest/java/de/dennisguse/opentracks/content/data/TrackPointTest.java rename to src/androidTest/java/de/dennisguse/opentracks/data/model/TrackPointTest.java index 7f5987829..e90456f5a 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/content/data/TrackPointTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/data/model/TrackPointTest.java @@ -1,13 +1,16 @@ -package de.dennisguse.opentracks.content.data; +package de.dennisguse.opentracks.data.model; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; import org.junit.Test; import java.time.Instant; import java.time.temporal.ChronoUnit; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.TrackPoint; public class TrackPointTest { diff --git a/src/androidTest/java/de/dennisguse/opentracks/io/file/exporter/KmlTrackExporterTest.java b/src/androidTest/java/de/dennisguse/opentracks/io/file/exporter/KmlTrackExporterTest.java index ba4533995..e8c8000e9 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/io/file/exporter/KmlTrackExporterTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/io/file/exporter/KmlTrackExporterTest.java @@ -14,7 +14,7 @@ import java.io.ByteArrayOutputStream; import java.time.Instant; import java.time.ZoneOffset; -import de.dennisguse.opentracks.content.data.TrackPoint; +import de.dennisguse.opentracks.data.models.TrackPoint; import de.dennisguse.opentracks.io.file.TrackFileFormat; @RunWith(JUnit4.class) 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 0183bd4cd..38c6ab066 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 @@ -38,24 +38,24 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.Marker; -import de.dennisguse.opentracks.content.data.Speed; import de.dennisguse.opentracks.content.data.TestDataUtil; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.data.TrackPoint; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; -import de.dennisguse.opentracks.content.sensor.SensorDataCycling; -import de.dennisguse.opentracks.content.sensor.SensorDataCyclingPower; -import de.dennisguse.opentracks.content.sensor.SensorDataHeartRate; -import de.dennisguse.opentracks.content.sensor.SensorDataSet; +import de.dennisguse.opentracks.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Marker; +import de.dennisguse.opentracks.data.models.Speed; +import de.dennisguse.opentracks.data.models.Track; +import de.dennisguse.opentracks.data.models.TrackPoint; import de.dennisguse.opentracks.io.file.TrackFileFormat; import de.dennisguse.opentracks.io.file.exporter.TrackExporter; +import de.dennisguse.opentracks.sensors.AltitudeSumManager; +import de.dennisguse.opentracks.sensors.BluetoothRemoteSensorManager; +import de.dennisguse.opentracks.sensors.sensorData.SensorDataCycling; +import de.dennisguse.opentracks.sensors.sensorData.SensorDataCyclingPower; +import de.dennisguse.opentracks.sensors.sensorData.SensorDataHeartRate; +import de.dennisguse.opentracks.sensors.sensorData.SensorDataSet; import de.dennisguse.opentracks.services.TrackRecordingService; import de.dennisguse.opentracks.services.TrackRecordingServiceTestUtils; import de.dennisguse.opentracks.services.handlers.TrackPointCreator; -import de.dennisguse.opentracks.services.sensors.AltitudeSumManager; -import de.dennisguse.opentracks.services.sensors.BluetoothRemoteSensorManager; import de.dennisguse.opentracks.stats.TrackStatistics; /** diff --git a/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/GPXImportTest.java b/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/GPXImportTest.java index 3466aa374..e694cf3e7 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/GPXImportTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/GPXImportTest.java @@ -1,5 +1,8 @@ package de.dennisguse.opentracks.io.file.importer; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + import android.content.Context; import androidx.test.core.app.ApplicationProvider; @@ -18,17 +21,14 @@ import java.time.Duration; import java.time.Instant; import java.util.List; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.Speed; import de.dennisguse.opentracks.content.data.TestDataUtil; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.data.TrackPoint; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; +import de.dennisguse.opentracks.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Speed; +import de.dennisguse.opentracks.data.models.Track; +import de.dennisguse.opentracks.data.models.TrackPoint; import de.dennisguse.opentracks.stats.TrackStatistics; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; - /** * Test that legacy KML/GPX formats can still be imported. */ diff --git a/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/KMLImportTest.java b/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/KMLImportTest.java index c49a6a76e..1f2b06165 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/KMLImportTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/KMLImportTest.java @@ -1,5 +1,8 @@ package de.dennisguse.opentracks.io.file.importer; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; + import android.content.Context; import androidx.test.core.app.ApplicationProvider; @@ -17,15 +20,12 @@ import java.io.InputStream; import java.time.Instant; import java.util.List; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.Speed; import de.dennisguse.opentracks.content.data.TestDataUtil; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.data.TrackPoint; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; +import de.dennisguse.opentracks.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Speed; +import de.dennisguse.opentracks.data.models.Track; +import de.dennisguse.opentracks.data.models.TrackPoint; /** * Test that legacy KML/GPX formats can still be imported. diff --git a/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/TrackPointAssert.java b/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/TrackPointAssert.java index cf274a162..3f0eb62f9 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/TrackPointAssert.java +++ b/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/TrackPointAssert.java @@ -4,7 +4,7 @@ import org.junit.Assert; import java.util.List; -import de.dennisguse.opentracks.content.data.TrackPoint; +import de.dennisguse.opentracks.data.models.TrackPoint; public class TrackPointAssert { diff --git a/src/androidTest/java/de/dennisguse/opentracks/services/sensors/AltitudeSumManagerTest.java b/src/androidTest/java/de/dennisguse/opentracks/sensors/AltitudeSumManagerTest.java similarity index 96% rename from src/androidTest/java/de/dennisguse/opentracks/services/sensors/AltitudeSumManagerTest.java rename to src/androidTest/java/de/dennisguse/opentracks/sensors/AltitudeSumManagerTest.java index 4a4febec7..c194f7db7 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/services/sensors/AltitudeSumManagerTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/sensors/AltitudeSumManagerTest.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.services.sensors; +package de.dennisguse.opentracks.sensors; import org.junit.Assert; import org.junit.Before; diff --git a/src/androidTest/java/de/dennisguse/opentracks/services/sensors/BluetoothUtilsTest.java b/src/androidTest/java/de/dennisguse/opentracks/sensors/BluetoothUtilsTest.java similarity index 93% rename from src/androidTest/java/de/dennisguse/opentracks/services/sensors/BluetoothUtilsTest.java rename to src/androidTest/java/de/dennisguse/opentracks/sensors/BluetoothUtilsTest.java index 2b6bca0a5..fa8ec1ed5 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/services/sensors/BluetoothUtilsTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/sensors/BluetoothUtilsTest.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.services.sensors; +package de.dennisguse.opentracks.sensors; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; @@ -7,10 +7,10 @@ import android.bluetooth.BluetoothGattCharacteristic; import org.junit.Test; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.Speed; -import de.dennisguse.opentracks.content.sensor.SensorDataCycling; -import de.dennisguse.opentracks.content.sensor.SensorDataRunning; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Speed; +import de.dennisguse.opentracks.sensors.sensorData.SensorDataCycling; +import de.dennisguse.opentracks.sensors.sensorData.SensorDataRunning; public class BluetoothUtilsTest { diff --git a/src/androidTest/java/de/dennisguse/opentracks/services/sensors/PressureSensorUtilsTest.java b/src/androidTest/java/de/dennisguse/opentracks/sensors/PressureSensorUtilsTest.java similarity index 99% rename from src/androidTest/java/de/dennisguse/opentracks/services/sensors/PressureSensorUtilsTest.java rename to src/androidTest/java/de/dennisguse/opentracks/sensors/PressureSensorUtilsTest.java index 0b4eb7061..feae236d7 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/services/sensors/PressureSensorUtilsTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/sensors/PressureSensorUtilsTest.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.services.sensors; +package de.dennisguse.opentracks.sensors; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNull; diff --git a/src/androidTest/java/de/dennisguse/opentracks/services/sensors/UintUtilsTest.java b/src/androidTest/java/de/dennisguse/opentracks/sensors/UintUtilsTest.java similarity index 92% rename from src/androidTest/java/de/dennisguse/opentracks/services/sensors/UintUtilsTest.java rename to src/androidTest/java/de/dennisguse/opentracks/sensors/UintUtilsTest.java index bf5b423a6..1ce0f6be6 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/services/sensors/UintUtilsTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/sensors/UintUtilsTest.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.services.sensors; +package de.dennisguse.opentracks.sensors; import static org.junit.Assert.assertEquals; diff --git a/src/androidTest/java/de/dennisguse/opentracks/content/sensor/SensorDataCyclingTest.java b/src/androidTest/java/de/dennisguse/opentracks/sensors/sensorData/SensorDataCyclingTest.java similarity index 97% rename from src/androidTest/java/de/dennisguse/opentracks/content/sensor/SensorDataCyclingTest.java rename to src/androidTest/java/de/dennisguse/opentracks/sensors/sensorData/SensorDataCyclingTest.java index 6e0000199..3fcde407f 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/content/sensor/SensorDataCyclingTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/sensors/sensorData/SensorDataCyclingTest.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.content.sensor; +package de.dennisguse.opentracks.sensors.sensorData; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -11,8 +11,8 @@ import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.services.sensors.UintUtils; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.sensors.UintUtils; @RunWith(AndroidJUnit4.class) public class SensorDataCyclingTest { diff --git a/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceNotificationManagerTest.java b/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceNotificationManagerTest.java index 5e14c577e..f5d27efbe 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceNotificationManagerTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceNotificationManagerTest.java @@ -1,5 +1,10 @@ package de.dennisguse.opentracks.services; +import static org.mockito.ArgumentMatchers.anyBoolean; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + import android.app.NotificationManager; import android.content.Context; @@ -11,16 +16,11 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.Speed; -import de.dennisguse.opentracks.content.data.TrackPoint; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Speed; +import de.dennisguse.opentracks.data.models.TrackPoint; import de.dennisguse.opentracks.stats.TrackStatistics; -import static org.mockito.ArgumentMatchers.anyBoolean; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - @RunWith(MockitoJUnitRunner.class) public class TrackRecordingServiceNotificationManagerTest { diff --git a/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestMarker.java b/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestMarker.java index c235f1b45..b883b541b 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestMarker.java +++ b/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestMarker.java @@ -45,10 +45,10 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.data.Marker; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.data.TrackPoint; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; +import de.dennisguse.opentracks.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.models.Marker; +import de.dennisguse.opentracks.data.models.Track; +import de.dennisguse.opentracks.data.models.TrackPoint; import de.dennisguse.opentracks.services.handlers.TrackPointCreator; @RunWith(AndroidJUnit4.class) diff --git a/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestRecording.java b/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestRecording.java index e5b031596..a71233cab 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestRecording.java +++ b/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestRecording.java @@ -28,17 +28,17 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.Speed; import de.dennisguse.opentracks.content.data.TestDataUtil; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.data.TrackPoint; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; -import de.dennisguse.opentracks.content.sensor.SensorDataRunning; +import de.dennisguse.opentracks.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Speed; +import de.dennisguse.opentracks.data.models.Track; +import de.dennisguse.opentracks.data.models.TrackPoint; import de.dennisguse.opentracks.io.file.importer.TrackPointAssert; +import de.dennisguse.opentracks.sensors.AltitudeSumManager; +import de.dennisguse.opentracks.sensors.BluetoothRemoteSensorManager; +import de.dennisguse.opentracks.sensors.sensorData.SensorDataRunning; import de.dennisguse.opentracks.services.handlers.TrackPointCreator; -import de.dennisguse.opentracks.services.sensors.AltitudeSumManager; -import de.dennisguse.opentracks.services.sensors.BluetoothRemoteSensorManager; import de.dennisguse.opentracks.settings.PreferencesUtils; import de.dennisguse.opentracks.stats.TrackStatistics; diff --git a/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestStateMachine.java b/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestStateMachine.java index 2bf8fbf3f..0280d7cd9 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestStateMachine.java +++ b/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestStateMachine.java @@ -45,8 +45,8 @@ import java.util.List; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; +import de.dennisguse.opentracks.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.models.Track; import de.dennisguse.opentracks.services.handlers.GpsStatusValue; /** diff --git a/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestUtils.java b/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestUtils.java index 2be87e865..3200da220 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestUtils.java +++ b/src/androidTest/java/de/dennisguse/opentracks/services/TrackRecordingServiceTestUtils.java @@ -9,8 +9,8 @@ import androidx.test.rule.ServiceTestRule; import java.time.Clock; import java.util.concurrent.TimeoutException; +import de.dennisguse.opentracks.sensors.BluetoothRemoteSensorManager; import de.dennisguse.opentracks.services.handlers.TrackPointCreator; -import de.dennisguse.opentracks.services.sensors.BluetoothRemoteSensorManager; import de.dennisguse.opentracks.settings.PreferencesUtils; public class TrackRecordingServiceTestUtils { diff --git a/src/androidTest/java/de/dennisguse/opentracks/services/announcement/VoiceAnnouncementManagerTest.java b/src/androidTest/java/de/dennisguse/opentracks/services/announcement/VoiceAnnouncementManagerTest.java index 31a42d57b..712eee626 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/services/announcement/VoiceAnnouncementManagerTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/services/announcement/VoiceAnnouncementManagerTest.java @@ -21,7 +21,7 @@ import java.time.Duration; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; -import de.dennisguse.opentracks.content.data.Distance; +import de.dennisguse.opentracks.data.models.Distance; import de.dennisguse.opentracks.services.TrackRecordingService; import de.dennisguse.opentracks.stats.TrackStatistics; diff --git a/src/androidTest/java/de/dennisguse/opentracks/services/announcement/VoiceAnnouncementUtilsTest.java b/src/androidTest/java/de/dennisguse/opentracks/services/announcement/VoiceAnnouncementUtilsTest.java index e20840090..055e5892d 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/services/announcement/VoiceAnnouncementUtilsTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/services/announcement/VoiceAnnouncementUtilsTest.java @@ -15,15 +15,15 @@ import org.junit.runner.RunWith; import java.time.Duration; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.Speed; import de.dennisguse.opentracks.content.data.TestDataUtil; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; -import de.dennisguse.opentracks.content.provider.TrackPointIterator; +import de.dennisguse.opentracks.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.TrackPointIterator; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Speed; +import de.dennisguse.opentracks.data.models.Track; import de.dennisguse.opentracks.stats.TrackStatistics; +import de.dennisguse.opentracks.ui.intervals.IntervalStatistics; import de.dennisguse.opentracks.util.StringUtils; -import de.dennisguse.opentracks.viewmodels.IntervalStatistics; @RunWith(AndroidJUnit4.class) public class VoiceAnnouncementUtilsTest { diff --git a/src/androidTest/java/de/dennisguse/opentracks/services/handlers/GPSHandlerTest.java b/src/androidTest/java/de/dennisguse/opentracks/services/handlers/GPSHandlerTest.java index dd13ba5db..ecee709d2 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/services/handlers/GPSHandlerTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/services/handlers/GPSHandlerTest.java @@ -21,8 +21,8 @@ import org.mockito.junit.MockitoJUnitRunner; import java.time.Instant; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.TrackPoint; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.TrackPoint; import de.dennisguse.opentracks.settings.PreferencesUtils; @RunWith(MockitoJUnitRunner.class) diff --git a/src/androidTest/java/de/dennisguse/opentracks/services/handlers/TrackPointCreatorTest.java b/src/androidTest/java/de/dennisguse/opentracks/services/handlers/TrackPointCreatorTest.java index 3d3db731a..0768e0884 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/services/handlers/TrackPointCreatorTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/services/handlers/TrackPointCreatorTest.java @@ -12,8 +12,8 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.junit.MockitoJUnitRunner; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.TrackPoint; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.TrackPoint; @RunWith(MockitoJUnitRunner.class) public class TrackPointCreatorTest { diff --git a/src/androidTest/java/de/dennisguse/opentracks/settings/PreferencesOpenHelperTest.java b/src/androidTest/java/de/dennisguse/opentracks/settings/PreferencesOpenHelperTest.java index e19372093..8d3c9bee0 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/settings/PreferencesOpenHelperTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/settings/PreferencesOpenHelperTest.java @@ -17,7 +17,7 @@ import org.junit.runner.RunWith; import java.util.List; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.data.Layout; +import de.dennisguse.opentracks.ui.customRecordingLayout.Layout; @RunWith(AndroidJUnit4.class) public class PreferencesOpenHelperTest { diff --git a/src/androidTest/java/de/dennisguse/opentracks/settings/PreferencesUtilsTest.java b/src/androidTest/java/de/dennisguse/opentracks/settings/PreferencesUtilsTest.java index 256deae3b..b2cf9498f 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/settings/PreferencesUtilsTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/settings/PreferencesUtilsTest.java @@ -20,9 +20,9 @@ import java.util.ArrayList; import java.util.List; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.data.DataField; -import de.dennisguse.opentracks.content.data.Layout; import de.dennisguse.opentracks.io.file.TrackFileFormat; +import de.dennisguse.opentracks.ui.customRecordingLayout.DataField; +import de.dennisguse.opentracks.ui.customRecordingLayout.Layout; @RunWith(AndroidJUnit4.class) public class PreferencesUtilsTest { diff --git a/src/androidTest/java/de/dennisguse/opentracks/content/DescriptionGeneratorTest.java b/src/androidTest/java/de/dennisguse/opentracks/share/DescriptionGeneratorTest.java similarity index 86% rename from src/androidTest/java/de/dennisguse/opentracks/content/DescriptionGeneratorTest.java rename to src/androidTest/java/de/dennisguse/opentracks/share/DescriptionGeneratorTest.java index 0655de762..eaa0193c2 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/content/DescriptionGeneratorTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/share/DescriptionGeneratorTest.java @@ -14,7 +14,9 @@ * the License. */ -package de.dennisguse.opentracks.content; +package de.dennisguse.opentracks.share; + +import static org.junit.Assert.assertEquals; import android.content.Context; @@ -31,14 +33,12 @@ import java.time.OffsetDateTime; import java.time.ZoneId; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.Speed; -import de.dennisguse.opentracks.content.data.Track; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Speed; +import de.dennisguse.opentracks.data.models.Track; import de.dennisguse.opentracks.stats.TrackStatistics; import de.dennisguse.opentracks.util.StringUtils; -import static org.junit.Assert.assertEquals; - /** * Tests for {@link DescriptionGenerator}. * @@ -82,18 +82,18 @@ public class DescriptionGeneratorTest { + "Description: -
" + "Total distance: 20.00 km (12.4 mi)
" + "Total time: 10:00
" - + "Moving time: 05:00
" - + "Average speed: 120.00 km/h (74.6 mi/h)
" - + "Average moving speed: 240.00 km/h (149.1 mi/h)
" - + "Max speed: 360.00 km/h (223.7 mi/h)
" - + "Average pace: 0:30 min/km (0:48 min/mi)
" - + "Average moving pace: 0:15 min/km (0:24 min/mi)
" - + "Fastest pace: 0:10 min/km (0:16 min/mi)
" - + "Max elevation: 550 m (1804 ft)
" - + "Min elevation: -500 m (-1640 ft)
" - + "Elevation gain: 6000 m (19685 ft)
" - + "Elevation loss: 6000 m (19685 ft)
" - + "Recorded: " + StringUtils.formatDateTime(OffsetDateTime.ofInstant(START_TIME, ZoneId.systemDefault())) + "
"; + + "Moving time: 05:00
" + + "Average speed: 120.00 km/h (74.6 mi/h)
" + + "Average moving speed: 240.00 km/h (149.1 mi/h)
" + + "Max speed: 360.00 km/h (223.7 mi/h)
" + + "Average pace: 0:30 min/km (0:48 min/mi)
" + + "Average moving pace: 0:15 min/km (0:24 min/mi)
" + + "Fastest pace: 0:10 min/km (0:16 min/mi)
" + + "Max elevation: 550 m (1804 ft)
" + + "Min elevation: -500 m (-1640 ft)
" + + "Elevation gain: 6000 m (19685 ft)
" + + "Elevation loss: 6000 m (19685 ft)
" + + "Recorded: " + StringUtils.formatDateTime(OffsetDateTime.ofInstant(START_TIME, ZoneId.systemDefault())) + "
"; assertEquals(expected, descriptionGenerator.generateTrackDescription(track, true)); } diff --git a/src/androidTest/java/de/dennisguse/opentracks/stats/TrackStatisticsTest.java b/src/androidTest/java/de/dennisguse/opentracks/stats/TrackStatisticsTest.java index 27df9a6b0..7688f107d 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/stats/TrackStatisticsTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/stats/TrackStatisticsTest.java @@ -15,6 +15,9 @@ */ package de.dennisguse.opentracks.stats; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNull; + import androidx.test.ext.junit.runners.AndroidJUnit4; import org.junit.Before; @@ -24,11 +27,8 @@ import org.junit.runner.RunWith; import java.time.Duration; import java.time.Instant; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.Speed; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Speed; /** * Tests for {@link TrackStatistics}. diff --git a/src/androidTest/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdaterTest.java b/src/androidTest/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdaterTest.java index 35fe9795c..9f97530aa 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdaterTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdaterTest.java @@ -12,12 +12,12 @@ import org.junit.runner.RunWith; import java.time.Duration; import java.time.Instant; -import de.dennisguse.opentracks.content.data.Altitude; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.Speed; import de.dennisguse.opentracks.content.data.TestDataUtil; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.data.TrackPoint; +import de.dennisguse.opentracks.data.models.Altitude; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Speed; +import de.dennisguse.opentracks.data.models.Track; +import de.dennisguse.opentracks.data.models.TrackPoint; @RunWith(AndroidJUnit4.class) public class TrackStatisticsUpdaterTest { diff --git a/src/androidTest/java/de/dennisguse/opentracks/viewmodels/AggregatedStatisticsTest.java b/src/androidTest/java/de/dennisguse/opentracks/ui/aggregatedStatistics/AggregatedStatisticsTest.java similarity index 97% rename from src/androidTest/java/de/dennisguse/opentracks/viewmodels/AggregatedStatisticsTest.java rename to src/androidTest/java/de/dennisguse/opentracks/ui/aggregatedStatistics/AggregatedStatisticsTest.java index 4a22a8760..42a53fc2a 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/viewmodels/AggregatedStatisticsTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/ui/aggregatedStatistics/AggregatedStatisticsTest.java @@ -1,4 +1,7 @@ -package de.dennisguse.opentracks.viewmodels; +package de.dennisguse.opentracks.ui.aggregatedStatistics; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotNull; import android.content.Context; @@ -13,15 +16,12 @@ import java.time.Instant; import java.util.List; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.Speed; -import de.dennisguse.opentracks.content.data.Track; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Speed; +import de.dennisguse.opentracks.data.models.Track; import de.dennisguse.opentracks.stats.TrackStatistics; import de.dennisguse.opentracks.util.TrackIconUtils; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; - @RunWith(JUnit4.class) public class AggregatedStatisticsTest { diff --git a/src/androidTest/java/de/dennisguse/opentracks/EspressoAggregatedFilterTest.java b/src/androidTest/java/de/dennisguse/opentracks/ui/aggregatedStatistics/EspressoAggregatedFilterTest.java similarity index 88% rename from src/androidTest/java/de/dennisguse/opentracks/EspressoAggregatedFilterTest.java rename to src/androidTest/java/de/dennisguse/opentracks/ui/aggregatedStatistics/EspressoAggregatedFilterTest.java index f2cda7425..91cee8049 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/EspressoAggregatedFilterTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/ui/aggregatedStatistics/EspressoAggregatedFilterTest.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks; +package de.dennisguse.opentracks.ui.aggregatedStatistics; import static androidx.test.espresso.Espresso.onView; import static androidx.test.espresso.action.ViewActions.click; @@ -15,6 +15,7 @@ import android.view.View; import androidx.test.core.app.ApplicationProvider; import androidx.test.espresso.ViewInteraction; +import androidx.test.espresso.matcher.ViewMatchers; import androidx.test.ext.junit.rules.ActivityScenarioRule; import androidx.test.filters.LargeTest; import androidx.test.rule.GrantPermissionRule; @@ -28,10 +29,12 @@ import org.junit.runner.RunWith; import java.util.List; +import de.dennisguse.opentracks.R; +import de.dennisguse.opentracks.TrackListActivity; import de.dennisguse.opentracks.content.data.TestDataUtil; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.data.TrackPoint; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; +import de.dennisguse.opentracks.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.models.Track; +import de.dennisguse.opentracks.data.models.TrackPoint; @LargeTest @RunWith(AndroidJUnit4.class) @@ -55,7 +58,7 @@ public class EspressoAggregatedFilterTest { @Test public void espressoAggregatedFilterTest() { // open AggregatedStatisticsActivity through toolbar's menu item - onView(withId(R.id.toolbar)).check(matches(isDisplayed())); + onView(ViewMatchers.withId(R.id.toolbar)).check(matches(isDisplayed())); onView(withId(R.id.toolbar)).check(matches(hasDescendant(withId(R.id.track_list_aggregated_stats)))); onView(withId(R.id.track_list_aggregated_stats)).perform(click()); diff --git a/src/androidTest/java/de/dennisguse/opentracks/util/CsvLayoutUtilsTest.java b/src/androidTest/java/de/dennisguse/opentracks/ui/customRecordingLayout/CsvLayoutUtilsTest.java similarity index 98% rename from src/androidTest/java/de/dennisguse/opentracks/util/CsvLayoutUtilsTest.java rename to src/androidTest/java/de/dennisguse/opentracks/ui/customRecordingLayout/CsvLayoutUtilsTest.java index e09c9c134..1ee67fbdc 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/util/CsvLayoutUtilsTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/ui/customRecordingLayout/CsvLayoutUtilsTest.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.util; +package de.dennisguse.opentracks.ui.customRecordingLayout; import androidx.test.ext.junit.runners.AndroidJUnit4; diff --git a/src/androidTest/java/de/dennisguse/opentracks/EspressoCustomLayoutTest.java b/src/androidTest/java/de/dennisguse/opentracks/ui/customRecordingLayout/EspressoCustomLayoutTest.java similarity index 93% rename from src/androidTest/java/de/dennisguse/opentracks/EspressoCustomLayoutTest.java rename to src/androidTest/java/de/dennisguse/opentracks/ui/customRecordingLayout/EspressoCustomLayoutTest.java index 671ae51cd..b55bd46f3 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/EspressoCustomLayoutTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/ui/customRecordingLayout/EspressoCustomLayoutTest.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks; +package de.dennisguse.opentracks.ui.customRecordingLayout; import static androidx.test.espresso.Espresso.onView; @@ -20,6 +20,7 @@ import androidx.test.espresso.ViewAction; import androidx.test.espresso.ViewAssertion; import androidx.test.espresso.ViewInteraction; import androidx.test.espresso.action.MotionEvents; +import androidx.test.espresso.matcher.ViewMatchers; import androidx.test.ext.junit.rules.ActivityScenarioRule; import androidx.test.ext.junit.runners.AndroidJUnit4; import androidx.test.filters.LargeTest; @@ -32,8 +33,8 @@ import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; -import de.dennisguse.opentracks.content.data.DataField; -import de.dennisguse.opentracks.content.data.Layout; +import de.dennisguse.opentracks.R; +import de.dennisguse.opentracks.TrackListActivity; import de.dennisguse.opentracks.settings.PreferencesUtils; @LargeTest @@ -49,7 +50,7 @@ public class EspressoCustomLayoutTest { @Test public void customLayoutTest() { // TrackListActivity: start recording - ViewInteraction trackControllerRecordButton = onView(withId(R.id.controller_record)); + ViewInteraction trackControllerRecordButton = onView(ViewMatchers.withId(R.id.controller_record)); trackControllerRecordButton.perform(click()); // Get custom layout preferences and check all data fields are showed. diff --git a/src/androidTest/java/de/dennisguse/opentracks/content/data/LayoutTest.java b/src/androidTest/java/de/dennisguse/opentracks/ui/customRecordingLayout/LayoutTest.java similarity index 99% rename from src/androidTest/java/de/dennisguse/opentracks/content/data/LayoutTest.java rename to src/androidTest/java/de/dennisguse/opentracks/ui/customRecordingLayout/LayoutTest.java index 7b5521a35..fcb0d5d63 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/content/data/LayoutTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/ui/customRecordingLayout/LayoutTest.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.content.data; +package de.dennisguse.opentracks.ui.customRecordingLayout; import android.content.Context; import android.content.res.Resources; diff --git a/src/androidTest/java/de/dennisguse/opentracks/viewmodels/IntervalStatisticsTest.java b/src/androidTest/java/de/dennisguse/opentracks/ui/intervals/IntervalStatisticsTest.java similarity index 94% rename from src/androidTest/java/de/dennisguse/opentracks/viewmodels/IntervalStatisticsTest.java rename to src/androidTest/java/de/dennisguse/opentracks/ui/intervals/IntervalStatisticsTest.java index 2a40fc99f..c1e9e9bc6 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/viewmodels/IntervalStatisticsTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/ui/intervals/IntervalStatisticsTest.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.viewmodels; +package de.dennisguse.opentracks.ui.intervals; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; @@ -15,13 +15,13 @@ import org.junit.runners.JUnit4; import java.util.List; -import de.dennisguse.opentracks.content.data.Distance; import de.dennisguse.opentracks.content.data.TestDataUtil; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.data.TrackPoint; -import de.dennisguse.opentracks.content.data.UnitConversions; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; -import de.dennisguse.opentracks.content.provider.TrackPointIterator; +import de.dennisguse.opentracks.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.TrackPointIterator; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Track; +import de.dennisguse.opentracks.data.models.TrackPoint; +import de.dennisguse.opentracks.data.models.UnitConversions; import de.dennisguse.opentracks.stats.TrackStatistics; import de.dennisguse.opentracks.stats.TrackStatisticsUpdater; diff --git a/src/androidTest/java/de/dennisguse/opentracks/util/EGM2008UtilsTest.java b/src/androidTest/java/de/dennisguse/opentracks/util/EGM2008UtilsTest.java index a64c93e31..f36b42c8a 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/util/EGM2008UtilsTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/util/EGM2008UtilsTest.java @@ -1,5 +1,8 @@ package de.dennisguse.opentracks.util; +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertNotEquals; + import android.content.Context; import androidx.test.core.app.ApplicationProvider; @@ -16,10 +19,7 @@ import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; import java.time.Instant; -import de.dennisguse.opentracks.content.data.TrackPoint; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotEquals; +import de.dennisguse.opentracks.data.models.TrackPoint; @RunWith(JUnit4.class) public class EGM2008UtilsTest { diff --git a/src/androidTest/java/de/dennisguse/opentracks/util/StatisticsUtilsTest.java b/src/androidTest/java/de/dennisguse/opentracks/util/StatisticsUtilsTest.java index b7dd74e38..d9a26e53c 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/util/StatisticsUtilsTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/util/StatisticsUtilsTest.java @@ -11,8 +11,8 @@ import org.junit.Test; import org.junit.runner.RunWith; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.data.DataField; -import de.dennisguse.opentracks.content.data.Layout; +import de.dennisguse.opentracks.ui.customRecordingLayout.DataField; +import de.dennisguse.opentracks.ui.customRecordingLayout.Layout; @RunWith(AndroidJUnit4.class) public class StatisticsUtilsTest extends TestCase { diff --git a/src/androidTest/java/de/dennisguse/opentracks/util/StringUtilsTest.java b/src/androidTest/java/de/dennisguse/opentracks/util/StringUtilsTest.java index 1e6feaf53..0dae88cb6 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/util/StringUtilsTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/util/StringUtilsTest.java @@ -45,8 +45,8 @@ import java.util.Locale; import java.util.TimeZone; import java.util.stream.Collectors; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.Speed; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Speed; /** * Tests for {@link StringUtils}. diff --git a/src/androidTest/java/de/dennisguse/opentracks/util/TrackNameUtilsTest.java b/src/androidTest/java/de/dennisguse/opentracks/util/TrackNameUtilsTest.java index a0c8fb095..295491481 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/util/TrackNameUtilsTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/util/TrackNameUtilsTest.java @@ -26,11 +26,10 @@ import androidx.test.ext.junit.runners.AndroidJUnit4; import org.junit.Test; import org.junit.runner.RunWith; -import java.time.LocalDateTime; import java.time.OffsetDateTime; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.data.Track; +import de.dennisguse.opentracks.data.models.Track; import de.dennisguse.opentracks.settings.PreferencesUtils; /** diff --git a/src/androidTest/java/de/dennisguse/opentracks/viewmodels/StatisticDataBuilderTest.java b/src/androidTest/java/de/dennisguse/opentracks/viewmodels/StatisticDataBuilderTest.java index d36e6126d..56ec4163d 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/viewmodels/StatisticDataBuilderTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/viewmodels/StatisticDataBuilderTest.java @@ -1,5 +1,7 @@ package de.dennisguse.opentracks.viewmodels; +import static org.mockito.Mockito.when; + import android.content.Context; import androidx.test.core.app.ApplicationProvider; @@ -15,14 +17,12 @@ import java.time.Duration; import java.util.List; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.Layout; -import de.dennisguse.opentracks.content.data.Track; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Track; import de.dennisguse.opentracks.services.TrackRecordingService; import de.dennisguse.opentracks.stats.SensorStatistics; import de.dennisguse.opentracks.stats.TrackStatistics; - -import static org.mockito.Mockito.when; +import de.dennisguse.opentracks.ui.customRecordingLayout.Layout; @RunWith(MockitoJUnitRunner.class) public class StatisticDataBuilderTest extends TestCase { diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml index c4bf753d6..470c29c6f 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. - + @@ -316,7 +316,7 @@ limitations under the License. - + @@ -328,7 +328,7 @@ limitations under the License. @@ -336,7 +336,7 @@ limitations under the License. @@ -345,7 +345,7 @@ limitations under the License. diff --git a/src/main/java/de/dennisguse/opentracks/AboutActivity.java b/src/main/java/de/dennisguse/opentracks/AboutActivity.java index 5264bba4e..ec8439763 100644 --- a/src/main/java/de/dennisguse/opentracks/AboutActivity.java +++ b/src/main/java/de/dennisguse/opentracks/AboutActivity.java @@ -6,8 +6,8 @@ import android.view.View; import androidx.annotation.Nullable; import de.dennisguse.opentracks.databinding.AboutBinding; +import de.dennisguse.opentracks.ui.util.ViewUtils; import de.dennisguse.opentracks.util.SystemUtils; -import de.dennisguse.opentracks.util.ViewUtils; public class AboutActivity extends AbstractActivity { diff --git a/src/main/java/de/dennisguse/opentracks/AbstractTrackDeleteActivity.java b/src/main/java/de/dennisguse/opentracks/AbstractTrackDeleteActivity.java index 6f91ed2fe..ffe7ba307 100644 --- a/src/main/java/de/dennisguse/opentracks/AbstractTrackDeleteActivity.java +++ b/src/main/java/de/dennisguse/opentracks/AbstractTrackDeleteActivity.java @@ -22,11 +22,11 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.stream.Collectors; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.fragments.ConfirmDeleteDialogFragment; -import de.dennisguse.opentracks.fragments.ConfirmDeleteDialogFragment.ConfirmDeleteCaller; +import de.dennisguse.opentracks.data.models.Track; import de.dennisguse.opentracks.services.TrackDeleteService; import de.dennisguse.opentracks.services.TrackDeleteServiceConnection; +import de.dennisguse.opentracks.ui.aggregatedStatistics.ConfirmDeleteDialogFragment; +import de.dennisguse.opentracks.ui.aggregatedStatistics.ConfirmDeleteDialogFragment.ConfirmDeleteCaller; /** * An abstract class for the following common tasks across diff --git a/src/main/java/de/dennisguse/opentracks/ContextualActionModeCallback.java b/src/main/java/de/dennisguse/opentracks/ContextualActionModeCallback.java deleted file mode 100644 index 62144ca3c..000000000 --- a/src/main/java/de/dennisguse/opentracks/ContextualActionModeCallback.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright 2012 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ - -package de.dennisguse.opentracks; - -import android.view.Menu; - -/** - * Callback when items in the contextual action mode are selected. - * - * @author Jimmy Shih - */ -public interface ContextualActionModeCallback { - - /** - * Invoked to prepare the menu for the selected items. - * - * @param menu the menu - * @param positions the selected items' positions - * @param ids the selected items' ids, if available - * @param showSelectAll true to show select all - */ - void onPrepare(Menu menu, int[] positions, long[] ids, boolean showSelectAll); - - /** - * Invoked when items are selected. - * - * @param itemId the context menu item id - * @param positions the selected items' positions - * @param ids the selected items' ids, if available - */ - boolean onClick(int itemId, int[] positions, long[] ids); -} \ No newline at end of file diff --git a/src/main/java/de/dennisguse/opentracks/ControllerFragment.java b/src/main/java/de/dennisguse/opentracks/ControllerFragment.java index 7a819618d..f1e58c093 100644 --- a/src/main/java/de/dennisguse/opentracks/ControllerFragment.java +++ b/src/main/java/de/dennisguse/opentracks/ControllerFragment.java @@ -35,7 +35,7 @@ import androidx.fragment.app.Fragment; import de.dennisguse.opentracks.databinding.ControllerFragmentBinding; import de.dennisguse.opentracks.services.TrackRecordingService; import de.dennisguse.opentracks.services.TrackRecordingServiceConnection; -import de.dennisguse.opentracks.util.ActivityUtils; +import de.dennisguse.opentracks.ui.util.ActivityUtils; import de.dennisguse.opentracks.util.StringUtils; /** diff --git a/src/main/java/de/dennisguse/opentracks/HelpActivity.java b/src/main/java/de/dennisguse/opentracks/HelpActivity.java index c5c2402d6..5710f7b21 100644 --- a/src/main/java/de/dennisguse/opentracks/HelpActivity.java +++ b/src/main/java/de/dennisguse/opentracks/HelpActivity.java @@ -6,7 +6,7 @@ import android.view.View; import androidx.annotation.Nullable; import de.dennisguse.opentracks.databinding.HelpBinding; -import de.dennisguse.opentracks.util.ViewUtils; +import de.dennisguse.opentracks.ui.util.ViewUtils; public class HelpActivity extends AbstractActivity { diff --git a/src/main/java/de/dennisguse/opentracks/TrackActivityDataHubInterface.java b/src/main/java/de/dennisguse/opentracks/TrackActivityDataHubInterface.java deleted file mode 100644 index d5de39eed..000000000 --- a/src/main/java/de/dennisguse/opentracks/TrackActivityDataHubInterface.java +++ /dev/null @@ -1,10 +0,0 @@ -package de.dennisguse.opentracks; - -import de.dennisguse.opentracks.content.TrackDataHub; - -/** - * Interface for communication between activities that use {@link de.dennisguse.opentracks.content.TrackDataHub} and their fragments that need thi data hub. - */ -public interface TrackActivityDataHubInterface { - TrackDataHub getTrackDataHub(); -} diff --git a/src/main/java/de/dennisguse/opentracks/TrackEditActivity.java b/src/main/java/de/dennisguse/opentracks/TrackEditActivity.java index 6fde1d563..395efe0e8 100644 --- a/src/main/java/de/dennisguse/opentracks/TrackEditActivity.java +++ b/src/main/java/de/dennisguse/opentracks/TrackEditActivity.java @@ -23,8 +23,8 @@ import android.widget.ArrayAdapter; import androidx.annotation.NonNull; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; +import de.dennisguse.opentracks.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.models.Track; import de.dennisguse.opentracks.databinding.TrackEditBinding; import de.dennisguse.opentracks.fragments.ChooseActivityTypeDialogFragment; import de.dennisguse.opentracks.services.TrackRecordingServiceConnection; diff --git a/src/main/java/de/dennisguse/opentracks/TrackListActivity.java b/src/main/java/de/dennisguse/opentracks/TrackListActivity.java index 578dc56d2..d6376792d 100644 --- a/src/main/java/de/dennisguse/opentracks/TrackListActivity.java +++ b/src/main/java/de/dennisguse/opentracks/TrackListActivity.java @@ -54,20 +54,23 @@ import java.time.ZoneOffset; import java.util.ArrayList; import java.util.Arrays; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.data.TracksColumns; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Track; +import de.dennisguse.opentracks.data.tables.TracksColumns; import de.dennisguse.opentracks.databinding.TrackListBinding; -import de.dennisguse.opentracks.fragments.ConfirmDeleteDialogFragment; import de.dennisguse.opentracks.services.TrackRecordingService; import de.dennisguse.opentracks.services.TrackRecordingServiceConnection; import de.dennisguse.opentracks.services.handlers.GpsStatusValue; import de.dennisguse.opentracks.settings.PreferencesUtils; import de.dennisguse.opentracks.settings.SettingsActivity; -import de.dennisguse.opentracks.util.ActivityUtils; +import de.dennisguse.opentracks.share.ShareUtils; +import de.dennisguse.opentracks.ui.aggregatedStatistics.AggregatedStatisticsActivity; +import de.dennisguse.opentracks.ui.aggregatedStatistics.ConfirmDeleteDialogFragment; +import de.dennisguse.opentracks.ui.markers.MarkerListActivity; +import de.dennisguse.opentracks.ui.util.ActivityUtils; +import de.dennisguse.opentracks.ui.util.ListItemUtils; import de.dennisguse.opentracks.util.IntentDashboardUtils; import de.dennisguse.opentracks.util.IntentUtils; -import de.dennisguse.opentracks.util.ListItemUtils; import de.dennisguse.opentracks.util.StringUtils; import de.dennisguse.opentracks.util.TrackIconUtils; @@ -95,7 +98,7 @@ public class TrackListActivity extends AbstractTrackDeleteActivity implements Co private TrackRecordingService.RecordingStatus recordingStatus = TrackRecordingService.STATUS_DEFAULT; // Callback when an item is selected in the contextual action mode - private final ContextualActionModeCallback contextualActionModeCallback = new ContextualActionModeCallback() { + private final ActivityUtils.ContextualActionModeCallback contextualActionModeCallback = new ActivityUtils.ContextualActionModeCallback() { @Override public void onPrepare(Menu menu, int[] positions, long[] trackIds, boolean showSelectAll) { @@ -447,7 +450,7 @@ public class TrackListActivity extends AbstractTrackDeleteActivity implements Co } if (itemId == R.id.list_context_menu_share) { - Intent intent = IntentUtils.newShareFileIntent(this, trackIds); + Intent intent = ShareUtils.newShareFileIntent(this, trackIds); intent = Intent.createChooser(intent, null); startActivity(intent); return true; diff --git a/src/main/java/de/dennisguse/opentracks/TrackRecordedActivity.java b/src/main/java/de/dennisguse/opentracks/TrackRecordedActivity.java index c3c09acb5..79add8a67 100644 --- a/src/main/java/de/dennisguse/opentracks/TrackRecordedActivity.java +++ b/src/main/java/de/dennisguse/opentracks/TrackRecordedActivity.java @@ -34,18 +34,21 @@ import androidx.viewpager2.adapter.FragmentStateAdapter; import com.google.android.material.tabs.TabLayoutMediator; import de.dennisguse.opentracks.chart.ChartFragment; -import de.dennisguse.opentracks.content.TrackDataHub; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; +import de.dennisguse.opentracks.chart.TrackDataHubInterface; +import de.dennisguse.opentracks.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.TrackDataHub; +import de.dennisguse.opentracks.data.models.Track; import de.dennisguse.opentracks.databinding.TrackRecordedBinding; -import de.dennisguse.opentracks.fragments.ConfirmDeleteDialogFragment; -import de.dennisguse.opentracks.fragments.IntervalsFragment; import de.dennisguse.opentracks.fragments.StatisticsRecordedFragment; import de.dennisguse.opentracks.services.TrackDeleteService; import de.dennisguse.opentracks.services.TrackRecordingService; import de.dennisguse.opentracks.services.TrackRecordingServiceConnection; import de.dennisguse.opentracks.settings.PreferencesUtils; import de.dennisguse.opentracks.settings.SettingsActivity; +import de.dennisguse.opentracks.share.ShareUtils; +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; @@ -56,7 +59,7 @@ import de.dennisguse.opentracks.util.IntentUtils; * @author Rodrigo Damazio */ //TODO Should not use TrackRecordingServiceConnection; only used to determine if there is NO current recording, to enable resume functionality. -public class TrackRecordedActivity extends AbstractTrackDeleteActivity implements ConfirmDeleteDialogFragment.ConfirmDeleteCaller, TrackActivityDataHubInterface { +public class TrackRecordedActivity extends AbstractTrackDeleteActivity implements ConfirmDeleteDialogFragment.ConfirmDeleteCaller, TrackDataHubInterface { private static final String TAG = TrackRecordedActivity.class.getSimpleName(); @@ -180,7 +183,7 @@ public class TrackRecordedActivity extends AbstractTrackDeleteActivity implement @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == R.id.track_detail_share) { - Intent intent = Intent.createChooser(IntentUtils.newShareFileIntent(this, trackId), null); + Intent intent = Intent.createChooser(ShareUtils.newShareFileIntent(this, trackId), null); startActivity(intent); return true; } diff --git a/src/main/java/de/dennisguse/opentracks/TrackRecordingActivity.java b/src/main/java/de/dennisguse/opentracks/TrackRecordingActivity.java index 7dfbdf3b7..df77c6fe7 100644 --- a/src/main/java/de/dennisguse/opentracks/TrackRecordingActivity.java +++ b/src/main/java/de/dennisguse/opentracks/TrackRecordingActivity.java @@ -22,17 +22,20 @@ import com.google.android.material.tabs.TabLayoutMediator; import java.util.List; import de.dennisguse.opentracks.chart.ChartFragment; -import de.dennisguse.opentracks.content.TrackDataHub; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; +import de.dennisguse.opentracks.chart.TrackDataHubInterface; +import de.dennisguse.opentracks.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.TrackDataHub; +import de.dennisguse.opentracks.data.models.Track; import de.dennisguse.opentracks.databinding.TrackRecordingBinding; import de.dennisguse.opentracks.fragments.ChooseActivityTypeDialogFragment; -import de.dennisguse.opentracks.fragments.IntervalsFragment; import de.dennisguse.opentracks.fragments.StatisticsRecordingFragment; import de.dennisguse.opentracks.services.TrackRecordingService; 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; @@ -46,7 +49,7 @@ import de.dennisguse.opentracks.util.TrackUtils; */ //NOTE: This activity does NOT react to preference changes of R.string.recording_track_id_key. //This mode of communication should be removed anyhow. -public class TrackRecordingActivity extends AbstractActivity implements ChooseActivityTypeDialogFragment.ChooseActivityTypeCaller, TrackActivityDataHubInterface, ControllerFragment.Callback { +public class TrackRecordingActivity extends AbstractActivity implements ChooseActivityTypeDialogFragment.ChooseActivityTypeCaller, TrackDataHubInterface, ControllerFragment.Callback { public static final String EXTRA_TRACK_ID = "track_id"; diff --git a/src/main/java/de/dennisguse/opentracks/adapters/StatisticsAdapter.java b/src/main/java/de/dennisguse/opentracks/adapters/StatisticsAdapter.java index 978447e74..87268e380 100644 --- a/src/main/java/de/dennisguse/opentracks/adapters/StatisticsAdapter.java +++ b/src/main/java/de/dennisguse/opentracks/adapters/StatisticsAdapter.java @@ -14,7 +14,7 @@ import java.util.ArrayList; import java.util.List; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.data.CustomLayoutFieldType; +import de.dennisguse.opentracks.ui.customRecordingLayout.CustomLayoutFieldType; import de.dennisguse.opentracks.viewmodels.StatisticData; public class StatisticsAdapter extends RecyclerView.Adapter { diff --git a/src/main/java/de/dennisguse/opentracks/chart/ChartFragment.java b/src/main/java/de/dennisguse/opentracks/chart/ChartFragment.java index 39036fc6f..8d89f8109 100644 --- a/src/main/java/de/dennisguse/opentracks/chart/ChartFragment.java +++ b/src/main/java/de/dennisguse/opentracks/chart/ChartFragment.java @@ -31,14 +31,12 @@ import java.util.Collections; import java.util.List; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.TrackActivityDataHubInterface; -import de.dennisguse.opentracks.content.TrackDataHub; -import de.dennisguse.opentracks.content.TrackDataListener; -import de.dennisguse.opentracks.content.data.Altitude; -import de.dennisguse.opentracks.content.data.Marker; -import de.dennisguse.opentracks.content.data.Speed; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.data.TrackPoint; +import de.dennisguse.opentracks.data.TrackDataHub; +import de.dennisguse.opentracks.data.models.Altitude; +import de.dennisguse.opentracks.data.models.Marker; +import de.dennisguse.opentracks.data.models.Speed; +import de.dennisguse.opentracks.data.models.Track; +import de.dennisguse.opentracks.data.models.TrackPoint; import de.dennisguse.opentracks.databinding.ChartBinding; import de.dennisguse.opentracks.settings.PreferencesUtils; import de.dennisguse.opentracks.stats.TrackStatistics; @@ -51,7 +49,7 @@ import de.dennisguse.opentracks.stats.TrackStatisticsUpdater; * @author Sandor Dornbush * @author Rodrigo Damazio */ -public class ChartFragment extends Fragment implements TrackDataListener { +public class ChartFragment extends Fragment implements TrackDataHub.Listener { private static final String KEY_CHART_VIEW_BY_DISTANCE_KEY = "chartViewByDistance"; @@ -242,7 +240,7 @@ public class ChartFragment extends Fragment implements TrackDataListener { * Needs to be synchronized because trackDataHub can be accessed by multiple threads. */ private synchronized void resumeTrackDataHub() { - trackDataHub = ((TrackActivityDataHubInterface) getActivity()).getTrackDataHub(); + trackDataHub = ((TrackDataHubInterface) getActivity()).getTrackDataHub(); trackDataHub.registerTrackDataListener(this); } diff --git a/src/main/java/de/dennisguse/opentracks/chart/ChartPoint.java b/src/main/java/de/dennisguse/opentracks/chart/ChartPoint.java index 931725134..a84d89f88 100644 --- a/src/main/java/de/dennisguse/opentracks/chart/ChartPoint.java +++ b/src/main/java/de/dennisguse/opentracks/chart/ChartPoint.java @@ -3,11 +3,11 @@ package de.dennisguse.opentracks.chart; import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; -import de.dennisguse.opentracks.content.data.Altitude; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.Speed; -import de.dennisguse.opentracks.content.data.TrackPoint; -import de.dennisguse.opentracks.content.data.UnitConversions; +import de.dennisguse.opentracks.data.models.Altitude; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Speed; +import de.dennisguse.opentracks.data.models.TrackPoint; +import de.dennisguse.opentracks.data.models.UnitConversions; import de.dennisguse.opentracks.stats.TrackStatistics; public class ChartPoint { diff --git a/src/main/java/de/dennisguse/opentracks/chart/ChartView.java b/src/main/java/de/dennisguse/opentracks/chart/ChartView.java index cdf514802..48ca46274 100644 --- a/src/main/java/de/dennisguse/opentracks/chart/ChartView.java +++ b/src/main/java/de/dennisguse/opentracks/chart/ChartView.java @@ -44,14 +44,14 @@ 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.data.models.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.ui.util.ThemeUtils; import de.dennisguse.opentracks.util.IntentUtils; -import de.dennisguse.opentracks.util.MarkerUtils; import de.dennisguse.opentracks.util.StringUtils; -import de.dennisguse.opentracks.util.ThemeUtils; /** * Visualization of the chart. diff --git a/src/main/java/de/dennisguse/opentracks/chart/TrackDataHubInterface.java b/src/main/java/de/dennisguse/opentracks/chart/TrackDataHubInterface.java new file mode 100644 index 000000000..c50c5dbfa --- /dev/null +++ b/src/main/java/de/dennisguse/opentracks/chart/TrackDataHubInterface.java @@ -0,0 +1,10 @@ +package de.dennisguse.opentracks.chart; + +import de.dennisguse.opentracks.data.TrackDataHub; + +/** + * Interface for communication between activities that use {@link TrackDataHub} and their fragments that need thi data hub. + */ +public interface TrackDataHubInterface { + TrackDataHub getTrackDataHub(); +} diff --git a/src/main/java/de/dennisguse/opentracks/content/TrackDataListener.java b/src/main/java/de/dennisguse/opentracks/content/TrackDataListener.java deleted file mode 100644 index f437fa8a3..000000000 --- a/src/main/java/de/dennisguse/opentracks/content/TrackDataListener.java +++ /dev/null @@ -1,91 +0,0 @@ -/* - * Copyright 2011 Google Inc. - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ - -package de.dennisguse.opentracks.content; - -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; - -import de.dennisguse.opentracks.content.data.Altitude; -import de.dennisguse.opentracks.content.data.Marker; -import de.dennisguse.opentracks.content.data.Speed; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.data.TrackPoint; -import de.dennisguse.opentracks.stats.TrackStatistics; - -/** - * Listener for track data changes. - * - * @author Rodrigo Damazio - */ -public interface TrackDataListener { - - /** - * Called when the track or its statistics has been updated. - * - * @param track the track - */ - //TODO Could be @NonNull - void onTrackUpdated(Track track); - - /** - * Called to clear previously-sent track points. - */ - void clearTrackPoints(); - - /** - * Called when a sampled in track point is read. - * - * @param trackPoint the trackPoint - */ - default void onSampledInTrackPoint(@NonNull TrackPoint trackPoint, @NonNull TrackStatistics trackStatistics, Speed smoothedSpeed, @Nullable Altitude smoothedAltitude_m) { - } - - /** - * Called when a sampled out track point is read. - * - * @param trackPoint the trackPoint - */ - default void onSampledOutTrackPoint(@NonNull TrackPoint trackPoint, @NonNull TrackStatistics trackStatistics) { - } - - /** - * Called when finish sending new track points. - */ - default void onNewTrackPointsDone() { - } - - /** - * Called to clear previously sent markers. - */ - default void clearMarkers() { - } - - /** - * Called when a new marker is read. - * - * @param marker the marker - */ - default void onNewMarker(@NonNull Marker marker) { - } - - /** - * Called when finish sending new markers. - * This gets called after every batch of calls to {@link #clearMarkers()} and {@link #onNewMarker(Marker)}. - */ - default void onNewMarkersDone() { - } -} diff --git a/src/main/java/de/dennisguse/opentracks/content/provider/CachedTrackPointsIndexes.java b/src/main/java/de/dennisguse/opentracks/data/CachedTrackPointsIndexes.java similarity index 94% rename from src/main/java/de/dennisguse/opentracks/content/provider/CachedTrackPointsIndexes.java rename to src/main/java/de/dennisguse/opentracks/data/CachedTrackPointsIndexes.java index 3df40e868..63a8a6991 100644 --- a/src/main/java/de/dennisguse/opentracks/content/provider/CachedTrackPointsIndexes.java +++ b/src/main/java/de/dennisguse/opentracks/data/CachedTrackPointsIndexes.java @@ -1,8 +1,8 @@ -package de.dennisguse.opentracks.content.provider; +package de.dennisguse.opentracks.data; import android.database.Cursor; -import de.dennisguse.opentracks.content.data.TrackPointsColumns; +import de.dennisguse.opentracks.data.tables.TrackPointsColumns; /** * A cache of track points indexes. diff --git a/src/main/java/de/dennisguse/opentracks/content/provider/ContentProviderUtils.java b/src/main/java/de/dennisguse/opentracks/data/ContentProviderUtils.java similarity index 98% rename from src/main/java/de/dennisguse/opentracks/content/provider/ContentProviderUtils.java rename to src/main/java/de/dennisguse/opentracks/data/ContentProviderUtils.java index 0fafbc996..ba1940076 100644 --- a/src/main/java/de/dennisguse/opentracks/content/provider/ContentProviderUtils.java +++ b/src/main/java/de/dennisguse/opentracks/data/ContentProviderUtils.java @@ -14,7 +14,7 @@ * the License. */ -package de.dennisguse.opentracks.content.provider; +package de.dennisguse.opentracks.data; import android.content.ContentResolver; import android.content.ContentUris; @@ -40,15 +40,15 @@ import java.util.List; import java.util.UUID; import de.dennisguse.opentracks.BuildConfig; -import de.dennisguse.opentracks.content.data.Altitude; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.Marker; -import de.dennisguse.opentracks.content.data.MarkerColumns; -import de.dennisguse.opentracks.content.data.Speed; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.data.TrackPoint; -import de.dennisguse.opentracks.content.data.TrackPointsColumns; -import de.dennisguse.opentracks.content.data.TracksColumns; +import de.dennisguse.opentracks.data.models.Altitude; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Marker; +import de.dennisguse.opentracks.data.models.Speed; +import de.dennisguse.opentracks.data.models.Track; +import de.dennisguse.opentracks.data.models.TrackPoint; +import de.dennisguse.opentracks.data.tables.MarkerColumns; +import de.dennisguse.opentracks.data.tables.TrackPointsColumns; +import de.dennisguse.opentracks.data.tables.TracksColumns; import de.dennisguse.opentracks.stats.SensorStatistics; import de.dennisguse.opentracks.stats.TrackStatistics; import de.dennisguse.opentracks.util.FileUtils; diff --git a/src/main/java/de/dennisguse/opentracks/content/provider/CustomContentProvider.java b/src/main/java/de/dennisguse/opentracks/data/CustomContentProvider.java similarity index 98% rename from src/main/java/de/dennisguse/opentracks/content/provider/CustomContentProvider.java rename to src/main/java/de/dennisguse/opentracks/data/CustomContentProvider.java index 7e9542fd4..18b89e41e 100644 --- a/src/main/java/de/dennisguse/opentracks/content/provider/CustomContentProvider.java +++ b/src/main/java/de/dennisguse/opentracks/data/CustomContentProvider.java @@ -14,7 +14,7 @@ * the License. */ -package de.dennisguse.opentracks.content.provider; +package de.dennisguse.opentracks.data; import android.content.ContentProvider; import android.content.ContentUris; @@ -35,10 +35,10 @@ import androidx.annotation.VisibleForTesting; import java.util.Arrays; -import de.dennisguse.opentracks.content.data.MarkerColumns; -import de.dennisguse.opentracks.content.data.TrackPoint; -import de.dennisguse.opentracks.content.data.TrackPointsColumns; -import de.dennisguse.opentracks.content.data.TracksColumns; +import de.dennisguse.opentracks.data.models.TrackPoint; +import de.dennisguse.opentracks.data.tables.MarkerColumns; +import de.dennisguse.opentracks.data.tables.TrackPointsColumns; +import de.dennisguse.opentracks.data.tables.TracksColumns; /** * A {@link ContentProvider} that handles access to track points, tracks, and markers tables. diff --git a/src/main/java/de/dennisguse/opentracks/content/provider/CustomSQLiteOpenHelper.java b/src/main/java/de/dennisguse/opentracks/data/CustomSQLiteOpenHelper.java similarity index 98% rename from src/main/java/de/dennisguse/opentracks/content/provider/CustomSQLiteOpenHelper.java rename to src/main/java/de/dennisguse/opentracks/data/CustomSQLiteOpenHelper.java index e10e6d7af..bf4d9efd5 100644 --- a/src/main/java/de/dennisguse/opentracks/content/provider/CustomSQLiteOpenHelper.java +++ b/src/main/java/de/dennisguse/opentracks/data/CustomSQLiteOpenHelper.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.content.provider; +package de.dennisguse.opentracks.data; import android.content.ContentValues; import android.content.Context; @@ -15,10 +15,10 @@ import java.time.zone.ZoneRules; import java.util.UUID; import de.dennisguse.opentracks.Startup; -import de.dennisguse.opentracks.content.data.MarkerColumns; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.data.TrackPointsColumns; -import de.dennisguse.opentracks.content.data.TracksColumns; +import de.dennisguse.opentracks.data.models.Track; +import de.dennisguse.opentracks.data.tables.MarkerColumns; +import de.dennisguse.opentracks.data.tables.TrackPointsColumns; +import de.dennisguse.opentracks.data.tables.TracksColumns; /** * Database helper for creating and upgrading the database. diff --git a/src/main/java/de/dennisguse/opentracks/content/provider/SelectionData.java b/src/main/java/de/dennisguse/opentracks/data/SelectionData.java similarity index 90% rename from src/main/java/de/dennisguse/opentracks/content/provider/SelectionData.java rename to src/main/java/de/dennisguse/opentracks/data/SelectionData.java index c185b1a99..886847b58 100644 --- a/src/main/java/de/dennisguse/opentracks/content/provider/SelectionData.java +++ b/src/main/java/de/dennisguse/opentracks/data/SelectionData.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.content.provider; +package de.dennisguse.opentracks.data; public class SelectionData { private final String selection; diff --git a/src/main/java/de/dennisguse/opentracks/content/provider/ShareContentProvider.java b/src/main/java/de/dennisguse/opentracks/data/ShareContentProvider.java similarity index 98% rename from src/main/java/de/dennisguse/opentracks/content/provider/ShareContentProvider.java rename to src/main/java/de/dennisguse/opentracks/data/ShareContentProvider.java index a38120234..ecfcd4daf 100644 --- a/src/main/java/de/dennisguse/opentracks/content/provider/ShareContentProvider.java +++ b/src/main/java/de/dennisguse/opentracks/data/ShareContentProvider.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.content.provider; +package de.dennisguse.opentracks.data; import android.content.Context; import android.content.UriMatcher; @@ -25,8 +25,8 @@ import java.util.HashSet; import java.util.List; import java.util.Set; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.data.TracksColumns; +import de.dennisguse.opentracks.data.models.Track; +import de.dennisguse.opentracks.data.tables.TracksColumns; import de.dennisguse.opentracks.io.file.TrackFileFormat; import de.dennisguse.opentracks.io.file.exporter.TrackExporter; diff --git a/src/main/java/de/dennisguse/opentracks/content/TrackDataHub.java b/src/main/java/de/dennisguse/opentracks/data/TrackDataHub.java similarity index 78% rename from src/main/java/de/dennisguse/opentracks/content/TrackDataHub.java rename to src/main/java/de/dennisguse/opentracks/data/TrackDataHub.java index 8d88546f3..4841de598 100644 --- a/src/main/java/de/dennisguse/opentracks/content/TrackDataHub.java +++ b/src/main/java/de/dennisguse/opentracks/data/TrackDataHub.java @@ -14,7 +14,7 @@ * the License. */ -package de.dennisguse.opentracks.content; +package de.dennisguse.opentracks.data; import android.content.ContentResolver; import android.content.Context; @@ -25,28 +25,30 @@ import android.os.HandlerThread; import android.util.Log; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import java.util.Collections; import java.util.HashSet; import java.util.Set; -import de.dennisguse.opentracks.content.data.Distance; -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.data.TrackPoint; -import de.dennisguse.opentracks.content.data.TrackPointsColumns; -import de.dennisguse.opentracks.content.data.TracksColumns; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; -import de.dennisguse.opentracks.content.provider.TrackPointIterator; +import de.dennisguse.opentracks.data.models.Altitude; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Marker; +import de.dennisguse.opentracks.data.models.Speed; +import de.dennisguse.opentracks.data.models.Track; +import de.dennisguse.opentracks.data.models.TrackPoint; +import de.dennisguse.opentracks.data.tables.MarkerColumns; +import de.dennisguse.opentracks.data.tables.TrackPointsColumns; +import de.dennisguse.opentracks.data.tables.TracksColumns; import de.dennisguse.opentracks.services.TrackRecordingService; import de.dennisguse.opentracks.services.handlers.EGM2008CorrectionManager; +import de.dennisguse.opentracks.stats.TrackStatistics; import de.dennisguse.opentracks.stats.TrackStatisticsUpdater; /** * Track data hub. - * Receives data from {@link de.dennisguse.opentracks.content.provider.CustomContentProvider} and distributes it to {@link TrackDataListener} after some processing. + * Receives data from {@link CustomContentProvider} and distributes it to {@link Listener} after some processing. *

* {@link TrackPoint}s are filtered/downsampled with a dynamic sampling frequency. * @@ -70,7 +72,7 @@ public class TrackDataHub { private static final String TAG = TrackDataHub.class.getSimpleName(); private final Context context; - private final Set listeners; + private final Set listeners; private final ContentProviderUtils contentProviderUtils; private final int targetNumPoints; @@ -178,11 +180,11 @@ public class TrackDataHub { } /** - * Registers a {@link TrackDataListener}. + * Registers a {@link Listener}. * * @param trackDataListener the track data listener */ - public void registerTrackDataListener(final TrackDataListener trackDataListener) { + public void registerTrackDataListener(final Listener trackDataListener) { handler.post(() -> { listeners.add(trackDataListener); if (isStarted()) { @@ -192,11 +194,11 @@ public class TrackDataHub { } /** - * Unregisters a {@link TrackDataListener}. + * Unregisters a {@link Listener}. * * @param trackDataListener the track data listener */ - public void unregisterTrackDataListener(final TrackDataListener trackDataListener) { + public void unregisterTrackDataListener(final Listener trackDataListener) { handler.post(() -> listeners.remove(trackDataListener)); } @@ -218,7 +220,7 @@ public class TrackDataHub { notifyTracksTableUpdate(listeners); - for (TrackDataListener listener : listeners) { + for (Listener listener : listeners) { listener.clearTrackPoints(); } notifyTrackPointsTableUpdate(true, listeners); @@ -230,8 +232,8 @@ public class TrackDataHub { * * @param trackDataListener the track data listener. */ - private void loadDataForListener(TrackDataListener trackDataListener) { - Set trackDataListeners = Collections.singleton(trackDataListener); + private void loadDataForListener(Listener trackDataListener) { + Set trackDataListeners = Collections.singleton(trackDataListener); //Track notifyTracksTableUpdate(trackDataListeners); @@ -253,12 +255,12 @@ public class TrackDataHub { * * @param trackDataListeners the track data listeners to notify */ - private void notifyTracksTableUpdate(Set trackDataListeners) { + private void notifyTracksTableUpdate(Set trackDataListeners) { if (trackDataListeners.isEmpty()) { return; } Track track = contentProviderUtils.getTrack(selectedTrackId); - for (TrackDataListener trackDataListener : trackDataListeners) { + for (Listener trackDataListener : trackDataListeners) { trackDataListener.onTrackUpdated(track); } } @@ -269,12 +271,12 @@ public class TrackDataHub { * * @param trackDataListeners the track data listeners to notify */ - private void notifyMarkersTableUpdate(Set trackDataListeners) { + private void notifyMarkersTableUpdate(Set trackDataListeners) { if (trackDataListeners.isEmpty()) { return; } - for (TrackDataListener trackDataListener : trackDataListeners) { + for (Listener trackDataListener : trackDataListeners) { trackDataListener.clearMarkers(); } @@ -282,14 +284,14 @@ public class TrackDataHub { if (cursor != null && cursor.moveToFirst()) { do { Marker marker = contentProviderUtils.createMarker(cursor); - for (TrackDataListener trackDataListener : trackDataListeners) { + for (Listener trackDataListener : trackDataListeners) { trackDataListener.onNewMarker(marker); } } while (cursor.moveToNext()); } } - for (TrackDataListener trackDataListener : trackDataListeners) { + for (Listener trackDataListener : trackDataListeners) { trackDataListener.onNewMarkersDone(); } } @@ -299,7 +301,7 @@ public class TrackDataHub { * * @param updateSamplingState true to update the sampling state */ - private void notifyTrackPointsTableUpdate(boolean updateSamplingState, Set listeners) { + private void notifyTrackPointsTableUpdate(boolean updateSamplingState, Set listeners) { if (listeners.isEmpty()) { return; } @@ -308,7 +310,7 @@ public class TrackDataHub { // Reload and resample the track at a lower frequency. Log.i(TAG, "Resampling track after " + numLoadedPoints + " points."); resetSamplingState(); - for (TrackDataListener listener : listeners) { + for (Listener listener : listeners) { listener.clearTrackPoints(); } } @@ -366,11 +368,11 @@ public class TrackDataHub { // Also include the last point if the selected track is not recording. if ((localNumLoadedTrackPoints % samplingFrequency == 0) || (trackPointId == lastTrackPointId && !isSelectedTrackRecording())) { - for (TrackDataListener trackDataListener : listeners) { + for (Listener trackDataListener : listeners) { trackDataListener.onSampledInTrackPoint(trackPoint, currentUpdater.getTrackStatistics(), currentUpdater.getSmoothedSpeed(), currentUpdater.getSmoothedAltitude()); } } else { - for (TrackDataListener trackDataListener : listeners) { + for (Listener trackDataListener : listeners) { trackDataListener.onSampledOutTrackPoint(trackPoint, currentUpdater.getTrackStatistics()); } } @@ -389,7 +391,7 @@ public class TrackDataHub { lastSeenTrackPointId = localLastSeenTrackPointIdId; } - listeners.stream().forEach(TrackDataListener::onNewTrackPointsDone); + listeners.stream().forEach(Listener::onNewTrackPointsDone); } @@ -415,4 +417,63 @@ public class TrackDataHub { public void setRecordingDistanceInterval(Distance recordingDistanceInterval) { this.recordingDistanceInterval = recordingDistanceInterval; } + + public interface Listener { + + /** + * Called when the track or its statistics has been updated. + * + * @param track the track + */ + //TODO Could be @NonNull + void onTrackUpdated(Track track); + + /** + * Called to clear previously-sent track points. + */ + void clearTrackPoints(); + + /** + * Called when a sampled in track point is read. + * + * @param trackPoint the trackPoint + */ + default void onSampledInTrackPoint(@NonNull TrackPoint trackPoint, @NonNull TrackStatistics trackStatistics, Speed smoothedSpeed, @Nullable Altitude smoothedAltitude_m) { + } + + /** + * Called when a sampled out track point is read. + * + * @param trackPoint the trackPoint + */ + default void onSampledOutTrackPoint(@NonNull TrackPoint trackPoint, @NonNull TrackStatistics trackStatistics) { + } + + /** + * Called when finish sending new track points. + */ + default void onNewTrackPointsDone() { + } + + /** + * Called to clear previously sent markers. + */ + default void clearMarkers() { + } + + /** + * Called when a new marker is read. + * + * @param marker the marker + */ + default void onNewMarker(@NonNull Marker marker) { + } + + /** + * Called when finish sending new markers. + * This gets called after every batch of calls to {@link #clearMarkers()} and {@link #onNewMarker(Marker)}. + */ + default void onNewMarkersDone() { + } + } } \ No newline at end of file diff --git a/src/main/java/de/dennisguse/opentracks/content/provider/TrackPointIterator.java b/src/main/java/de/dennisguse/opentracks/data/TrackPointIterator.java similarity index 91% rename from src/main/java/de/dennisguse/opentracks/content/provider/TrackPointIterator.java rename to src/main/java/de/dennisguse/opentracks/data/TrackPointIterator.java index 4d8595f31..ecd5da7cb 100644 --- a/src/main/java/de/dennisguse/opentracks/content/provider/TrackPointIterator.java +++ b/src/main/java/de/dennisguse/opentracks/data/TrackPointIterator.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.content.provider; +package de.dennisguse.opentracks.data; import android.database.Cursor; @@ -8,8 +8,8 @@ import androidx.annotation.VisibleForTesting; import java.util.Iterator; import java.util.NoSuchElementException; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.data.TrackPoint; +import de.dennisguse.opentracks.data.models.Track; +import de.dennisguse.opentracks.data.models.TrackPoint; /** * A lightweight wrapper around the original {@link Cursor}. diff --git a/src/main/java/de/dennisguse/opentracks/content/data/TrackSelection.java b/src/main/java/de/dennisguse/opentracks/data/TrackSelection.java similarity index 93% rename from src/main/java/de/dennisguse/opentracks/content/data/TrackSelection.java rename to src/main/java/de/dennisguse/opentracks/data/TrackSelection.java index 381eae13c..c33f5de69 100644 --- a/src/main/java/de/dennisguse/opentracks/content/data/TrackSelection.java +++ b/src/main/java/de/dennisguse/opentracks/data/TrackSelection.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.content.data; +package de.dennisguse.opentracks.data; import android.text.TextUtils; @@ -8,8 +8,8 @@ import java.util.Collections; import java.util.List; import java.util.stream.Collectors; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; -import de.dennisguse.opentracks.content.provider.SelectionData; +import de.dennisguse.opentracks.data.models.Track; +import de.dennisguse.opentracks.data.tables.TracksColumns; public class TrackSelection implements ContentProviderUtils.ContentProviderSelectionInterface { private final List trackIds = new ArrayList<>(); diff --git a/src/main/java/de/dennisguse/opentracks/content/provider/UUIDUtils.java b/src/main/java/de/dennisguse/opentracks/data/UUIDUtils.java similarity index 95% rename from src/main/java/de/dennisguse/opentracks/content/provider/UUIDUtils.java rename to src/main/java/de/dennisguse/opentracks/data/UUIDUtils.java index 848df5d8d..8b6ee306c 100644 --- a/src/main/java/de/dennisguse/opentracks/content/provider/UUIDUtils.java +++ b/src/main/java/de/dennisguse/opentracks/data/UUIDUtils.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.content.provider; +package de.dennisguse.opentracks.data; import androidx.annotation.NonNull; diff --git a/src/main/java/de/dennisguse/opentracks/content/data/Altitude.java b/src/main/java/de/dennisguse/opentracks/data/models/Altitude.java similarity index 96% rename from src/main/java/de/dennisguse/opentracks/content/data/Altitude.java rename to src/main/java/de/dennisguse/opentracks/data/models/Altitude.java index ae1f9ed50..36c0990b2 100644 --- a/src/main/java/de/dennisguse/opentracks/content/data/Altitude.java +++ b/src/main/java/de/dennisguse/opentracks/data/models/Altitude.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.content.data; +package de.dennisguse.opentracks.data.models; import de.dennisguse.opentracks.R; diff --git a/src/main/java/de/dennisguse/opentracks/content/data/Distance.java b/src/main/java/de/dennisguse/opentracks/data/models/Distance.java similarity index 98% rename from src/main/java/de/dennisguse/opentracks/content/data/Distance.java rename to src/main/java/de/dennisguse/opentracks/data/models/Distance.java index 6c256e296..ae2daf4a8 100644 --- a/src/main/java/de/dennisguse/opentracks/content/data/Distance.java +++ b/src/main/java/de/dennisguse/opentracks/data/models/Distance.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.content.data; +package de.dennisguse.opentracks.data.models; import androidx.annotation.NonNull; diff --git a/src/main/java/de/dennisguse/opentracks/content/data/Marker.java b/src/main/java/de/dennisguse/opentracks/data/models/Marker.java similarity index 99% rename from src/main/java/de/dennisguse/opentracks/content/data/Marker.java rename to src/main/java/de/dennisguse/opentracks/data/models/Marker.java index 84fee836a..972a92fac 100644 --- a/src/main/java/de/dennisguse/opentracks/content/data/Marker.java +++ b/src/main/java/de/dennisguse/opentracks/data/models/Marker.java @@ -14,7 +14,7 @@ * the License. */ -package de.dennisguse.opentracks.content.data; +package de.dennisguse.opentracks.data.models; import android.location.Location; import android.net.Uri; diff --git a/src/main/java/de/dennisguse/opentracks/content/data/Speed.java b/src/main/java/de/dennisguse/opentracks/data/models/Speed.java similarity index 98% rename from src/main/java/de/dennisguse/opentracks/content/data/Speed.java rename to src/main/java/de/dennisguse/opentracks/data/models/Speed.java index f92b95a4f..3478b77d9 100644 --- a/src/main/java/de/dennisguse/opentracks/content/data/Speed.java +++ b/src/main/java/de/dennisguse/opentracks/data/models/Speed.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.content.data; +package de.dennisguse.opentracks.data.models; import androidx.annotation.NonNull; diff --git a/src/main/java/de/dennisguse/opentracks/content/data/Track.java b/src/main/java/de/dennisguse/opentracks/data/models/Track.java similarity index 99% rename from src/main/java/de/dennisguse/opentracks/content/data/Track.java rename to src/main/java/de/dennisguse/opentracks/data/models/Track.java index b8d96f06d..3885fa3cf 100644 --- a/src/main/java/de/dennisguse/opentracks/content/data/Track.java +++ b/src/main/java/de/dennisguse/opentracks/data/models/Track.java @@ -14,7 +14,7 @@ * the License. */ -package de.dennisguse.opentracks.content.data; +package de.dennisguse.opentracks.data.models; import android.os.Parcel; import android.os.Parcelable; diff --git a/src/main/java/de/dennisguse/opentracks/content/data/TrackPoint.java b/src/main/java/de/dennisguse/opentracks/data/models/TrackPoint.java similarity index 99% rename from src/main/java/de/dennisguse/opentracks/content/data/TrackPoint.java rename to src/main/java/de/dennisguse/opentracks/data/models/TrackPoint.java index a9c2fa65d..665820e54 100644 --- a/src/main/java/de/dennisguse/opentracks/content/data/TrackPoint.java +++ b/src/main/java/de/dennisguse/opentracks/data/models/TrackPoint.java @@ -13,7 +13,7 @@ * License for the specific language governing permissions and limitations under * the License. */ -package de.dennisguse.opentracks.content.data; +package de.dennisguse.opentracks.data.models; import android.location.Location; import android.os.Parcel; diff --git a/src/main/java/de/dennisguse/opentracks/content/data/UnitConversions.java b/src/main/java/de/dennisguse/opentracks/data/models/UnitConversions.java similarity index 98% rename from src/main/java/de/dennisguse/opentracks/content/data/UnitConversions.java rename to src/main/java/de/dennisguse/opentracks/data/models/UnitConversions.java index 9130fa9ea..c9355fbf7 100644 --- a/src/main/java/de/dennisguse/opentracks/content/data/UnitConversions.java +++ b/src/main/java/de/dennisguse/opentracks/data/models/UnitConversions.java @@ -13,7 +13,7 @@ * License for the specific language governing permissions and limitations under * the License. */ -package de.dennisguse.opentracks.content.data; +package de.dennisguse.opentracks.data.models; /** * Unit conversion constants. diff --git a/src/main/java/de/dennisguse/opentracks/content/data/MarkerColumns.java b/src/main/java/de/dennisguse/opentracks/data/tables/MarkerColumns.java similarity index 96% rename from src/main/java/de/dennisguse/opentracks/content/data/MarkerColumns.java rename to src/main/java/de/dennisguse/opentracks/data/tables/MarkerColumns.java index 32fac3fa0..fd472f344 100644 --- a/src/main/java/de/dennisguse/opentracks/content/data/MarkerColumns.java +++ b/src/main/java/de/dennisguse/opentracks/data/tables/MarkerColumns.java @@ -14,12 +14,12 @@ * the License. */ -package de.dennisguse.opentracks.content.data; +package de.dennisguse.opentracks.data.tables; import android.net.Uri; import android.provider.BaseColumns; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; +import de.dennisguse.opentracks.data.ContentProviderUtils; /** * Constants for markers table. diff --git a/src/main/java/de/dennisguse/opentracks/content/data/TrackPointsColumns.java b/src/main/java/de/dennisguse/opentracks/data/tables/TrackPointsColumns.java similarity index 96% rename from src/main/java/de/dennisguse/opentracks/content/data/TrackPointsColumns.java rename to src/main/java/de/dennisguse/opentracks/data/tables/TrackPointsColumns.java index 640915486..90ba11ae5 100644 --- a/src/main/java/de/dennisguse/opentracks/content/data/TrackPointsColumns.java +++ b/src/main/java/de/dennisguse/opentracks/data/tables/TrackPointsColumns.java @@ -14,12 +14,12 @@ * the License. */ -package de.dennisguse.opentracks.content.data; +package de.dennisguse.opentracks.data.tables; import android.net.Uri; import android.provider.BaseColumns; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; +import de.dennisguse.opentracks.data.ContentProviderUtils; /** * Constants for the track points table. diff --git a/src/main/java/de/dennisguse/opentracks/content/data/TracksColumns.java b/src/main/java/de/dennisguse/opentracks/data/tables/TracksColumns.java similarity index 96% rename from src/main/java/de/dennisguse/opentracks/content/data/TracksColumns.java rename to src/main/java/de/dennisguse/opentracks/data/tables/TracksColumns.java index 16d1f669d..0f9b1bbc8 100644 --- a/src/main/java/de/dennisguse/opentracks/content/data/TracksColumns.java +++ b/src/main/java/de/dennisguse/opentracks/data/tables/TracksColumns.java @@ -14,12 +14,12 @@ * the License. */ -package de.dennisguse.opentracks.content.data; +package de.dennisguse.opentracks.data.tables; import android.net.Uri; import android.provider.BaseColumns; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; +import de.dennisguse.opentracks.data.ContentProviderUtils; /** * Constants for the tracks table. diff --git a/src/main/java/de/dennisguse/opentracks/fragments/ChooseActivityTypeImageAdapter.java b/src/main/java/de/dennisguse/opentracks/fragments/ChooseActivityTypeImageAdapter.java index c56dbcd46..2203d7f54 100644 --- a/src/main/java/de/dennisguse/opentracks/fragments/ChooseActivityTypeImageAdapter.java +++ b/src/main/java/de/dennisguse/opentracks/fragments/ChooseActivityTypeImageAdapter.java @@ -27,7 +27,7 @@ import androidx.core.content.ContextCompat; import java.util.List; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.util.ResourceUtils; +import de.dennisguse.opentracks.ui.util.ResourceUtils; /** * Image adapter for choosing an activity type. diff --git a/src/main/java/de/dennisguse/opentracks/fragments/StatisticsRecordedFragment.java b/src/main/java/de/dennisguse/opentracks/fragments/StatisticsRecordedFragment.java index e117cc1fc..28236cbc5 100644 --- a/src/main/java/de/dennisguse/opentracks/fragments/StatisticsRecordedFragment.java +++ b/src/main/java/de/dennisguse/opentracks/fragments/StatisticsRecordedFragment.java @@ -36,12 +36,12 @@ import java.util.List; import de.dennisguse.opentracks.R; import de.dennisguse.opentracks.TrackRecordedActivity; import de.dennisguse.opentracks.adapters.StatisticsAdapter; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; +import de.dennisguse.opentracks.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.models.Track; import de.dennisguse.opentracks.databinding.StatisticsRecordedBinding; +import de.dennisguse.opentracks.settings.PreferencesUtils; import de.dennisguse.opentracks.stats.SensorStatistics; import de.dennisguse.opentracks.stats.TrackStatistics; -import de.dennisguse.opentracks.settings.PreferencesUtils; import de.dennisguse.opentracks.util.StringUtils; import de.dennisguse.opentracks.util.TrackIconUtils; import de.dennisguse.opentracks.viewmodels.StatisticData; diff --git a/src/main/java/de/dennisguse/opentracks/fragments/StatisticsRecordingFragment.java b/src/main/java/de/dennisguse/opentracks/fragments/StatisticsRecordingFragment.java index 66701e89c..43a65cb45 100644 --- a/src/main/java/de/dennisguse/opentracks/fragments/StatisticsRecordingFragment.java +++ b/src/main/java/de/dennisguse/opentracks/fragments/StatisticsRecordingFragment.java @@ -19,13 +19,13 @@ import java.util.List; import de.dennisguse.opentracks.R; import de.dennisguse.opentracks.adapters.StatisticsAdapter; -import de.dennisguse.opentracks.content.data.Layout; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.data.TrackPoint; +import de.dennisguse.opentracks.data.models.Track; +import de.dennisguse.opentracks.data.models.TrackPoint; import de.dennisguse.opentracks.databinding.StatisticsRecordingBinding; import de.dennisguse.opentracks.services.TrackRecordingService; import de.dennisguse.opentracks.services.TrackRecordingServiceConnection; import de.dennisguse.opentracks.settings.PreferencesUtils; +import de.dennisguse.opentracks.ui.customRecordingLayout.Layout; import de.dennisguse.opentracks.viewmodels.StatisticData; import de.dennisguse.opentracks.viewmodels.StatisticsDataModel; diff --git a/src/main/java/de/dennisguse/opentracks/io/file/TrackFileFormat.java b/src/main/java/de/dennisguse/opentracks/io/file/TrackFileFormat.java index 43c97f044..96a0f15f3 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/TrackFileFormat.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/TrackFileFormat.java @@ -6,7 +6,7 @@ import android.graphics.Bitmap; import java.util.Locale; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; +import de.dennisguse.opentracks.data.ContentProviderUtils; import de.dennisguse.opentracks.io.file.exporter.GPXTrackExporter; import de.dennisguse.opentracks.io.file.exporter.KMLTrackExporter; import de.dennisguse.opentracks.io.file.exporter.KmzTrackExporter; diff --git a/src/main/java/de/dennisguse/opentracks/io/file/exporter/ExportActivity.java b/src/main/java/de/dennisguse/opentracks/io/file/exporter/ExportActivity.java index 8b08c055c..d7599eeaf 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/exporter/ExportActivity.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/exporter/ExportActivity.java @@ -33,9 +33,9 @@ import java.util.List; import java.util.concurrent.LinkedBlockingQueue; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.data.TracksColumns; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; +import de.dennisguse.opentracks.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.models.Track; +import de.dennisguse.opentracks.data.tables.TracksColumns; import de.dennisguse.opentracks.databinding.ExportActivityBinding; import de.dennisguse.opentracks.databinding.ToolbarBinding; import de.dennisguse.opentracks.io.file.ErrorListDialog; diff --git a/src/main/java/de/dennisguse/opentracks/io/file/exporter/ExportService.java b/src/main/java/de/dennisguse/opentracks/io/file/exporter/ExportService.java index 14861cfb0..68e887c9f 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/exporter/ExportService.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/exporter/ExportService.java @@ -12,8 +12,8 @@ import androidx.annotation.NonNull; import androidx.core.app.JobIntentService; import androidx.documentfile.provider.DocumentFile; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; +import de.dennisguse.opentracks.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.models.Track; import de.dennisguse.opentracks.io.file.TrackFileFormat; import de.dennisguse.opentracks.util.ExportUtils; diff --git a/src/main/java/de/dennisguse/opentracks/io/file/exporter/GPXTrackExporter.java b/src/main/java/de/dennisguse/opentracks/io/file/exporter/GPXTrackExporter.java index e3525bc90..737ac081f 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/exporter/GPXTrackExporter.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/exporter/GPXTrackExporter.java @@ -32,11 +32,11 @@ import java.util.Objects; import java.util.function.Function; import java.util.stream.Stream; -import de.dennisguse.opentracks.content.data.Marker; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.data.TrackPoint; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; -import de.dennisguse.opentracks.content.provider.TrackPointIterator; +import de.dennisguse.opentracks.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.TrackPointIterator; +import de.dennisguse.opentracks.data.models.Marker; +import de.dennisguse.opentracks.data.models.Track; +import de.dennisguse.opentracks.data.models.TrackPoint; import de.dennisguse.opentracks.stats.TrackStatistics; import de.dennisguse.opentracks.util.StringUtils; diff --git a/src/main/java/de/dennisguse/opentracks/io/file/exporter/KMLTrackExporter.java b/src/main/java/de/dennisguse/opentracks/io/file/exporter/KMLTrackExporter.java index fc6f011e1..90bb43aaa 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/exporter/KMLTrackExporter.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/exporter/KMLTrackExporter.java @@ -35,11 +35,11 @@ import java.util.Locale; import java.util.Objects; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.data.Marker; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.data.TrackPoint; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; -import de.dennisguse.opentracks.content.provider.TrackPointIterator; +import de.dennisguse.opentracks.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.TrackPointIterator; +import de.dennisguse.opentracks.data.models.Marker; +import de.dennisguse.opentracks.data.models.Track; +import de.dennisguse.opentracks.data.models.TrackPoint; import de.dennisguse.opentracks.util.FileUtils; import de.dennisguse.opentracks.util.StringUtils; 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 4d707fa18..6d0790603 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 @@ -31,9 +31,9 @@ import java.io.OutputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; -import de.dennisguse.opentracks.content.data.Marker; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; +import de.dennisguse.opentracks.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.models.Marker; +import de.dennisguse.opentracks.data.models.Track; import de.dennisguse.opentracks.util.FileUtils; /** diff --git a/src/main/java/de/dennisguse/opentracks/io/file/exporter/SharePictureTrackExporter.java b/src/main/java/de/dennisguse/opentracks/io/file/exporter/SharePictureTrackExporter.java index 10d1aaf9e..292c76859 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/exporter/SharePictureTrackExporter.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/exporter/SharePictureTrackExporter.java @@ -11,10 +11,10 @@ import androidx.annotation.NonNull; import java.io.OutputStream; -import de.dennisguse.opentracks.content.data.Track; +import de.dennisguse.opentracks.data.models.Track; import de.dennisguse.opentracks.databinding.TrackSharePictureBinding; -import de.dennisguse.opentracks.stats.TrackStatistics; import de.dennisguse.opentracks.settings.PreferencesUtils; +import de.dennisguse.opentracks.stats.TrackStatistics; import de.dennisguse.opentracks.util.StringUtils; /** diff --git a/src/main/java/de/dennisguse/opentracks/io/file/exporter/TrackExporter.java b/src/main/java/de/dennisguse/opentracks/io/file/exporter/TrackExporter.java index b17592ca9..a73a93235 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/exporter/TrackExporter.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/exporter/TrackExporter.java @@ -20,7 +20,7 @@ import androidx.annotation.NonNull; import java.io.OutputStream; -import de.dennisguse.opentracks.content.data.Track; +import de.dennisguse.opentracks.data.models.Track; /** * Track exporting for exporting track to an {@link OutputStream}. diff --git a/src/main/java/de/dennisguse/opentracks/io/file/importer/GpxTrackImporter.java b/src/main/java/de/dennisguse/opentracks/io/file/importer/GpxTrackImporter.java index 1b7546c8e..d3b17a5fe 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/importer/GpxTrackImporter.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/importer/GpxTrackImporter.java @@ -30,12 +30,12 @@ import java.util.LinkedList; import java.util.List; import java.util.Locale; -import de.dennisguse.opentracks.content.data.Altitude; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.Marker; -import de.dennisguse.opentracks.content.data.Speed; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.data.TrackPoint; +import de.dennisguse.opentracks.data.models.Altitude; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Marker; +import de.dennisguse.opentracks.data.models.Speed; +import de.dennisguse.opentracks.data.models.Track; +import de.dennisguse.opentracks.data.models.TrackPoint; import de.dennisguse.opentracks.util.StringUtils; /** diff --git a/src/main/java/de/dennisguse/opentracks/io/file/importer/ImportService.java b/src/main/java/de/dennisguse/opentracks/io/file/importer/ImportService.java index 9d8aa66d6..3f11f6b87 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/importer/ImportService.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/importer/ImportService.java @@ -16,12 +16,12 @@ import java.io.IOException; import java.util.ArrayList; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; +import de.dennisguse.opentracks.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Track; import de.dennisguse.opentracks.io.file.TrackFileFormat; -import de.dennisguse.opentracks.util.FileUtils; import de.dennisguse.opentracks.settings.PreferencesUtils; +import de.dennisguse.opentracks.util.FileUtils; public class ImportService extends JobIntentService { diff --git a/src/main/java/de/dennisguse/opentracks/io/file/importer/ImportViewModel.java b/src/main/java/de/dennisguse/opentracks/io/file/importer/ImportViewModel.java index 0b637b37e..0ad2f806b 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/importer/ImportViewModel.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/importer/ImportViewModel.java @@ -16,7 +16,7 @@ import java.util.List; import java.util.stream.Collectors; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.data.Track; +import de.dennisguse.opentracks.data.models.Track; import de.dennisguse.opentracks.util.FileUtils; public class ImportViewModel extends AndroidViewModel implements ImportServiceResultReceiver.Receiver { diff --git a/src/main/java/de/dennisguse/opentracks/io/file/importer/KmlTrackImporter.java b/src/main/java/de/dennisguse/opentracks/io/file/importer/KmlTrackImporter.java index 385eedef7..3c7eb14c7 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/importer/KmlTrackImporter.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/importer/KmlTrackImporter.java @@ -32,11 +32,11 @@ import java.util.ArrayList; import java.util.List; import java.util.Locale; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.Marker; -import de.dennisguse.opentracks.content.data.Speed; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.data.TrackPoint; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Marker; +import de.dennisguse.opentracks.data.models.Speed; +import de.dennisguse.opentracks.data.models.Track; +import de.dennisguse.opentracks.data.models.TrackPoint; import de.dennisguse.opentracks.io.file.exporter.KMLTrackExporter; import de.dennisguse.opentracks.util.StringUtils; 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 50b6adb63..e8fda73a5 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 @@ -34,9 +34,9 @@ import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.data.Marker; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; +import de.dennisguse.opentracks.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.models.Marker; +import de.dennisguse.opentracks.data.models.Track; import de.dennisguse.opentracks.io.file.exporter.KmzTrackExporter; import de.dennisguse.opentracks.util.FileUtils; diff --git a/src/main/java/de/dennisguse/opentracks/io/file/importer/TrackImporter.java b/src/main/java/de/dennisguse/opentracks/io/file/importer/TrackImporter.java index fe6067d48..0916bbf3c 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/importer/TrackImporter.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/importer/TrackImporter.java @@ -19,12 +19,12 @@ import java.util.UUID; import java.util.stream.Collectors; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.Marker; -import de.dennisguse.opentracks.content.data.Speed; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.data.TrackPoint; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; +import de.dennisguse.opentracks.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Marker; +import de.dennisguse.opentracks.data.models.Speed; +import de.dennisguse.opentracks.data.models.Track; +import de.dennisguse.opentracks.data.models.TrackPoint; import de.dennisguse.opentracks.stats.TrackStatistics; import de.dennisguse.opentracks.stats.TrackStatisticsUpdater; import de.dennisguse.opentracks.util.FileUtils; diff --git a/src/main/java/de/dennisguse/opentracks/io/file/importer/XMLImporter.java b/src/main/java/de/dennisguse/opentracks/io/file/importer/XMLImporter.java index 76b9b46ed..594fc05cd 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/importer/XMLImporter.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/importer/XMLImporter.java @@ -17,7 +17,7 @@ import java.util.List; import javax.xml.parsers.ParserConfigurationException; import javax.xml.parsers.SAXParserFactory; -import de.dennisguse.opentracks.content.data.Track; +import de.dennisguse.opentracks.data.models.Track; /** * Uses SAX2 to parse XML files. diff --git a/src/main/java/de/dennisguse/opentracks/services/sensors/AltitudeSumManager.java b/src/main/java/de/dennisguse/opentracks/sensors/AltitudeSumManager.java similarity index 97% rename from src/main/java/de/dennisguse/opentracks/services/sensors/AltitudeSumManager.java rename to src/main/java/de/dennisguse/opentracks/sensors/AltitudeSumManager.java index bcebce71f..d8d6d1ec5 100644 --- a/src/main/java/de/dennisguse/opentracks/services/sensors/AltitudeSumManager.java +++ b/src/main/java/de/dennisguse/opentracks/sensors/AltitudeSumManager.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.services.sensors; +package de.dennisguse.opentracks.sensors; import android.content.Context; import android.hardware.Sensor; @@ -11,7 +11,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; -import de.dennisguse.opentracks.content.data.TrackPoint; +import de.dennisguse.opentracks.data.models.TrackPoint; /** * Estimates the altitude gain and altitude loss using the device's pressure sensor (i.e., barometer). diff --git a/src/main/java/de/dennisguse/opentracks/services/sensors/BluetoothConnectionManager.java b/src/main/java/de/dennisguse/opentracks/sensors/BluetoothConnectionManager.java similarity index 96% rename from src/main/java/de/dennisguse/opentracks/services/sensors/BluetoothConnectionManager.java rename to src/main/java/de/dennisguse/opentracks/sensors/BluetoothConnectionManager.java index 750e2e8e8..3a7969b52 100644 --- a/src/main/java/de/dennisguse/opentracks/services/sensors/BluetoothConnectionManager.java +++ b/src/main/java/de/dennisguse/opentracks/sensors/BluetoothConnectionManager.java @@ -14,7 +14,7 @@ * the License. */ -package de.dennisguse.opentracks.services.sensors; +package de.dennisguse.opentracks.sensors; import android.bluetooth.BluetoothDevice; import android.bluetooth.BluetoothGatt; @@ -30,11 +30,11 @@ import androidx.annotation.NonNull; import java.util.UUID; -import de.dennisguse.opentracks.content.sensor.SensorData; -import de.dennisguse.opentracks.content.sensor.SensorDataCycling; -import de.dennisguse.opentracks.content.sensor.SensorDataCyclingPower; -import de.dennisguse.opentracks.content.sensor.SensorDataHeartRate; -import de.dennisguse.opentracks.content.sensor.SensorDataRunning; +import de.dennisguse.opentracks.sensors.sensorData.SensorData; +import de.dennisguse.opentracks.sensors.sensorData.SensorDataCycling; +import de.dennisguse.opentracks.sensors.sensorData.SensorDataCyclingPower; +import de.dennisguse.opentracks.sensors.sensorData.SensorDataHeartRate; +import de.dennisguse.opentracks.sensors.sensorData.SensorDataRunning; /** * Manages connection to a Bluetooth LE sensor and subscribes for onChange-notifications. diff --git a/src/main/java/de/dennisguse/opentracks/services/sensors/BluetoothRemoteSensorManager.java b/src/main/java/de/dennisguse/opentracks/sensors/BluetoothRemoteSensorManager.java similarity index 95% rename from src/main/java/de/dennisguse/opentracks/services/sensors/BluetoothRemoteSensorManager.java rename to src/main/java/de/dennisguse/opentracks/sensors/BluetoothRemoteSensorManager.java index d9546f884..7d67eb7a5 100644 --- a/src/main/java/de/dennisguse/opentracks/services/sensors/BluetoothRemoteSensorManager.java +++ b/src/main/java/de/dennisguse/opentracks/sensors/BluetoothRemoteSensorManager.java @@ -14,7 +14,7 @@ * the License. */ -package de.dennisguse.opentracks.services.sensors; +package de.dennisguse.opentracks.sensors; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; @@ -27,12 +27,12 @@ import androidx.annotation.NonNull; import java.time.Duration; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.TrackPoint; -import de.dennisguse.opentracks.content.sensor.SensorData; -import de.dennisguse.opentracks.content.sensor.SensorDataCycling; -import de.dennisguse.opentracks.content.sensor.SensorDataRunning; -import de.dennisguse.opentracks.content.sensor.SensorDataSet; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.TrackPoint; +import de.dennisguse.opentracks.sensors.sensorData.SensorData; +import de.dennisguse.opentracks.sensors.sensorData.SensorDataCycling; +import de.dennisguse.opentracks.sensors.sensorData.SensorDataRunning; +import de.dennisguse.opentracks.sensors.sensorData.SensorDataSet; import de.dennisguse.opentracks.settings.PreferencesUtils; /** diff --git a/src/main/java/de/dennisguse/opentracks/services/sensors/BluetoothUtils.java b/src/main/java/de/dennisguse/opentracks/sensors/BluetoothUtils.java similarity index 96% rename from src/main/java/de/dennisguse/opentracks/services/sensors/BluetoothUtils.java rename to src/main/java/de/dennisguse/opentracks/sensors/BluetoothUtils.java index 0d19ef667..5d13270c1 100644 --- a/src/main/java/de/dennisguse/opentracks/services/sensors/BluetoothUtils.java +++ b/src/main/java/de/dennisguse/opentracks/sensors/BluetoothUtils.java @@ -13,7 +13,7 @@ * License for the specific language governing permissions and limitations under * the License. */ -package de.dennisguse.opentracks.services.sensors; +package de.dennisguse.opentracks.sensors; import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothGattCharacteristic; @@ -28,10 +28,10 @@ import java.util.Collections; import java.util.List; import java.util.UUID; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.Speed; -import de.dennisguse.opentracks.content.sensor.SensorDataCycling; -import de.dennisguse.opentracks.content.sensor.SensorDataRunning; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Speed; +import de.dennisguse.opentracks.sensors.sensorData.SensorDataCycling; +import de.dennisguse.opentracks.sensors.sensorData.SensorDataRunning; /** * Utilities for dealing with bluetooth devices. diff --git a/src/main/java/de/dennisguse/opentracks/services/sensors/PressureSensorUtils.java b/src/main/java/de/dennisguse/opentracks/sensors/PressureSensorUtils.java similarity index 98% rename from src/main/java/de/dennisguse/opentracks/services/sensors/PressureSensorUtils.java rename to src/main/java/de/dennisguse/opentracks/sensors/PressureSensorUtils.java index 6a27e6d35..ed447a6f6 100644 --- a/src/main/java/de/dennisguse/opentracks/services/sensors/PressureSensorUtils.java +++ b/src/main/java/de/dennisguse/opentracks/sensors/PressureSensorUtils.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.services.sensors; +package de.dennisguse.opentracks.sensors; import android.hardware.SensorManager; diff --git a/src/main/java/de/dennisguse/opentracks/services/sensors/UintUtils.java b/src/main/java/de/dennisguse/opentracks/sensors/UintUtils.java similarity index 93% rename from src/main/java/de/dennisguse/opentracks/services/sensors/UintUtils.java rename to src/main/java/de/dennisguse/opentracks/sensors/UintUtils.java index 783fec029..c4610cd22 100644 --- a/src/main/java/de/dennisguse/opentracks/services/sensors/UintUtils.java +++ b/src/main/java/de/dennisguse/opentracks/sensors/UintUtils.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.services.sensors; +package de.dennisguse.opentracks.sensors; public class UintUtils { diff --git a/src/main/java/de/dennisguse/opentracks/content/sensor/SensorData.java b/src/main/java/de/dennisguse/opentracks/sensors/sensorData/SensorData.java similarity index 93% rename from src/main/java/de/dennisguse/opentracks/content/sensor/SensorData.java rename to src/main/java/de/dennisguse/opentracks/sensors/sensorData/SensorData.java index 9dc2674b1..62b4b02fa 100644 --- a/src/main/java/de/dennisguse/opentracks/content/sensor/SensorData.java +++ b/src/main/java/de/dennisguse/opentracks/sensors/sensorData/SensorData.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.content.sensor; +package de.dennisguse.opentracks.sensors.sensorData; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -6,7 +6,7 @@ import androidx.annotation.VisibleForTesting; import java.time.Instant; -import de.dennisguse.opentracks.services.sensors.BluetoothRemoteSensorManager; +import de.dennisguse.opentracks.sensors.BluetoothRemoteSensorManager; public abstract class SensorData { diff --git a/src/main/java/de/dennisguse/opentracks/content/sensor/SensorDataCycling.java b/src/main/java/de/dennisguse/opentracks/sensors/sensorData/SensorDataCycling.java similarity index 97% rename from src/main/java/de/dennisguse/opentracks/content/sensor/SensorDataCycling.java rename to src/main/java/de/dennisguse/opentracks/sensors/sensorData/SensorDataCycling.java index 6cf00a61e..c94ef5bca 100644 --- a/src/main/java/de/dennisguse/opentracks/content/sensor/SensorDataCycling.java +++ b/src/main/java/de/dennisguse/opentracks/sensors/sensorData/SensorDataCycling.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.content.sensor; +package de.dennisguse.opentracks.sensors.sensorData; import android.util.Log; @@ -8,10 +8,10 @@ import androidx.core.util.Pair; import java.time.Duration; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.Speed; -import de.dennisguse.opentracks.content.data.UnitConversions; -import de.dennisguse.opentracks.services.sensors.UintUtils; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Speed; +import de.dennisguse.opentracks.data.models.UnitConversions; +import de.dennisguse.opentracks.sensors.UintUtils; /** * Provides cadence in rpm and speed in milliseconds from Bluetooth LE Cycling Cadence and Speed sensors. diff --git a/src/main/java/de/dennisguse/opentracks/content/sensor/SensorDataCyclingPower.java b/src/main/java/de/dennisguse/opentracks/sensors/sensorData/SensorDataCyclingPower.java similarity index 91% rename from src/main/java/de/dennisguse/opentracks/content/sensor/SensorDataCyclingPower.java rename to src/main/java/de/dennisguse/opentracks/sensors/sensorData/SensorDataCyclingPower.java index 637c7a39b..fba7255b8 100644 --- a/src/main/java/de/dennisguse/opentracks/content/sensor/SensorDataCyclingPower.java +++ b/src/main/java/de/dennisguse/opentracks/sensors/sensorData/SensorDataCyclingPower.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.content.sensor; +package de.dennisguse.opentracks.sensors.sensorData; import androidx.annotation.NonNull; diff --git a/src/main/java/de/dennisguse/opentracks/content/sensor/SensorDataHeartRate.java b/src/main/java/de/dennisguse/opentracks/sensors/sensorData/SensorDataHeartRate.java similarity index 91% rename from src/main/java/de/dennisguse/opentracks/content/sensor/SensorDataHeartRate.java rename to src/main/java/de/dennisguse/opentracks/sensors/sensorData/SensorDataHeartRate.java index 8682c6ae2..ce6347ed2 100644 --- a/src/main/java/de/dennisguse/opentracks/content/sensor/SensorDataHeartRate.java +++ b/src/main/java/de/dennisguse/opentracks/sensors/sensorData/SensorDataHeartRate.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.content.sensor; +package de.dennisguse.opentracks.sensors.sensorData; import androidx.annotation.NonNull; diff --git a/src/main/java/de/dennisguse/opentracks/content/sensor/SensorDataRunning.java b/src/main/java/de/dennisguse/opentracks/sensors/sensorData/SensorDataRunning.java similarity index 95% rename from src/main/java/de/dennisguse/opentracks/content/sensor/SensorDataRunning.java rename to src/main/java/de/dennisguse/opentracks/sensors/sensorData/SensorDataRunning.java index deb76bd9f..61fa80b43 100644 --- a/src/main/java/de/dennisguse/opentracks/content/sensor/SensorDataRunning.java +++ b/src/main/java/de/dennisguse/opentracks/sensors/sensorData/SensorDataRunning.java @@ -1,11 +1,11 @@ -package de.dennisguse.opentracks.content.sensor; +package de.dennisguse.opentracks.sensors.sensorData; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.Speed; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Speed; /** * Provides cadence in rpm and speed in milliseconds from Bluetooth LE Running Speed and Cadence sensors. diff --git a/src/main/java/de/dennisguse/opentracks/content/sensor/SensorDataSet.java b/src/main/java/de/dennisguse/opentracks/sensors/sensorData/SensorDataSet.java similarity index 97% rename from src/main/java/de/dennisguse/opentracks/content/sensor/SensorDataSet.java rename to src/main/java/de/dennisguse/opentracks/sensors/sensorData/SensorDataSet.java index 87651fd86..c4764c2f5 100644 --- a/src/main/java/de/dennisguse/opentracks/content/sensor/SensorDataSet.java +++ b/src/main/java/de/dennisguse/opentracks/sensors/sensorData/SensorDataSet.java @@ -1,11 +1,11 @@ -package de.dennisguse.opentracks.content.sensor; +package de.dennisguse.opentracks.sensors.sensorData; import android.util.Pair; import androidx.annotation.NonNull; -import de.dennisguse.opentracks.content.data.Speed; -import de.dennisguse.opentracks.content.data.TrackPoint; +import de.dennisguse.opentracks.data.models.Speed; +import de.dennisguse.opentracks.data.models.TrackPoint; public final class SensorDataSet { diff --git a/src/main/java/de/dennisguse/opentracks/services/TrackDeleteService.java b/src/main/java/de/dennisguse/opentracks/services/TrackDeleteService.java index ff97fde54..9f7b79f44 100644 --- a/src/main/java/de/dennisguse/opentracks/services/TrackDeleteService.java +++ b/src/main/java/de/dennisguse/opentracks/services/TrackDeleteService.java @@ -19,8 +19,8 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; +import de.dennisguse.opentracks.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.models.Track; public class TrackDeleteService extends Service { diff --git a/src/main/java/de/dennisguse/opentracks/services/TrackDeleteServiceConnection.java b/src/main/java/de/dennisguse/opentracks/services/TrackDeleteServiceConnection.java index 0efd27c19..b34a3be29 100644 --- a/src/main/java/de/dennisguse/opentracks/services/TrackDeleteServiceConnection.java +++ b/src/main/java/de/dennisguse/opentracks/services/TrackDeleteServiceConnection.java @@ -1,5 +1,7 @@ package de.dennisguse.opentracks.services; +import static de.dennisguse.opentracks.services.TrackDeleteService.EXTRA_TRACK_IDS; + import android.content.ComponentName; import android.content.Context; import android.content.Intent; @@ -11,9 +13,7 @@ import androidx.annotation.NonNull; import java.util.ArrayList; import de.dennisguse.opentracks.BuildConfig; -import de.dennisguse.opentracks.content.data.Track; - -import static de.dennisguse.opentracks.services.TrackDeleteService.EXTRA_TRACK_IDS; +import de.dennisguse.opentracks.data.models.Track; public class TrackDeleteServiceConnection implements ServiceConnection { diff --git a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingManager.java b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingManager.java index cc7b86755..435e6e95d 100644 --- a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingManager.java +++ b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingManager.java @@ -12,12 +12,12 @@ import androidx.annotation.NonNull; import java.time.ZoneOffset; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.Marker; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.data.TrackPoint; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; -import de.dennisguse.opentracks.content.sensor.SensorDataSet; +import de.dennisguse.opentracks.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Marker; +import de.dennisguse.opentracks.data.models.Track; +import de.dennisguse.opentracks.data.models.TrackPoint; +import de.dennisguse.opentracks.sensors.sensorData.SensorDataSet; import de.dennisguse.opentracks.services.handlers.TrackPointCreator; import de.dennisguse.opentracks.settings.PreferencesUtils; import de.dennisguse.opentracks.stats.TrackStatistics; diff --git a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java index ffa0e4534..26c616551 100644 --- a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java +++ b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java @@ -40,13 +40,13 @@ import java.util.Objects; import de.dennisguse.opentracks.R; import de.dennisguse.opentracks.TrackListActivity; import de.dennisguse.opentracks.TrackRecordingActivity; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.Marker; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.data.TrackPoint; -import de.dennisguse.opentracks.content.provider.CustomContentProvider; -import de.dennisguse.opentracks.content.sensor.SensorDataSet; +import de.dennisguse.opentracks.data.CustomContentProvider; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Marker; +import de.dennisguse.opentracks.data.models.Track; +import de.dennisguse.opentracks.data.models.TrackPoint; import de.dennisguse.opentracks.io.file.exporter.ExportServiceResultReceiver; +import de.dennisguse.opentracks.sensors.sensorData.SensorDataSet; import de.dennisguse.opentracks.services.announcement.VoiceAnnouncementManager; import de.dennisguse.opentracks.services.handlers.EGM2008CorrectionManager; import de.dennisguse.opentracks.services.handlers.GpsStatusValue; diff --git a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingServiceConnection.java b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingServiceConnection.java index 6cd7121db..360679482 100644 --- a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingServiceConnection.java +++ b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingServiceConnection.java @@ -31,7 +31,7 @@ import androidx.annotation.Nullable; import de.dennisguse.opentracks.BuildConfig; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.data.Marker; +import de.dennisguse.opentracks.data.models.Marker; /** * Wrapper for the track recording service. diff --git a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingServiceNotificationManager.java b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingServiceNotificationManager.java index 763f60a45..4a496e087 100644 --- a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingServiceNotificationManager.java +++ b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingServiceNotificationManager.java @@ -11,8 +11,8 @@ import androidx.annotation.VisibleForTesting; import androidx.core.app.NotificationCompat; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.TrackPoint; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.TrackPoint; import de.dennisguse.opentracks.stats.TrackStatistics; import de.dennisguse.opentracks.util.StringUtils; diff --git a/src/main/java/de/dennisguse/opentracks/services/announcement/VoiceAnnouncement.java b/src/main/java/de/dennisguse/opentracks/services/announcement/VoiceAnnouncement.java index f0b559020..bbf89dc73 100644 --- a/src/main/java/de/dennisguse/opentracks/services/announcement/VoiceAnnouncement.java +++ b/src/main/java/de/dennisguse/opentracks/services/announcement/VoiceAnnouncement.java @@ -29,13 +29,13 @@ import java.util.Arrays; import java.util.Locale; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; -import de.dennisguse.opentracks.content.provider.TrackPointIterator; +import de.dennisguse.opentracks.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.TrackPointIterator; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Track; import de.dennisguse.opentracks.settings.PreferencesUtils; import de.dennisguse.opentracks.stats.TrackStatistics; -import de.dennisguse.opentracks.viewmodels.IntervalStatistics; +import de.dennisguse.opentracks.ui.intervals.IntervalStatistics; /** * This class will announce the user's {@link TrackStatistics}. diff --git a/src/main/java/de/dennisguse/opentracks/services/announcement/VoiceAnnouncementManager.java b/src/main/java/de/dennisguse/opentracks/services/announcement/VoiceAnnouncementManager.java index 8e434108e..b24afe2a2 100644 --- a/src/main/java/de/dennisguse/opentracks/services/announcement/VoiceAnnouncementManager.java +++ b/src/main/java/de/dennisguse/opentracks/services/announcement/VoiceAnnouncementManager.java @@ -23,8 +23,8 @@ import androidx.annotation.VisibleForTesting; import java.time.Duration; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.Track; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Track; import de.dennisguse.opentracks.services.TrackRecordingService; import de.dennisguse.opentracks.stats.TrackStatistics; diff --git a/src/main/java/de/dennisguse/opentracks/services/announcement/VoiceAnnouncementUtils.java b/src/main/java/de/dennisguse/opentracks/services/announcement/VoiceAnnouncementUtils.java index e2049b183..d03ee1166 100644 --- a/src/main/java/de/dennisguse/opentracks/services/announcement/VoiceAnnouncementUtils.java +++ b/src/main/java/de/dennisguse/opentracks/services/announcement/VoiceAnnouncementUtils.java @@ -7,10 +7,10 @@ import androidx.annotation.Nullable; import java.time.Duration; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.Speed; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Speed; import de.dennisguse.opentracks.stats.TrackStatistics; -import de.dennisguse.opentracks.viewmodels.IntervalStatistics; +import de.dennisguse.opentracks.ui.intervals.IntervalStatistics; class VoiceAnnouncementUtils { diff --git a/src/main/java/de/dennisguse/opentracks/services/handlers/EGM2008CorrectionManager.java b/src/main/java/de/dennisguse/opentracks/services/handlers/EGM2008CorrectionManager.java index 943f03485..b5b29b9d5 100644 --- a/src/main/java/de/dennisguse/opentracks/services/handlers/EGM2008CorrectionManager.java +++ b/src/main/java/de/dennisguse/opentracks/services/handlers/EGM2008CorrectionManager.java @@ -5,8 +5,8 @@ import android.util.Log; import java.io.IOException; -import de.dennisguse.opentracks.content.data.Altitude; -import de.dennisguse.opentracks.content.data.TrackPoint; +import de.dennisguse.opentracks.data.models.Altitude; +import de.dennisguse.opentracks.data.models.TrackPoint; import de.dennisguse.opentracks.util.EGM2008Utils; public class EGM2008CorrectionManager { diff --git a/src/main/java/de/dennisguse/opentracks/services/handlers/GPSHandler.java b/src/main/java/de/dennisguse/opentracks/services/handlers/GPSHandler.java index aa954d0fb..ff6ff4725 100644 --- a/src/main/java/de/dennisguse/opentracks/services/handlers/GPSHandler.java +++ b/src/main/java/de/dennisguse/opentracks/services/handlers/GPSHandler.java @@ -13,8 +13,8 @@ import androidx.annotation.VisibleForTesting; import java.time.Duration; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.TrackPoint; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.TrackPoint; import de.dennisguse.opentracks.settings.PreferencesUtils; import de.dennisguse.opentracks.util.LocationUtils; diff --git a/src/main/java/de/dennisguse/opentracks/services/handlers/GpsStatus.java b/src/main/java/de/dennisguse/opentracks/services/handlers/GpsStatus.java index 9ceb8802a..995cc988e 100644 --- a/src/main/java/de/dennisguse/opentracks/services/handlers/GpsStatus.java +++ b/src/main/java/de/dennisguse/opentracks/services/handlers/GpsStatus.java @@ -10,8 +10,8 @@ import androidx.annotation.Nullable; import java.time.Duration; import java.time.Instant; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.TrackPoint; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.TrackPoint; import de.dennisguse.opentracks.settings.PreferencesUtils; /** diff --git a/src/main/java/de/dennisguse/opentracks/services/handlers/TrackPointCreator.java b/src/main/java/de/dennisguse/opentracks/services/handlers/TrackPointCreator.java index 2d61eccc0..5d75b7f68 100644 --- a/src/main/java/de/dennisguse/opentracks/services/handlers/TrackPointCreator.java +++ b/src/main/java/de/dennisguse/opentracks/services/handlers/TrackPointCreator.java @@ -12,11 +12,11 @@ import java.time.Clock; import java.time.Instant; import java.time.ZoneId; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.TrackPoint; -import de.dennisguse.opentracks.content.sensor.SensorDataSet; -import de.dennisguse.opentracks.services.sensors.AltitudeSumManager; -import de.dennisguse.opentracks.services.sensors.BluetoothRemoteSensorManager; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.TrackPoint; +import de.dennisguse.opentracks.sensors.AltitudeSumManager; +import de.dennisguse.opentracks.sensors.BluetoothRemoteSensorManager; +import de.dennisguse.opentracks.sensors.sensorData.SensorDataSet; /** * Creates TrackPoints while recording by fusing data from different sensors (e.g., GNSS, barometer, BLE sensors). diff --git a/src/main/java/de/dennisguse/opentracks/settings/ActivityTypePreference.java b/src/main/java/de/dennisguse/opentracks/settings/ActivityTypePreference.java index e0ab8da76..50ff9b772 100644 --- a/src/main/java/de/dennisguse/opentracks/settings/ActivityTypePreference.java +++ b/src/main/java/de/dennisguse/opentracks/settings/ActivityTypePreference.java @@ -29,7 +29,6 @@ import androidx.preference.PreferenceDialogFragmentCompat; import de.dennisguse.opentracks.R; import de.dennisguse.opentracks.fragments.ChooseActivityTypeDialogFragment; -import de.dennisguse.opentracks.util.HackUtils; import de.dennisguse.opentracks.util.TrackIconUtils; /** diff --git a/src/main/java/de/dennisguse/opentracks/settings/DefaultsSettingsFragment.java b/src/main/java/de/dennisguse/opentracks/settings/DefaultsSettingsFragment.java index ab2e405bb..bdbfd7a56 100644 --- a/src/main/java/de/dennisguse/opentracks/settings/DefaultsSettingsFragment.java +++ b/src/main/java/de/dennisguse/opentracks/settings/DefaultsSettingsFragment.java @@ -10,7 +10,6 @@ import androidx.preference.PreferenceFragmentCompat; import de.dennisguse.opentracks.R; import de.dennisguse.opentracks.fragments.ChooseActivityTypeDialogFragment; -import de.dennisguse.opentracks.util.HackUtils; public class DefaultsSettingsFragment extends PreferenceFragmentCompat implements ChooseActivityTypeDialogFragment.ChooseActivityTypeCaller { diff --git a/src/main/java/de/dennisguse/opentracks/settings/GpsSettingsFragment.java b/src/main/java/de/dennisguse/opentracks/settings/GpsSettingsFragment.java index dd2c6f53f..52204679d 100644 --- a/src/main/java/de/dennisguse/opentracks/settings/GpsSettingsFragment.java +++ b/src/main/java/de/dennisguse/opentracks/settings/GpsSettingsFragment.java @@ -8,7 +8,7 @@ import androidx.preference.PreferenceFragmentCompat; import java.time.Duration; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.data.Distance; +import de.dennisguse.opentracks.data.models.Distance; import de.dennisguse.opentracks.util.StringUtils; public class GpsSettingsFragment extends PreferenceFragmentCompat { diff --git a/src/main/java/de/dennisguse/opentracks/util/HackUtils.java b/src/main/java/de/dennisguse/opentracks/settings/HackUtils.java similarity index 94% rename from src/main/java/de/dennisguse/opentracks/util/HackUtils.java rename to src/main/java/de/dennisguse/opentracks/settings/HackUtils.java index aafa12de5..1d23c6d0c 100644 --- a/src/main/java/de/dennisguse/opentracks/util/HackUtils.java +++ b/src/main/java/de/dennisguse/opentracks/settings/HackUtils.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.util; +package de.dennisguse.opentracks.settings; import androidx.annotation.NonNull; import androidx.preference.Preference; diff --git a/src/main/java/de/dennisguse/opentracks/settings/PreferencesOpenHelper.java b/src/main/java/de/dennisguse/opentracks/settings/PreferencesOpenHelper.java index e95f1bd45..08afe297c 100644 --- a/src/main/java/de/dennisguse/opentracks/settings/PreferencesOpenHelper.java +++ b/src/main/java/de/dennisguse/opentracks/settings/PreferencesOpenHelper.java @@ -5,7 +5,7 @@ import java.util.Collections; import java.util.stream.Collectors; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.util.CsvLayoutUtils; +import de.dennisguse.opentracks.ui.customRecordingLayout.CsvLayoutUtils; class PreferencesOpenHelper { diff --git a/src/main/java/de/dennisguse/opentracks/settings/PreferencesUtils.java b/src/main/java/de/dennisguse/opentracks/settings/PreferencesUtils.java index f5932d679..8e0f42844 100644 --- a/src/main/java/de/dennisguse/opentracks/settings/PreferencesUtils.java +++ b/src/main/java/de/dennisguse/opentracks/settings/PreferencesUtils.java @@ -39,12 +39,12 @@ import java.util.stream.Collectors; import java.util.stream.Stream; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.Layout; -import de.dennisguse.opentracks.content.data.Speed; -import de.dennisguse.opentracks.content.data.UnitConversions; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Speed; +import de.dennisguse.opentracks.data.models.UnitConversions; import de.dennisguse.opentracks.io.file.TrackFileFormat; -import de.dennisguse.opentracks.util.CsvLayoutUtils; +import de.dennisguse.opentracks.ui.customRecordingLayout.CsvLayoutUtils; +import de.dennisguse.opentracks.ui.customRecordingLayout.Layout; import de.dennisguse.opentracks.util.TrackIconUtils; /** diff --git a/src/main/java/de/dennisguse/opentracks/settings/SensorsSettingsFragment.java b/src/main/java/de/dennisguse/opentracks/settings/SensorsSettingsFragment.java index e974eb435..af6cb580e 100644 --- a/src/main/java/de/dennisguse/opentracks/settings/SensorsSettingsFragment.java +++ b/src/main/java/de/dennisguse/opentracks/settings/SensorsSettingsFragment.java @@ -9,7 +9,7 @@ import androidx.preference.Preference; import androidx.preference.PreferenceFragmentCompat; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.services.sensors.BluetoothUtils; +import de.dennisguse.opentracks.sensors.BluetoothUtils; import de.dennisguse.opentracks.settings.bluetooth.BluetoothLeCyclingCadenceAndSpeedPreference; import de.dennisguse.opentracks.settings.bluetooth.BluetoothLeCyclingPowerPreference; import de.dennisguse.opentracks.settings.bluetooth.BluetoothLeHeartRatePreference; diff --git a/src/main/java/de/dennisguse/opentracks/settings/SettingsCustomLayoutEditActivity.java b/src/main/java/de/dennisguse/opentracks/settings/SettingsCustomLayoutEditActivity.java index 829228049..0cb78d5f8 100644 --- a/src/main/java/de/dennisguse/opentracks/settings/SettingsCustomLayoutEditActivity.java +++ b/src/main/java/de/dennisguse/opentracks/settings/SettingsCustomLayoutEditActivity.java @@ -18,10 +18,10 @@ import java.util.stream.IntStream; import de.dennisguse.opentracks.AbstractActivity; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.adapters.SettingsCustomLayoutEditAdapter; -import de.dennisguse.opentracks.content.data.Layout; -import de.dennisguse.opentracks.content.data.DataField; import de.dennisguse.opentracks.databinding.ActivitySettingsCustomLayoutBinding; +import de.dennisguse.opentracks.ui.customRecordingLayout.DataField; +import de.dennisguse.opentracks.ui.customRecordingLayout.Layout; +import de.dennisguse.opentracks.ui.customRecordingLayout.SettingsCustomLayoutEditAdapter; import de.dennisguse.opentracks.util.StatisticsUtils; public class SettingsCustomLayoutEditActivity extends AbstractActivity implements SettingsCustomLayoutEditAdapter.SettingsCustomLayoutItemClickListener { diff --git a/src/main/java/de/dennisguse/opentracks/settings/SettingsCustomLayoutListActivity.java b/src/main/java/de/dennisguse/opentracks/settings/SettingsCustomLayoutListActivity.java index 55975054a..905cfe30a 100644 --- a/src/main/java/de/dennisguse/opentracks/settings/SettingsCustomLayoutListActivity.java +++ b/src/main/java/de/dennisguse/opentracks/settings/SettingsCustomLayoutListActivity.java @@ -22,10 +22,10 @@ import com.google.android.material.textfield.TextInputLayout; import de.dennisguse.opentracks.AbstractActivity; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.adapters.SettingsCustomLayoutListAdapter; -import de.dennisguse.opentracks.content.data.Layout; import de.dennisguse.opentracks.databinding.ActivitySettingsCustomLayoutListBinding; -import de.dennisguse.opentracks.util.RecyclerViewSwipeDeleteCallback; +import de.dennisguse.opentracks.ui.customRecordingLayout.Layout; +import de.dennisguse.opentracks.ui.customRecordingLayout.SettingsCustomLayoutListAdapter; +import de.dennisguse.opentracks.ui.util.RecyclerViewSwipeDeleteCallback; public class SettingsCustomLayoutListActivity extends AbstractActivity implements SettingsCustomLayoutListAdapter.SettingsCustomLayoutProfileClickListener { diff --git a/src/main/java/de/dennisguse/opentracks/settings/bluetooth/BluetoothLeSensorPreference.java b/src/main/java/de/dennisguse/opentracks/settings/bluetooth/BluetoothLeSensorPreference.java index b4024c00d..03936b230 100644 --- a/src/main/java/de/dennisguse/opentracks/settings/bluetooth/BluetoothLeSensorPreference.java +++ b/src/main/java/de/dennisguse/opentracks/settings/bluetooth/BluetoothLeSensorPreference.java @@ -33,7 +33,7 @@ import java.util.UUID; import java.util.stream.Collectors; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.services.sensors.BluetoothUtils; +import de.dennisguse.opentracks.sensors.BluetoothUtils; import de.dennisguse.opentracks.settings.PreferencesUtils; /** diff --git a/src/main/java/de/dennisguse/opentracks/content/DescriptionGenerator.java b/src/main/java/de/dennisguse/opentracks/share/DescriptionGenerator.java similarity index 95% rename from src/main/java/de/dennisguse/opentracks/content/DescriptionGenerator.java rename to src/main/java/de/dennisguse/opentracks/share/DescriptionGenerator.java index 98a7b2902..5f16f396b 100644 --- a/src/main/java/de/dennisguse/opentracks/content/DescriptionGenerator.java +++ b/src/main/java/de/dennisguse/opentracks/share/DescriptionGenerator.java @@ -14,7 +14,7 @@ * the License. */ -package de.dennisguse.opentracks.content; +package de.dennisguse.opentracks.share; import android.content.Context; import android.util.Pair; @@ -26,10 +26,10 @@ import java.time.OffsetDateTime; import java.time.ZoneId; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.Speed; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.data.UnitConversions; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Speed; +import de.dennisguse.opentracks.data.models.Track; +import de.dennisguse.opentracks.data.models.UnitConversions; import de.dennisguse.opentracks.stats.TrackStatistics; import de.dennisguse.opentracks.util.StringUtils; @@ -54,8 +54,8 @@ public class DescriptionGenerator { /** * Generates a track description. * - * @param track the track - * @param html true to output html, false to output plain text + * @param track the track + * @param html true to output html, false to output plain text */ public String generateTrackDescription(Track track, boolean html) { String paragraphSeparator = html ? HTML_PARAGRAPH_SEPARATOR : TEXT_PARAGRAPH_SEPARATOR; diff --git a/src/main/java/de/dennisguse/opentracks/share/ShareUtils.java b/src/main/java/de/dennisguse/opentracks/share/ShareUtils.java new file mode 100644 index 000000000..97729262c --- /dev/null +++ b/src/main/java/de/dennisguse/opentracks/share/ShareUtils.java @@ -0,0 +1,124 @@ +package de.dennisguse.opentracks.share; + +import android.content.Context; +import android.content.Intent; +import android.net.Uri; +import android.util.Log; +import android.util.Pair; + +import androidx.annotation.Nullable; + +import java.util.ArrayList; +import java.util.Arrays; + +import de.dennisguse.opentracks.R; +import de.dennisguse.opentracks.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.ShareContentProvider; +import de.dennisguse.opentracks.data.models.Marker; +import de.dennisguse.opentracks.data.models.Track; +import de.dennisguse.opentracks.io.file.TrackFileFormat; +import de.dennisguse.opentracks.settings.PreferencesUtils; +import de.dennisguse.opentracks.util.FileUtils; + +public class ShareUtils { + + private static final String TAG = ShareUtils.class.getSimpleName(); + + private ShareUtils() { + } + + + /** + * Creates an intent to share a track file with an app. + * + * @param context the context + * @param trackIds the track ids + */ + public static Intent newShareFileIntent(Context context, Track.Id... trackIds) { + if (trackIds.length == 0) { + throw new RuntimeException("Need to share at least one track."); + } + + ContentProviderUtils contentProviderUtils = new ContentProviderUtils(context); + + String trackDescription = ""; + if (trackIds.length == 1) { + Track track = contentProviderUtils.getTrack(trackIds[0]); + trackDescription = track == null ? "" : new DescriptionGenerator(context).generateTrackDescription(track, false); + } + + ArrayList uris = new ArrayList<>(); + for (Track.Id trackId : trackIds) { + Track track = contentProviderUtils.getTrack(trackId); + if (track == null) { + Log.e(TAG, "TrackId " + trackId.getId() + " could not be resolved."); + continue; + } + + String trackName = FileUtils.sanitizeFileName(track.getName()); + Pair uriTrackFile = ShareContentProvider.createURI(trackId, trackName, PreferencesUtils.getExportTrackFileFormat()); + Pair uriSharePicture = ShareContentProvider.createURI(trackId, trackName, TrackFileFormat.SHARE_PICTURE_PNG); + + uris.addAll(Arrays.asList(uriSharePicture.first, uriTrackFile.first)); + } + + return new Intent(Intent.ACTION_SEND_MULTIPLE) + .setType("image/*") + .putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris) + .addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) + .putExtra(Intent.EXTRA_SUBJECT, context.getString(R.string.share_track_subject)) + .putExtra(Intent.EXTRA_TEXT, context.getString(R.string.share_track_share_file_body, trackDescription)); + } + + /** + * Creates an intent to share a track file with an app. + * + * @param context the context + * @param markerIds the marker ids + * @return an Intent or null (if nothing can be shared). + */ + @Nullable + public static Intent newShareFileIntent(Context context, Marker.Id... markerIds) { + if (markerIds.length == 0) { + throw new RuntimeException("Need to share at least one marker."); + } + + String mime = null; + + ContentProviderUtils contentProviderUtils = new ContentProviderUtils(context); + ArrayList uris = new ArrayList<>(); + for (Marker.Id markerId : markerIds) { + Marker marker = contentProviderUtils.getMarker(markerId); + if (marker == null) { + Log.e(TAG, "MarkerId " + markerId.getId() + " could not be resolved."); + continue; + } + if (marker.getPhotoURI() == null) { + Log.e(TAG, "MarkerId " + markerId.getId() + " has no picture."); + continue; + } + + mime = context.getContentResolver().getType(marker.getPhotoURI()); + + uris.add(marker.getPhotoURI()); + } + + if (uris.isEmpty()) { + return null; + } + + /* + * Because the #166 bug, when you import KMZ tracks then it creates file:/// from markers with photo. + * The photos should be content:/// not file:/// because getType(uri) always returns null for file:/// + * In .setType, to avoid side effects because the #166 bug described above it checks if mime is null. + * If it is then it hardcode "images/*". + */ + return new Intent(Intent.ACTION_SEND_MULTIPLE) + .setType(mime != null ? mime : "image/*") + .putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris) + .addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) + .putExtra(Intent.EXTRA_SUBJECT, context.getString(R.string.share_image_subject)) + .putExtra(Intent.EXTRA_TEXT, context.getString(R.string.share_image_body)); + } + +} diff --git a/src/main/java/de/dennisguse/opentracks/ShowOnMapProxyActivity.java b/src/main/java/de/dennisguse/opentracks/share/ShowOnMapProxyActivity.java similarity index 92% rename from src/main/java/de/dennisguse/opentracks/ShowOnMapProxyActivity.java rename to src/main/java/de/dennisguse/opentracks/share/ShowOnMapProxyActivity.java index 38cde113d..efd33d93a 100644 --- a/src/main/java/de/dennisguse/opentracks/ShowOnMapProxyActivity.java +++ b/src/main/java/de/dennisguse/opentracks/share/ShowOnMapProxyActivity.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks; +package de.dennisguse.opentracks.share; import android.content.Context; import android.content.Intent; @@ -10,8 +10,9 @@ import androidx.appcompat.app.AppCompatActivity; import java.util.Set; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.provider.ShareContentProvider; +import de.dennisguse.opentracks.R; +import de.dennisguse.opentracks.data.ShareContentProvider; +import de.dennisguse.opentracks.data.models.Track; import de.dennisguse.opentracks.io.file.TrackFileFormat; import de.dennisguse.opentracks.util.IntentDashboardUtils; diff --git a/src/main/java/de/dennisguse/opentracks/stats/AltitudeRingBuffer.java b/src/main/java/de/dennisguse/opentracks/stats/AltitudeRingBuffer.java index 4a1300fa4..4848feb8d 100644 --- a/src/main/java/de/dennisguse/opentracks/stats/AltitudeRingBuffer.java +++ b/src/main/java/de/dennisguse/opentracks/stats/AltitudeRingBuffer.java @@ -2,7 +2,7 @@ package de.dennisguse.opentracks.stats; import androidx.annotation.Nullable; -import de.dennisguse.opentracks.content.data.Altitude; +import de.dennisguse.opentracks.data.models.Altitude; public class AltitudeRingBuffer extends RingBuffer { diff --git a/src/main/java/de/dennisguse/opentracks/stats/SpeedRingBuffer.java b/src/main/java/de/dennisguse/opentracks/stats/SpeedRingBuffer.java index bfe6c69d4..990e87cac 100644 --- a/src/main/java/de/dennisguse/opentracks/stats/SpeedRingBuffer.java +++ b/src/main/java/de/dennisguse/opentracks/stats/SpeedRingBuffer.java @@ -2,7 +2,7 @@ package de.dennisguse.opentracks.stats; import androidx.annotation.Nullable; -import de.dennisguse.opentracks.content.data.Speed; +import de.dennisguse.opentracks.data.models.Speed; public class SpeedRingBuffer extends RingBuffer { diff --git a/src/main/java/de/dennisguse/opentracks/stats/TrackStatistics.java b/src/main/java/de/dennisguse/opentracks/stats/TrackStatistics.java index 17dc6da9d..cdb7b9ae1 100644 --- a/src/main/java/de/dennisguse/opentracks/stats/TrackStatistics.java +++ b/src/main/java/de/dennisguse/opentracks/stats/TrackStatistics.java @@ -23,13 +23,14 @@ import androidx.annotation.VisibleForTesting; import java.time.Duration; import java.time.Instant; -import de.dennisguse.opentracks.content.data.Altitude; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.Speed; -import de.dennisguse.opentracks.content.data.TrackPoint; +import de.dennisguse.opentracks.data.models.Altitude; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Speed; +import de.dennisguse.opentracks.data.models.Track; +import de.dennisguse.opentracks.data.models.TrackPoint; /** - * Statistical data about a {@link de.dennisguse.opentracks.content.data.Track}. + * Statistical data about a {@link Track}. * The data in this class should be filled out by {@link TrackStatisticsUpdater}. * * @author Rodrigo Damazio diff --git a/src/main/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdater.java b/src/main/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdater.java index f2ec77d57..8cf1b9dcb 100644 --- a/src/main/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdater.java +++ b/src/main/java/de/dennisguse/opentracks/stats/TrackStatisticsUpdater.java @@ -24,10 +24,10 @@ import androidx.annotation.VisibleForTesting; import java.time.Duration; import java.util.List; -import de.dennisguse.opentracks.content.data.Altitude; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.Speed; -import de.dennisguse.opentracks.content.data.TrackPoint; +import de.dennisguse.opentracks.data.models.Altitude; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Speed; +import de.dennisguse.opentracks.data.models.TrackPoint; /** * Updater for {@link TrackStatistics}. diff --git a/src/main/java/de/dennisguse/opentracks/viewmodels/AggregatedStatistics.java b/src/main/java/de/dennisguse/opentracks/ui/aggregatedStatistics/AggregatedStatistics.java similarity index 95% rename from src/main/java/de/dennisguse/opentracks/viewmodels/AggregatedStatistics.java rename to src/main/java/de/dennisguse/opentracks/ui/aggregatedStatistics/AggregatedStatistics.java index 03173db5d..d40081305 100644 --- a/src/main/java/de/dennisguse/opentracks/viewmodels/AggregatedStatistics.java +++ b/src/main/java/de/dennisguse/opentracks/ui/aggregatedStatistics/AggregatedStatistics.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.viewmodels; +package de.dennisguse.opentracks.ui.aggregatedStatistics; import androidx.annotation.NonNull; import androidx.annotation.VisibleForTesting; @@ -9,7 +9,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import de.dennisguse.opentracks.content.data.Track; +import de.dennisguse.opentracks.data.models.Track; import de.dennisguse.opentracks.stats.TrackStatistics; public class AggregatedStatistics { diff --git a/src/main/java/de/dennisguse/opentracks/AggregatedStatisticsActivity.java b/src/main/java/de/dennisguse/opentracks/ui/aggregatedStatistics/AggregatedStatisticsActivity.java similarity index 92% rename from src/main/java/de/dennisguse/opentracks/AggregatedStatisticsActivity.java rename to src/main/java/de/dennisguse/opentracks/ui/aggregatedStatistics/AggregatedStatisticsActivity.java index 85610ef81..d4ba978d2 100644 --- a/src/main/java/de/dennisguse/opentracks/AggregatedStatisticsActivity.java +++ b/src/main/java/de/dennisguse/opentracks/ui/aggregatedStatistics/AggregatedStatisticsActivity.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks; +package de.dennisguse.opentracks.ui.aggregatedStatistics; import android.os.Bundle; import android.view.Menu; @@ -13,12 +13,11 @@ import java.time.ZoneId; import java.util.ArrayList; import java.util.List; -import de.dennisguse.opentracks.adapters.AggregatedStatisticsAdapter; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.data.TrackSelection; +import de.dennisguse.opentracks.AbstractActivity; +import de.dennisguse.opentracks.R; +import de.dennisguse.opentracks.data.TrackSelection; +import de.dennisguse.opentracks.data.models.Track; import de.dennisguse.opentracks.databinding.AggregatedStatsBinding; -import de.dennisguse.opentracks.fragments.FilterDialogFragment; -import de.dennisguse.opentracks.viewmodels.AggregatedStatisticsModel; public class AggregatedStatisticsActivity extends AbstractActivity implements FilterDialogFragment.FilterDialogListener { diff --git a/src/main/java/de/dennisguse/opentracks/adapters/AggregatedStatisticsAdapter.java b/src/main/java/de/dennisguse/opentracks/ui/aggregatedStatistics/AggregatedStatisticsAdapter.java similarity index 98% rename from src/main/java/de/dennisguse/opentracks/adapters/AggregatedStatisticsAdapter.java rename to src/main/java/de/dennisguse/opentracks/ui/aggregatedStatistics/AggregatedStatisticsAdapter.java index e7c5211db..16e0a2d6e 100644 --- a/src/main/java/de/dennisguse/opentracks/adapters/AggregatedStatisticsAdapter.java +++ b/src/main/java/de/dennisguse/opentracks/ui/aggregatedStatistics/AggregatedStatisticsAdapter.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.adapters; +package de.dennisguse.opentracks.ui.aggregatedStatistics; import android.content.Context; import android.util.Pair; @@ -16,7 +16,6 @@ import de.dennisguse.opentracks.R; import de.dennisguse.opentracks.settings.PreferencesUtils; import de.dennisguse.opentracks.util.StringUtils; import de.dennisguse.opentracks.util.TrackIconUtils; -import de.dennisguse.opentracks.viewmodels.AggregatedStatistics; public class AggregatedStatisticsAdapter extends BaseAdapter { diff --git a/src/main/java/de/dennisguse/opentracks/viewmodels/AggregatedStatisticsModel.java b/src/main/java/de/dennisguse/opentracks/ui/aggregatedStatistics/AggregatedStatisticsModel.java similarity index 86% rename from src/main/java/de/dennisguse/opentracks/viewmodels/AggregatedStatisticsModel.java rename to src/main/java/de/dennisguse/opentracks/ui/aggregatedStatistics/AggregatedStatisticsModel.java index f931ff4b5..5115a00c5 100644 --- a/src/main/java/de/dennisguse/opentracks/viewmodels/AggregatedStatisticsModel.java +++ b/src/main/java/de/dennisguse/opentracks/ui/aggregatedStatistics/AggregatedStatisticsModel.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.viewmodels; +package de.dennisguse.opentracks.ui.aggregatedStatistics; import android.app.Application; @@ -10,9 +10,9 @@ import androidx.lifecycle.MutableLiveData; import java.util.List; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.data.TrackSelection; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; +import de.dennisguse.opentracks.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.TrackSelection; +import de.dennisguse.opentracks.data.models.Track; public class AggregatedStatisticsModel extends AndroidViewModel { diff --git a/src/main/java/de/dennisguse/opentracks/fragments/ConfirmDeleteDialogFragment.java b/src/main/java/de/dennisguse/opentracks/ui/aggregatedStatistics/ConfirmDeleteDialogFragment.java similarity index 94% rename from src/main/java/de/dennisguse/opentracks/fragments/ConfirmDeleteDialogFragment.java rename to src/main/java/de/dennisguse/opentracks/ui/aggregatedStatistics/ConfirmDeleteDialogFragment.java index 2fdb95c5e..7034c0d8a 100644 --- a/src/main/java/de/dennisguse/opentracks/fragments/ConfirmDeleteDialogFragment.java +++ b/src/main/java/de/dennisguse/opentracks/ui/aggregatedStatistics/ConfirmDeleteDialogFragment.java @@ -14,7 +14,7 @@ * the License. */ -package de.dennisguse.opentracks.fragments; +package de.dennisguse.opentracks.ui.aggregatedStatistics; import android.app.Dialog; import android.content.Context; @@ -25,8 +25,8 @@ import androidx.fragment.app.DialogFragment; import androidx.fragment.app.FragmentManager; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.util.DialogUtils; +import de.dennisguse.opentracks.data.models.Track; +import de.dennisguse.opentracks.ui.util.DialogUtils; /** * A DialogFragment to confirm delete. diff --git a/src/main/java/de/dennisguse/opentracks/fragments/FilterDialogFragment.java b/src/main/java/de/dennisguse/opentracks/ui/aggregatedStatistics/FilterDialogFragment.java similarity index 99% rename from src/main/java/de/dennisguse/opentracks/fragments/FilterDialogFragment.java rename to src/main/java/de/dennisguse/opentracks/ui/aggregatedStatistics/FilterDialogFragment.java index 13ef7c9e2..86a203a30 100644 --- a/src/main/java/de/dennisguse/opentracks/fragments/FilterDialogFragment.java +++ b/src/main/java/de/dennisguse/opentracks/ui/aggregatedStatistics/FilterDialogFragment.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.fragments; +package de.dennisguse.opentracks.ui.aggregatedStatistics; import android.app.Dialog; import android.content.Context; diff --git a/src/main/java/de/dennisguse/opentracks/util/CsvLayoutUtils.java b/src/main/java/de/dennisguse/opentracks/ui/customRecordingLayout/CsvLayoutUtils.java similarity index 97% rename from src/main/java/de/dennisguse/opentracks/util/CsvLayoutUtils.java rename to src/main/java/de/dennisguse/opentracks/ui/customRecordingLayout/CsvLayoutUtils.java index fecba1ded..68aec15ce 100644 --- a/src/main/java/de/dennisguse/opentracks/util/CsvLayoutUtils.java +++ b/src/main/java/de/dennisguse/opentracks/ui/customRecordingLayout/CsvLayoutUtils.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.util; +package de.dennisguse.opentracks.ui.customRecordingLayout; import androidx.annotation.Nullable; diff --git a/src/main/java/de/dennisguse/opentracks/content/data/CustomLayoutFieldType.java b/src/main/java/de/dennisguse/opentracks/ui/customRecordingLayout/CustomLayoutFieldType.java similarity index 79% rename from src/main/java/de/dennisguse/opentracks/content/data/CustomLayoutFieldType.java rename to src/main/java/de/dennisguse/opentracks/ui/customRecordingLayout/CustomLayoutFieldType.java index 596e69237..6ce0d694c 100644 --- a/src/main/java/de/dennisguse/opentracks/content/data/CustomLayoutFieldType.java +++ b/src/main/java/de/dennisguse/opentracks/ui/customRecordingLayout/CustomLayoutFieldType.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.content.data; +package de.dennisguse.opentracks.ui.customRecordingLayout; public enum CustomLayoutFieldType { GENERIC(1), diff --git a/src/main/java/de/dennisguse/opentracks/content/data/DataField.java b/src/main/java/de/dennisguse/opentracks/ui/customRecordingLayout/DataField.java similarity index 98% rename from src/main/java/de/dennisguse/opentracks/content/data/DataField.java rename to src/main/java/de/dennisguse/opentracks/ui/customRecordingLayout/DataField.java index 2b351afdc..512721a38 100644 --- a/src/main/java/de/dennisguse/opentracks/content/data/DataField.java +++ b/src/main/java/de/dennisguse/opentracks/ui/customRecordingLayout/DataField.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.content.data; +package de.dennisguse.opentracks.ui.customRecordingLayout; import android.content.Context; import android.content.res.Resources; @@ -6,7 +6,6 @@ import android.os.Parcel; import android.os.Parcelable; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.util.CsvLayoutUtils; public class DataField implements Parcelable { public static final String YES_VALUE = "1"; diff --git a/src/main/java/de/dennisguse/opentracks/content/data/Layout.java b/src/main/java/de/dennisguse/opentracks/ui/customRecordingLayout/Layout.java similarity index 97% rename from src/main/java/de/dennisguse/opentracks/content/data/Layout.java rename to src/main/java/de/dennisguse/opentracks/ui/customRecordingLayout/Layout.java index c3cb1f56a..ecd3ddeb9 100644 --- a/src/main/java/de/dennisguse/opentracks/content/data/Layout.java +++ b/src/main/java/de/dennisguse/opentracks/ui/customRecordingLayout/Layout.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.content.data; +package de.dennisguse.opentracks.ui.customRecordingLayout; import android.content.res.Resources; import android.os.Parcel; @@ -13,7 +13,6 @@ import java.util.stream.Collectors; import de.dennisguse.opentracks.R; import de.dennisguse.opentracks.settings.PreferencesUtils; -import de.dennisguse.opentracks.util.CsvLayoutUtils; public class Layout implements Parcelable { private static final String TAG = Layout.class.getSimpleName(); diff --git a/src/main/java/de/dennisguse/opentracks/adapters/SettingsCustomLayoutEditAdapter.java b/src/main/java/de/dennisguse/opentracks/ui/customRecordingLayout/SettingsCustomLayoutEditAdapter.java similarity index 96% rename from src/main/java/de/dennisguse/opentracks/adapters/SettingsCustomLayoutEditAdapter.java rename to src/main/java/de/dennisguse/opentracks/ui/customRecordingLayout/SettingsCustomLayoutEditAdapter.java index 68a1a8527..3bb4b2bea 100644 --- a/src/main/java/de/dennisguse/opentracks/adapters/SettingsCustomLayoutEditAdapter.java +++ b/src/main/java/de/dennisguse/opentracks/ui/customRecordingLayout/SettingsCustomLayoutEditAdapter.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.adapters; +package de.dennisguse.opentracks.ui.customRecordingLayout; import android.content.Context; import android.view.LayoutInflater; @@ -14,8 +14,6 @@ import androidx.recyclerview.widget.RecyclerView; import java.util.Optional; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.data.DataField; -import de.dennisguse.opentracks.content.data.Layout; import de.dennisguse.opentracks.util.StatisticsUtils; public class SettingsCustomLayoutEditAdapter extends RecyclerView.Adapter { diff --git a/src/main/java/de/dennisguse/opentracks/adapters/SettingsCustomLayoutListAdapter.java b/src/main/java/de/dennisguse/opentracks/ui/customRecordingLayout/SettingsCustomLayoutListAdapter.java similarity index 97% rename from src/main/java/de/dennisguse/opentracks/adapters/SettingsCustomLayoutListAdapter.java rename to src/main/java/de/dennisguse/opentracks/ui/customRecordingLayout/SettingsCustomLayoutListAdapter.java index 0f3d9dff0..c3ea86901 100644 --- a/src/main/java/de/dennisguse/opentracks/adapters/SettingsCustomLayoutListAdapter.java +++ b/src/main/java/de/dennisguse/opentracks/ui/customRecordingLayout/SettingsCustomLayoutListAdapter.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.adapters; +package de.dennisguse.opentracks.ui.customRecordingLayout; import android.content.Context; import android.view.LayoutInflater; @@ -13,7 +13,6 @@ import java.util.List; import java.util.Optional; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.data.Layout; import de.dennisguse.opentracks.settings.PreferencesUtils; public class SettingsCustomLayoutListAdapter extends RecyclerView.Adapter { diff --git a/src/main/java/de/dennisguse/opentracks/viewmodels/IntervalStatistics.java b/src/main/java/de/dennisguse/opentracks/ui/intervals/IntervalStatistics.java similarity index 95% rename from src/main/java/de/dennisguse/opentracks/viewmodels/IntervalStatistics.java rename to src/main/java/de/dennisguse/opentracks/ui/intervals/IntervalStatistics.java index 7fc2cec91..1aeee34f6 100644 --- a/src/main/java/de/dennisguse/opentracks/viewmodels/IntervalStatistics.java +++ b/src/main/java/de/dennisguse/opentracks/ui/intervals/IntervalStatistics.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.viewmodels; +package de.dennisguse.opentracks.ui.intervals; import androidx.annotation.Nullable; @@ -6,10 +6,10 @@ import java.time.Duration; import java.util.ArrayList; import java.util.List; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.Speed; -import de.dennisguse.opentracks.content.data.TrackPoint; -import de.dennisguse.opentracks.content.provider.TrackPointIterator; +import de.dennisguse.opentracks.data.TrackPointIterator; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Speed; +import de.dennisguse.opentracks.data.models.TrackPoint; import de.dennisguse.opentracks.stats.TrackStatistics; import de.dennisguse.opentracks.stats.TrackStatisticsUpdater; diff --git a/src/main/java/de/dennisguse/opentracks/adapters/IntervalStatisticsAdapter.java b/src/main/java/de/dennisguse/opentracks/ui/intervals/IntervalStatisticsAdapter.java similarity index 96% rename from src/main/java/de/dennisguse/opentracks/adapters/IntervalStatisticsAdapter.java rename to src/main/java/de/dennisguse/opentracks/ui/intervals/IntervalStatisticsAdapter.java index df247ab38..556a310e9 100644 --- a/src/main/java/de/dennisguse/opentracks/adapters/IntervalStatisticsAdapter.java +++ b/src/main/java/de/dennisguse/opentracks/ui/intervals/IntervalStatisticsAdapter.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.adapters; +package de.dennisguse.opentracks.ui.intervals; import android.content.Context; import android.view.LayoutInflater; @@ -12,9 +12,8 @@ import androidx.recyclerview.widget.RecyclerView; import java.util.List; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.data.Distance; +import de.dennisguse.opentracks.data.models.Distance; import de.dennisguse.opentracks.util.StringUtils; -import de.dennisguse.opentracks.viewmodels.IntervalStatistics; public class IntervalStatisticsAdapter extends RecyclerView.Adapter { diff --git a/src/main/java/de/dennisguse/opentracks/viewmodels/IntervalStatisticsModel.java b/src/main/java/de/dennisguse/opentracks/ui/intervals/IntervalStatisticsModel.java similarity index 92% rename from src/main/java/de/dennisguse/opentracks/viewmodels/IntervalStatisticsModel.java rename to src/main/java/de/dennisguse/opentracks/ui/intervals/IntervalStatisticsModel.java index 6b86b3f03..4b490a0c6 100644 --- a/src/main/java/de/dennisguse/opentracks/viewmodels/IntervalStatisticsModel.java +++ b/src/main/java/de/dennisguse/opentracks/ui/intervals/IntervalStatisticsModel.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.viewmodels; +package de.dennisguse.opentracks.ui.intervals; import android.app.Application; import android.content.ContentResolver; @@ -16,12 +16,12 @@ import java.util.List; import java.util.concurrent.Executor; import java.util.concurrent.Executors; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.data.TrackPoint; -import de.dennisguse.opentracks.content.data.TrackPointsColumns; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; -import de.dennisguse.opentracks.content.provider.TrackPointIterator; +import de.dennisguse.opentracks.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.TrackPointIterator; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Track; +import de.dennisguse.opentracks.data.models.TrackPoint; +import de.dennisguse.opentracks.data.tables.TrackPointsColumns; import de.dennisguse.opentracks.settings.PreferencesUtils; /** diff --git a/src/main/java/de/dennisguse/opentracks/fragments/IntervalsFragment.java b/src/main/java/de/dennisguse/opentracks/ui/intervals/IntervalsFragment.java similarity index 95% rename from src/main/java/de/dennisguse/opentracks/fragments/IntervalsFragment.java rename to src/main/java/de/dennisguse/opentracks/ui/intervals/IntervalsFragment.java index d2831f3fa..9915de750 100644 --- a/src/main/java/de/dennisguse/opentracks/fragments/IntervalsFragment.java +++ b/src/main/java/de/dennisguse/opentracks/ui/intervals/IntervalsFragment.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.fragments; +package de.dennisguse.opentracks.ui.intervals; import android.content.SharedPreferences; import android.os.Bundle; @@ -19,13 +19,10 @@ import androidx.recyclerview.widget.LinearLayoutManager; import java.util.List; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.adapters.IntervalStatisticsAdapter; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; +import de.dennisguse.opentracks.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.models.Track; import de.dennisguse.opentracks.databinding.IntervalListViewBinding; import de.dennisguse.opentracks.settings.PreferencesUtils; -import de.dennisguse.opentracks.viewmodels.IntervalStatistics; -import de.dennisguse.opentracks.viewmodels.IntervalStatisticsModel; /** * A fragment to display the intervals from recorded track. 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 93% 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..6ef11d122 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; @@ -26,9 +26,9 @@ import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentManager; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.data.Marker; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; -import de.dennisguse.opentracks.util.DialogUtils; +import de.dennisguse.opentracks.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.models.Marker; +import de.dennisguse.opentracks.ui.util.DialogUtils; /** * A DialogFragment to delete marker. diff --git a/src/main/java/de/dennisguse/opentracks/MarkerDetailActivity.java b/src/main/java/de/dennisguse/opentracks/ui/markers/MarkerDetailActivity.java similarity index 93% rename from src/main/java/de/dennisguse/opentracks/MarkerDetailActivity.java rename to src/main/java/de/dennisguse/opentracks/ui/markers/MarkerDetailActivity.java index 6d3f2f78f..71c715779 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.content.data.Marker; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; +import de.dennisguse.opentracks.AbstractActivity; +import de.dennisguse.opentracks.R; +import de.dennisguse.opentracks.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.models.Marker; 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 95% 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..9467aa9d5 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,13 @@ 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.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.models.Marker; import de.dennisguse.opentracks.databinding.MarkerDetailFragmentBinding; +import de.dennisguse.opentracks.share.ShareUtils; +import de.dennisguse.opentracks.ui.util.ListItemUtils; import de.dennisguse.opentracks.util.IntentUtils; -import de.dennisguse.opentracks.util.ListItemUtils; -import de.dennisguse.opentracks.util.MarkerUtils; import de.dennisguse.opentracks.util.StringUtils; /** @@ -207,7 +206,7 @@ public class MarkerDetailFragment extends Fragment { if (item.getItemId() == R.id.marker_detail_share) { if (marker.hasPhoto()) { - Intent intent = IntentUtils.newShareFileIntent(getContext(), marker.getId()); + Intent intent = ShareUtils.newShareFileIntent(getContext(), marker.getId()); intent = Intent.createChooser(intent, null); startActivity(intent); } diff --git a/src/main/java/de/dennisguse/opentracks/MarkerEditActivity.java b/src/main/java/de/dennisguse/opentracks/ui/markers/MarkerEditActivity.java similarity index 97% rename from src/main/java/de/dennisguse/opentracks/MarkerEditActivity.java rename to src/main/java/de/dennisguse/opentracks/ui/markers/MarkerEditActivity.java index c9420c792..8765ab797 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.content.data.Marker; -import de.dennisguse.opentracks.content.data.Track; +import de.dennisguse.opentracks.AbstractActivity; +import de.dennisguse.opentracks.R; +import de.dennisguse.opentracks.data.models.Marker; +import de.dennisguse.opentracks.data.models.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 96% 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..f76a98a33 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; @@ -19,9 +19,9 @@ import java.time.Instant; import java.util.NoSuchElementException; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.data.Marker; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; +import de.dennisguse.opentracks.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.models.Marker; +import de.dennisguse.opentracks.data.models.Track; import de.dennisguse.opentracks.services.TrackRecordingServiceConnection; import de.dennisguse.opentracks.util.FileUtils; diff --git a/src/main/java/de/dennisguse/opentracks/MarkerListActivity.java b/src/main/java/de/dennisguse/opentracks/ui/markers/MarkerListActivity.java similarity index 93% rename from src/main/java/de/dennisguse/opentracks/MarkerListActivity.java rename to src/main/java/de/dennisguse/opentracks/ui/markers/MarkerListActivity.java index 8eea656a1..671c0d95e 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,18 +31,19 @@ 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.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.AbstractActivity; +import de.dennisguse.opentracks.R; +import de.dennisguse.opentracks.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.models.Marker; +import de.dennisguse.opentracks.data.models.Track; +import de.dennisguse.opentracks.data.tables.MarkerColumns; 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.util.ActivityUtils; +import de.dennisguse.opentracks.share.ShareUtils; +import de.dennisguse.opentracks.ui.markers.DeleteMarkerDialogFragment.DeleteMarkerCaller; +import de.dennisguse.opentracks.ui.util.ActivityUtils; +import de.dennisguse.opentracks.ui.util.ScrollVisibleViews; import de.dennisguse.opentracks.util.IntentUtils; /** @@ -73,7 +74,7 @@ public class MarkerListActivity extends AbstractActivity implements DeleteMarker .observe(MarkerListActivity.this, this::onRecordingStatusChanged); // Callback when an item is selected in the contextual action mode - private final ContextualActionModeCallback contextualActionModeCallback = new ContextualActionModeCallback() { + private final ActivityUtils.ContextualActionModeCallback contextualActionModeCallback = new ActivityUtils.ContextualActionModeCallback() { @Override public void onPrepare(Menu menu, int[] positions, long[] ids, boolean showSelectAll) { boolean isSingleSelection = ids.length == 1; @@ -206,7 +207,7 @@ public class MarkerListActivity extends AbstractActivity implements DeleteMarker } if (itemId == R.id.list_context_menu_share) { - Intent intent = IntentUtils.newShareFileIntent(this, markerIds); + Intent intent = ShareUtils.newShareFileIntent(this, markerIds); if (intent != null) { intent = Intent.createChooser(intent, null); startActivity(intent); 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 94% 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..05cfe57db 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.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; +import de.dennisguse.opentracks.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.models.Track; +import de.dennisguse.opentracks.data.tables.MarkerColumns; +import de.dennisguse.opentracks.ui.util.ExecutorListViewService; +import de.dennisguse.opentracks.ui.util.ListItemUtils; +import de.dennisguse.opentracks.ui.util.ScrollVisibleViews; 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; diff --git a/src/main/java/de/dennisguse/opentracks/util/ActivityUtils.java b/src/main/java/de/dennisguse/opentracks/ui/util/ActivityUtils.java similarity index 80% rename from src/main/java/de/dennisguse/opentracks/util/ActivityUtils.java rename to src/main/java/de/dennisguse/opentracks/ui/util/ActivityUtils.java index 00b574cad..8a33b49ee 100644 --- a/src/main/java/de/dennisguse/opentracks/util/ActivityUtils.java +++ b/src/main/java/de/dennisguse/opentracks/ui/util/ActivityUtils.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.util; +package de.dennisguse.opentracks.ui.util; import static android.content.Context.VIBRATOR_SERVICE; @@ -21,7 +21,6 @@ import androidx.appcompat.widget.SearchView; import java.util.ArrayList; -import de.dennisguse.opentracks.ContextualActionModeCallback; import de.dennisguse.opentracks.R; public class ActivityUtils { @@ -102,4 +101,31 @@ public class ActivityUtils { vibrator.vibrate(milliseconds); } } + + /** + * Callback when items in the contextual action mode are selected. + * + * @author Jimmy Shih + */ + public interface ContextualActionModeCallback { + + /** + * Invoked to prepare the menu for the selected items. + * + * @param menu the menu + * @param positions the selected items' positions + * @param ids the selected items' ids, if available + * @param showSelectAll true to show select all + */ + void onPrepare(Menu menu, int[] positions, long[] ids, boolean showSelectAll); + + /** + * Invoked when items are selected. + * + * @param itemId the context menu item id + * @param positions the selected items' positions + * @param ids the selected items' ids, if available + */ + boolean onClick(int itemId, int[] positions, long[] ids); + } } diff --git a/src/main/java/de/dennisguse/opentracks/util/DialogUtils.java b/src/main/java/de/dennisguse/opentracks/ui/util/DialogUtils.java similarity index 97% rename from src/main/java/de/dennisguse/opentracks/util/DialogUtils.java rename to src/main/java/de/dennisguse/opentracks/ui/util/DialogUtils.java index 7098296b0..00aba615f 100644 --- a/src/main/java/de/dennisguse/opentracks/util/DialogUtils.java +++ b/src/main/java/de/dennisguse/opentracks/ui/util/DialogUtils.java @@ -14,7 +14,7 @@ * the License. */ -package de.dennisguse.opentracks.util; +package de.dennisguse.opentracks.ui.util; import android.app.Dialog; import android.content.Context; diff --git a/src/main/java/de/dennisguse/opentracks/adapters/ExecutorListViewService.java b/src/main/java/de/dennisguse/opentracks/ui/util/ExecutorListViewService.java similarity index 96% rename from src/main/java/de/dennisguse/opentracks/adapters/ExecutorListViewService.java rename to src/main/java/de/dennisguse/opentracks/ui/util/ExecutorListViewService.java index 2e951921c..650b91f5a 100644 --- a/src/main/java/de/dennisguse/opentracks/adapters/ExecutorListViewService.java +++ b/src/main/java/de/dennisguse/opentracks/ui/util/ExecutorListViewService.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.adapters; +package de.dennisguse.opentracks.ui.util; import java.util.ArrayList; import java.util.List; @@ -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/util/ListItemUtils.java b/src/main/java/de/dennisguse/opentracks/ui/util/ListItemUtils.java similarity index 98% rename from src/main/java/de/dennisguse/opentracks/util/ListItemUtils.java rename to src/main/java/de/dennisguse/opentracks/ui/util/ListItemUtils.java index 0b15d0b55..489792045 100644 --- a/src/main/java/de/dennisguse/opentracks/util/ListItemUtils.java +++ b/src/main/java/de/dennisguse/opentracks/ui/util/ListItemUtils.java @@ -14,7 +14,7 @@ * the License. */ -package de.dennisguse.opentracks.util; +package de.dennisguse.opentracks.ui.util; import android.content.Context; import android.view.Gravity; @@ -28,6 +28,7 @@ import java.time.OffsetDateTime; import java.time.format.DateTimeFormatter; import de.dennisguse.opentracks.R; +import de.dennisguse.opentracks.util.StringUtils; /** * Utilities to display a list item. diff --git a/src/main/java/de/dennisguse/opentracks/util/RecyclerViewSwipeDeleteCallback.java b/src/main/java/de/dennisguse/opentracks/ui/util/RecyclerViewSwipeDeleteCallback.java similarity index 98% rename from src/main/java/de/dennisguse/opentracks/util/RecyclerViewSwipeDeleteCallback.java rename to src/main/java/de/dennisguse/opentracks/ui/util/RecyclerViewSwipeDeleteCallback.java index 62064aef2..2b4ad348b 100644 --- a/src/main/java/de/dennisguse/opentracks/util/RecyclerViewSwipeDeleteCallback.java +++ b/src/main/java/de/dennisguse/opentracks/ui/util/RecyclerViewSwipeDeleteCallback.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.util; +package de.dennisguse.opentracks.ui.util; import android.content.Context; import android.graphics.Canvas; diff --git a/src/main/java/de/dennisguse/opentracks/util/ResourceUtils.java b/src/main/java/de/dennisguse/opentracks/ui/util/ResourceUtils.java similarity index 89% rename from src/main/java/de/dennisguse/opentracks/util/ResourceUtils.java rename to src/main/java/de/dennisguse/opentracks/ui/util/ResourceUtils.java index a2ecdbb73..14da64fdf 100644 --- a/src/main/java/de/dennisguse/opentracks/util/ResourceUtils.java +++ b/src/main/java/de/dennisguse/opentracks/ui/util/ResourceUtils.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.util; +package de.dennisguse.opentracks.ui.util; import android.content.Context; diff --git a/src/main/java/de/dennisguse/opentracks/adapters/ScrollVisibleViews.java b/src/main/java/de/dennisguse/opentracks/ui/util/ScrollVisibleViews.java similarity index 94% rename from src/main/java/de/dennisguse/opentracks/adapters/ScrollVisibleViews.java rename to src/main/java/de/dennisguse/opentracks/ui/util/ScrollVisibleViews.java index 0dd041b14..18c449777 100644 --- a/src/main/java/de/dennisguse/opentracks/adapters/ScrollVisibleViews.java +++ b/src/main/java/de/dennisguse/opentracks/ui/util/ScrollVisibleViews.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.adapters; +package de.dennisguse.opentracks.ui.util; import android.view.View; import android.widget.AbsListView; @@ -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/util/ThemeUtils.java b/src/main/java/de/dennisguse/opentracks/ui/util/ThemeUtils.java similarity index 97% rename from src/main/java/de/dennisguse/opentracks/util/ThemeUtils.java rename to src/main/java/de/dennisguse/opentracks/ui/util/ThemeUtils.java index 7bb9524c7..c45efb606 100644 --- a/src/main/java/de/dennisguse/opentracks/util/ThemeUtils.java +++ b/src/main/java/de/dennisguse/opentracks/ui/util/ThemeUtils.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.util; +package de.dennisguse.opentracks.ui.util; import android.content.Context; import android.content.res.Resources; diff --git a/src/main/java/de/dennisguse/opentracks/util/ViewUtils.java b/src/main/java/de/dennisguse/opentracks/ui/util/ViewUtils.java similarity index 95% rename from src/main/java/de/dennisguse/opentracks/util/ViewUtils.java rename to src/main/java/de/dennisguse/opentracks/ui/util/ViewUtils.java index 76ff8f343..70580716f 100644 --- a/src/main/java/de/dennisguse/opentracks/util/ViewUtils.java +++ b/src/main/java/de/dennisguse/opentracks/ui/util/ViewUtils.java @@ -1,4 +1,4 @@ -package de.dennisguse.opentracks.util; +package de.dennisguse.opentracks.ui.util; import android.text.method.LinkMovementMethod; import android.view.View; diff --git a/src/main/java/de/dennisguse/opentracks/util/ExportUtils.java b/src/main/java/de/dennisguse/opentracks/util/ExportUtils.java index 23e58fc5a..58ebfd869 100644 --- a/src/main/java/de/dennisguse/opentracks/util/ExportUtils.java +++ b/src/main/java/de/dennisguse/opentracks/util/ExportUtils.java @@ -19,7 +19,7 @@ import java.util.UUID; import java.util.regex.Pattern; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.data.Track; +import de.dennisguse.opentracks.data.models.Track; import de.dennisguse.opentracks.io.file.TrackFileFormat; import de.dennisguse.opentracks.io.file.exporter.ExportService; import de.dennisguse.opentracks.io.file.exporter.ExportServiceResultReceiver; diff --git a/src/main/java/de/dennisguse/opentracks/util/FileUtils.java b/src/main/java/de/dennisguse/opentracks/util/FileUtils.java index cdedc96fd..79e518b27 100644 --- a/src/main/java/de/dennisguse/opentracks/util/FileUtils.java +++ b/src/main/java/de/dennisguse/opentracks/util/FileUtils.java @@ -34,7 +34,7 @@ import java.util.ArrayList; import java.util.Date; import de.dennisguse.opentracks.BuildConfig; -import de.dennisguse.opentracks.content.data.Track; +import de.dennisguse.opentracks.data.models.Track; /** * Utilities for dealing with files. diff --git a/src/main/java/de/dennisguse/opentracks/util/IntentDashboardUtils.java b/src/main/java/de/dennisguse/opentracks/util/IntentDashboardUtils.java index 3e15b32d2..53b1a9e88 100644 --- a/src/main/java/de/dennisguse/opentracks/util/IntentDashboardUtils.java +++ b/src/main/java/de/dennisguse/opentracks/util/IntentDashboardUtils.java @@ -11,11 +11,11 @@ import java.util.ArrayList; import java.util.HashSet; import java.util.Set; -import de.dennisguse.opentracks.content.data.MarkerColumns; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.data.TrackPointsColumns; -import de.dennisguse.opentracks.content.data.TracksColumns; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; +import de.dennisguse.opentracks.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.models.Track; +import de.dennisguse.opentracks.data.tables.MarkerColumns; +import de.dennisguse.opentracks.data.tables.TrackPointsColumns; +import de.dennisguse.opentracks.data.tables.TracksColumns; import de.dennisguse.opentracks.settings.PreferencesUtils; /** diff --git a/src/main/java/de/dennisguse/opentracks/util/IntentUtils.java b/src/main/java/de/dennisguse/opentracks/util/IntentUtils.java index ba22f4cf3..d9c326e24 100644 --- a/src/main/java/de/dennisguse/opentracks/util/IntentUtils.java +++ b/src/main/java/de/dennisguse/opentracks/util/IntentUtils.java @@ -24,25 +24,15 @@ import android.provider.MediaStore; import android.util.Log; import android.util.Pair; -import androidx.annotation.Nullable; import androidx.core.content.FileProvider; import androidx.documentfile.provider.DocumentFile; import java.io.File; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Arrays; import java.util.Date; -import java.util.List; -import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.DescriptionGenerator; -import de.dennisguse.opentracks.content.data.Marker; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; -import de.dennisguse.opentracks.content.provider.ShareContentProvider; -import de.dennisguse.opentracks.io.file.TrackFileFormat; -import de.dennisguse.opentracks.settings.PreferencesUtils; +import de.dennisguse.opentracks.data.models.Marker; +import de.dennisguse.opentracks.data.models.Track; /** * Utilities for creating intents. @@ -68,99 +58,6 @@ public class IntentUtils { return new Intent(context, cls).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); } - /** - * Creates an intent to share a track file with an app. - * - * @param context the context - * @param trackIds the track ids - */ - public static Intent newShareFileIntent(Context context, Track.Id... trackIds) { - if (trackIds.length == 0) { - throw new RuntimeException("Need to share at least one track."); - } - - ContentProviderUtils contentProviderUtils = new ContentProviderUtils(context); - - String trackDescription = ""; - if (trackIds.length == 1) { - Track track = contentProviderUtils.getTrack(trackIds[0]); - trackDescription = track == null ? "" : new DescriptionGenerator(context).generateTrackDescription(track, false); - } - - ArrayList uris = new ArrayList<>(); - for (Track.Id trackId : trackIds) { - Track track = contentProviderUtils.getTrack(trackId); - if (track == null) { - Log.e(TAG, "TrackId " + trackId.getId() + " could not be resolved."); - continue; - } - - String trackName = FileUtils.sanitizeFileName(track.getName()); - Pair uriTrackFile = ShareContentProvider.createURI(trackId, trackName, PreferencesUtils.getExportTrackFileFormat()); - Pair uriSharePicture = ShareContentProvider.createURI(trackId, trackName, TrackFileFormat.SHARE_PICTURE_PNG); - - uris.addAll(Arrays.asList(uriSharePicture.first, uriTrackFile.first)); - } - - return new Intent(Intent.ACTION_SEND_MULTIPLE) - .setType("image/*") - .putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris) - .addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) - .putExtra(Intent.EXTRA_SUBJECT, context.getString(R.string.share_track_subject)) - .putExtra(Intent.EXTRA_TEXT, context.getString(R.string.share_track_share_file_body, trackDescription)); - } - - /** - * Creates an intent to share a track file with an app. - * - * @param context the context - * @param markerIds the marker ids - * @return an Intent or null (if nothing can be shared). - */ - @Nullable - public static Intent newShareFileIntent(Context context, Marker.Id... markerIds) { - if (markerIds.length == 0) { - throw new RuntimeException("Need to share at least one marker."); - } - - String mime = null; - - ContentProviderUtils contentProviderUtils = new ContentProviderUtils(context); - ArrayList uris = new ArrayList<>(); - for (Marker.Id markerId : markerIds) { - Marker marker = contentProviderUtils.getMarker(markerId); - if (marker == null) { - Log.e(TAG, "MarkerId " + markerId.getId() + " could not be resolved."); - continue; - } - if (marker.getPhotoURI() == null) { - Log.e(TAG, "MarkerId " + markerId.getId() + " has no picture."); - continue; - } - - mime = context.getContentResolver().getType(marker.getPhotoURI()); - - uris.add(marker.getPhotoURI()); - } - - if (uris.isEmpty()) { - return null; - } - - /* - * Because the #166 bug, when you import KMZ tracks then it creates file:/// from markers with photo. - * The photos should be content:/// not file:/// because getType(uri) always returns null for file:/// - * In .setType, to avoid side effects because the #166 bug described above it checks if mime is null. - * If it is then it hardcode "images/*". - */ - return new Intent(Intent.ACTION_SEND_MULTIPLE) - .setType(mime != null ? mime : "image/*") - .putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris) - .addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION) - .putExtra(Intent.EXTRA_SUBJECT, context.getString(R.string.share_image_subject)) - .putExtra(Intent.EXTRA_TEXT, context.getString(R.string.share_image_body)); - } - public static void showCoordinateOnMap(Context context, Marker marker) { showCoordinateOnMap(context, marker.getLatitude(), marker.getLongitude(), marker.getName()); } diff --git a/src/main/java/de/dennisguse/opentracks/util/StatisticsUtils.java b/src/main/java/de/dennisguse/opentracks/util/StatisticsUtils.java index a22dcb8f2..5f841db6e 100644 --- a/src/main/java/de/dennisguse/opentracks/util/StatisticsUtils.java +++ b/src/main/java/de/dennisguse/opentracks/util/StatisticsUtils.java @@ -7,8 +7,8 @@ import androidx.annotation.NonNull; import java.util.stream.Collectors; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.data.Layout; import de.dennisguse.opentracks.settings.PreferencesUtils; +import de.dennisguse.opentracks.ui.customRecordingLayout.Layout; public class StatisticsUtils { diff --git a/src/main/java/de/dennisguse/opentracks/util/StringUtils.java b/src/main/java/de/dennisguse/opentracks/util/StringUtils.java index 65aa39d24..25592ec01 100644 --- a/src/main/java/de/dennisguse/opentracks/util/StringUtils.java +++ b/src/main/java/de/dennisguse/opentracks/util/StringUtils.java @@ -32,8 +32,8 @@ import java.time.Duration; import java.time.Instant; import java.time.LocalDate; import java.time.LocalDateTime; -import java.time.ZoneId; import java.time.OffsetDateTime; +import java.time.ZoneId; import java.time.ZoneOffset; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; @@ -41,8 +41,8 @@ import java.time.format.FormatStyle; import java.time.temporal.TemporalAccessor; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.data.Distance; -import de.dennisguse.opentracks.content.data.Speed; +import de.dennisguse.opentracks.data.models.Distance; +import de.dennisguse.opentracks.data.models.Speed; /** * Various string manipulation methods. @@ -290,7 +290,7 @@ public class StringUtils { * @param category the category * @param description the description */ - static String getCategoryDescription(String category, String description) { + public static String getCategoryDescription(String category, String description) { if (category == null || category.length() == 0) { return description; } diff --git a/src/main/java/de/dennisguse/opentracks/util/TrackNameUtils.java b/src/main/java/de/dennisguse/opentracks/util/TrackNameUtils.java index 58143a0d9..6b47bed34 100644 --- a/src/main/java/de/dennisguse/opentracks/util/TrackNameUtils.java +++ b/src/main/java/de/dennisguse/opentracks/util/TrackNameUtils.java @@ -21,7 +21,7 @@ import android.content.Context; import java.time.OffsetDateTime; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.data.Track; +import de.dennisguse.opentracks.data.models.Track; import de.dennisguse.opentracks.settings.PreferencesUtils; /** diff --git a/src/main/java/de/dennisguse/opentracks/util/TrackUtils.java b/src/main/java/de/dennisguse/opentracks/util/TrackUtils.java index a6a5d6404..8d0639cbd 100644 --- a/src/main/java/de/dennisguse/opentracks/util/TrackUtils.java +++ b/src/main/java/de/dennisguse/opentracks/util/TrackUtils.java @@ -18,8 +18,8 @@ package de.dennisguse.opentracks.util; import android.content.Context; -import de.dennisguse.opentracks.content.data.Track; -import de.dennisguse.opentracks.content.provider.ContentProviderUtils; +import de.dennisguse.opentracks.data.ContentProviderUtils; +import de.dennisguse.opentracks.data.models.Track; /** * Utilities for updating track. diff --git a/src/main/java/de/dennisguse/opentracks/viewmodels/StatisticData.java b/src/main/java/de/dennisguse/opentracks/viewmodels/StatisticData.java index db703d26b..8d929df1c 100644 --- a/src/main/java/de/dennisguse/opentracks/viewmodels/StatisticData.java +++ b/src/main/java/de/dennisguse/opentracks/viewmodels/StatisticData.java @@ -4,7 +4,7 @@ import android.util.Pair; import androidx.annotation.NonNull; -import de.dennisguse.opentracks.content.data.DataField; +import de.dennisguse.opentracks.ui.customRecordingLayout.DataField; public class StatisticData { private final DataField dataField; diff --git a/src/main/java/de/dennisguse/opentracks/viewmodels/StatisticDataBuilder.java b/src/main/java/de/dennisguse/opentracks/viewmodels/StatisticDataBuilder.java index d5ebedc53..c7de147a3 100644 --- a/src/main/java/de/dennisguse/opentracks/viewmodels/StatisticDataBuilder.java +++ b/src/main/java/de/dennisguse/opentracks/viewmodels/StatisticDataBuilder.java @@ -11,14 +11,14 @@ import java.util.Objects; import java.util.stream.Collectors; import de.dennisguse.opentracks.R; -import de.dennisguse.opentracks.content.data.DataField; -import de.dennisguse.opentracks.content.data.Layout; -import de.dennisguse.opentracks.content.data.Speed; -import de.dennisguse.opentracks.content.data.TrackPoint; -import de.dennisguse.opentracks.content.sensor.SensorDataSet; +import de.dennisguse.opentracks.data.models.Speed; +import de.dennisguse.opentracks.data.models.TrackPoint; +import de.dennisguse.opentracks.sensors.sensorData.SensorDataSet; import de.dennisguse.opentracks.services.TrackRecordingService; import de.dennisguse.opentracks.stats.SensorStatistics; import de.dennisguse.opentracks.stats.TrackStatistics; +import de.dennisguse.opentracks.ui.customRecordingLayout.DataField; +import de.dennisguse.opentracks.ui.customRecordingLayout.Layout; import de.dennisguse.opentracks.util.StringUtils; public class StatisticDataBuilder { diff --git a/src/main/java/de/dennisguse/opentracks/viewmodels/StatisticsDataModel.java b/src/main/java/de/dennisguse/opentracks/viewmodels/StatisticsDataModel.java index e6ebde83e..4b6bb9df5 100644 --- a/src/main/java/de/dennisguse/opentracks/viewmodels/StatisticsDataModel.java +++ b/src/main/java/de/dennisguse/opentracks/viewmodels/StatisticsDataModel.java @@ -8,8 +8,8 @@ import androidx.lifecycle.MutableLiveData; import java.util.List; -import de.dennisguse.opentracks.content.data.Layout; import de.dennisguse.opentracks.services.TrackRecordingService; +import de.dennisguse.opentracks.ui.customRecordingLayout.Layout; public class StatisticsDataModel extends AndroidViewModel {