package com.ved.musicmapapp.adapters;
import java.util.ArrayList;
import java.util.Vector;
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.Typeface;
import android.graphics.PorterDuff.Mode;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.drawable.BitmapDrawable;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ImageView;
import android.widget.TextView;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.assist.FailReason;
import com.nostra13.universalimageloader.core.listener.ImageLoadingListener;
import com.ved.musicmapapp.R;
import com.ved.musicmapapp.Objects.FacebookFriend;
import com.ved.musicmapapp.utils.Statics;
import com.ved.musicmapapp.utils.Utils;
public class FriendAdapter extends BaseAdapter {
private LayoutInflater inflat;
private ArrayList<FacebookFriend> friends;
private Vector<FacebookFriend> checkeds;
private ImageLoader imageLoader;
private DisplayImageOptions options;
private int countUseApp;
Context context;
public FriendAdapter(Activity cxt) {
inflat = (LayoutInflater) cxt
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
friends = Statics.lstFriends;
this.context = cxt;
if (null == friends)
friends = new ArrayList<FacebookFriend>();
checkeds = new Vector<FacebookFriend>();
imageLoader = ImageLoader.getInstance();
options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.img_no_image)
.showImageForEmptyUri(R.drawable.img_no_image)
.showImageOnFail(R.drawable.img_no_image).cacheInMemory(true)
.cacheOnDisc(true).bitmapConfig(Bitmap.Config.RGB_565).build();
}
public FriendAdapter(Activity cxt, int countUseApp) {
inflat = (LayoutInflater) cxt
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
friends = Statics.lstFriends;
this.context = cxt;
this.countUseApp = countUseApp;
if (null == friends)
friends = new ArrayList<FacebookFriend>();
checkeds = new Vector<FacebookFriend>();
imageLoader = ImageLoader.getInstance();
options = new DisplayImageOptions.Builder()
.showImageOnLoading(R.drawable.img_no_image)
.showImageForEmptyUri(R.drawable.img_no_image)
.showImageOnFail(R.drawable.img_no_image).cacheInMemory(true)
.cacheOnDisc(true).bitmapConfig(Bitmap.Config.RGB_565).build();
}
@Override
public int getCount() {
return friends.size();
}
@Override
public long getItemId(int position) {
return -1;
}
@Override
public View getView(final int pos, View v, ViewGroup parent) {
// TODO Auto-generated method stub
final FacebookFriend f = getItem(pos);
OnCheckedChangeListener listener = new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
if (isChecked) {
checkeds.add(f);
} else if (checkeds.contains(f)) {
checkeds.remove(f);
}
notifyDataSetChanged();
}
};
if (v == null) {
v = inflat.inflate(R.layout.item_list_invite, null);
}
final ImageView item_avatar = (ImageView) v
.findViewById(R.id.profile_pic_item_list_invite);
ImageView icon_app=(ImageView) v.findViewById(R.id.profile_pic_item_list_icon_use_app);
imageLoader.displayImage(f.getPic(), item_avatar, options,
new ImageLoadingListener() {
@Override
public void onLoadingStarted(String imageUri, View view) {
// TODO Auto-generated method stub
}
@Override
public void onLoadingFailed(String imageUri, View view,
FailReason failReason) {
// TODO Auto-generated method stub
}
@Override
public void onLoadingComplete(String imageUri, View view,
Bitmap loadedImage) {
item_avatar.setImageBitmap(loadedImage);
// item_avatar.setImageBitmap(getRoundedCornerBitmap(loadedImage, 20));
}
@Override
public void onLoadingCancelled(String imageUri, View view) {
// TODO Auto-generated method stub
}
});
TextView tv = (TextView) v.findViewById(R.id.tv_name_invite);
Typeface tf = Typeface.createFromAsset(context.getAssets(), "open_sans_regular.ttf");
tv.setTypeface(tf);
tv.setText(f.getName());
final CheckBox cb = (CheckBox) v.findViewById(R.id.cb_item_list_invite);
cb.setOnCheckedChangeListener(null);
if (checkeds.contains(f)) {
cb.setChecked(true);
} else {
cb.setChecked(false);
}
cb.setOnCheckedChangeListener(listener);
v.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
cb.setChecked(!cb.isChecked());
}
});
/*TextView tvline = (TextView) v.findViewById(R.id.tvline);
if (pos == this.countUseApp - 1)
tvline.setVisibility(View.VISIBLE);
else
tvline.setVisibility(View.GONE);*/
Log.d("FB_FRIENDS", f
.getName()+" "+f.isUseApp());
if (f.isUseApp()) {
icon_app.setVisibility(View.VISIBLE);
}
else {
icon_app.setVisibility(View.GONE);
}
return v;
}
public static Bitmap getRoundedCornerBitmap(Bitmap bitmap, int pixels) {
Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), 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());
final RectF rectF = new RectF(rect);
//final float roundPx = pixels;
float roundPx = 30;
paint.setAntiAlias(true);
canvas.drawARGB(0, 0, 0, 0);
paint.setColor(color);
canvas.drawRoundRect(rectF, roundPx, roundPx, paint);
paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
canvas.drawBitmap(bitmap, rect, rect, paint);
return output;
}
@Override
public FacebookFriend getItem(int index) {
return friends.get(index);
}
/**
* @return the checkeds
*/
public Vector<FacebookFriend> getCheckeds() {
return checkeds;
}
}