From 6dd9630bae6a5ab00a90872cb699e9deec463579 Mon Sep 17 00:00:00 2001 From: blackberrypineapple Date: Wed, 5 Jul 2023 07:09:38 +0000 Subject: [PATCH] Bugfix: crash on voice announcement if using imperial with meters Fixes #1626 --- .../announcement/VoiceAnnouncementUtilsTest.java | 14 ++++++++++++++ .../announcement/VoiceAnnouncementUtils.java | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) 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 079b978e6..1727c7af2 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/services/announcement/VoiceAnnouncementUtilsTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/services/announcement/VoiceAnnouncementUtilsTest.java @@ -207,6 +207,20 @@ public class VoiceAnnouncementUtilsTest { assertEquals("Total distance 1.1 miles. 1 hour. Average moving speed 1.1 miles per hour.", announcement); } + @Test + public void getAnnouncement_imperial_meter_speed_1() { + TrackStatistics stats = new TrackStatistics(); + stats.setTotalDistance(Distance.ofMile(1.1)); + stats.setTotalTime(Duration.ofHours(2).plusMinutes(5).plusSeconds(10)); + stats.setMovingTime(Duration.ofHours(1)); + + // when + String announcement = VoiceAnnouncementUtils.getAnnouncement(context, stats, UnitSystem.IMPERIAL_METER, true, null, null).toString(); + + // then + assertEquals("Total distance 1.1 miles. 1 hour. Average moving speed 1.1 miles per hour.", announcement); + } + @Test public void getAnnouncement_metric_speed_1() { TrackStatistics stats = new 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 b9d5d6124..c06ec5db8 100644 --- a/src/main/java/de/dennisguse/opentracks/services/announcement/VoiceAnnouncementUtils.java +++ b/src/main/java/de/dennisguse/opentracks/services/announcement/VoiceAnnouncementUtils.java @@ -52,7 +52,7 @@ class VoiceAnnouncementUtils { unitDistanceTTS = "kilometer"; unitSpeedTTS = "kilometer per hour"; } - case IMPERIAL_FEET -> { + case IMPERIAL_FEET, IMPERIAL_METER -> { perUnitStringId = R.string.voice_per_mile; distanceId = R.string.voiceDistanceMilesPlural; speedId = R.string.voiceSpeedMilesPerHourPlural;