From 1fe33fb35141bb718a8123cfc9e66d13d10e404f Mon Sep 17 00:00:00 2001 From: ByteHamster Date: Tue, 16 Apr 2019 22:50:25 +0200 Subject: Fixed NetworkOnMainThreadException --- .../playback/PlaybackServiceTaskManager.java | 24 +++++++++++----------- 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'core/src/main/java/de') 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)); + } } -- cgit v1.2.3