summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java93
1 files changed, 45 insertions, 48 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java b/app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java
index ef65a5755..88d748c5a 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java
@@ -13,37 +13,24 @@ import com.bumptech.glide.Glide;
import com.bumptech.glide.request.RequestOptions;
import de.danoeh.antennapod.R;
-import de.danoeh.antennapod.activity.MediaplayerInfoActivity.MediaplayerInfoContentFragment;
+import de.danoeh.antennapod.core.event.ServiceEvent;
import de.danoeh.antennapod.core.glide.ApGlideSettings;
import de.danoeh.antennapod.core.util.playback.Playable;
+import de.danoeh.antennapod.core.util.playback.PlaybackController;
+import de.greenrobot.event.EventBus;
/**
* Displays the cover and the title of a FeedItem.
*/
-public class CoverFragment extends Fragment implements MediaplayerInfoContentFragment {
+public class CoverFragment extends Fragment {
private static final String TAG = "CoverFragment";
- private Playable media;
-
private View root;
private TextView txtvPodcastTitle;
private TextView txtvEpisodeTitle;
private ImageView imgvCover;
-
- public static CoverFragment newInstance(Playable item) {
- CoverFragment f = new CoverFragment();
- f.media = item;
- return f;
- }
-
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- if (media == null) {
- Log.e(TAG, TAG + " was called without media");
- }
- }
+ private PlaybackController controller;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
@@ -57,31 +44,20 @@ public class CoverFragment extends Fragment implements MediaplayerInfoContentFra
}
private void loadMediaInfo() {
- if (media != null) {
- txtvPodcastTitle.setText(media.getFeedTitle());
- txtvEpisodeTitle.setText(media.getEpisodeTitle());
- Glide.with(this)
- .load(media.getImageLocation())
- .apply(new RequestOptions()
- .diskCacheStrategy(ApGlideSettings.AP_DISK_CACHE_STRATEGY)
- .dontAnimate()
- .fitCenter())
- .into(imgvCover);
- } else {
+ Playable media = controller.getMedia();
+ if (media == null) {
Log.w(TAG, "loadMediaInfo was called while media was null");
+ return;
}
- }
-
- @Override
- public void onStart() {
- Log.d(TAG, "On Start");
- super.onStart();
- if (media != null) {
- Log.d(TAG, "Loading media info");
- loadMediaInfo();
- } else {
- Log.w(TAG, "Unable to load media info: media was null");
- }
+ txtvPodcastTitle.setText(media.getFeedTitle());
+ txtvEpisodeTitle.setText(media.getEpisodeTitle());
+ Glide.with(this)
+ .load(media.getImageLocation())
+ .apply(new RequestOptions()
+ .diskCacheStrategy(ApGlideSettings.AP_DISK_CACHE_STRATEGY)
+ .dontAnimate()
+ .fitCenter())
+ .into(imgvCover);
}
@Override
@@ -92,14 +68,35 @@ public class CoverFragment extends Fragment implements MediaplayerInfoContentFra
}
@Override
- public void onMediaChanged(Playable media) {
- if(this.media == media) {
- return;
- }
- this.media = media;
- if (isAdded()) {
- loadMediaInfo();
+ public void onStart() {
+ super.onStart();
+ controller = new PlaybackController(getActivity(), false) {
+ @Override
+ public boolean loadMediaInfo() {
+ if (getMedia() == null) {
+ return false;
+ }
+ CoverFragment.this.loadMediaInfo();
+ return true;
+ }
+
+ };
+ controller.init();
+ loadMediaInfo();
+ EventBus.getDefault().register(this);
+ }
+
+ public void onEventMainThread(ServiceEvent event) {
+ if (event.action == ServiceEvent.Action.SERVICE_STARTED && controller != null) {
+ controller.init();
}
}
+ @Override
+ public void onStop() {
+ super.onStop();
+ EventBus.getDefault().unregister(this);
+ controller.release();
+ controller = null;
+ }
}