From 74f921e3a132941b3c31d39bcfd5ad9e7f03e165 Mon Sep 17 00:00:00 2001 From: Adrian Ulrich Date: Wed, 18 Jan 2017 21:11:14 +0100 Subject: [PATCH] use Long to calculate duration The duration is stored as 'ms', so the total sum might overflow --- .../android/vanilla/PreferencesMediaLibrary.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/ch/blinkenlights/android/vanilla/PreferencesMediaLibrary.java b/src/ch/blinkenlights/android/vanilla/PreferencesMediaLibrary.java index cfa1a92c..18f6dcc4 100644 --- a/src/ch/blinkenlights/android/vanilla/PreferencesMediaLibrary.java +++ b/src/ch/blinkenlights/android/vanilla/PreferencesMediaLibrary.java @@ -137,8 +137,8 @@ public class PreferencesMediaLibrary extends Fragment Integer songCount = MediaLibrary.getLibrarySize(context); mStatsTracks.setText(songCount.toString()); - Float playtime = calculateDuration(context) / 3600000F; - mStatsPlaytime.setText(playtime.toString()); + float playtime = calculateDuration(context) / 3600000F; + mStatsPlaytime.setText(String.format("%.1f", playtime)); } /** @@ -147,12 +147,12 @@ public class PreferencesMediaLibrary extends Fragment * @param context the context to use * @return the play time of the library in ms */ - public int calculateDuration(Context context) { - int duration = 0; + public long calculateDuration(Context context) { + long duration = 0; Cursor cursor = MediaLibrary.queryLibrary(context, MediaLibrary.TABLE_SONGS, new String[]{"SUM("+MediaLibrary.SongColumns.DURATION+")"}, null, null, null); if (cursor != null) { if (cursor.moveToFirst()) { - duration = cursor.getInt(0); + duration = cursor.getLong(0); } cursor.close(); }