summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod
diff options
context:
space:
mode:
authorMartin Fietz <Martin.Fietz@gmail.com>2019-05-19 12:14:56 +0200
committerGitHub <noreply@github.com>2019-05-19 12:14:56 +0200
commit5db139958aaf674de06fa0b6e47084e81e375e63 (patch)
tree98eeb56bda2908fb1ab9ad08a68bc8569d902162 /app/src/main/java/de/danoeh/antennapod
parent6e29c37360c6e6c630d53c0e6767ff05879383e8 (diff)
parent419c10632bf1df3f34ceb09a689650ec70550593 (diff)
downloadAntennaPod-5db139958aaf674de06fa0b6e47084e81e375e63.zip
Merge pull request #3162 from andersonvom/2853-chapter-scrolling
Scroll to chapter currently being played
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod')
-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 c4b82459a..ffec47dba 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/ChaptersFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/ChaptersFragment.java
@@ -6,6 +6,9 @@ import android.util.Log;
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;
@@ -18,7 +21,6 @@ import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;
-
public class ChaptersFragment extends ListFragment {
private static final String TAG = "ChaptersFragment";
private ChaptersListAdapter adapter;
@@ -79,6 +81,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();
@@ -111,6 +130,7 @@ public class ChaptersFragment extends ListFragment {
setEmptyText(getString(R.string.no_chapters_label));
} else {
setEmptyText(null);
+ scrollTo(getCurrentChapter(media));
}
}
}