From 8f9b07dcb438940532f15b0d9d01813229173c43 Mon Sep 17 00:00:00 2001 From: Jimmy Shih Date: Wed, 27 Nov 2013 12:50:26 -0800 Subject: [PATCH] Bug fix, use Math.round to convert double to long --- .../mytracks/services/tasks/AnnouncementPeriodicTask.java | 4 ++-- .../com/google/android/apps/mytracks/util/StringUtils.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/MyTracks/src/com/google/android/apps/mytracks/services/tasks/AnnouncementPeriodicTask.java b/MyTracks/src/com/google/android/apps/mytracks/services/tasks/AnnouncementPeriodicTask.java index 6af09a8e8..48e648949 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/services/tasks/AnnouncementPeriodicTask.java +++ b/MyTracks/src/com/google/android/apps/mytracks/services/tasks/AnnouncementPeriodicTask.java @@ -248,8 +248,8 @@ public class AnnouncementPeriodicTask implements PeriodicTask { } else { speed = speed == 0 ? 0.0 : 1 / speed; int paceId = metricUnits ? R.string.voice_pace_per_kilometer : R.string.voice_pace_per_mile; - long time = (long) (speed * UnitConversions.HR_TO_MIN * UnitConversions.MIN_TO_S - * UnitConversions.S_TO_MS); + long time = Math.round( + speed * UnitConversions.HR_TO_MIN * UnitConversions.MIN_TO_S * UnitConversions.S_TO_MS); rate = context.getString(paceId, getAnnounceTime(time)); } diff --git a/MyTracks/src/com/google/android/apps/mytracks/util/StringUtils.java b/MyTracks/src/com/google/android/apps/mytracks/util/StringUtils.java index be919f652..5c22d1333 100644 --- a/MyTracks/src/com/google/android/apps/mytracks/util/StringUtils.java +++ b/MyTracks/src/com/google/android/apps/mytracks/util/StringUtils.java @@ -314,7 +314,7 @@ public class StringUtils { if (fractional != null) { // Regex ensures fractional part is in (0,1) float fractionalSeconds = Float.parseFloat(fractional); - long fractionalMillis = (long) (fractionalSeconds * UnitConversions.S_TO_MS); + long fractionalMillis = Math.round(fractionalSeconds * UnitConversions.S_TO_MS); time += fractionalMillis; }