package com.kitty.poclient.fragment.mymusic; import java.util.ArrayList; import java.util.List; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.os.Bundle; 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.kitty.poclient.R; import com.kitty.poclient.adapter.MusicListAdapter; import com.kitty.poclient.common.BroadcastManager; import com.kitty.poclient.common.Constant; import com.kitty.poclient.common.UIHelper; import com.kitty.poclient.common.WatchDog; import com.kitty.poclient.dao.PackDao; import com.kitty.poclient.domain.Music; import com.kitty.poclient.domain.Pack; import com.kitty.poclient.fragment.PlayerFragment; import com.kitty.poclient.upnp.Player; import com.kitty.poclient.util.PowerfulBigMan; public class MymusicThemeDetailFragment extends BaseFragment { private final String TAG = MymusicThemeDetailFragment.class.getSimpleName(); private View view; private ListView listview; private MusicListAdapter adapter; private Activity attachedActivity; private Pack pack; public MymusicThemeDetailFragment(Activity parentActivity, Pack pack) { this.attachedActivity = parentActivity; this.pack = pack; } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { view = inflater.inflate(R.layout.mymusi_theme_detail_fragment, null); initComponents(); initArguments(); initListeners(); registerReceivers(); return view; } public String getFragmentName(){ return TAG; } private BroadcastReceiver updateListReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { Pack newPack =new PackDao().getPackDetailById(pack); List<Music> musicList = new ArrayList<Music>(); if(newPack != null){ musicList = newPack.getLi(); } adapter.setMlist(musicList) ; Log.i(TAG, "musicList.size=" + newPack.getLi().size()+""); adapter.notifyDataSetChanged(); } }; private void registerReceivers() { attachedActivity.registerReceiver(updateListReceiver, new IntentFilter(BroadcastManager.FILTER_UPDATE_LOCALLIST)); } private void unregisterReceivers() { attachedActivity.unregisterReceiver(updateListReceiver); } public void initComponents() { listview = (ListView) view.findViewById(R.id.lv_packdetaillist); } public String getThemeName(){ String name = "未知"; if(null != pack){ name = pack.getName(); } return name; } private void initArguments() { adapter = new MusicListAdapter(attachedActivity, pack.getLi()); listview.setAdapter(adapter); } private void initListeners() { listview.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int position, long id) { if (PowerfulBigMan.testClickInterval() == false) { return; } // 初始化播放列表 WatchDog.currentList = (ArrayList<Music>) pack.getLi(); WatchDog.currentListType = Constant.URI_THEME; WatchDog.currentListId = pack.getId(); WatchDog.currentPlayingMusic = pack.getLi().get(position); WatchDog.currentPlayingId = WatchDog.currentPlayingMusic.getId(); WatchDog.currentPlayingName = pack.getLi().get(position).getName(); WatchDog.currentArtistName = pack.getLi().get(position).getArtistName(); WatchDog.updateCachingState();// 如果上一曲未缓存完则修改其状态为等待 WatchDog.currentState = PlayerFragment.STOPPED;// 先改为停止以停止播放器图标的跳动 UIHelper.refreshPlayerButton(); adapter.notifyDataSetChanged(); String uri = pack.getLi().get(position).getUri(Constant.URI_THEME, pack.getId()); new Player().play(uri); } }); } @Override public void onResume() { System.out.println(TAG + " onResume"); if (adapter != null) { adapter.notifyDataSetChanged(); System.out.println(TAG + "adapter.notifyDataSetChanged()"); } else { System.out.println(TAG + "adapter==null"); } super.onResume(); } @Override public void onDestroy() { Log.i(TAG, "onDetach"); WatchDog.keybackRefersExitPro=true;//返回键指向退出程序 unregisterReceivers(); super.onDetach(); } }