package cn.ccsu.ShareFV;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.ImageView;
import android.widget.Button;
import android.widget.BaseAdapter;
import android.widget.Toast;
import android.view.View;
import android.view.ViewGroup;
import android.view.LayoutInflater;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.util.Log;
import android.view.View.OnClickListener;
import android.content.Intent;
import android.net.Uri;
import android.app.ListActivity;
import android.view.WindowManager;
import android.view.Display;
import android.view.WindowManager.LayoutParams;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import java.util.List;
import java.util.Map;
import java.util.ArrayList;
import java.util.HashMap;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import cn.ccsu.ShareFV.R;
public class ExDialog extends ListActivity {
private List<Map<String, Object>> mData;
private String mDir = "/sdcard";
private String sharePath="";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent = this.getIntent();
Bundle bl = intent.getExtras();
String title = bl.getString("explorer_title");
Uri uri = intent.getData();
mDir = uri.getPath();
setTitle(title);
mData = getData();
MyAdapter adapter = new MyAdapter(this);
setListAdapter(adapter);
WindowManager m = getWindowManager();
Display d = m.getDefaultDisplay();
LayoutParams p = getWindow().getAttributes();
p.height = (int) (d.getHeight() * 0.8);
p.width = (int) (d.getWidth() * 0.95);
getWindow().setAttributes(p);
}
private List<Map<String, Object>> getData() {
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> map = null;
File f = new File(mDir);
File[] files = f.listFiles();
if (!mDir.equals("/sdcard")) {
map = new HashMap<String, Object>();
map.put("title", "Back to ../");
map.put("info", f.getParent());
map.put("img", R.drawable.ex_folder);
list.add(map);
}
if (files != null) {
for (int i = 0; i < files.length; i++) {
map = new HashMap<String, Object>();
map.put("title", files[i].getName());
map.put("info", files[i].getPath());
if (files[i].isDirectory())
{
map.put("img", R.drawable.ex_folder);
list.add(map);
}
else
{
if(files[i].getName().endsWith(".rmvb")
||files[i].getName().endsWith(".mp4")
||files[i].getName().endsWith(".flv")
||files[i].getName().endsWith(".avi")
||files[i].getName().endsWith(".mkv")
||files[i].getName().endsWith(".mpeg")
||files[i].getName().endsWith(".3gp")
||files[i].getName().endsWith(".wmv")
||files[i].getName().endsWith(".mov"))
{
map.put("img", R.drawable.ex_doc);
list.add(map);
}
}
}
}
return list;
}
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
Log.d("MyListView4-click", (String) mData.get(position).get("info"));
if ((Integer) mData.get(position).get("img") == R.drawable.ex_folder) {
mDir = (String) mData.get(position).get("info");
mData = getData();
MyAdapter adapter = new MyAdapter(this);
setListAdapter(adapter);
} else {
sharePath=(String) mData.get(position).get("info");
dialog();
}
}
public final class ViewHolder {
public ImageView img;
public TextView title;
public TextView info;
}
public class MyAdapter extends BaseAdapter {
private LayoutInflater mInflater;
public MyAdapter(Context context) {
this.mInflater = LayoutInflater.from(context);
}
public int getCount() {
return mData.size();
}
public Object getItem(int arg0) {
return null;
}
public long getItemId(int arg0) {
return 0;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
holder = new ViewHolder();
convertView = mInflater.inflate(R.layout.listview, null);
holder.img = (ImageView) convertView.findViewById(R.id.img);
holder.title = (TextView) convertView.findViewById(R.id.title);
holder.info = (TextView) convertView.findViewById(R.id.info);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.img.setBackgroundResource((Integer) mData.get(position).get(
"img"));
holder.title.setText((String) mData.get(position).get("title"));
holder.info.setText((String) mData.get(position).get("info"));
return convertView;
}
}
private void finishWithResult() {
Intent intent = new Intent(this,IJetty.class);
setResult(1, intent);
finish();
}
protected void dialog() {
Builder builder = new Builder(ExDialog.this);
builder.setMessage("ȷ�Ϲ������Ƶ!");
builder.setTitle("��ʾ");
builder.setPositiveButton("ȷ��", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
try {
File file=new File(sharePath);
file.renameTo(new File("/sdcard/jetty/webapps/jetty/gongxiang.flv"));
//��������Ƶԭʼ·��������sharepath.xml�ļ���
SharedPreferences sp = ExDialog.this.getSharedPreferences("sharepath", MODE_PRIVATE);
Editor editor = sp.edit();
editor.putString("sharePath",sharePath);
IJetty.VideoName=sharePath.split("/")[sharePath.split("/").length-1];
editor.commit();
finishWithResult();
} catch (Exception e) {
// TODO: handle exception
System.out.println("�ƶ�ʧ��");
Toast.makeText(ExDialog.this, "�ƶ��ļ�ʧ��", 5000);
}
}
});
builder.setNegativeButton("ȡ��", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
AlertDialog dialog=builder.create();
dialog.show();
}
};