package com.hyrt.cei.adapter;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.vudroid.pdfdroid.PdfViewerActivity;
import com.hyrt.cei.application.CeiApplication;
import com.hyrt.cei.db.DataHelper;
import com.hyrt.cei.util.AsyncImageLoader;
import com.hyrt.cei.util.EncryptDecryption;
import com.hyrt.cei.util.MyTools;
import com.hyrt.cei.util.AsyncImageLoader.ImageCallback;
import com.hyrt.cei.vo.ImageResourse;
import com.hyrt.cei.vo.Report;
import com.hyrt.cei.vo.funId;
import com.hyrt.ceiphone.R;
import com.hyrt.readreport.CeiShelfBookActivity;
import com.hyrt.readreport.ReadReportMainActivity;
import com.hyrt.readreport.ReportIntro;
import com.poqop.document.ViewerPreferences;
import android.app.Activity;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Environment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.BaseAdapter;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
public class ReadReportAdapter extends BaseAdapter {
private List<Report> data;
private LayoutInflater inflater;
private AsyncImageLoader asyncImageLoader;
private ListView goodList;
private Activity context;
private DataHelper dataHelper;
private CeiApplication application;
private boolean flage;
public ReadReportAdapter(Activity context, List<Report> data,
ListView goodList) {
if(data==null) data=new ArrayList<Report>();
this.data = data;
this.goodList = goodList;
this.context = context;
asyncImageLoader = ((CeiApplication) context.getApplication()).asyncImageLoader;
inflater = LayoutInflater.from(context);
dataHelper = ((CeiApplication) context.getApplication()).dataHelper;
application=(CeiApplication) context.getApplication();
}
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return data.get(position);
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
final Holder holder = new Holder();
/*
* if(convertView==null){ //holder=new Holder();
*/convertView = inflater.inflate(R.layout.read_report_item, null);
holder.handImg = (ImageView) convertView
.findViewById(R.id.iv_goodbg_hand);
holder.title = (TextView) convertView
.findViewById(R.id.tv_goodbg_title);
holder.aName = (TextView) convertView
.findViewById(R.id.tv_goodbg__aname);
holder.price = (TextView) convertView
.findViewById(R.id.tv_goodbg_price);
holder.aNamebq = (TextView) convertView
.findViewById(R.id.tv_goodbg__aname_bq);
holder.pricebq = (TextView) convertView
.findViewById(R.id.tv_goodbg_price_bq);
holder.body = (TextView) convertView.findViewById(R.id.tv_goodbg_text);
/*
* holder.jianjian = (ImageButton) convertView
* .findViewById(R.id.ib_bg_jiejian);
*/
holder.download = (ImageButton) convertView
.findViewById(R.id.ib_bg_download);
convertView.setTag(holder);
/*
* }else{ holder=(Holder) convertView.getTag(); }
*/
final Report report = data.get(position);
holder.handImg.setTag(report.getSmallPpath());
// holder.handImg.setImageResource(Integer.parseInt(data.get(position).get("hand").toString()));
holder.title.setText(report.getName());
holder.aName.setText(report.getAuthor());
holder.aNamebq.setText(application.ReportColumns.get(0).getAuthro()==null?"作者:":application.ReportColumns.get(0).getAuthro()+":");
holder.pricebq.setText(application.ReportColumns.get(0).getPrice()==null?"价格: ¥":application.ReportColumns.get(0).getPrice()+": ¥");
holder.body.setText(report.getIntro().trim());
if(ReadReportMainActivity.bbStart){
holder.price.setText(report.getPrice());
}else{
holder.price.setVisibility(View.GONE);
holder.pricebq.setVisibility(View.GONE);
}
ImageResourse imageResource = new ImageResourse();
imageResource.setIconUrl(data.get(position).getSmallPpath());
imageResource.setIconId(data.get(position).getId());
imageResource.setIconTime(data.get(position).getProtime());
asyncImageLoader.loadDrawable(imageResource, new ImageCallback() {
@Override
public void imageLoaded(Drawable imageDrawable, String imageUrl) {
ImageView img = (ImageView) goodList.findViewWithTag(report
.getSmallPpath());
if (img != null && imageDrawable != null) {
// img.setLayoutParams(new LinearLayout.LayoutParams(100,
// 130));
img.setScaleType(ImageView.ScaleType.FIT_CENTER);
img.setImageDrawable(imageDrawable);
}
}
});
holder.handImg.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// 方法二,大窗体
Intent intent = new Intent(context, ReportIntro.class);
intent.putExtra("report", report);
context.startActivity(intent);
}
});
// 判断数据库中是否有记录
if (dataHelper.getReportListById(report.getName()).size() < 1) {
holder.download.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (!((CeiApplication) context.getApplication()).isNet()) {
MyTools.exitShow(context, goodList, "网络连接错误!请检查网络");
return;
}
// 下载加入书架
if (report.getIsFree() != null
&& report.getIsFree().equals("1")) {
if (Environment.getExternalStorageState().equals(
Environment.MEDIA_MOUNTED)) {
String fileTime = System.currentTimeMillis() + "";
String fileName = report.getDownpath().replace(
"/bg.zip", "");
fileName = fileName.substring(fileName
.lastIndexOf("/") + 1);
// 保存数据库
report.setReadtime(fileTime);
report.setFileName(fileName);
report.setDatapath(Report.SD_PATH + fileName);
long retuCoad = dataHelper.saveReport(report);
report.setIsLoad("start");
dataHelper.UpdateReportZT(report);
// 跳转书架
if (retuCoad != -1) {
context.startActivity(new Intent(context,
CeiShelfBookActivity.class));
//context.finish();
} else {
Toast.makeText(context, "文件保存错误", 1).show();
}
} else {
Toast.makeText(context, "SD卡没有准备好",
Toast.LENGTH_SHORT).show();
}
} else {
List<funId> buyReportData = ((CeiApplication) context
.getApplication()).buyReportData;
if (buyReportData != null && buyReportData.size() > 0) {
for (funId funId : buyReportData) {
if (funId.getFunid().equals(report.getId())) {
flage = true;
// 已购买
String fileTime = System
.currentTimeMillis() + "";
String fileName = report.getDownpath()
.replace("/bg.zip", "");
fileName = fileName.substring(fileName
.lastIndexOf("/") + 1);
// 保存数据库
report.setReadtime(fileTime);
report.setFileName(fileName);
report.setDatapath(Report.SD_PATH
+ fileName);
long retuCoad = dataHelper
.saveReport(report);
report.setIsLoad("start");
dataHelper.UpdateReportZT(report);
// 跳转书架
if (retuCoad != -1) {
context.startActivity(new Intent(
context,
CeiShelfBookActivity.class));
//context.finish();
} else {
Toast.makeText(context, "文件保存错误", 1)
.show();
}
}
}
if (!flage) {
MyTools.exitShow(context, goodList, "请你购买后下载!");
}
} else {
MyTools.exitShow(context, goodList, "请你购买后下载!");
}
}
}
});
} else if (dataHelper.getReportListById(report.getName()).get(0)
.getIsLoad() != null
&& dataHelper.getReportListById(report.getName()).get(0)
.getIsLoad().equals("yes")) {
holder.download.setBackgroundResource(R.drawable.read_report_read);
holder.download.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
String pdfUri = null;
Report nowReport = dataHelper.getReportListById(
report.getName()).get(0);
String pdfPath = nowReport.getDatapath();
File dir = new File(pdfPath);
File file[] = dir.listFiles();
if (file == null) {
Toast.makeText(context, "文件不存在!", 2).show();
return;
}
for (int i = 0; i < file.length; i++) {
if (!file[i].isDirectory()
&& file[i].getName().lastIndexOf(".pdf") != -1) {
pdfUri = pdfPath + "/" + file[i].getName();// data.get(position).getDatapath()现在不正确
}
}
if (nowReport.getKey().equals("")) {
Toast.makeText(context, "后台加密错误,联系谭杰、吴明杰!", 2).show();
} else {
// 此处解密阅读
try {
EncryptDecryption.DecryptionReport(
pdfUri,
nowReport.getKey().substring(
0,
nowReport.getKey().toString()
.length() - 1));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Uri uri = Uri.parse("file://" + pdfUri);// data.get(position).getDatapath()现在不正确
// +pdfUri
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
intent.putExtra("name", nowReport.getName());
intent.putExtra("report", nowReport);
intent.putExtra("pdfPath", pdfUri);
String uriString = uri.toString();
intent.setClass(context, PdfViewerActivity.class);
context.startActivity(intent);
ViewerPreferences preferences = new ViewerPreferences(
context);
preferences.putYourReads(uriString);
}
}
});
}else if (dataHelper.getReportListById(report.getName()).get(0)//插入数据库,但是没有下载
.getIsLoad() != null
&& !dataHelper.getReportListById(report.getName()).get(0)
.getIsLoad().equals("yes")) {
holder.download.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
context.startActivity(new Intent(
context,
CeiShelfBookActivity.class));
//context.finish();
Toast.makeText(context, "已加入书架!", 2).show();
}
});
}
return convertView;
}
public class Holder {
// ImageView jianjian;
ImageView handImg;
TextView title;
TextView aName;
TextView price;
TextView aNamebq;
TextView pricebq;
TextView body;
ImageButton download;
}
}