2017-08-29 02:38:37 +02:00
|
|
|
package org.schabi.newpipe.playlist;
|
|
|
|
|
|
|
|
import android.text.TextUtils;
|
|
|
|
import android.view.LayoutInflater;
|
|
|
|
import android.view.View;
|
|
|
|
import android.view.ViewGroup;
|
|
|
|
|
2017-10-03 08:38:46 +02:00
|
|
|
import com.nostra13.universalimageloader.core.DisplayImageOptions;
|
|
|
|
import com.nostra13.universalimageloader.core.ImageLoader;
|
2017-08-29 02:38:37 +02:00
|
|
|
|
2017-10-03 08:38:46 +02:00
|
|
|
import org.schabi.newpipe.R;
|
|
|
|
import org.schabi.newpipe.util.Localization;
|
2017-08-29 02:38:37 +02:00
|
|
|
|
|
|
|
|
2017-08-31 19:07:18 +02:00
|
|
|
public class PlayQueueItemBuilder {
|
2017-08-29 02:38:37 +02:00
|
|
|
|
2017-08-31 19:07:18 +02:00
|
|
|
private static final String TAG = PlayQueueItemBuilder.class.toString();
|
2017-08-29 02:38:37 +02:00
|
|
|
|
|
|
|
public interface OnSelectedListener {
|
2017-10-03 08:38:46 +02:00
|
|
|
void selected(PlayQueueItem item);
|
2017-08-29 02:38:37 +02:00
|
|
|
}
|
|
|
|
|
2017-10-03 08:38:46 +02:00
|
|
|
private OnSelectedListener onItemClickListener;
|
2017-08-29 02:38:37 +02:00
|
|
|
|
2017-08-31 19:07:18 +02:00
|
|
|
public PlayQueueItemBuilder() {}
|
2017-08-29 02:38:37 +02:00
|
|
|
|
|
|
|
public void setOnSelectedListener(OnSelectedListener listener) {
|
2017-10-03 08:38:46 +02:00
|
|
|
this.onItemClickListener = listener;
|
2017-08-29 02:38:37 +02:00
|
|
|
}
|
|
|
|
|
2017-08-29 17:00:11 +02:00
|
|
|
public void buildStreamInfoItem(PlayQueueItemHolder holder, final PlayQueueItem item) {
|
2017-08-29 02:38:37 +02:00
|
|
|
if (!TextUtils.isEmpty(item.getTitle())) holder.itemVideoTitleView.setText(item.getTitle());
|
2017-10-03 08:38:46 +02:00
|
|
|
if (!TextUtils.isEmpty(item.getUploader())) holder.itemAdditionalDetailsView.setText(item.getUploader());
|
2017-08-29 02:38:37 +02:00
|
|
|
|
|
|
|
if (item.getDuration() > 0) {
|
2017-10-03 08:38:46 +02:00
|
|
|
holder.itemDurationView.setText(Localization.getDurationString(item.getDuration()));
|
2017-08-29 02:38:37 +02:00
|
|
|
} else {
|
|
|
|
holder.itemDurationView.setVisibility(View.GONE);
|
|
|
|
}
|
|
|
|
|
2017-10-03 08:38:46 +02:00
|
|
|
ImageLoader.getInstance().displayImage(item.getThumbnailUrl(), holder.itemThumbnailView, IMAGE_OPTIONS);
|
|
|
|
|
2017-08-29 02:38:37 +02:00
|
|
|
holder.itemRoot.setOnClickListener(new View.OnClickListener() {
|
|
|
|
@Override
|
|
|
|
public void onClick(View view) {
|
2017-10-03 08:38:46 +02:00
|
|
|
if (onItemClickListener != null) {
|
|
|
|
onItemClickListener.selected(item);
|
2017-08-29 02:38:37 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
2017-10-03 08:38:46 +02:00
|
|
|
private static final DisplayImageOptions IMAGE_OPTIONS =
|
|
|
|
new DisplayImageOptions.Builder()
|
|
|
|
.cacheInMemory(true)
|
|
|
|
.showImageOnFail(R.drawable.dummy_thumbnail)
|
|
|
|
.showImageForEmptyUri(R.drawable.dummy_thumbnail)
|
|
|
|
.showImageOnLoading(R.drawable.dummy_thumbnail)
|
|
|
|
.build();
|
2017-08-29 02:38:37 +02:00
|
|
|
}
|