package com.ved.musicmapapp.adapters;
import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.Typeface;
import android.text.TextUtils.TruncateAt;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
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;
public class UserAdapter extends BaseAdapter {
private LayoutInflater inflat;
private List<User> users;
private ImageLoader imageLoader;
private DisplayImageOptions options;
private Context mContext;
// private int count = Statics.EXPAND_VIEW_COUNT;
public UserAdapter(Activity cxt, List<User> users) {
inflat = (LayoutInflater) cxt
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
this.users = users;
mContext = cxt;
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 void setData(List<User> users) {
this.users = users;
notifyDataSetChanged();
}
@Override
public int getCount() {
// count = users.size();
// count = (count > Statics.EXPAND_VIEW_COUNT) ?
// Statics.EXPAND_VIEW_COUNT : count;
return /* count */users.size();
}
// public void expandData(){
// count += Statics.EXPAND_VIEW_COUNT;
// count = (count>users.size()) ? users.size() : count;
// notifyDataSetChanged();
// }
@Override
public long getItemId(int position) {
return -1;
}
@Override
public View getView(final int position, View v, ViewGroup parent) {
User u = users.get(position);
if (v == null) {
v = inflat.inflate(R.layout.item_user, null);
}
final ImageView avatar = (ImageView) v.findViewById(R.id.ivThumb);
imageLoader.displayImage("https://graph.facebook.com/" + u.getFbid()
+ "/picture?type=large", 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) {
avatar.setImageBitmap(loadedImage);
}
@Override
public void onLoadingCancelled(String imageUri, View view) {
// TODO Auto-generated method stub
}
});
TextView tvName = (TextView) v.findViewById(R.id.tvUserName);
Typeface tf = Typeface.createFromAsset(mContext.getAssets(), "open_sans_regular.ttf");
tvName.setTypeface(tf);
String name = u.getFullName();
// if(name.equals(""))
// return null;
tvName.setText(name);
TextView tvNoSong = (TextView) v.findViewById(R.id.tvNumSong);
String text = u.getNoSong() > 1 ? mContext.getString(
R.string.user_details_tracks, u.getNoSong()) : mContext
.getString(R.string.user_details_track, u.getNoSong());
text += ", ";
// text += u.getArtist.size() > 1 ? mContext.getString(
// R.string.user_details_artists, u.getArtists().size())
// : mContext.getString(R.string.user_details_artist, u
// .getArtists().size());
int count = u.getArtistcount();
text += u.getArtistcount() > 1 ? mContext.getString(
R.string.user_details_artists, u.getArtistcount())
: mContext.getString(R.string.user_details_artist, u
.getArtistcount());
tvNoSong.setTypeface(tf);
tvNoSong.setText(text);
TextView tvLastUDArtist = (TextView) v
.findViewById(R.id.tvLastUDArtist);
if (u.getArtistcount() == 0) {
text = "Added: ";
} else {
// text = "Added: " + u.getArtists().get(0).getName();
text = "Added: " + u.getLastUpdate();
}
if (u.getNoLastAdd() > 1)
text += " & " + (u.getNoLastAdd() - 1) + " other tracks";
tvLastUDArtist.setTypeface(tf);
tvLastUDArtist.setText(text);
tvLastUDArtist.setEllipsize(TruncateAt.MARQUEE);
tvLastUDArtist.setSelected(true);
TextView tv_update = (TextView) v.findViewById(R.id.update_time);
tv_update.setTypeface(tf);
tv_update.setText(u.getLastUDString());
TextView tv_match = (TextView) v.findViewById(R.id.tv_match);
tv_match.setTypeface(tf);
tv_match.setText(u.getPercentage() + "% Match");
return v;
}
@Override
public User getItem(int arg0) {
return users.get(arg0);
}
}