summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java
diff options
context:
space:
mode:
authorTom Hennen <TomHennen@users.noreply.github.com>2016-01-21 16:27:04 -0500
committerTom Hennen <TomHennen@users.noreply.github.com>2016-01-21 16:27:04 -0500
commit1e90f1822d55562a3965ac1ae9b68f6444330bf7 (patch)
tree571c7de0bc0a278fdc5aec1b1bc5cf525528db84 /app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java
parent8ffe2caf3351d8000454ee6fda884e8ae001be0a (diff)
parent9f9ddad685e4291376fca35b420c07475571b789 (diff)
downloadAntennaPod-1e90f1822d55562a3965ac1ae9b68f6444330bf7.zip
Merge pull request #1561 from mfietz/redesign_audio_player
Audio player redesign (Part 2)
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.java85
1 files changed, 44 insertions, 41 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 a1667cce0..60a607179 100644
--- a/app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java
+++ b/app/src/main/java/de/danoeh/antennapod/fragment/CoverFragment.java
@@ -1,21 +1,21 @@
package de.danoeh.antennapod.fragment;
-import android.app.Activity;
-import android.content.Context;
+import android.graphics.Bitmap;
import android.os.Bundle;
import android.support.v4.app.Fragment;
+import android.support.v7.graphics.Palette;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
+import android.widget.TextView;
import com.bumptech.glide.Glide;
-import com.bumptech.glide.load.engine.DiskCacheStrategy;
+import com.bumptech.glide.request.animation.GlideAnimation;
+import com.bumptech.glide.request.target.BitmapImageViewTarget;
-import de.danoeh.antennapod.BuildConfig;
import de.danoeh.antennapod.R;
-import de.danoeh.antennapod.activity.AudioplayerActivity;
import de.danoeh.antennapod.activity.AudioplayerActivity.AudioplayerContentFragment;
import de.danoeh.antennapod.core.glide.ApGlideSettings;
import de.danoeh.antennapod.core.util.playback.Playable;
@@ -30,10 +30,11 @@ public class CoverFragment extends Fragment implements
private Playable media;
+ private View root;
+ private TextView txtvPodcastTitle;
+ private TextView txtvEpisodeTitle;
private ImageView imgvCover;
- private boolean viewCreated = false;
-
public static CoverFragment newInstance(Playable item) {
CoverFragment f = new CoverFragment();
if (item != null) {
@@ -59,38 +60,45 @@ public class CoverFragment extends Fragment implements
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
- View root = inflater.inflate(R.layout.cover_fragment, container, false);
+ root = inflater.inflate(R.layout.cover_fragment, container, false);
+ txtvPodcastTitle = (TextView) root.findViewById(R.id.txtvPodcastTitle);
+ txtvEpisodeTitle = (TextView) root.findViewById(R.id.txtvEpisodeTitle);
imgvCover = (ImageView) root.findViewById(R.id.imgvCover);
- imgvCover.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Activity activity = getActivity();
- if (activity != null && activity instanceof AudioplayerActivity) {
- ((AudioplayerActivity)activity).switchToLastFragment();
- }
- }
- });
- viewCreated = true;
return root;
}
private void loadMediaInfo() {
+ if(imgvCover == null) {
+ return;
+ }
if (media != null) {
- imgvCover.post(new Runnable() {
-
- @Override
- public void run() {
- Context c = getActivity();
- if (c != null) {
- Glide.with(c)
- .load(media.getImageUri())
- .placeholder(R.color.light_gray)
- .error(R.color.light_gray)
- .diskCacheStrategy(ApGlideSettings.AP_DISK_CACHE_STRATEGY)
- .dontAnimate()
- .into(imgvCover);
- }
- }
+ Log.d(TAG, "feed title: " + media.getFeedTitle());
+ Log.d(TAG, "episode title: " + media.getEpisodeTitle());
+ txtvPodcastTitle.setText(media.getFeedTitle());
+ txtvEpisodeTitle.setText(media.getEpisodeTitle());
+ imgvCover.post(() -> {
+ Glide.with(this)
+ .load(media.getImageUri())
+ .asBitmap()
+ .placeholder(R.color.light_gray)
+ .error(R.color.light_gray)
+ .diskCacheStrategy(ApGlideSettings.AP_DISK_CACHE_STRATEGY)
+ .dontAnimate()
+ .into(new BitmapImageViewTarget(imgvCover) {
+ @Override
+ public void onResourceReady(Bitmap bitmap, GlideAnimation anim) {
+ super.onResourceReady(bitmap, anim);
+ Palette.Builder builder = new Palette.Builder(bitmap);
+ builder.generate(palette -> {
+ Palette.Swatch swatch = palette.getMutedSwatch();
+ if(swatch != null) {
+ root.setBackgroundColor(swatch.getRgb());
+ txtvPodcastTitle.setTextColor(swatch.getTitleTextColor());
+ txtvEpisodeTitle.setTextColor(swatch.getBodyTextColor());
+ }
+ });
+ }
+ });
});
} else {
Log.w(TAG, "loadMediaInfo was called while media was null");
@@ -99,12 +107,10 @@ public class CoverFragment extends Fragment implements
@Override
public void onStart() {
- if (BuildConfig.DEBUG)
- Log.d(TAG, "On Start");
+ Log.d(TAG, "On Start");
super.onStart();
if (media != null) {
- if (BuildConfig.DEBUG)
- Log.d(TAG, "Loading media info");
+ Log.d(TAG, "Loading media info");
loadMediaInfo();
} else {
Log.w(TAG, "Unable to load media info: media was null");
@@ -114,10 +120,7 @@ public class CoverFragment extends Fragment implements
@Override
public void onDataSetChanged(Playable media) {
this.media = media;
- if (viewCreated) {
- loadMediaInfo();
- }
-
+ loadMediaInfo();
}
}