package com.ntp.ui.me;
import android.app.Activity;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import com.ntp.ui.R;
import com.ntp.util.ConstantValue;
import com.ntp.dao.DownloadHistoryDao;
import com.ntp.util.OpenFileUtil;
import com.ntp.view.MySelectDialog;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
/**
* 我的下载
* @author yanxing
*/
public class MyDownloadActivity extends Activity implements AdapterView.OnItemClickListener,AdapterView.OnItemLongClickListener{
private ListView myDownload;
private ArrayAdapter<String> arrayAdapter;
private DownloadHistoryDao downloadHistoryDao;
private List<String> list=new ArrayList<String>();
private static final String TAG="MyDownloadActivity";
private static final int REQUEST=1;
private static String fileName;//保存listView长按时item的文本
private String fileWord[]=new String[]{".doc",".docx"};//word文件后缀
private String fileExcel[]=new String[]{".xls",".xlsx"}; //excel文件后缀
private String filePPT[]=new String[]{".ppt",".pptx"}; //ppt文件后缀
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my_download);
myDownload= (ListView) findViewById(R.id.myDownload);
arrayAdapter=new ArrayAdapter<String>(this, R.layout.listview_item_mydownload,list);
myDownload.setAdapter(arrayAdapter);
downloadHistoryDao=new DownloadHistoryDao(getApplicationContext());
myDownload.setOnItemClickListener(this);
myDownload.setOnItemLongClickListener(this);
new LoadFileTask().execute();
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
String fileName=((TextView)view).getText().toString();
File file=new File(ConstantValue.SAVE_PATH+fileName);
if (isFileWord(fileName)){//如果是word文件
Intent intent=OpenFileUtil.getWordFileIntent(file);
startActivity(intent);
}else if (isFileExcel(fileName)){//如果是excel文件
Intent intent=OpenFileUtil.getExcelFileIntent(file);
startActivity(intent);
}else if (isFilePPT(fileName)){
Intent intent=OpenFileUtil.getPPTFileIntent(file);
startActivity(intent);
}else{
Toast.makeText(getApplicationContext(),"没有安装打开此类文件的应用",Toast.LENGTH_SHORT).show();
}
}
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
fileName=((TextView)view).getText().toString();
Intent intent=new Intent(getApplicationContext(), MySelectDialog.class);
intent.putExtra("itemNumber",false);
Bundle bundle=new Bundle();
bundle.putString("firstOption","删除");
intent.putExtras(bundle);
startActivityForResult(intent, REQUEST);
return true;
}
/**
* 检查文件是否是Excel文件
* @param fileName 文件名
* @return true 是Excel文件,false不是
*/
public boolean isFileExcel(String fileName){
String suffixStr=fileName.substring(fileName.lastIndexOf("."),fileName.length());
for (int i=0;i<fileExcel.length;i++){
if (suffixStr.equals(fileExcel[i])){
return true;
}
}
return false;
}
/**
* 检查文件是否是PPT文件
* @param fileName 文件名
* @return true 是PPT文件,false不是
*/
public boolean isFilePPT(String fileName){
String suffixStr=fileName.substring(fileName.lastIndexOf("."),fileName.length());
for (int i=0;i<filePPT.length;i++){
if (suffixStr.equals(filePPT[i])){
return true;
}
}
return false;
}
/**
* 检查文件是否是word文件
* @param fileName 文件名
* @return true 是word文件,false不是
*/
public boolean isFileWord(String fileName){
String suffixStr=fileName.substring(fileName.lastIndexOf("."),fileName.length());
for (int i=0;i<fileWord.length;i++){
if (suffixStr.equals(fileWord[i])){
return true;
}
}
return false;
}
/**
* 读取下载的课件线程
*/
private class LoadFileTask extends AsyncTask<Void,Void,List<String>>{
@Override
protected List<String> doInBackground(Void... params) {
if (null==downloadHistoryDao){
downloadHistoryDao=new DownloadHistoryDao(getApplicationContext());
}
List<String> downloadHistoryList=downloadHistoryDao.findAll();
for (String str:downloadHistoryList){
File file=new File(ConstantValue.SAVE_PATH+str);
if (!file.exists()){//如果下载目录文件已经不存在,则删除数据库中的记录
downloadHistoryDao.delete(str);
continue;
}
list.add(file.getName());
}
downloadHistoryDao.close();
return list;
}
@Override
protected void onPostExecute(List<String> list) {
super.onPostExecute(list);
arrayAdapter=new ArrayAdapter<String>(getApplicationContext(), R.layout.listview_item_mydownload,list);
arrayAdapter.notifyDataSetChanged();
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//删除文件
if (requestCode==REQUEST&&resultCode==MySelectDialog.RESULT_ITEM1){
Log.i(TAG,fileName);
File file=new File(ConstantValue.SAVE_PATH+fileName);
file.delete();
//从list集合中移除删除的详
for (int i=0;i<list.size();i++){
if (list.get(i).equals(fileName)){
list.remove(i);
break;
}
}
arrayAdapter=new ArrayAdapter<String>(getApplicationContext(), R.layout.listview_item_mydownload,list);
arrayAdapter.notifyDataSetChanged();
myDownload.setAdapter(arrayAdapter);
}
}
}