diff options
author | daniel oeh <daniel.oeh@gmail.com> | 2012-11-06 22:28:42 +0100 |
---|---|---|
committer | daniel oeh <daniel.oeh@gmail.com> | 2012-11-06 22:28:42 +0100 |
commit | 8297d03ef8b4a38d1bc385e6efa4a26dab8cfcc4 (patch) | |
tree | bbd2282607ddf0c7b90e4cb7fd0c10aa90d5950f /src/de/danoeh | |
parent | 08349087ca23eb20b7eb5da748ccf7144841deae (diff) | |
download | AntennaPod-8297d03ef8b4a38d1bc385e6efa4a26dab8cfcc4.zip |
Ignore invalid chapters
Diffstat (limited to 'src/de/danoeh')
-rw-r--r-- | src/de/danoeh/antennapod/activity/AudioplayerActivity.java | 2 | ||||
-rw-r--r-- | src/de/danoeh/antennapod/adapter/ChapterListAdapter.java | 40 |
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); + } + } |