Voice Announcements remove "point zero"

Check if total distance is a whole number to prevent TTS reading out "point zero" unnecessarily
This commit is contained in:
griffinonacid
2024-01-10 20:15:12 +01:00
committed by Dennis Guse
parent 4a6f652663
commit eed9680699
@@ -186,12 +186,13 @@ class VoiceAnnouncementUtils {
TtsSpan.MeasureBuilder measureBuilder = new TtsSpan.MeasureBuilder()
.setUnit(unit);
if (precision == 0) {
// Round before extracting integral and decimal parts
double roundedNumber = Math.round(Math.pow(10, precision) * number) / Math.pow(10.0, precision);
long integerPart = (long) roundedNumber;
if (precision == 0 || (roundedNumber - integerPart) == 0) {
measureBuilder.setNumber((long)number);
} else {
// Round before extracting integral and decimal parts
double roundedNumber = Math.round(Math.pow(10, precision) * number) / Math.pow(10.0, precision);
long integerPart = (long) roundedNumber;
// Extract the decimal part
String fractionalPart = String.format("%." + precision + "f", (roundedNumber - integerPart)).substring(2);
measureBuilder.setIntegerPart(integerPart)