package com.konka.music.ui.fragment.abstractfragment;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.content.Loader;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.TextView;
import com.konka.music.R;
import com.konka.music.adapter.TrackAdapter;
import com.konka.music.pojo.MusicInfo;
import com.konka.music.service.MusicInfoManager;
import com.konka.music.ui.activity.MainActivity;
import com.konka.music.util.ArrayUtils;
import com.konka.music.util.CreateViewUtil;
import com.konka.music.util.ViewUtility;
import com.konka.music.util.WindowUtil;
public abstract class KBasePlayListFragment extends KBaseListFragment_MusicInfoArray{
public static final String TAG = KBasePlayListFragment.class.getSimpleName();
private View rootView = null;
private KBasePlayListFragmentHolder basePlayListFragmentHolder;
private boolean viewinitComplete = false;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
rootView = CreateViewUtil.onCreateView(inflater, container, savedInstanceState, rootView, R.layout.list_track);
return rootView;
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
if (rootView.getTag() == null) {
basePlayListFragmentHolder = new KBasePlayListFragmentHolder();
basePlayListFragmentHolder.mView_ListView = (ListView) rootView.findViewById(R.id.listview_local_music);
basePlayListFragmentHolder.mView_EmptyLoading = rootView.findViewById(R.id.empty_loading);
basePlayListFragmentHolder.nodata_textView = ViewUtility.findViewById(rootView, R.id.nodata_textView);
basePlayListFragmentHolder.listViewAdapter = new TrackAdapter(getActivity(), this);
basePlayListFragmentHolder.mView_ListView.setAdapter(basePlayListFragmentHolder.listViewAdapter);
registerForContextMenu(basePlayListFragmentHolder.mView_ListView);
basePlayListFragmentHolder.mView_ListView.setOnItemClickListener(this);
basePlayListFragmentHolder.mView_ListView.setEmptyView(basePlayListFragmentHolder.mView_EmptyLoading);
ViewUtility.findViewById(getActivity(), R.id.common_play_list_header_bar_allplay, this);
rootView.setTag(basePlayListFragmentHolder);
} else {
basePlayListFragmentHolder = (KBasePlayListFragmentHolder) rootView.getTag();
}
viewinitComplete = true;
lazyLoad();
}
private void startLoader() {
getLoaderManager().initLoader(MUSIC_RETRIEVE_LOADER, getArguments(), this);
System.out.println("startLoader");
}
@Override
protected void lazyLoad() {
super.lazyLoad();
if (viewinitComplete && isVisible && attactivity) {
startLoader();
}
}
private boolean attactivity = false;
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
System.out.println("显示了吗isVisible="+isVisible);
System.out.println("view初始化完成了吗viewinitComplete="+viewinitComplete);
attactivity = true;
lazyLoad();
}
@Override
public void onDetach() {
super.onDetach();
setUserVisibleHint(false);
attactivity = false;
// getLoaderManager().destroyLoader(MUSIC_RETRIEVE_LOADER);
}
class KBasePlayListFragmentHolder extends KBaseHolder{
ListView mView_ListView;
View mView_EmptyLoading;
ArrayList<MusicInfo> localMusicInfos;
TextView nodata_textView;
// TrackAdapter mAdapter;
}
@Override
public void onClick(View v) {
super.onClick(v);
switch (v.getId()) {
case R.id.common_play_list_header_bar_allplay:
if (!ArrayUtils.isEmpty(basePlayListFragmentHolder.localMusicInfos)) {
MusicInfoManager.addMusicInfoArray(getActivity(), basePlayListFragmentHolder.localMusicInfos, true);
}
break;
case R.id.btn_toggle_menu:
break;
}
}
// @Override
// public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// try {
// int[] location = WindowUtil.getViewInTheWindowPosition(view);
// MainActivity mainActivity = (MainActivity) getActivity();
// mainActivity.playAnimotion_playThisMusic(location[0], location[1] - view.getHeight(), basePlayListFragmentHolder.localMusicInfos.get(position));
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
@Override
public Loader<ArrayList<MusicInfo>> onCreateLoader(int arg0, Bundle arg1) {
basePlayListFragmentHolder.nodata_textView.setVisibility(View.GONE);
return super.onCreateLoader(arg0, arg1);
}
@Override
public void onLoadFinished(Loader<ArrayList<MusicInfo>> arg0, ArrayList<MusicInfo> arg1) {
if (!ArrayUtils.isEmpty(arg1)) {
basePlayListFragmentHolder.listViewAdapter.setmItems(arg1);
this.basePlayListFragmentHolder.localMusicInfos = arg1;
} else {
// TODO 显示没有数据
basePlayListFragmentHolder.nodata_textView.setVisibility(View.VISIBLE);
this.basePlayListFragmentHolder.localMusicInfos = null;
if (basePlayListFragmentHolder.listViewAdapter != null) {
basePlayListFragmentHolder.listViewAdapter.clear();
}
}
}
@Override
public void onLoaderReset(Loader<ArrayList<MusicInfo>> arg0) {
// no used
}
@Override
protected KBaseHolder getKBaseHolder() {
return basePlayListFragmentHolder;
}
protected static final int MUSIC_RETRIEVE_LOADER = 10;
}