summaryrefslogtreecommitdiff
path: root/core/src/main/java/de
diff options
context:
space:
mode:
authorTom Hennen <TomHennen@users.noreply.github.com>2016-03-22 17:26:56 -0400
committerTom Hennen <TomHennen@users.noreply.github.com>2016-03-22 17:26:56 -0400
commit35a3734da8504dd03227ba6e2e00b3c7a3cb29ef (patch)
tree20b2b98d8b496775559b0d1aef7a5b49b397f0ec /core/src/main/java/de
parentc2a1644d07ab52b9e32a2599000e6751ce07fcc7 (diff)
parent7b3b7cc2ba2a44e859963b472a07c78052f7f0b9 (diff)
downloadAntennaPod-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')
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/NSITunes.java12
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/syndication/namespace/NSMedia.java7
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);