Compare commits

..

5 Commits

Author SHA1 Message Date
Dennis Guse 693904529d Release: v4.24.1 2025-12-11 22:46:23 +01:00
Dennis Guse 08143a546a Bugfix: marker.icon column is still used by OSMDashboard v6.4.1
Fixes https://codeberg.org/OpenTracksApp/OSMDashboard/issues/552
2025-12-11 22:44:44 +01:00
Dennis Guse eb49156ee7 Bugfix: crash when using number as default track name.
Fixes #2229.
2025-12-11 18:24:47 +01:00
CI/CD Bot by pstorch 51c03d8d75 Update dependency com.android.tools.build:gradle to v8.13.2 2025-12-11 05:33:57 +00:00
CI/CD Bot by pstorch 666cbbad68 Update dependency org.mockito:mockito-android to v5.21.0 2025-12-09 19:34:11 +00:00
4 changed files with 28 additions and 15 deletions
+4 -4
View File
@@ -6,7 +6,7 @@ buildscript {
mavenCentral() mavenCentral()
} }
dependencies { dependencies {
classpath 'com.android.tools.build:gradle:8.13.1' classpath 'com.android.tools.build:gradle:8.13.2'
} }
} }
@@ -46,8 +46,8 @@ android {
defaultConfig { defaultConfig {
applicationId 'de.dennisguse.opentracks' applicationId 'de.dennisguse.opentracks'
versionCode 6508 versionCode 6513
versionName "v4.24.0" versionName "v4.24.1"
buildConfigField "String", "VERSION_NAME_FULL", "\"${getVersionName()}\"" buildConfigField "String", "VERSION_NAME_FULL", "\"${getVersionName()}\""
@@ -170,7 +170,7 @@ dependencies {
androidTestImplementation 'androidx.test:rules:1.7.0' androidTestImplementation 'androidx.test:rules:1.7.0'
androidTestImplementation 'androidx.test:runner:1.7.0' androidTestImplementation 'androidx.test:runner:1.7.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.7.0' androidTestImplementation 'androidx.test.espresso:espresso-core:3.7.0'
androidTestImplementation 'org.mockito:mockito-android:5.20.0' androidTestImplementation 'org.mockito:mockito-android:5.21.0'
androidTestUtil 'androidx.test:orchestrator:1.6.1' androidTestUtil 'androidx.test:orchestrator:1.6.1'
} }
@@ -0,0 +1,6 @@
v4.24.1: OpenTracks
Bugfix:
- Restore compatibility with OSM Dashboard v6.4.1 and earlier (introduced in v4.24.0)
- Crash when using default track name by number (introduced in v4.24.0)
@@ -278,7 +278,7 @@ public class CustomContentProvider extends ContentProvider {
queryBuilder.appendWhere(MarkerColumns._ID + "=" + ContentUris.parseId(url)); queryBuilder.appendWhere(MarkerColumns._ID + "=" + ContentUris.parseId(url));
} }
case MARKERS_BY_TRACKID -> { case MARKERS_BY_TRACKID -> {
queryBuilder.setTables(MarkerColumns.TABLE_NAME); queryBuilder.setTables(MarkerColumns.TABLE_NAME + " LEFT OUTER JOIN (SELECT 'unused' AS ICON)"); //TODO Workaround: Column icon was removed in v4.24.0, but is still required for OSM Dashboard v6.4.1.
queryBuilder.appendWhere(MarkerColumns.TRACKID + " IN (" + TextUtils.join(SQL_LIST_DELIMITER, ContentProviderUtils.parseTrackIdsFromUri(url)) + ")"); queryBuilder.appendWhere(MarkerColumns.TRACKID + " IN (" + TextUtils.join(SQL_LIST_DELIMITER, ContentProviderUtils.parseTrackIdsFromUri(url)) + ")");
} }
default -> throw new IllegalArgumentException("Unknown url " + url); default -> throw new IllegalArgumentException("Unknown url " + url);
@@ -75,18 +75,25 @@ public class TrackRecordingManager implements SharedPreferences.OnSharedPreferen
Statistics initialStatistics = trackStatisticsUpdater.getTrackStatistics(); Statistics initialStatistics = trackStatisticsUpdater.getTrackStatistics();
String activityTypeLocalized = PreferencesUtils.getDefaultActivityTypeLocalized(); String activityTypeLocalized = PreferencesUtils.getDefaultActivityTypeLocalized();
Track track = new Track(
null, trackId = contentProviderUtils.insertTrack(
UUID.randomUUID(), //TODO This is not really cool: should happen in ContentProviderUtils? new Track(
TrackNameUtils.getTrackName(context, trackId, initialStatistics.startTime().atOffset(zoneOffset)), null,
"", UUID.randomUUID(), //TODO This is not really cool: should happen in ContentProviderUtils?
activityTypeLocalized, "",
ActivityType.findByLocalizedString(context, activityTypeLocalized), "",
zoneOffset, activityTypeLocalized,
initialStatistics ActivityType.findByLocalizedString(context, activityTypeLocalized),
zoneOffset,
initialStatistics
)
); );
trackId = contentProviderUtils.insertTrack(track); //TODO Move this into ContentProviderUtils?
// Generating the name requires already the track.id (generated by the database).
TrackBuilder track = new TrackBuilder(contentProviderUtils.getTrack(trackId));
track.setName(TrackNameUtils.getTrackName(context, trackId, initialStatistics.startTime().atOffset(zoneOffset)));
contentProviderUtils.updateTrack(track.getTrack());
onNewTrackPoint(segmentStartTrackPoint); onNewTrackPoint(segmentStartTrackPoint);