package com.rainfactory.rainmp3;
import java.io.File;
import java.util.ArrayList;
import java.util.HashMap;
import com.rainfactory.DB.DB_loveMusic;
import com.rainfactory.Mp3Info.Mp3Info;
import com.rainfactory.filter.MusicFilter;
import com.rainfactory.service.playService;
import android.app.AlertDialog;
import android.app.TabActivity;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.res.Resources;
import android.database.Cursor;
import android.graphics.drawable.Drawable;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.View.OnCreateContextMenuListener;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TabHost;
import android.widget.Toast;
import android.widget.AdapterView.OnItemClickListener;
public class ActivityMain extends TabActivity{
/** Called when the activity is first created. */
private DB_loveMusic DB_lovemusic;
private Cursor myCursor;
private String likeName;
private TabHost myTabHost;
public static final String TITLE_ALL="所有音乐";
public static final String TITLE_LIKE="我喜欢的音乐";
private ListView listviewall = null;
private ListView listviewlike = null;
private File file = null;
private File file1 = null;
public static ArrayList<Mp3Info> arrayl = null;
public static ArrayList<Mp3Info> arrayl2 = null;
private static final String path = new String("/sdcard/RainMusic/");
int i = 0;
int j = 0;
public static boolean from = true;
public static String broadcastname;
public static final String action_1 = "com.rainfactory.action.NEW_BROADCAST_1";
public static final String action_2 = "com.rainfactory.action.NEW_BROADCAST_2";
public static boolean FINISH = false;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
DB_lovemusic = new DB_loveMusic(this);
myCursor = DB_lovemusic.select();
myTabHost = this.getTabHost();
Resources res = getResources();
LayoutInflater.from(this).inflate(R.layout.main, myTabHost.getTabContentView(), true);
myTabHost.addTab(myTabHost.newTabSpec("allMusic").setIndicator(TITLE_ALL,res.getDrawable(R.drawable.yinfu)).setContent(R.id.all_music));
myTabHost.addTab(myTabHost.newTabSpec("likelyMusic").setIndicator(TITLE_LIKE, res.getDrawable(R.drawable.like)).setContent(R.id.likely_music));
mkdir();
}
/////////////////////////////喜欢歌曲列表
@Override
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
taball();
tablike();
}
private void tablike() {
// TODO Auto-generated method stub
listviewlike = (ListView) findViewById(R.id.main_listview_like);
DB_lovemusic = new DB_loveMusic(this);
myCursor = DB_lovemusic.select();
ArrayList<HashMap<String,Object>> listItem = new ArrayList<HashMap<String,Object>>();
arrayl2 = new ArrayList<Mp3Info>();
for(myCursor.moveToFirst();!myCursor.isAfterLast();myCursor.moveToNext())
{
arrayl2.add(new Mp3Info(j,myCursor.getString(1),path + myCursor.getString(1)));
j++;
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("ImageView", R.drawable.icon);
map.put("title", myCursor.getString(1));
listItem.add(map);
}
//生成适配器的Item和动态数组对应的元素
SimpleAdapter listItemAdapter = new SimpleAdapter(
this, listItem, R.layout.item,
new String[]{"title","ImageView"},
new int[]{R.id.Item_TextVIew,R.id.Item_ImageView}
);
//添加并且显示
listviewlike.setAdapter(listItemAdapter);
listviewlike.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long arg3) {
from = false;
myCursor.moveToPosition(position);
Mp3Info mp3info = arrayl2.get(position);
broadcastname = myCursor.getString(1);
Intent intent = new Intent();
intent.putExtra("Mp3Info", mp3info);
sendBroadcast(new Intent(action_1));
intent.setClass(ActivityMain.this,ActivityRun.class);
startActivity(intent);
}});
listviewlike.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
final AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo;
int mListPos = info.position;
myCursor.moveToPosition(mListPos);
likeName = myCursor.getString(1);
menu.setHeaderTitle("菜单");
menu.add(0, 5, 0, "从列表中删除");
menu.add(0, 4, 0, "返回");
}
});
}
////////////所有歌曲
private void taball() {
// TODO Auto-generated method stub
listviewall = (ListView) findViewById(R.id.main_listview_all);
final ArrayList<HashMap<String,Object>> listItem = new ArrayList<HashMap<String,Object>>();
if(file.listFiles(new MusicFilter()).length>0){
arrayl = new ArrayList<Mp3Info>();
for(File f : file.listFiles(new MusicFilter())){
arrayl.add(new Mp3Info(i,f.getName(),path+f.getName()));
i++;
HashMap<String, Object> hashmap = new HashMap<String, Object>();
hashmap.put("ImageView", R.drawable.icon);
hashmap.put("title", f.getName());
listItem.add(hashmap);
}
}
SimpleAdapter simpleAdapter = new SimpleAdapter
(this, listItem, R.layout.item,
new String[]{"title","ImageView"},
new int[]{R.id.Item_TextVIew,R.id.Item_ImageView});
listviewall.setAdapter(simpleAdapter);
/////////////播放列表点击
listviewall.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> arg0, View arg1, int position,
long arg3) {
// TODO Auto-generated method stub
from = true;
Mp3Info mp3info = arrayl.get(position);
broadcastname = arrayl.get(position).getName();
Intent intent = new Intent();
intent.putExtra("Mp3Info", mp3info);
sendBroadcast(new Intent(action_1));
intent.setClass(ActivityMain.this,ActivityRun.class);
startActivity(intent);
}});
//长按弹出菜单
listviewall.setOnCreateContextMenuListener(new OnCreateContextMenuListener() {
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo) {
final AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo;
int mListPos = info.position;
likeName = arrayl.get(mListPos).getName();
menu.setHeaderTitle("菜单");
menu.add(0, 2, 0, "添加至喜爱的歌曲");
menu.add(0, 3, 0, "删除歌曲");
menu.add(0, 4, 0, "返回");
}
});
}
///////////////////创建文件夹
private void mkdir() {
// TODO Auto-generated method stub
file = new File(path);
if(!file.exists()){
file.mkdirs();
}else{
return;
}
}
////////////////////////////////////////////////// menu按钮
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
menu.add(0, 0, 0, "关于");
menu.add(0, 1, 1, "退出");
return super.onCreateOptionsMenu(menu);
}
public boolean onMenuItemSelected(int featureId, MenuItem item) {
// TODO Auto-generated method stub
switch(item.getItemId()){
case 0:action0();
break;
case 1:action1();
break;
case 2:addToLike();
break;
case 3:deleMusic();
break;
case 4:;
break;
case 5:removeMusic();
}
return super.onMenuItemSelected(featureId, item);
}
private void removeMusic() {
DB_lovemusic.delete(likeName);
taball();
tablike();
}
private void deleMusic() {
file1 = new File(path + likeName);
if(file1.exists()){