[Android] Show cover and title in "now playing card" on TV
Geoffrey Métais
git at videolan.org
Tue Dec 22 10:44:13 CET 2015
vlc-android | branch: 1.7.x | Geoffrey Métais <geoffrey.metais at gmail.com> | Tue Dec 1 13:24:32 2015 +0100| [aed7dc63c94d9222ec17927e9467ec324f9397bc] | committer: Geoffrey Métais
Show cover and title in "now playing card" on TV
(cherry picked from commit 2c6aac35dd3d706761c0af9aa88d14bd703353ce)
Signed-off-by: Geoffrey Métais <geoffrey.metais at gmail.com>
> https://code.videolan.org/videolan/vlc-android/commit/aed7dc63c94d9222ec17927e9467ec324f9397bc
---
.../src/org/videolan/vlc/gui/tv/CardPresenter.java | 20 +++++++++++++++----
.../org/videolan/vlc/gui/tv/MainTvActivity.java | 23 +++++++++++++++-------
2 files changed, 32 insertions(+), 11 deletions(-)
diff --git a/vlc-android/flavors/tv/src/org/videolan/vlc/gui/tv/CardPresenter.java b/vlc-android/flavors/tv/src/org/videolan/vlc/gui/tv/CardPresenter.java
index 459ba49..81f4e57 100644
--- a/vlc-android/flavors/tv/src/org/videolan/vlc/gui/tv/CardPresenter.java
+++ b/vlc-android/flavors/tv/src/org/videolan/vlc/gui/tv/CardPresenter.java
@@ -32,13 +32,13 @@ import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
-import org.videolan.vlc.media.MediaDatabase;
-import org.videolan.vlc.media.MediaWrapper;
import org.videolan.vlc.R;
import org.videolan.vlc.gui.helpers.AsyncImageLoader;
import org.videolan.vlc.gui.helpers.AudioUtil;
-import org.videolan.vlc.gui.tv.browser.MusicFragment;
import org.videolan.vlc.gui.helpers.BitmapUtil;
+import org.videolan.vlc.gui.tv.browser.MusicFragment;
+import org.videolan.vlc.media.MediaDatabase;
+import org.videolan.vlc.media.MediaWrapper;
public class CardPresenter extends Presenter {
@@ -113,8 +113,9 @@ public class CardPresenter extends Presenter {
holder.updateCardViewImage(MediaWrapper);
} else if (item instanceof SimpleCard){
SimpleCard card = (SimpleCard) item;
+ Bitmap image = card.getImage();
holder.mCardView.setTitleText(card.getName());
- holder.updateCardViewImage(mRes.getDrawable(card.getImageId()));
+ holder.updateCardViewImage(image != null ? new BitmapDrawable(image) : mRes.getDrawable(card.getImageId()));
}else if (item instanceof String){
holder.mCardView.setTitleText((String) item);
holder.updateCardViewImage(sDefaultCardImage);
@@ -134,6 +135,13 @@ public class CardPresenter extends Presenter {
int id;
int imageId;
String name;
+ Bitmap image;
+
+ SimpleCard(int id, String name, Bitmap image){
+ this.id = id;
+ this.name = name;
+ this.image = image;
+ }
SimpleCard(int id, String name, int imageId){
this.id = id;
@@ -157,6 +165,10 @@ public class CardPresenter extends Presenter {
this.imageId = imageId;
}
+ public Bitmap getImage() {
+ return image;
+ }
+
public String getName() {
return name;
}
diff --git a/vlc-android/flavors/tv/src/org/videolan/vlc/gui/tv/MainTvActivity.java b/vlc-android/flavors/tv/src/org/videolan/vlc/gui/tv/MainTvActivity.java
index 056b3cc..1e485bd 100644
--- a/vlc-android/flavors/tv/src/org/videolan/vlc/gui/tv/MainTvActivity.java
+++ b/vlc-android/flavors/tv/src/org/videolan/vlc/gui/tv/MainTvActivity.java
@@ -47,20 +47,22 @@ import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ProgressBar;
-import org.videolan.vlc.media.MediaDatabase;
-import org.videolan.vlc.media.MediaLibrary;
-import org.videolan.vlc.media.MediaWrapper;
import org.videolan.vlc.PlaybackService;
import org.videolan.vlc.R;
-import org.videolan.vlc.media.Thumbnailer;
import org.videolan.vlc.VLCApplication;
+import org.videolan.vlc.gui.helpers.AudioUtil;
+import org.videolan.vlc.gui.preferences.PreferencesActivity;
import org.videolan.vlc.gui.tv.audioplayer.AudioPlayerActivity;
import org.videolan.vlc.gui.tv.browser.BaseTvActivity;
import org.videolan.vlc.gui.tv.browser.MusicFragment;
import org.videolan.vlc.gui.tv.browser.VerticalGridActivity;
-import org.videolan.vlc.gui.preferences.PreferencesActivity;
import org.videolan.vlc.gui.video.VideoListHandler;
import org.videolan.vlc.interfaces.IVideoBrowser;
+import org.videolan.vlc.media.MediaDatabase;
+import org.videolan.vlc.media.MediaLibrary;
+import org.videolan.vlc.media.MediaUtils;
+import org.videolan.vlc.media.MediaWrapper;
+import org.videolan.vlc.media.Thumbnailer;
import org.videolan.vlc.util.AndroidDevices;
import org.videolan.vlc.util.Permissions;
import org.videolan.vlc.util.VLCInstance;
@@ -356,8 +358,15 @@ public class MainTvActivity extends BaseTvActivity implements IVideoBrowser, OnI
//Music sections
mCategoriesAdapter = new ArrayObjectAdapter(new CardPresenter(mContext));
final HeaderItem musicHeader = new HeaderItem(HEADER_CATEGORIES, getString(R.string.audio));
- if (mService != null && mService.hasMedia() && !mService.canSwitchToVideo())
- mCategoriesAdapter.add(new CardPresenter.SimpleCard(MusicFragment.CATEGORY_NOW_PLAYING, getString(R.string.music_now_playing), R.drawable.ic_nowplaying_big));
+ if (mService != null && mService.hasMedia() && !mService.canSwitchToVideo()) {
+ MediaWrapper mw = mService.getCurrentMediaWrapper();
+ String display = MediaUtils.getMediaTitle(mw) + " - " + MediaUtils.getMediaReferenceArtist(MainTvActivity.this, mw);
+ Bitmap cover = AudioUtil.getCover(MainTvActivity.this, mw, VLCApplication.getAppResources().getDimensionPixelSize(R.dimen.grid_card_thumb_width));
+ if (cover != null)
+ mCategoriesAdapter.add(new CardPresenter.SimpleCard(MusicFragment.CATEGORY_NOW_PLAYING, display, cover));
+ else
+ mCategoriesAdapter.add(new CardPresenter.SimpleCard(MusicFragment.CATEGORY_NOW_PLAYING, display, R.drawable.ic_nowplaying_big));
+ }
mCategoriesAdapter.add(new CardPresenter.SimpleCard(MusicFragment.CATEGORY_ARTISTS, getString(R.string.artists), R.drawable.ic_artist_big));
mCategoriesAdapter.add(new CardPresenter.SimpleCard(MusicFragment.CATEGORY_ALBUMS, getString(R.string.albums), R.drawable.ic_album_big));
mCategoriesAdapter.add(new CardPresenter.SimpleCard(MusicFragment.CATEGORY_GENRES, getString(R.string.genres), R.drawable.ic_genre_big));
More information about the Android
mailing list