summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/ChaptersFragment.java22
1 files changed, 21 insertions, 1 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/ChaptersFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/ChaptersFragment.java
index 8f2073ed0..4bd357f69 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/ChaptersFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/ChaptersFragment.java
@@ -5,6 +5,9 @@ import android.support.v4.app.ListFragment;
import android.view.View;
import android.widget.ListView;
+import java.util.List;
+import java.util.ListIterator;
+
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.adapter.ChaptersListAdapter;
import de.danoeh.antennapod.core.event.ServiceEvent;
@@ -13,7 +16,6 @@ import de.danoeh.antennapod.core.util.playback.Playable;
import de.danoeh.antennapod.core.util.playback.PlaybackController;
import de.greenrobot.event.EventBus;
-
public class ChaptersFragment extends ListFragment {
private static final String TAG = "ChaptersFragment";
private ChaptersListAdapter adapter;
@@ -67,6 +69,23 @@ public class ChaptersFragment extends ListFragment {
controller = null;
}
+ private void scrollTo(int position) {
+ getListView().setSelection(position);
+ }
+
+ private int getCurrentChapter(Playable media) {
+ int currentPosition = controller.getPosition();
+
+ List<Chapter> chapters = media.getChapters();
+ for (final ListIterator<Chapter> it = chapters.listIterator(); it.hasNext(); ) {
+ Chapter chapter = it.next();
+ if (chapter.getStart() > currentPosition) {
+ return it.previousIndex() - 1;
+ }
+ }
+ return chapters.size() - 1;
+ }
+
public void onEventMainThread(ServiceEvent event) {
if (event.action == ServiceEvent.Action.SERVICE_STARTED && controller != null) {
controller.init();
@@ -81,6 +100,7 @@ public class ChaptersFragment extends ListFragment {
setEmptyText(getString(R.string.no_chapters_label));
} else {
setEmptyText(null);
+ scrollTo(getCurrentChapter(media));
}
}
}