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