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) {
}
}