diff options
author | Tom Hennen <TomHennen@users.noreply.github.com> | 2016-03-22 17:26:56 -0400 |
---|---|---|
committer | Tom Hennen <TomHennen@users.noreply.github.com> | 2016-03-22 17:26:56 -0400 |
commit | 35a3734da8504dd03227ba6e2e00b3c7a3cb29ef (patch) | |
tree | 20b2b98d8b496775559b0d1aef7a5b49b397f0ec /core/src/main/java/de/danoeh | |
parent | c2a1644d07ab52b9e32a2599000e6751ce07fcc7 (diff) | |
parent | 7b3b7cc2ba2a44e859963b472a07c78052f7f0b9 (diff) | |
download | AntennaPod-35a3734da8504dd03227ba6e2e00b3c7a3cb29ef.zip |
Merge pull request #1801 from mfietz/issue/1800-parse-duration
Parse iTunes duration seconds as float
Diffstat (limited to 'core/src/main/java/de/danoeh')
-rw-r--r-- | core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/NSITunes.java | 12 | ||||
-rw-r--r-- | core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/NSMedia.java | 7 |
2 files changed, 10 insertions, 9 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/NSITunes.java b/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/NSITunes.java index dfd5cb74f..1c424c6b5 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/NSITunes.java +++ b/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/NSITunes.java @@ -61,26 +61,26 @@ public class NSITunes extends Namespace { state.getFeed().setAuthor(author); } } else if (DURATION.equals(localName)) { - String duration = state.getContentBuf().toString(); - if(TextUtils.isEmpty(duration)) { + String durationStr = state.getContentBuf().toString(); + if(TextUtils.isEmpty(durationStr)) { return; } - String[] parts = duration.trim().split(":"); + String[] parts = durationStr.trim().split(":"); try { int durationMs = 0; if (parts.length == 2) { durationMs += TimeUnit.MINUTES.toMillis(Long.parseLong(parts[0])) + - TimeUnit.SECONDS.toMillis(Long.parseLong(parts[1])); + TimeUnit.SECONDS.toMillis((long)Float.parseFloat(parts[1])); } else if (parts.length >= 3) { durationMs += TimeUnit.HOURS.toMillis(Long.parseLong(parts[0])) + TimeUnit.MINUTES.toMillis(Long.parseLong(parts[1])) + - TimeUnit.SECONDS.toMillis(Long.parseLong(parts[2])); + TimeUnit.SECONDS.toMillis((long)Float.parseFloat(parts[2])); } else { return; } state.getTempObjects().put(DURATION, durationMs); } catch (NumberFormatException e) { - Log.e(NSTAG, Log.getStackTraceString(e)); + Log.e(NSTAG, "Duration \"" + durationStr + "\" could not be parsed"); } } else if (SUBTITLE.equals(localName)) { String subtitle = state.getContentBuf().toString(); diff --git a/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/NSMedia.java b/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/NSMedia.java index 39f553818..7a8b2bc03 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/NSMedia.java +++ b/core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/NSMedia.java @@ -40,10 +40,11 @@ public class NSMedia extends Namespace { if (state.getCurrentItem() != null && state.getCurrentItem().getMedia() == null && url != null && validType) { long size = 0; + String sizeStr = attributes.getValue(SIZE); try { - size = Long.parseLong(attributes.getValue(SIZE)); + size = Long.parseLong(sizeStr); } catch (NumberFormatException e) { - Log.e(TAG, "Length attribute could not be parsed."); + Log.e(TAG, "Size \"" + sizeStr + "\" could not be parsed."); } int durationMs = 0; @@ -53,7 +54,7 @@ public class NSMedia extends Namespace { long duration = Long.parseLong(durationStr); durationMs = (int) TimeUnit.MILLISECONDS.convert(duration, TimeUnit.SECONDS); } catch (NumberFormatException e) { - Log.e(TAG, "Duration attribute could not be parsed"); + Log.e(TAG, "Duration \"" + durationStr + "\" could not be parsed"); } } FeedMedia media = new FeedMedia(state.getCurrentItem(), url, size, type); |