package com.ved.musicmapapp.fragments;
import android.app.Activity;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
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.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.FailReason;
import com.nostra13.universalimageloader.core.listener.ImageLoadingListener;
import com.ved.musicmapapp.MainActivity;
import com.ved.musicmapapp.R;
import com.ved.musicmapapp.Objects.Artist;
import com.ved.musicmapapp.providers.GetArtistAvatarTask;
import com.ved.musicmapapp.utils.Statics;
import com.ved.musicmapapp.utils.Utils;
public class CategoryFragment extends Fragment {
private Artist artist;
private ImageLoader imageLoader;
private DisplayImageOptions options;
private Activity mContext;
@Override
public void onAttach(Activity activity) {
// TODO Auto-generated method stub
super.onAttach(activity);
this.mContext = activity;
}
public void setArtist(Artist artist) {
this.artist = artist;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
super.onCreateView(inflater, container, savedInstanceState);
View v = inflater.inflate(R.layout.activity_category, container, false);
if (null == mContext)
return v;
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();
if (null == artist) {
return v;
}
final ImageView imv_like = (ImageView) v.findViewById(R.id.imv_like);
final ImageView imv_av = (ImageView) v
.findViewById(R.id.imv_musician_av);
TextView tvArtistName = (TextView) v
.findViewById(R.id.tv_name_musician);
TextView tvNoSong = (TextView) v.findViewById(R.id.tvNoSong);
TextView tvGlobalNoSong = (TextView) v
.findViewById(R.id.tvGlobalNoSong);
tvArtistName.setText(artist.getName());
tvGlobalNoSong.setText(artist.getGlobalPlaylist() + " playlists");
tvNoSong.setText(artist.getSongs().size() + "");
if (artist.getAvatar().trim().length() > 0) {
loadAvatar(imv_av, artist.getAvatar().trim());
} else {
new GetArtistAvatarTask(mContext) {
public void onSuccess(String result) {
artist.setAvatar(result);
loadAvatar(imv_av, result);
};
}.execute(artist.getID() + "", artist.getName());
}
imv_like.setVisibility(View.GONE);
// BOOK
v.findViewById(R.id.rl_book).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
CategoryDetailFragment frg = new CategoryDetailFragment();
frg.setArtist(artist);
frg.setType(1);
FragmentTransaction fragmentTransaction = getFragmentManager()
.beginTransaction();
fragmentTransaction.add(R.id.frame_content, frg);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
});
// MOVIE
v.findViewById(R.id.rl_movie).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
CategoryDetailFragment frg = new CategoryDetailFragment();
frg.setArtist(artist);
frg.setType(2);
FragmentTransaction fragmentTransaction = getFragmentManager()
.beginTransaction();
fragmentTransaction.replace(R.id.frame_content, frg);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
});
// SCHOOL
v.findViewById(R.id.rl_school).setOnClickListener(
new OnClickListener() {
@Override
public void onClick(View arg0) {
CategoryDetailFragment frg = new CategoryDetailFragment();
frg.setType(3);
frg.setArtist(artist);
FragmentTransaction fragmentTransaction = getFragmentManager()
.beginTransaction();
fragmentTransaction.add(R.id.frame_content, frg);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
});
// GAME
v.findViewById(R.id.rl_game).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
CategoryDetailFragment frg = new CategoryDetailFragment();
frg.setType(4);
frg.setArtist(artist);
FragmentTransaction fragmentTransaction = getFragmentManager()
.beginTransaction();
fragmentTransaction.add(R.id.frame_content, frg);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
});
// OTHER
v.findViewById(R.id.rl_other).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
CategoryDetailFragment frg = new CategoryDetailFragment();
frg.setType(5);
frg.setArtist(artist);
FragmentTransaction fragmentTransaction = getFragmentManager()
.beginTransaction();
fragmentTransaction.add(R.id.frame_content, frg);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
});
v.findViewById(R.id.layout_artist_detail).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
onGlobalUser(v);
}
});
return v;
}
private void loadAvatar(final ImageView imv_av, String url) {
imageLoader.displayImage(url, imv_av, 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_av.setImageBitmap(loadedImage);
}
@Override
public void onLoadingCancelled(String imageUri, View view) {
}
});
}
@Override
public void onDestroyView() {
if (getView() != null) {
((ViewGroup) getView().getParent()).removeView(getView());
}
super.onDestroyView();
}
public void onGlobalUser(View v) {
GlobalUserFragment frg = new GlobalUserFragment();
frg.setArtist(artist);
FragmentTransaction fragmentTransaction = getFragmentManager()
.beginTransaction();
fragmentTransaction.replace(R.id.frame_content, frg);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
}