diff options
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod')
-rw-r--r-- | app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java | 36 |
1 files changed, 33 insertions, 3 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java index 94919e32d..12bae2f51 100644 --- a/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java +++ b/app/src/main/java/de/danoeh/antennapod/activity/AudioplayerActivity.java @@ -533,16 +533,46 @@ public class AudioplayerActivity extends MediaplayerActivity implements NavDrawe super(fm); } + private CoverFragment coverFragment; + private ItemDescriptionFragment itemDescriptionFragment; + private ChaptersFragment chaptersFragment; + + public void onMediaChanged(Playable media) { + if(coverFragment != null) { + coverFragment.onMediaChanged(media); + } + if(itemDescriptionFragment != null) { + itemDescriptionFragment.onMediaChanged(media); + } + if(chaptersFragment != null) { + chaptersFragment.onMediaChanged(media); + } + } + + @Nullable + public ChaptersFragment getChaptersFragment() { + return chaptersFragment; + } + @Override public Fragment getItem(int position) { Log.d(TAG, "getItem(" + position + ")"); switch (position) { case POS_COVER: - return CoverFragment.newInstance(media); + if(coverFragment == null) { + coverFragment = CoverFragment.newInstance(media); + } + return coverFragment; case POS_DESCR: - return ItemDescriptionFragment.newInstance(media, true, true); + if(itemDescriptionFragment == null) { + itemDescriptionFragment = ItemDescriptionFragment.newInstance(media, true, true); + } + return itemDescriptionFragment; case POS_CHAPTERS: - return ChaptersFragment.newInstance(media, controller); + if(chaptersFragment == null) { + chaptersFragment = ChaptersFragment.newInstance(media, controller); + } + return chaptersFragment; default: return null; } |