/*
This file is part of Subsonic.
Subsonic is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Subsonic is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Subsonic. If not, see <http://www.gnu.org/licenses/>.
Copyright 2009 (C) Sindre Mehus
*/
package github.daneren2005.dsub.view;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.RatingBar;
import android.widget.TextView;
import github.daneren2005.dsub.R;
import github.daneren2005.dsub.domain.MusicDirectory;
import github.daneren2005.dsub.util.FileUtil;
import github.daneren2005.dsub.util.ImageLoader;
import github.daneren2005.dsub.util.Util;
import java.io.File;
public class AlbumView extends UpdateView2<MusicDirectory.Entry, ImageLoader> {
private static final String TAG = AlbumView.class.getSimpleName();
private File file;
private TextView titleView;
private TextView artistView;
private boolean showArtist = true;
private String coverArtId;
public AlbumView(Context context, boolean cell) {
super(context);
if(cell) {
LayoutInflater.from(context).inflate(R.layout.album_cell_item, this, true);
} else {
LayoutInflater.from(context).inflate(R.layout.album_list_item, this, true);
}
coverArtView = findViewById(R.id.album_coverart);
titleView = (TextView) findViewById(R.id.album_title);
artistView = (TextView) findViewById(R.id.album_artist);
ratingBar = (RatingBar) findViewById(R.id.album_rating);
ratingBar.setFocusable(false);
starButton = (ImageButton) findViewById(R.id.album_star);
starButton.setFocusable(false);
moreButton = (ImageView) findViewById(R.id.item_more);
checkable = true;
}
public void setShowArtist(boolean showArtist) {
this.showArtist = showArtist;
}
protected void setObjectImpl(MusicDirectory.Entry album, ImageLoader imageLoader) {
titleView.setText(album.getAlbumDisplay());
String artist = "";
if(showArtist) {
artist = album.getArtist();
if (artist == null) {
artist = "";
}
if (album.getYear() != null) {
artist += " - " + album.getYear();
}
} else if(album.getYear() != null) {
artist += album.getYear();
}
artistView.setText(album.getArtist() == null ? "" : artist);
onUpdateImageView();
file = null;
}
public void onUpdateImageView() {
imageTask = item2.loadImage(coverArtView, item, false, true);
coverArtId = item.getCoverArt();
}
@Override
protected void updateBackground() {
if(file == null) {
file = FileUtil.getAlbumDirectory(context, item);
}
exists = file.exists();
isStarred = item.isStarred();
isRated = item.getRating();
}
@Override
public void update() {
super.update();
if(!Util.equals(item.getCoverArt(), coverArtId)) {
onUpdateImageView();
}
}
public MusicDirectory.Entry getEntry() {
return item;
}
public File getFile() {
return file;
}
}