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.Canvas;
import android.graphics.Paint;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.Bitmap.Config;
import android.graphics.PorterDuff.Mode;
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.User;
import com.ved.musicmapapp.applications.MusicMapApplication;
import com.ved.musicmapapp.utils.Statics;
import com.ved.musicmapapp.utils.Utils;
public class UserSplashAdapter extends BaseAdapter {
private Context cxt;
private LayoutInflater inflat;
private MusicMapApplication app;
private ArrayList<User> users;
private Vector<User> checkeds;
private ImageLoader imageLoader;
private DisplayImageOptions options;
public UserSplashAdapter(Activity cxt, ArrayList<User> users) {
this.cxt = cxt;
app = (MusicMapApplication) cxt.getApplication();
inflat = (LayoutInflater) cxt
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
this.users = users;
checkeds = new Vector<User>();
if (null == this.users)
this.users = new ArrayList<User>();
for (User user : this.users) {
if (user.isFollowed()) {
checkeds.add(user);
}
}
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 users.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 User u = getItem(pos);
OnCheckedChangeListener listener = new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
if (isChecked) {
checkeds.add(u);
} else if (checkeds.contains(u)) {
checkeds.remove(u);
}
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);
imageLoader.displayImage("https://graph.facebook.com/" + u.getFbid()
+ "/picture?type=large", 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, 30));
}
@Override
public void onLoadingCancelled(String imageUri, View view) {
// TODO Auto-generated method stub
}
});
TextView tv = (TextView) v.findViewById(R.id.tv_name_invite);
String name = u.getFullName();
// if(name.equals(""))
// return null;
tv.setText(u.getFullName());
final CheckBox cb = (CheckBox) v.findViewById(R.id.cb_item_list_invite);
cb.setOnCheckedChangeListener(null);
if (checkeds.contains(u)) {
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 == Statics.countUseApps - 1)
// tvline.setVisibility(View.VISIBLE);
// else
// tvline.setVisibility(View.GONE);
return v;
}
@Override
public User getItem(int index) {
return users.get(index);
}
/**
* @return the checkeds
*/
public Vector<User> getCheckeds() {
return checkeds;
}
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;
}
}