package com.metis.coursepart.adapter.holder;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.metis.base.manager.DisplayManager;
import com.metis.base.module.User;
import com.metis.base.utils.Log;
import com.metis.base.widget.adapter.holder.AbsViewHolder;
import com.metis.coursepart.ActivityDispatcher;
import com.metis.coursepart.R;
import com.metis.coursepart.activity.GalleryItemDetailActivity;
import com.metis.coursepart.adapter.GalleryAdapter;
import com.metis.coursepart.module.GalleryItem;
import com.metis.coursepart.adapter.delegate.GalleryItemDelegate;
import com.metis.coursepart.module.KeyWord;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.FailReason;
import com.nostra13.universalimageloader.core.listener.ImageLoadingListener;
import java.security.Key;
import java.util.List;
/**
* Created by Beak on 2015/7/8.
*/
public class GalleryItemHolder extends AbsViewHolder<GalleryItemDelegate> {
private static final String TAG = GalleryItemHolder.class.getSimpleName();
public ImageView thumbIv;
public TextView tagTv, sourceTv, countTv;
public GalleryItemHolder(View itemView) {
super(itemView);
thumbIv = (ImageView)itemView.findViewById(R.id.gallery_item_thumb);
tagTv = (TextView)itemView.findViewById(R.id.gallery_item_tag);
sourceTv = (TextView)itemView.findViewById(R.id.gallery_item_source);
countTv = (TextView)itemView.findViewById(R.id.gallery_item_read_count);
}
@Override
public void bindData(final Context context, final GalleryItemDelegate galleryItemDelegate, final RecyclerView.Adapter adapter, final int position) {
final GalleryItem item = galleryItemDelegate.getSource();
KeyWord[] keyWordList = item.keyWordList;
if (keyWordList != null/* && !keyWordList.isEmpty()*/) {
final int length = keyWordList.length;
StringBuilder builder = new StringBuilder();
for (int i = 0; i < length; i++) {
KeyWord word = keyWordList[i];
if (word == null) {
continue;
}
builder.append(word.keyWordName + " ");
}
tagTv.setText(builder);
} else {
tagTv.setText("");
}
sourceTv.setText(item.source);
/*final User user = item.studio;
if (user != null) {
sourceTv.setText(user.name);
sourceTv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
com.metis.base.ActivityDispatcher.userActivity(context, user.userId);
}
});
} else {
sourceTv.setText("");
sourceTv.setOnClickListener(null);
}*/
countTv.setText(context.getString(R.string.gallery_read_count, item.viewCount));
if (galleryItemDelegate.delegateWidth >= 0 && galleryItemDelegate.delegateHeight >= 0) {
manageLayoutParams(context, galleryItemDelegate);
} else {
if (item.width > 0 && item.height > 0) {
galleryItemDelegate.autoComputeByScreen(context, item.width, item.height);
manageLayoutParams(context, galleryItemDelegate);
} else {
DisplayManager.getInstance(context).display(
item.thumbnailUrl,
thumbIv,
DisplayManager.getInstance(context).getDefaultOptions(),
new ImageLoadingListener() {
@Override
public void onLoadingStarted(String s, View view) {
}
@Override
public void onLoadingFailed(String s, View view, FailReason failReason) {
}
@Override
public void onLoadingComplete(String s, View view, Bitmap bitmap) {
if (bitmap != null) {
galleryItemDelegate.autoComputeByScreen(context, bitmap.getWidth(), bitmap.getHeight());
} else {
}
}
@Override
public void onLoadingCancelled(String s, View view) {
}
});
}
}
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (adapter instanceof GalleryAdapter) {
//com.metis.base.ActivityDispatcher.imagePreviewActivity(context, ((GalleryAdapter) adapter).getGalleryItemArray(), position);
ActivityDispatcher.imageDetailActivity(context, ((GalleryAdapter) adapter).getGalleryItemArray(), position);
}
}
});
}
private void manageLayoutParams (Context context, GalleryItemDelegate galleryItemDelegate) {
GalleryItem item = galleryItemDelegate.getSource();
RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)thumbIv.getLayoutParams();
if (params == null) {
params = new RelativeLayout.LayoutParams(galleryItemDelegate.delegateWidth, galleryItemDelegate.delegateHeight);
} else {
params.width = galleryItemDelegate.delegateWidth;
params.height = galleryItemDelegate.delegateHeight;
}
thumbIv.setLayoutParams(params);
DisplayManager.getInstance(context).display(item.thumbnailUrl, thumbIv);
}
}