Compare commits

..

5 Commits

Author SHA1 Message Date
Dennis Guse 7e6237de3a Release: v3.17.1 2021-04-17 22:40:05 +02:00
Román Martínez 772dad4837 announce called after getting recordingTrackId. Fixed a potencial race condition. 2021-04-17 22:26:23 +02:00
Román Martínez 99126fa357 Distance interval bugfixed: interval options are km/mi values. 2021-04-17 21:16:32 +02:00
Román Martínez b2c91d7592 registerListener for barometric sensor uses SENSOR_DELAY_FASTEST instead of nanoseconds. Fixes #714. 2021-04-17 19:34:05 +02:00
Rodrigo Oliveira 3c5a1be16b Fix #711: declare TextToSpeech.Engine.INTENT_ACTION_TTS_SERVICE on queries element
This enables the use of TextToSpeech engine on Android 11.
Ref.: https://developer.android.com/reference/android/speech/tts/TextToSpeech
2021-04-17 19:31:26 +02:00
7 changed files with 37 additions and 14 deletions
+2 -2
View File
@@ -51,8 +51,8 @@ android {
defaultConfig {
applicationId "de.dennisguse.opentracks"
versionCode 3981
versionName "v3.17.0"
versionCode 3986
versionName "v3.17.1"
buildConfigField "String", "VERSION_NAME_FULL", "\"${getVersionName()}\""
@@ -0,0 +1,7 @@
v3.17.1: OpenTracks
Bugfix:
- Interval length in meters instead of kilometers (introduced in v3.17.0)
- Elevation gain/loss not recorded (introduced in v3.17.0)
- Announcements not working on Android 11
+6
View File
@@ -351,4 +351,10 @@ limitations under the License.
android:exported="false"
android:permission="android.permission.BIND_JOB_SERVICE" />
</application>
<queries>
<intent>
<action android:name="android.intent.action.TTS_SERVICE" />
</intent>
</queries>
</manifest>
@@ -20,9 +20,13 @@ public class Distance {
return of(distance_mile * UnitConversions.MI_TO_M);
}
public static Distance ofKilometer(double distance_km) {
return of(distance_km * UnitConversions.KM_TO_M);
}
public static Distance one(boolean metricUnit) {
if (metricUnit) {
return Distance.of(1);
return Distance.ofKilometer(1);
} else {
return Distance.ofMile(1);
}
@@ -40,7 +40,7 @@ public class AltitudeSumManager implements SensorEventListener {
Log.w(TAG, "No pressure sensor available.");
isConnected = false;
} else {
isConnected = sensorManager.registerListener(this, pressureSensor, (int) SAMPLING_RATE.toNanos());
isConnected = sensorManager.registerListener(this, pressureSensor, SensorManager.SENSOR_DELAY_FASTEST);
}
lastAcceptedPressureValue_hPa = Float.NaN;
@@ -146,9 +146,9 @@ public class AnnouncementPeriodicTask implements PeriodicTask {
@Override
public void onTrackRecordingId(Track.Id trackId) {
recordingTrackId = trackId;
announce(trackRecordingService.getTrackStatistics());
}
});
announce(trackRecordingService.getTrackStatistics());
}
/**
@@ -181,7 +181,11 @@ public class AnnouncementPeriodicTask implements PeriodicTask {
}
Track track = contentProviderUtils.getTrack(recordingTrackId);
String category = track != null ? track.getCategory() : "";
if (track == null) {
Log.i(TAG, "It doesn't exists a track with trackid = " + recordingTrackId);
return;
}
String category = track.getCategory();
//TODO Querying all TrackPoints all the time is inefficient; use TrackDataHub or something else.
TrackPointIterator trackPointIterator = contentProviderUtils.getTrackPointLocationIterator(track.getId(), null);
@@ -35,7 +35,7 @@ public class IntervalStatisticsModel extends AndroidViewModel {
}
intervalsLiveData = new MutableLiveData<>();
distanceInterval = interval.getValue();
distanceInterval = interval.getDistance(metricUnits);
loadIntervalStatistics();
}
return intervalsLiveData;
@@ -73,7 +73,7 @@ public class IntervalStatisticsModel extends AndroidViewModel {
interval = IntervalOption.OPTION_1;
}
distanceInterval = interval.getValue();
distanceInterval = interval.getDistance(metricUnits);
loadIntervalStatistics();
}
}
@@ -91,19 +91,21 @@ public class IntervalStatisticsModel extends AndroidViewModel {
OPTION_20(20),
OPTION_50(50);
private final Distance value;
private final int multiplier;
IntervalOption(int value) {
this.value = Distance.of(value);
IntervalOption(int multiplier) {
this.multiplier = multiplier;
}
public Distance getValue() {
return value;
public Distance getDistance(boolean metricUnits) {
return Distance
.one(metricUnits)
.multipliedBy(multiplier);
}
@Override
public String toString() {
return "" + (int) value.toM(); //TODO Somehow IntervalsFragment relies on a parsable Integer.
return "" + multiplier; //TODO Somehow IntervalsFragment relies on a parsable Integer.
}
}
}