package com.ved.musicmapapp.fragments; import java.util.List; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentTransaction; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ListView; import com.ved.musicmapapp.R; import com.ved.musicmapapp.Objects.Artist; import com.ved.musicmapapp.adapters.ArtistAdapter; import com.ved.musicmapapp.fragments.MainFragment.TabInfo; import com.ved.musicmapapp.providers.GetLikeDataTask; import com.ved.musicmapapp.utils.Statics; public class LikeFragment extends Fragment { private ListView mList; private GetLikeDataTask mTask; private ArtistAdapter aAdapter; private List<Artist> mArtists = null; private View loadingLayout; private Activity mContext; private boolean isDestroyView; private Handler mHandler; @Override public void onAttach(Activity activity) { // TODO Auto-generated method stub super.onAttach(activity); this.mContext = activity; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_like, container, false); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); Log.d("Men", "OnactivityCreated"); mList = (ListView) getView().findViewById(R.id.list_like); loadingLayout = getView().findViewById(R.id.loadingLayout); if (null == getActivity() || null == Statics.likeDatas) { mList.setVisibility(View.GONE); return; } mArtists = Statics.likeDatas; aAdapter = new ArtistAdapter(getActivity(), mArtists, true); Log.d("Men", mArtists.size() + ""); mList.setAdapter(aAdapter); if (Statics.likeDatas.size() > 0) { mList.setVisibility(View.VISIBLE); } else { mList.setVisibility(View.GONE); } mList.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int pos, long arg3) { if (Statics.likeDatas.get(pos).getSongs().size() == 0) return; try { LikeDetailFragment fragment = new LikeDetailFragment(); fragment.setArtist(mArtists.get(pos)); // Statics.dynamicArtist = Statics.likeDatas.get(pos); FragmentTransaction fragmentTransaction = getActivity() .getSupportFragmentManager().beginTransaction(); fragmentTransaction.replace(R.id.frame_content, fragment); fragmentTransaction.addToBackStack(null); fragmentTransaction.commit(); } catch (Exception e) { e.printStackTrace(); } } }); if (Statics.curUser != null) { getData(getActivity()); } } public void getViewTmp(){ mList = (ListView) getView().findViewById(R.id.list_like); loadingLayout = getView().findViewById(R.id.loadingLayout); if (null == getActivity() || null == Statics.likeDatas) { mList.setVisibility(View.GONE); return; } mArtists = Statics.likeDatas; aAdapter = new ArtistAdapter(getActivity(), mArtists, true); Log.d("Men", mArtists.size() + ""); mList.setAdapter(aAdapter); if (Statics.likeDatas.size() > 0) { mList.setVisibility(View.VISIBLE); } else { mList.setVisibility(View.GONE); } mList.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int pos, long arg3) { if (Statics.likeDatas.get(pos).getSongs().size() == 0) return; try { LikeDetailFragment fragment = new LikeDetailFragment(); fragment.setArtist(mArtists.get(pos)); // Statics.dynamicArtist = Statics.likeDatas.get(pos); FragmentTransaction fragmentTransaction = getActivity() .getSupportFragmentManager().beginTransaction(); fragmentTransaction.replace(R.id.frame_content, fragment); fragmentTransaction.addToBackStack(null); fragmentTransaction.commit(); } catch (Exception e) { e.printStackTrace(); } } }); if (mArtists == null) { getData(getActivity()); } } public void setData(){ mArtists = Statics.likeDatas; int likeCount = 0; for (Artist art : mArtists) { if (art.getSongs() != null) { likeCount += art.getSongs().size(); } } if (null != aAdapter) { aAdapter.setData(Statics.likeDatas); } // TabInfo tab = ((MainFragment) getParentFragment()) // .getTab(2); // // tab.tvCount.setText(likeCount + ""); } @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); Log.d("Men", "onViewCreated"); } @Override public void onResume() { super.onResume(); } public void getData(final Activity act) { if (null != mTask){ mTask.cancel(true); } mTask = new GetLikeDataTask(act) { protected void onPreExecute() { super.onPreExecute(); if (null != loadingLayout) loadingLayout.setVisibility(View.VISIBLE); Log.i("LIKE_DATA", "START"); }; protected void onPostExecute(String result) { Log.i("Men", "END"); if (null != mList) mList.setVisibility(View.VISIBLE); if (null != loadingLayout) loadingLayout.setVisibility(View.GONE); super.onPostExecute(result); }; public void onSuccess() { Log.i("Men", "END231"); try { mArtists = Statics.likeDatas; int likeCount = 0; for (Artist art : mArtists) { if (art.getSongs() != null) { likeCount += art.getSongs().size(); } } if (null != aAdapter) { Log.d("Men", "Updated Adapter"); aAdapter.setData(Statics.likeDatas); }else{ Log.d("Men", "OnactivityCreatedAgain : " + mArtists.size()); getViewTmp(); } } catch (Exception e) { e.printStackTrace(); } }; }; mTask.execute(); } @Override public void onDestroy() { if (null != mTask) mTask.cancel(true); super.onDestroy(); } @Override public void onDestroyView() { if (getView() != null) { ((ViewGroup) getView().getParent()).removeView(getView()); } // getActivity().unregisterReceiver(mLikeBroadcastReceiver); isDestroyView = true; super.onDestroyView(); } public boolean getIsDestroyView(){ return isDestroyView; } }