summaryrefslogtreecommitdiff
path: root/src/de
diff options
context:
space:
mode:
authordaniel oeh <daniel.oeh@gmail.com>2012-11-06 22:28:42 +0100
committerdaniel oeh <daniel.oeh@gmail.com>2012-11-06 22:28:42 +0100
commit8297d03ef8b4a38d1bc385e6efa4a26dab8cfcc4 (patch)
treebbd2282607ddf0c7b90e4cb7fd0c10aa90d5950f /src/de
parent08349087ca23eb20b7eb5da748ccf7144841deae (diff)
downloadAntennaPod-8297d03ef8b4a38d1bc385e6efa4a26dab8cfcc4.zip
Ignore invalid chapters
Diffstat (limited to 'src/de')
-rw-r--r--src/de/danoeh/antennapod/activity/AudioplayerActivity.java2
-rw-r--r--src/de/danoeh/antennapod/adapter/ChapterListAdapter.java40
2 files changed, 40 insertions, 2 deletions
diff --git a/src/de/danoeh/antennapod/activity/AudioplayerActivity.java b/src/de/danoeh/antennapod/activity/AudioplayerActivity.java
index 8d0b4a0f5..d6299e602 100644
--- a/src/de/danoeh/antennapod/activity/AudioplayerActivity.java
+++ b/src/de/danoeh/antennapod/activity/AudioplayerActivity.java
@@ -140,7 +140,7 @@ public class AudioplayerActivity extends MediaplayerActivity {
};
sCChapterFragment.setListAdapter(new ChapterListAdapter(
- activity, 0, media.getItem().getChapters()));
+ activity, 0, media.getItem().getChapters(), media));
return sCChapterFragment;
default:
diff --git a/src/de/danoeh/antennapod/adapter/ChapterListAdapter.java b/src/de/danoeh/antennapod/adapter/ChapterListAdapter.java
index 16a868437..9357d0659 100644
--- a/src/de/danoeh/antennapod/adapter/ChapterListAdapter.java
+++ b/src/de/danoeh/antennapod/adapter/ChapterListAdapter.java
@@ -21,15 +21,21 @@ import android.widget.ArrayAdapter;
import android.widget.TextView;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.feed.Chapter;
+import de.danoeh.antennapod.feed.FeedMedia;
import de.danoeh.antennapod.util.Converter;
public class ChapterListAdapter extends ArrayAdapter<Chapter> {
private static final String TAG = "ChapterListAdapter";
+ private List<Chapter> chapters;
+ private FeedMedia media;
+
public ChapterListAdapter(Context context, int textViewResourceId,
- List<Chapter> objects) {
+ List<Chapter> objects, FeedMedia media) {
super(context, textViewResourceId, objects);
+ this.chapters = objects;
+ this.media = media;
}
@Override
@@ -181,4 +187,36 @@ public class ChapterListAdapter extends ArrayAdapter<Chapter> {
}
};
+
+ @Override
+ public int getCount() {
+ // ignore invalid chapters
+ int counter = 0;
+ for (Chapter chapter : chapters) {
+ if (!ignoreChapter(chapter)) {
+ counter++;
+ }
+ }
+ return counter;
+ }
+
+ private boolean ignoreChapter(Chapter c) {
+ return media.getDuration() > 0 && media.getDuration() < c.getStart();
+ }
+
+ @Override
+ public Chapter getItem(int position) {
+ int i = 0;
+ for (Chapter chapter : chapters) {
+ if (!ignoreChapter(chapter)) {
+ if (i == position) {
+ return chapter;
+ } else {
+ i++;
+ }
+ }
+ }
+ return super.getItem(position);
+ }
+
}