package com.angrykings.pregame;
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PorterDuff;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.graphics.drawable.BitmapDrawable;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.angrykings.R;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.FailReason;
import com.nostra13.universalimageloader.core.assist.ImageLoadingListener;
import java.util.List;
public class FacebookPlayerAdapter extends BaseAdapter{
private Activity activity;
private List<FacebookPlayer> data;
private static LayoutInflater inflater=null;
public FacebookPlayerAdapter(Activity a, int list_row, List<FacebookPlayer> d){
activity = a;
data = d;
inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int position) {
return position;
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View view, ViewGroup viewGroup) {
View vi = view;
if(view == null){
vi = inflater.inflate(R.layout.list_row_facebook, null);
}
ImageView fb = (ImageView)vi.findViewById(R.id.facebookpicture);
TextView name = (TextView)vi.findViewById(R.id.spielername);
FacebookPlayer player = data.get(position);
name.setText(player.name);
vi.requestLayout();
fb.setImageBitmap(circularCrop(((BitmapDrawable)fb.getDrawable()).getBitmap()));
String profilePicture = "http://graph.facebook.com/" + data.get(position).fbID + "/picture";
ImageLoader.getInstance().displayImage(profilePicture, fb, 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) {
ImageView iv = (ImageView) view;
iv.setImageBitmap(circularCrop(bitmap));
}
@Override
public void onLoadingCancelled(String s, View view) {
}
});
return vi;
}
public static Bitmap circularCrop(Bitmap bitmap) {
Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),
bitmap.getHeight(), Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(output);
final int color = 0xff424242;
final Paint paint = new Paint();
final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
paint.setAntiAlias(true);
canvas.drawARGB(0, 0, 0, 0);
paint.setColor(color);
canvas.drawCircle(bitmap.getWidth() / 2, bitmap.getHeight() / 2, bitmap.getWidth() / 2, paint);
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
canvas.drawBitmap(bitmap, rect, rect, paint);
return output;
}
}