Compare commits

..

2 Commits

Author SHA1 Message Date
Dennis Guse 71f1049642 Release: v4.19.1 2025-04-23 22:25:57 +02:00
dependabot[bot] 6185154af9 Bump com.android.tools.build:gradle from 8.9.1 to 8.9.2
Bumps com.android.tools.build:gradle from 8.9.1 to 8.9.2.

---
updated-dependencies:
- dependency-name: com.android.tools.build:gradle
  dependency-version: 8.9.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-04-22 07:21:22 +02:00
4 changed files with 7 additions and 121 deletions
+3 -3
View File
@@ -6,7 +6,7 @@ buildscript {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:8.9.1'
classpath 'com.android.tools.build:gradle:8.9.2'
}
}
@@ -46,8 +46,8 @@ android {
defaultConfig {
applicationId 'de.dennisguse.opentracks'
versionCode 6102
versionName "v4.19.0"
versionCode 6120
versionName "v4.19.1"
buildConfigField "String", "VERSION_NAME_FULL", "\"${getVersionName()}\""
@@ -0,0 +1,4 @@
v4.19.1: OpenTracks
Bugfix:
- Exported GPX files missed one schemaLocation
@@ -1,44 +0,0 @@
package de.dennisguse.opentracks.io.file.exporter;
import org.junit.Test;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
public class FITv2TrackExporterTest {
private final byte FIT_PROTOCOL_VERSION = 2 << 4 + 0;
private final short FIT_PROFILE_VERSION = 21 * 1000 + 158;
private long checksum;
private final byte FILE_HEADER_SIZE = 14;
@Test
public void run() {
ByteBuffer littleEndian = ByteBuffer
.allocate(FILE_HEADER_SIZE)
.order(ByteOrder.LITTLE_ENDIAN);
littleEndian.put(0, FILE_HEADER_SIZE);
littleEndian.put(1, FIT_PROTOCOL_VERSION);
// Profile version: 1513
littleEndian.putShort(2, FIT_PROFILE_VERSION);
// Data size: 32bit
littleEndian.putInt(4, 0); // We do not calculate the data size.
// .FIT
littleEndian.putChar(8, '.');
littleEndian.putChar(9, 'F');
littleEndian.putChar(10, 'I');
littleEndian.putChar(11, 'T');
// CRC (not implemented)
littleEndian.put(12, (byte) 0);
littleEndian.put(13, (byte) 0);
var a = littleEndian.array();
littleEndian.array();
}
}
@@ -1,74 +0,0 @@
package de.dennisguse.opentracks.io.file.exporter;
import androidx.annotation.NonNull;
import androidx.annotation.VisibleForTesting;
import java.io.OutputStream;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.channels.Channels;
import java.nio.channels.WritableByteChannel;
import java.util.List;
import de.dennisguse.opentracks.data.models.Track;
/**
* FIT v2.0
* https://developer.garmin.com/fit/
* <p>
* Encoding is little endian.
*/
public class FITv2TrackExporter implements TrackExporter {
private final byte FIT_PROTOCOL_VERSION = 2 << 4 + 0;
private final short FIT_PROFILE_VERSION = 21 * 1000 + 158;
private long checksum;
private final byte FILE_HEADER_SIZE = 14;
@Override
public boolean writeTrack(List<Track> tracks, @NonNull OutputStream outputStream) {
WritableByteChannel channel = Channels.newChannel(outputStream);
writeFileHeader(channel);
// writeFileId(channel);
writeFooter(channel);
return false;
}
// https://developer.garmin.com/fit/protocol/
@VisibleForTesting
void writeFileHeader(@NonNull WritableByteChannel channel) {
ByteBuffer littleEndian = ByteBuffer
.allocate(FILE_HEADER_SIZE)
.order(ByteOrder.LITTLE_ENDIAN);
littleEndian.put(0, FILE_HEADER_SIZE);
littleEndian.put(1, FIT_PROTOCOL_VERSION);
// Profile version
littleEndian.putShort(2, FIT_PROFILE_VERSION);
// Data size: 32bit
littleEndian.putInt(4, 0); // We do not calculate the data size.
// .FIT
littleEndian.putChar(8, '.');
littleEndian.putChar(9, 'F');
littleEndian.putChar(10, 'I');
littleEndian.putChar(11, 'T');
// CRC (not implemented)
littleEndian.put(12, (byte) 0);
littleEndian.put(13, (byte) 0);
var a = littleEndian.array();
littleEndian.array();
}
private void writeFooter(@NonNull WritableByteChannel channel) {
}
}