package com.airplayer.adapter;
import android.content.Context;
import android.graphics.drawable.AnimationDrawable;
import android.os.Build;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.airplayer.R;
import com.airplayer.model.Song;
import com.airplayer.util.StringUtils;
import com.facebook.drawee.view.SimpleDraweeView;
import com.squareup.picasso.Picasso;
import java.util.List;
/**
* Created by ZiyiTsang on 15/6/11.
* an abstract class, which is used by recycler view that shows a song list
*/
public class SongAdapter extends AirAdapter {
private boolean showImage = true;
public void showIconImage(boolean showImage) {
this.showImage = showImage;
}
private boolean showAnimation = false;
public void showEQAnimation(boolean isPlayList) {
this.showAnimation = isPlayList;
}
public SongAdapter(Context context, List<Song> list) {
super(context, list);
}
@Override
public AirItemViewHolder onCreateItemViewHolder(ViewGroup parent) {
return new SongItemViewHolder(
getLayoutInflater().inflate(R.layout.recycler_item_song, parent, false));
}
@Override
public void onBindItemViewHolder(AirItemViewHolder itemHolder, int position) {
if (itemHolder instanceof SongItemViewHolder) {
SongItemViewHolder songItemViewHolder = (SongItemViewHolder) itemHolder;
Song item = (Song) getList().get(position - 1);
songItemViewHolder.titleText.setText(item.getTitle());
songItemViewHolder.artistText.setText(item.getAlbum().getArtist().getName());
songItemViewHolder.durationText.setText(StringUtils.getFormatTime(item.getDuration()));
if (showImage) {
songItemViewHolder.draweeView.setImageURI(item.getAlbum().getAlbumArtUri());
} else {
int track = item.getTrack();
if (track != 0) {
int num = track % 1000;
String numText = "";
if (num != 0) numText = numText + num;
songItemViewHolder.trackNum.setText(numText);
}
}
if (showAnimation) {
if (item.isPlay()) {
AnimationDrawable animation;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
animation = (AnimationDrawable) getContext().getDrawable(R.drawable.animation_equalizer);
} else {
animation = (AnimationDrawable) getContext().getResources()
.getDrawable(R.drawable.animation_equalizer);
}
songItemViewHolder.playStateImage.setImageDrawable(animation);
if (item.isPause()) {
if (animation != null) animation.stop();
} else {
if (animation != null) animation.start();
}
} else {
songItemViewHolder.playStateImage.setImageDrawable(null);
}
}
}
}
public class SongItemViewHolder extends AirItemViewHolder {
SimpleDraweeView draweeView;
TextView titleText;
TextView artistText;
TextView durationText;
Toolbar listItem;
TextView trackNum;
ImageView playStateImage;
public SongItemViewHolder(View itemView) {
super(itemView);
draweeView = (SimpleDraweeView) itemView.findViewById(R.id.song_imageView);
titleText = (TextView) itemView.findViewById(R.id.song_title);
artistText = (TextView) itemView.findViewById(R.id.song_artist_name);
durationText = (TextView) itemView.findViewById(R.id.song_duration);
listItem = (Toolbar) itemView.findViewById(R.id.song_item);
trackNum = (TextView) itemView.findViewById(R.id.song_track_number);
playStateImage = (ImageView) itemView.findViewById(R.id.playing_state);
}
}
}