diff options
author | ByteHamster <info@bytehamster.com> | 2019-04-16 22:50:25 +0200 |
---|---|---|
committer | ByteHamster <info@bytehamster.com> | 2019-04-16 22:50:59 +0200 |
commit | 1fe33fb35141bb718a8123cfc9e66d13d10e404f (patch) | |
tree | 2cc3e489605c3fc1c100812dd7a1fca20cecd364 | |
parent | 99c5e9dc395f52f78c1c6aafdc678763e12545ca (diff) | |
download | AntennaPod-1fe33fb35141bb718a8123cfc9e66d13d10e404f.zip |
Fixed NetworkOnMainThreadException
-rw-r--r-- | core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceTaskManager.java | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceTaskManager.java b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceTaskManager.java index bfc75a902..0c0ee23c6 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceTaskManager.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/playback/PlaybackServiceTaskManager.java @@ -19,6 +19,9 @@ import de.danoeh.antennapod.core.feed.FeedItem; import de.danoeh.antennapod.core.storage.DBReader; import de.danoeh.antennapod.core.util.playback.Playable; import de.greenrobot.event.EventBus; +import io.reactivex.Completable; +import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.schedulers.Schedulers; /** @@ -262,18 +265,15 @@ public class PlaybackServiceTaskManager { cancelChapterLoader(); } - Runnable chapterLoader = () -> { - Log.d(TAG, "Chapter loader started"); - if (media.getChapters() == null) { - media.loadChapterMarks(); - if (!Thread.currentThread().isInterrupted() && media.getChapters() != null) { - callback.onChapterLoaded(media); - } - } - Log.d(TAG, "Chapter loader stopped"); - }; - chapterLoader = useMainThreadIfNecessary(chapterLoader); - chapterLoaderFuture = schedExecutor.submit(chapterLoader); + if (media.getChapters() == null) { + Completable.create(emitter -> { + media.loadChapterMarks(); + emitter.onComplete(); + }) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(() -> callback.onChapterLoaded(media)); + } } |