package com.ved.musicmapapp.adapters; import java.util.ArrayList; import java.util.HashMap; import android.app.Activity; import android.content.Context; import android.graphics.Bitmap; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.ImageView.ScaleType; import android.widget.LinearLayout; 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.Artist; import com.ved.musicmapapp.Objects.Song; import com.ved.musicmapapp.Objects.User; import com.ved.musicmapapp.utils.Statics; import com.ved.musicmapapp.utils.Utils; public class LikeDetailAdapter extends BaseAdapter implements OnClickListener{ private ArrayList<Song> songs; private Activity act; private LayoutInflater inflat; private ImageLoader imageLoader; private DisplayImageOptions options; private HashMap<Integer, Song> hashExpands; public LikeDetailAdapter(Activity act, Artist artist) { this.act = act; inflat = (LayoutInflater) act .getSystemService(Context.LAYOUT_INFLATER_SERVICE); if (null != artist) { songs = artist.getSongs(); } else { songs = new ArrayList<Song>(); } 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(); hashExpands = new HashMap<Integer, Song>(); } @Override public int getCount() { return songs.size(); } @Override public Song getItem(int arg0) { return songs.get(arg0); } @Override public long getItemId(int arg0) { // TODO Auto-generated method stub return 0; } @Override public View getView(final int arg0, View v, ViewGroup parent) { final Song s = getItem(arg0); if (null == v) { v = inflat.inflate(R.layout.item_like_detail, parent, false); } final View groupSongName = v.findViewById(R.id.groupSongName); TextView tvName = (TextView) v.findViewById(R.id.tvName); LinearLayout groupAvatar = (LinearLayout) v.findViewById(R.id.groupAvatar); groupAvatar.removeAllViews(); /* ImageView userImg = (ImageView) v.findViewById(R.id.user_img); TextView userName = (TextView)v.findViewById(R.id.tv_name_user); TextView userSongDetails = (TextView)v.findViewById(R.id.tvGlobalNoSong);*/ View horiScroll = v.findViewById(R.id.horiScroll); if (hashExpands.containsKey(arg0)) { horiScroll.setVisibility(View.VISIBLE); } else { horiScroll.setVisibility(View.GONE); } groupSongName.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (hashExpands.containsKey(arg0)) { hashExpands.remove(arg0); } else { hashExpands.put(arg0, s); } notifyDataSetChanged(); } }); int like = s.getUserLiked().size(); String str = s.getTitle(); if (like > 0) { str += " (" + like + ")"; for (final User u : s.getUserLiked()) { View childLayout = inflat.inflate(R.layout.like_user_details, (ViewGroup) v.findViewById(R.id.child_id)); final ImageView imv = (ImageView) childLayout.findViewById(R.id.user_img); TextView userName = (TextView)childLayout.findViewById(R.id.tv_name_user); TextView count = (TextView)childLayout.findViewById(R.id.tvGlobalNoSong); userName.setText(u.getFullName()); String text = u.getNoSong() + " Songs ," + u.getArtistcount() + " Artists" ; count.setText(text); imageLoader.displayImage("http://graph.facebook.com/" + u.getFbid()+ "/picture?type=large", imv, options, new ImageLoadingListener() { @Override public void onLoadingStarted(String imageUri,View view) { } @Override public void onLoadingFailed(String imageUri, View view, FailReason failReason) { } @Override public void onLoadingComplete(String imageUri,View view, Bitmap loadedImage) { imv.setImageBitmap(loadedImage); } @Override public void onLoadingCancelled(String imageUri,View view) { } }); imv.setTag(u.getFbid()); groupAvatar.setTag(u.getFbid()); // imv.setOnClickListener(this); groupAvatar.setOnClickListener(this); groupAvatar.addView(childLayout); } } tvName.setText(str); return v; } @Override public void onClick(View v) { } }