package com.ladjzero.uzlee;
import android.content.Context;
import android.content.Intent;
import android.graphics.Color;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.ladjzero.hipda.*;
import com.ladjzero.hipda.Thread;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.assist.FailReason;
import com.nostra13.universalimageloader.core.listener.SimpleImageLoadingListener;
import java.util.ArrayList;
/**
* Created by ladjzero on 2015/4/25.
*/
public class AdapterMessageSummary extends ArrayAdapter<Thread> implements View.OnClickListener{
ActivityBase context;
Core core;
private LocalApi mLocalApi;
public AdapterMessageSummary(Context context, ArrayList<Thread> threads) {
super(context, R.layout.message_row, threads);
this.context = (ActivityBase) context;
mLocalApi = App.getInstance().getCore().getLocalApi();
}
@Override
public void notifyDataSetChanged() {
super.notifyDataSetChanged();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
final PostHolder holder = row == null ? new PostHolder() : (PostHolder) row.getTag();
if (row == null) {
row = context.getLayoutInflater().inflate(R.layout.message_row, parent, false);
holder.image = (ImageView) row.findViewById(R.id.user_image);
holder.imageMask = (TextView) row.findViewById(R.id.user_image_mask);
holder.name = (TextView) row.findViewById(R.id.user_mini_name);
holder.title = (TextView) row.findViewById(R.id.message);
holder.date = (TextView) row.findViewById(R.id.thread_date);
row.setTag(holder);
}
final Thread thread = getItem(position);
final User author = thread.getAuthor();
String imageUrl = author.getImage();
final int uid = author.getId();
final String userName = author.getName();
String color = thread.getColor();
int count = thread.getCommentCount();
boolean isNew = thread.isNew();
holder.imageMask.setText(com.ladjzero.uzlee.utils.Utils.getFirstChar(userName));
ImageLoader.getInstance().displayImage(imageUrl, holder.image, new SimpleImageLoadingListener() {
@Override
public void onLoadingComplete(String imageUri, android.view.View view, android.graphics.Bitmap loadedImage) {
author.setImage(imageUri);
}
@Override
public void onLoadingFailed(String imageUri, android.view.View view, FailReason failReason) {
((ImageView) view).setImageResource(android.R.color.transparent);
author.setImage(null);
holder.imageMask.setText(com.ladjzero.uzlee.utils.Utils.getFirstChar(userName));
}
});
holder.image.setTag(author);
holder.name.setTag(author);
// holder.name.getPaint().setFakeBoldText(true);
holder.image.setOnClickListener(this);
holder.name.setOnClickListener(this);
holder.date.setText(com.ladjzero.uzlee.utils.Utils.prettyTime(thread.getDateStr()));
holder.name.setText(thread.getAuthor().getName());
if (mLocalApi.getBanned().contains(new User().setId(uid))) {
holder.title.setText(context.getString(R.string.blocked));
} else {
holder.title.setText(thread.getTitle());
holder.title.getPaint().setFakeBoldText(thread.getBold());
}
return row;
}
@Override
public void onClick(View view) {
User user = (User) view.getTag();
Intent intent = new Intent(context, ActivityUser.class);
intent.putExtra("uid", user.getId());
intent.putExtra("name", user.getName());
context.startActivity(intent);
}
private int lowerSaturation(int color) {
float[] hsv = new float[3];
Color.colorToHSV(color, hsv);
// hsv[1] = hsv[1] * 0.43f;
hsv[1] = 0.48f;
return Color.HSVToColor(hsv);
}
private int lowerSaturation(int color, float rate) {
float[] hsv = new float[3];
Color.colorToHSV(color, hsv);
hsv[1] = hsv[1] * rate;
return Color.HSVToColor(hsv);
}
static class PostHolder {
TextView title;
TextView name;
TextView date;
ImageView image;
TextView imageMask;
}
}