package com.simplecity.amp_library.ui.modelviews;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import com.bignerdranch.android.multiselector.MultiSelector;
import com.bumptech.glide.Glide;
import com.simplecity.amp_library.R;
import com.simplecity.amp_library.ui.recyclerview.CustomSwappingHolder;
import com.simplecity.amp_library.ui.views.NonScrollImageButton;
import com.simplecity.amp_library.utils.DrawableUtils;
public abstract class MultiItemView<T> extends BaseAdaptableItem<T, MultiItemView.ViewHolder> {
protected MultiSelector multiSelector;
@Override
public int getLayoutResId() {
switch (getViewType()) {
case ViewType.ARTIST_LIST:
case ViewType.ALBUM_LIST:
return R.layout.list_item_image;
case ViewType.ARTIST_CARD:
case ViewType.ARTIST_CARD_LARGE:
case ViewType.ALBUM_CARD:
case ViewType.ALBUM_CARD_LARGE:
case ViewType.SUGGESTED_SONG:
return R.layout.grid_item_card;
case ViewType.ARTIST_PALETTE:
case ViewType.ALBUM_PALETTE:
return R.layout.grid_item_palette;
case ViewType.ARTIST_GRID:
case ViewType.ALBUM_GRID:
return R.layout.grid_item;
case ViewType.ARTIST_LIST_SMALL:
case ViewType.ALBUM_LIST_SMALL:
return R.layout.list_item_small;
}
throw new IllegalStateException("getLayoutResId() invalid ViewType. Class: " + getClass().getSimpleName());
}
@Override
public ViewHolder getViewHolder(ViewGroup parent) {
return new ViewHolder(LayoutInflater.from(parent.getContext())
.inflate(getLayoutResId(), parent, false), getViewType(), multiSelector);
}
@Override
public void recycle(ViewHolder holder) {
Glide.clear(holder.imageOne);
}
public static class ViewHolder extends CustomSwappingHolder {
public TextView lineOne;
public TextView lineTwo;
public ImageView imageOne;
public NonScrollImageButton overflowButton;
public View bottomContainer;
public ViewHolder(View itemView, @ViewType int viewType, MultiSelector multiSelector) {
super(itemView, multiSelector);
lineOne = (TextView) itemView.findViewById(R.id.line_one);
lineTwo = (TextView) itemView.findViewById(R.id.line_two);
imageOne = (ImageView) itemView.findViewById(R.id.image);
overflowButton = (NonScrollImageButton) itemView.findViewById(R.id.btn_overflow);
bottomContainer = itemView.findViewById(R.id.bottom_container);
if (viewType == ViewType.ARTIST_CARD
|| viewType == ViewType.ALBUM_CARD
|| viewType == ViewType.ARTIST_CARD_LARGE
|| viewType == ViewType.ALBUM_CARD_LARGE
|| viewType == ViewType.ARTIST_LIST
|| viewType == ViewType.ALBUM_LIST
|| viewType == ViewType.ARTIST_LIST_SMALL
|| viewType == ViewType.ALBUM_LIST_SMALL
|| viewType == ViewType.SUGGESTED_SONG) {
overflowButton.setImageDrawable(DrawableUtils.getBaseDrawable(itemView.getContext(), R.drawable.ic_overflow_white));
} else {
overflowButton.setImageDrawable(DrawableUtils.getWhiteDrawable(itemView.getContext(), R.drawable.ic_overflow_white));
}
if (viewType == ViewType.ARTIST_GRID
|| viewType == ViewType.ALBUM_GRID) {
bottomContainer.setBackgroundColor(0x90000000);
}
}
@Override
public String toString() {
return "MultiItemView.ViewHolder";
}
}
}