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; } }