package com.kitty.poclient.common; import android.app.Activity; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.Intent; import android.content.res.Resources; import android.graphics.drawable.AnimationDrawable; import android.widget.BaseExpandableListAdapter; import android.widget.ImageButton; import com.kitty.poclient.R; import com.kitty.poclient.bean.LocalAlbums; import com.kitty.poclient.bean.LocalThemes; import com.kitty.poclient.data.VirtualData; import com.kitty.poclient.domain.Music; import com.kitty.poclient.fragment.PlayerFragment; import com.kitty.poclient.util.ExitApplication; import com.kitty.poclient.widget.StandardCustomDialog; /** * 应用程序UI工具包:封装UI相关的一些操作 * @author fangyishuai@dfim.com.cn * @version 1.0 * @since 0.0.4 * @created 2013-12-04 */ public class UIHelper { public static void showExitDialog(Activity parentActivity) { final StandardCustomDialog.Builder builder = new StandardCustomDialog.Builder(parentActivity); builder.setTitle("退出程序"); builder.setMessage("确认退出程序吗?"); StandardCustomDialog dialog; builder.setPositiveButton("取消", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); builder.setNegativeButton("确认", new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); ExitApplication.getInstance().exit(); } }); dialog = builder.create(); dialog.setCancelable(false); dialog.show(); } /** * 刷新“播放器切换”按钮:播放状态显示 * @param btnPlayer “播放切换”按钮 * @param resources The Android resource system keeps track of all non-code assets associated with an application. * @param adapter Adapter to refresh */ public static void initMusicFragmentBtnPlayer(ImageButton btnPlayer, Resources resources, BaseExpandableListAdapter adapter) { String currentCacheState = Music.CACHE_WAIT; if (WatchDog.currentPlayingMusic != null) { currentCacheState = WatchDog.cacheStateMap.get(WatchDog.currentPlayingMusic.getId());// 查到当前曲目缓存状态 // System.out.println(TAG + "currentCacheState=" + currentCacheState); } if (WatchDog.mediaOutOfService == true && WatchDog.currentState.equals(PlayerFragment.PLAYING)) { // AnimationDrawable animationDrawable = (AnimationDrawable) getResources().getDrawable(R.anim.playing); AnimationDrawable animationDrawable = (AnimationDrawable) resources.getDrawable(R.anim.playing); btnPlayer.setImageDrawable(animationDrawable); animationDrawable.start(); if (adapter!=null) { adapter.notifyDataSetChanged(); } } else if (!WatchDog.currentState.equals(PlayerFragment.PLAYING) || !Music.CACHE_DOWNLOADED.equals(currentCacheState)) {// 空指针 btnPlayer.setImageResource(R.drawable.btn_player); } else { AnimationDrawable animationDrawable = (AnimationDrawable) resources.getDrawable(R.anim.playing); btnPlayer.setImageDrawable(animationDrawable); animationDrawable.start(); if (adapter != null) { adapter.notifyDataSetChanged();// 小喇叭开始广播啦 } } //外联设备文件播放情况 if(WatchDog.currentListType == Constant.URI_USB || WatchDog.currentListType == Constant.URI_CUE){ if(WatchDog.currentState.equals(PlayerFragment.PLAYING)){ AnimationDrawable animationDrawable = (AnimationDrawable) resources.getDrawable(R.anim.playing); btnPlayer.setImageDrawable(animationDrawable); animationDrawable.start(); }else{ btnPlayer.setImageResource(R.drawable.btn_player); } } } /** * 刷新我的音乐列表-专辑、单曲和主题。 */ public static void refreshAllLocalView(){ Intent intent = new Intent(BroadcastManager.FILTER_UPDATE_LOCALLIST); intent.putExtra(BroadcastManager.EXTRA_INCLUDE_LOCALALBUM, BroadcastManager.EXTRA_BOOLEAN_DEFAULT); intent.putExtra(BroadcastManager.EXTRA_INCLUDE_LOCALTHEME, BroadcastManager.EXTRA_BOOLEAN_DEFAULT); UpnpApp.context.sendBroadcast(intent); } public static void refreshLocalAlbumsView(){ Intent intent = new Intent(BroadcastManager.FILTER_UPDATE_LOCALLIST); intent.putExtra(BroadcastManager.EXTRA_INCLUDE_LOCALALBUM, BroadcastManager.EXTRA_BOOLEAN_DEFAULT); intent.putExtra(BroadcastManager.EXTRA_INCLUDE_LOCALTHEME, BroadcastManager.EXTRA_BOOLEAN_IGNORE); UpnpApp.context.sendBroadcast(intent); } public static void refreshLocalThemesView(){ Intent intent = new Intent(BroadcastManager.FILTER_UPDATE_LOCALLIST); intent.putExtra(BroadcastManager.EXTRA_INCLUDE_LOCALALBUM, BroadcastManager.EXTRA_BOOLEAN_IGNORE); intent.putExtra(BroadcastManager.EXTRA_INCLUDE_LOCALTHEME, BroadcastManager.EXTRA_BOOLEAN_DEFAULT); UpnpApp.context.sendBroadcast(intent); } public static void refreshLocalSinglesView(){ Intent intent = new Intent(BroadcastManager.FILTER_UPDATE_LOCALLIST); intent.putExtra(BroadcastManager.EXTRA_INCLUDE_LOCALTHEME, BroadcastManager.EXTRA_BOOLEAN_IGNORE); intent.putExtra(BroadcastManager.EXTRA_INCLUDE_LOCALALBUM, BroadcastManager.EXTRA_BOOLEAN_IGNORE); UpnpApp.context.sendBroadcast(intent); } public static void refreshPlayerButton(){ Intent intent = new Intent("initBtnPlayerReceiver"); UpnpApp.context.sendBroadcast(intent); } public static void refreshAllMusicsCasheState(){ //此时AlbumListFragment和MymusicThemesFragment两个类尚未onCreate,是收不到广播的 Intent intent = new Intent("onCacheStateMapEstablishedReceiver"); UpnpApp.context.sendBroadcast(intent); VirtualData.localAlbums = LocalAlbums.translateAlbumList(VirtualData.albums); VirtualData.localThemes = LocalThemes.translatePacks(VirtualData.packs); } }