package com.hyrt.cei.ui.ebook;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import org.vudroid.pdfdroid.PdfViewerActivity;
import com.hyrt.cei.R;
import com.hyrt.cei.adapter.BookSelfAdapter;
import com.hyrt.cei.adapter.BookSelfListAdapter;
import com.hyrt.cei.application.CeiApplication;
import com.hyrt.cei.db.DataHelper;
import com.hyrt.cei.ui.ebook.view.ShelvesView;
import com.hyrt.cei.ui.ebook.view.util.ComparatorReport;
import com.hyrt.cei.util.EncryptDecryption;
import com.hyrt.cei.util.NewFileDownload;
import com.hyrt.cei.util.XmlUtil;
import com.hyrt.cei.util.ZipUtils;
import com.hyrt.cei.vo.Report;
import com.hyrt.cei.webservice.service.Service;
import com.hyrt.cei.util.MyTools;
import com.poqop.document.ViewerPreferences;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.drawable.BitmapDrawable;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.os.Handler;
import android.os.Message;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.view.WindowManager;
import android.view.View.OnClickListener;
import android.view.inputmethod.InputMethodManager;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.ProgressBar;
import android.widget.TextView;
import android.widget.Toast;
public class CeiShelfBookActivity extends Activity implements OnClickListener {
private int number = 0, hengORshu = 0;
private List<Report> data = new ArrayList<Report>();
private ImageButton shezhi, back;
private ShelvesView shelvesview;
private DataHelper dataHelper;
private ImageView find, heng, shu;
private EditText findText;
private ListView shelvesListView;
private BookSelfAdapter selfAdapter;
private BookSelfListAdapter selfListAdapter;
private LinearLayout porLayout;
private CeiApplication application;
HashMap<String, String> loadThreads = new HashMap<String, String>();
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case 404:
if(msg.arg1==1){
MyTools.exitShow(CeiShelfBookActivity.this,
shelvesview, "文件解压失败!");
porLayout.setVisibility(View.GONE);
}else if(msg.arg1==2){
MyTools.exitShow(CeiShelfBookActivity.this,
shelvesview, "后台加密错误!");
porLayout.setVisibility(View.GONE);
}else if(msg.arg1==3){
//Toast.makeText(this, "同步错误", 1).show();
MyTools.exitShow(CeiShelfBookActivity.this,CeiShelfBookActivity.this.
getWindow().getDecorView(), "同步错误!");
}else{
MyTools.exitShow(CeiShelfBookActivity.this, shelvesview, "报告路径不正确!");
}
break;
case 10:
selfAdapter = new BookSelfAdapter(CeiShelfBookActivity.this,
data, shelvesview);
shelvesview.setAdapter(selfAdapter);
shelvesview.setSelector(R.drawable.list_selector);
shelvesview
.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> arg0,
View arg1, int arg2, long arg3) {
Report report = data.get(arg2);
delViewShow(report, 10);
return true;
}
});
shelvesview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
final int arg2, long arg3) {
final Report report = data.get(arg2);
final TextView tv = (TextView) arg1
.findViewById(R.id.yjbg_book_item_tv);
final ProgressBar bar = (ProgressBar) arg1
.findViewById(R.id.yjbg_book_item_pro);
if (!report.getIsLoad().equals("yes")) {
Handler handler = new Handler(getLooper()) {
@Override
public void handleMessage(Message msg) {
if (msg.arg1 > 0) {
if(msg.arg1<=100){
bar.setProgress(msg.arg1);
tv.setText(msg.arg1 + "%");
}
}
switch (msg.arg1) {
case -1:
// 路劲错误
tv.setText("err");
dataHelper.delReport(report.getId());
loadThreads.remove(report.getId());
initData();
if(selfAdapter!=null)
selfAdapter.notifyDataSetChanged();
MyTools.exitShow(
CeiShelfBookActivity.this,
shelvesview, "下载文件为空!");
break;
case -2:
tv.setText("err");
dataHelper.delReport(report.getId());
loadThreads.remove(report.getId());
initData();
if(selfAdapter!=null)
selfAdapter.notifyDataSetChanged();
MyTools.exitShow(
CeiShelfBookActivity.this,
shelvesview, "连接网络超时!");
break;
case -3:
tv.setText("err");
dataHelper.delReport(report.getId());
loadThreads.remove(report.getId());
initData();
if(selfAdapter!=null)
selfAdapter.notifyDataSetChanged();
MyTools.exitShow(
CeiShelfBookActivity.this,
shelvesview, "该文件不存在!");
break;
case -4:
tv.setText("err");
dataHelper.delReport(report.getId());
loadThreads.remove(report.getId());
initData();
if(selfAdapter!=null)
selfAdapter.notifyDataSetChanged();
MyTools.exitShow(
CeiShelfBookActivity.this,
shelvesview, "URL地址错误!");
break;
case -5:
tv.setText("err");
dataHelper.delReport(report.getId());
loadThreads.remove(report.getId());
initData();
if(selfAdapter!=null)
selfAdapter.notifyDataSetChanged();
MyTools.exitShow(
CeiShelfBookActivity.this,
shelvesview, "本地文件创建失败!");
break;
case -6:
tv.setText("err");
dataHelper.delReport(report.getId());
loadThreads.remove(report.getId());
initData();
if(selfAdapter!=null)
selfAdapter.notifyDataSetChanged();
MyTools.exitShow(
CeiShelfBookActivity.this,
shelvesview, "数据读写错误!");
break;
case 100:
tv.setText("100%");
bar.setVisibility(View.GONE);
report.setIsLoad("yes");
dataHelper.UpdateReportZT(report);
//统计
Service.updatedownsum(report.getId(), "bg");
//解压
porLayout.setVisibility(View.VISIBLE);
setViewListener(data.get(arg2));
loadThreads.remove(report.getId());
break;
}
}
};
String path = report.getDownpath().toString();
File savedir = new File(Report.SD_PATH
+ report.getName());// Environment.getExternalStorageDirectory().getAbsolutePath()+
// "/cei/bg/"
if (!savedir.exists()) {
savedir.mkdirs();
}
try {
if (loadThreads.get(report.getId()) != null) {
/*Toast.makeText(CeiShelfBookActivity.this,
"正在下载!", 2).show();*/
MyTools.exitShow(CeiShelfBookActivity.this,CeiShelfBookActivity.this.
getWindow().getDecorView(), "正在下载!");
return;
} else {
NewFileDownload.download(path, savedir,
handler);
loadThreads.put(report.getId(), "1");
}
} catch (Exception e) {
e.printStackTrace();
}
} else {
// 下载完毕后减压文件
porLayout.setVisibility(View.VISIBLE);
setViewListener(data.get(arg2));
}
}
});
break;
case 20:
selfListAdapter = new BookSelfListAdapter(
CeiShelfBookActivity.this, data, shelvesListView);
shelvesListView.setAdapter(selfListAdapter);
shelvesListView.setSelector(R.drawable.list_selector);
shelvesListView
.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0,
View arg1, final int arg2, long arg3) {
// setViewListener(data.get(arg2), arg1);
final Report report = data.get(arg2);
final TextView tv = (TextView) arg1
.findViewById(R.id.yjbg_book_list_item_tv);
final ProgressBar bar = (ProgressBar) arg1
.findViewById(R.id.yjbg_book_list_item_pro);
if (!report.getIsLoad().equals("yes")) {
Handler handler = new Handler(getLooper()) {
@Override
public void handleMessage(Message msg) {
if (msg.arg1 > 0) {
bar.setProgress(msg.arg1);
tv.setText(msg.arg1 + "%");
}
switch (msg.arg1) {
case -1:
// 路劲错误
tv.setText("err");
dataHelper.delReport(report
.getId());
loadThreads.remove(report.getId());
initData();
if(selfListAdapter!=null)
selfListAdapter.notifyDataSetChanged();
MyTools.exitShow(
CeiShelfBookActivity.this,
shelvesview, "下载文件为空!");
break;
case -2:
tv.setText("err");
dataHelper.delReport(report
.getId());
loadThreads.remove(report.getId());
initData();
if(selfListAdapter!=null)
selfListAdapter.notifyDataSetChanged();
MyTools.exitShow(
CeiShelfBookActivity.this,
shelvesview, "连接网络超时!");
break;
case -3:
tv.setText("err");
dataHelper.delReport(report
.getId());
loadThreads.remove(report.getId());
initData();
if(selfListAdapter!=null)
selfListAdapter.notifyDataSetChanged();
MyTools.exitShow(
CeiShelfBookActivity.this,
shelvesview, "服务端错误!");
break;
case -4:
tv.setText("err");
dataHelper.delReport(report
.getId());
loadThreads.remove(report.getId());
initData();
if(selfListAdapter!=null)
selfListAdapter.notifyDataSetChanged();
MyTools.exitShow(
CeiShelfBookActivity.this,
shelvesview, "URL地址错误!");
break;
case -5:
tv.setText("err");
dataHelper.delReport(report
.getId());
loadThreads.remove(report.getId());
initData();
if(selfListAdapter!=null)
selfListAdapter.notifyDataSetChanged();
MyTools.exitShow(
CeiShelfBookActivity.this,
shelvesview,
"本地文件创建失败!");
break;
case -6:
tv.setText("err");
dataHelper.delReport(report
.getId());
loadThreads.remove(report.getId());
initData();
if(selfListAdapter!=null)
selfListAdapter.notifyDataSetChanged();
MyTools.exitShow(
CeiShelfBookActivity.this,
shelvesview, "数据读写错误!");
break;
case 100:
tv.setText("100%");
bar.setVisibility(View.GONE);
report.setIsLoad("yes");
dataHelper.UpdateReportZT(report);
//统计
Service.updatedownsum(report.getId(), "bg");
//解压
porLayout.setVisibility(View.VISIBLE);
setViewListener(data.get(arg2));
loadThreads.remove(report.getId());
break;
}
}
};
String path = report.getDownpath()
.toString();
File savedir = new File(Report.SD_PATH
+ report.getName());// Environment.getExternalStorageDirectory().getAbsolutePath()+
// "/cei/bg/"
if (!savedir.exists()) {
savedir.mkdirs();
}
try {
if (loadThreads.get(report.getId()) != null) {
/*Toast.makeText(
CeiShelfBookActivity.this,
"正在下载!", 2).show();*/
MyTools.exitShow(CeiShelfBookActivity.this,CeiShelfBookActivity.this.
getWindow().getDecorView(), "正在下载!");
return;
} else {
NewFileDownload.download(path,
savedir, handler);
loadThreads.put(report.getId(), "1");
}
} catch (Exception e) {
e.printStackTrace();
}
} else {
// 下载完毕后减压文件
porLayout.setVisibility(View.VISIBLE);
setViewListener(data.get(arg2));
}
}
});
shelvesListView
.setOnItemLongClickListener(new OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> arg0,
View arg1, int arg2, long arg3) {
final Report report = data.get(arg2);
delViewShow(report, 20);
return true;
}
});
break;
case 30:
porLayout.setVisibility(View.GONE);
break;
default:
break;
}
find.setOnClickListener(CeiShelfBookActivity.this);
heng.setOnClickListener(CeiShelfBookActivity.this);
shu.setOnClickListener(CeiShelfBookActivity.this);
}
};
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.bookshelf);
overridePendingTransition(R.anim.push_in, R.anim.push_out);
application = (CeiApplication) getApplication();
SharedPreferences settings = getSharedPreferences("BookSelfColor",
Activity.MODE_PRIVATE);
int col = settings.getInt("color", 0);
number = settings.getInt("number", 0);
if (col != 0) {
findViewById(R.id.mainlayout).setBackgroundResource(col);
}
getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
dataHelper = ((CeiApplication) this.getApplication()).dataHelper;
initView();
initData();
}
/**
* 初始化控件
*/
private void initView() {
porLayout = (LinearLayout) findViewById(R.id.yjbg_bookself_pro);
find = (ImageView) findViewById(R.id.yjbg_book_find);
heng = (ImageView) findViewById(R.id.yjbg_book_heng);
shu = (ImageView) findViewById(R.id.yjbg_book_shu);
findText = (EditText) findViewById(R.id.yjbg_book_find_et);
shelvesListView = (ListView) findViewById(R.id.yjbg_book_shelves);
shezhi = (ImageButton) findViewById(R.id.ib_goodbg_bookshelf);
shezhi.setOnClickListener(this);
back = (ImageButton) findViewById(R.id.ib_goodbg_back);
back.setOnClickListener(this);
shelvesview = (ShelvesView) findViewById(R.id.grid_shelves);
}
/**
* 初始化数据
*/
private void initData() {
// 查询数据库报告253224
new Thread() {
@SuppressWarnings("unchecked")
@Override
public void run() {
data.clear();
// 此处在加导入的记录
List<Report> reports = new ArrayList<Report>();
if(synDownloadReport()!=null){
reports.addAll(synDownloadReport());
}
if(dataHelper.getReportList()!=null){
data.addAll(dataHelper.getReportList());
}
// 按时间排序 sdfsfdsfsff
ComparatorReport comparator = new ComparatorReport(
"time");
Collections.sort(data, comparator);
Message msg = new Message();
msg.what = 10;
handler.sendMessage(msg);
}
}.start();
}
/**
* 换背景
*
* @param color
* @param back
*/
private void loadBackGround(int color, int back, int number) {
/*
* RelativeLayout layout = (RelativeLayout)
* findViewById(R.id.mainlayout); layout.setBackgroundResource(color);
*/
// 保存颜色到数据库
SharedPreferences settings = getSharedPreferences("BookSelfColor",
Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = settings.edit();
editor.putInt("color", color);
editor.putInt("back", back);
editor.putInt("number", number);
editor.commit();
startActivity(new Intent(CeiShelfBookActivity.this,
CeiShelfBookActivity.class));
this.finish();
}
@Override
public void onClick(View v) {
if (shezhi == v) {
// 加载popupWindow的布局文件
View contentView = LayoutInflater.from(getApplicationContext())
.inflate(R.layout.bookself_popu, null);
// 设置popupWindow的背景颜色
// contentView.setBackgroundColor(Color.RED);
// 声明一个弹出框
final PopupWindow mPopupWindow = new PopupWindow(contentView, 500,
450);
mPopupWindow.setFocusable(true);
mPopupWindow.setTouchable(true); // 设置PopupWindow可触摸
mPopupWindow.setOutsideTouchable(true); // 设置非PopupWindow区域可触摸
mPopupWindow.setBackgroundDrawable(new BitmapDrawable());
if (number == 1) {
contentView.findViewById(R.id.report_item_bg1)
.setBackgroundResource(R.drawable.yjbg_book_sky1);
contentView.findViewById(R.id.report_item_bg2)
.setBackgroundResource(R.drawable.yjbg_book_qmu);
contentView.findViewById(R.id.report_item_bg3)
.setBackgroundResource(R.drawable.yjbg_book_smu);
} else if (number == 2) {
contentView.findViewById(R.id.report_item_bg2)
.setBackgroundResource(R.drawable.yjbg_book_qmu1);
contentView.findViewById(R.id.report_item_bg1)
.setBackgroundResource(R.drawable.yjbg_book_sky);
contentView.findViewById(R.id.report_item_bg3)
.setBackgroundResource(R.drawable.yjbg_book_smu);
} else if (number == 3) {
contentView.findViewById(R.id.report_item_bg3)
.setBackgroundResource(R.drawable.yjbg_book_smu1);
contentView.findViewById(R.id.report_item_bg1)
.setBackgroundResource(R.drawable.yjbg_book_sky);
contentView.findViewById(R.id.report_item_bg2)
.setBackgroundResource(R.drawable.yjbg_book_qmu);
} else if (number == 0) {
contentView.findViewById(R.id.report_item_bg1)
.setBackgroundResource(R.drawable.yjbg_book_sky1);
contentView.findViewById(R.id.report_item_bg2)
.setBackgroundResource(R.drawable.yjbg_book_qmu);
contentView.findViewById(R.id.report_item_bg3)
.setBackgroundResource(R.drawable.yjbg_book_smu);
}
contentView.findViewById(R.id.report_item_bg1).setOnClickListener(
new OnClickListener() {
@Override
public void onClick(View v) {
application.bgindex = 1;
loadBackGround(R.drawable.bookself_bg,
R.drawable.shelf_panel, 1);
}
});
contentView.findViewById(R.id.report_item_bg2).setOnClickListener(
new OnClickListener() {
@Override
public void onClick(View v) {
application.bgindex = 2;
loadBackGround(R.drawable.yjbg_book_shelf_bg_qmu,
R.drawable.shelf_panel, 2);
}
});
contentView.findViewById(R.id.report_item_bg3).setOnClickListener(
new OnClickListener() {
@Override
public void onClick(View v) {
application.bgindex = 3;
loadBackGround(R.drawable.yjbg_book_shelf_bg_smu,
R.drawable.shelf_panel, 3);
}
});
contentView.findViewById(R.id.report_item_sort1)
.setOnClickListener(new OnClickListener() {
@SuppressWarnings("unchecked")
@Override
public void onClick(View v) {
// 按名称排序
ComparatorReport comparator = new ComparatorReport(
"name");
Collections.sort(data, comparator);
// 横活树
if (hengORshu == 1) {
selfListAdapter = new BookSelfListAdapter(
CeiShelfBookActivity.this, data,
shelvesListView);
shelvesListView.setAdapter(selfListAdapter);
} else {
selfAdapter = new BookSelfAdapter(
CeiShelfBookActivity.this, data,
shelvesview);
shelvesview.setAdapter(selfAdapter);
}
mPopupWindow.dismiss();
}
});
contentView.findViewById(R.id.report_item_sort2)
.setOnClickListener(new OnClickListener() {
@SuppressWarnings("unchecked")
@Override
public void onClick(View v) {
// 按时间排序
ComparatorReport comparator = new ComparatorReport(
"time");
Collections.sort(data, comparator);
// 横活树
if (hengORshu == 1) {
selfListAdapter = new BookSelfListAdapter(
CeiShelfBookActivity.this, data,
shelvesListView);
shelvesListView.setAdapter(selfListAdapter);
} else {
selfAdapter = new BookSelfAdapter(
CeiShelfBookActivity.this, data,
shelvesview);
shelvesview.setAdapter(selfAdapter);
}
mPopupWindow.dismiss();
}
});
mPopupWindow.showAtLocation(findViewById(R.id.mainlayout),
Gravity.RIGHT | Gravity.TOP, 0, 30);
} else if (back == v) {
/*Intent intent = new Intent(this, ReadReportActivity.class);
startActivity(intent);*/
this.finish();
} else if (find == v) {
InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(findText.getWindowToken(), 0);
if (findText.getText().toString() != null
&& !findText.getText().toString().equals("")) {
data.clear();
data.addAll(dataHelper.getReportListById(findText.getText()
.toString()));
} else {
data.clear();
data.addAll(dataHelper.getReportList());
}
if(data!=null&&data.size()==0)
MyTools.exitShow(this, this.getWindow().getDecorView(), "没有查到您需要的信息!");
// 横活树
if (hengORshu == 1) {
selfListAdapter.notifyDataSetChanged();
} else {
selfAdapter.notifyDataSetChanged();
}
} else if (heng == v) {
if (loadThreads.size() > 0) {
//Toast.makeText(this, "请下载完在切换视图!", 2).show();
MyTools.exitShow(CeiShelfBookActivity.this,CeiShelfBookActivity.this.
getWindow().getDecorView(), "请下载完再切换视图!");
return;
}
findViewById(R.id.mainlayout).setBackgroundResource(
R.drawable.bookself_bg);
// data.clear();
// data.addAll(dataHelper.getReportList());
shelvesListView.setVisibility(View.VISIBLE);
shelvesview.setVisibility(View.GONE);
Message msg = new Message();
msg.what = 20;
handler.sendMessage(msg);
final InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(findText.getWindowToken(), 0);
hengORshu = 1;
} else if (shu == v) {
if (loadThreads.size() > 0) {
//Toast.makeText(this, "请下载完在切换视图!", 2).show();
MyTools.exitShow(CeiShelfBookActivity.this,CeiShelfBookActivity.this.
getWindow().getDecorView(), "请下载完再切换视图!");
return;
}
if (application.bgindex == 2) {
findViewById(R.id.mainlayout).setBackgroundResource(
R.drawable.yjbg_book_shelf_bg_qmu);
} else if (application.bgindex == 3) {
findViewById(R.id.mainlayout).setBackgroundResource(
R.drawable.yjbg_book_shelf_bg_smu);
}
// data.clear();
// data.addAll(dataHelper.getReportList());
shelvesListView.setVisibility(View.GONE);
shelvesview.setVisibility(View.VISIBLE);
Message msg = new Message();
msg.what = 10;
handler.sendMessage(msg);
final InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(findText.getWindowToken(), 0);
hengORshu = 0;
}
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (keyCode == KeyEvent.KEYCODE_BACK) {
this.finish();
}
return super.onKeyDown(keyCode, event);
}
@Override
protected void onDestroy() {
loadThreads.clear();
super.onDestroy();
}
private void delViewShow(final Report report, final int what) {
// TODO Auto-generated method stub
// 加载popupWindow的布局文件
View contentView = LayoutInflater.from(getApplicationContext())
.inflate(R.layout.bookself_popu_delect, null);
// 设置popupWindow的背景颜色
// contentView.setBackgroundColor(Color.RED);
// 声明一个弹出框
final PopupWindow mPopupWindow = new PopupWindow(contentView,
LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
mPopupWindow.setFocusable(true);
mPopupWindow.setTouchable(true); // 设置PopupWindow可触摸
// mPopupWindow.setOutsideTouchable(true); // 设置非PopupWindow区域可触摸
mPopupWindow.setBackgroundDrawable(new BitmapDrawable());
ImageView close = (ImageView) contentView
.findViewById(R.id.yjbg_bookself_quan);
ImageView bookxinx = (ImageView) contentView
.findViewById(R.id.yjbg_bookself_xinx);
ImageView bookdel = (ImageView) contentView
.findViewById(R.id.yjbg_bookself_del);
close.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mPopupWindow.dismiss();
}
});
bookxinx.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
View contentView = LayoutInflater.from(
CeiShelfBookActivity.this).inflate(
R.layout.report_pop_intro, null);
// 声明一个弹出框
final PopupWindow mPopupWindow = new PopupWindow(contentView,
600, 450);
mPopupWindow.setFocusable(true);
mPopupWindow.setTouchable(true); // 设置PopupWindow可触摸
mPopupWindow.setOutsideTouchable(true); // 设置非PopupWindow区域可触摸
mPopupWindow.setBackgroundDrawable(new BitmapDrawable());
mPopupWindow.showAtLocation(findViewById(R.id.mainlayout),
Gravity.CENTER, 0, 30);
TextView title = (TextView) contentView
.findViewById(R.id.yjbg_pop_intro_title);
title.setText(report.getName());
TextView zhuz = (TextView) contentView
.findViewById(R.id.yjbg_pop_intro_zuoz);
zhuz.setText(report.getAuthor());
TextView price = (TextView) contentView
.findViewById(R.id.yjbg_pop_intro_price);
price.setText(report.getPrice());
TextView content = (TextView) contentView
.findViewById(R.id.yjbg_pop_intro_content);
content.setText(report.getIntro());
ImageButton close = (ImageButton) contentView
.findViewById(R.id.yjbg_pop_intro_close);
close.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mPopupWindow.dismiss();
}
});
}
});
bookdel.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
alertIsSurePop(new OnClickListener() {
@Override
public void onClick(View v) {
popWin.dismiss();
data.remove(report);
if (dataHelper.delReport(report.getId()) == 0) {
MyTools.exitShow(CeiShelfBookActivity.this, shelvesview,
"删除失败");
mPopupWindow.dismiss();
return;
} else {
// 删除成功后把本地文件也删除
String pdfPath = report.getDatapath();
File dir = new File(pdfPath);
delAll(dir);
Message msg = new Message();
msg.what = what;
handler.sendMessage(msg);
mPopupWindow.dismiss();
MyTools.exitShow(CeiShelfBookActivity.this, shelvesview,
"删除成功!");
}
}
});
}
});
mPopupWindow.showAtLocation(findViewById(R.id.mainlayout),
Gravity.CENTER, 0, 0);
}
private void setViewListener(final Report report) {
new Thread() {
@Override
public void run() {
String pdfUri = null;
String pdfPath = report.getDatapath();
File dir = new File(pdfPath);
if (!dir.exists() || dir.listFiles().length <= 0) {
try {
ZipUtils.unzip(Report.SD_PATH + report.getName()
+ "/bg.zip",
Report.SD_PATH + report.getFileName());
delAll(new File(Report.SD_PATH + report.getName()));
} catch (IOException e) {
Message msg=new Message();
msg.what=404;
msg.arg1=1;
handler.sendMessage(msg);
e.printStackTrace();
return;
}
}
File file[] = dir.listFiles();
if (file != null) {
for (int i = 0; i < file.length; i++) {
if (!file[i].isDirectory()) {
file[i].getName().lastIndexOf(".pdf");
pdfUri = pdfPath + "/" + file[i].getName();// data.get(position).getDatapath()现在不正确
}
}
}
readReport(pdfUri, report);
}
}.start();
}
private void readReport(String pdfUri, Report report) {
if (pdfUri != null && !pdfUri.equals("")) {
if (report.getKey().equals("")) {
Message msg=new Message();
msg.what=404;
msg.arg1=2;
handler.sendMessage(msg);
} else {
// 此处解密阅读
try {
EncryptDecryption.DecryptionReport(
pdfUri,
report.getKey().substring(0,
report.getKey().toString().length() - 1));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return;
}
Uri uri = Uri.parse("file://" + pdfUri);// data.get(position).getDatapath()现在不正确+pdfUri
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
intent.putExtra("pdfPath", pdfUri);
intent.putExtra("name", report.getName());
intent.putExtra("report", report);
String uriString = uri.toString();
intent.setClass(CeiShelfBookActivity.this,
PdfViewerActivity.class);
startActivity(intent);
ViewerPreferences preferences = new ViewerPreferences(
CeiShelfBookActivity.this);
preferences.putYourReads(uriString);
Message meg = new Message();
/*
* HashMap<String, Object> someData=new HashMap<String,
* Object>(); someData.put("pdfUri", pdfUri);
* someData.put("report", report); meg.obj=someData;
*/
meg.what = 30;
handler.sendMessage(meg);
}
} else {
Message msg=new Message();
msg.what=404;
msg.arg1=3;
handler.sendMessage(msg);
/*MyTools.exitShow(CeiShelfBookActivity.this, shelvesview, "报告路径不正确!");*/
}
}
public boolean delAll(File f) {
if (!f.exists())// 文件夹不存在不存在
{
//MyTools.exitShow(this, porLayout, "本地文件不存在!");
return true;
}
boolean rslt = true;// 保存中间结果
if (!(rslt = f.delete())) {// 先尝试直接删除
// 若文件夹非空。枚举、递归删除里面内容
File subs[] = f.listFiles();
if (subs.length > 0) {
for (int i = 0; i <= subs.length - 1; i++) {
if (subs[i].isDirectory())
delAll(subs[i]);// 递归删除子文件夹内容
rslt = subs[i].delete();// 删除子文件夹本身
}
rslt = f.delete();// 删除此文件夹本身
}
}
if (!rslt) {
return false;
} else {
return true;
}
}
/**
* 同步离线列表
*/
private List<Report> synDownloadReport() {
List<Report> reports = new ArrayList<Report>();
StringBuilder fileNames = new StringBuilder();
File file = new File(MyTools.RESOURCE_PATH + "pdf");
if (!file.exists()) {
file.mkdirs();
}
if (file.list().length > 0) {
for (int i = 0; i < file.list().length; i++) {
String fileName = file.list()[i];
fileNames.append(fileName + ",");
}
// 通过报告的部分路径去获取报告的信息集合
String result = Service.queryPassKeyBuyReport(fileNames.toString()
.substring(0, fileNames.length() - 1));
try {
if (result
.equals("<?xml version='1.0' encoding='utf-8'?><ROOT>5</ROOT>")) {
//Toast.makeText(this, "同步错误", 1).show();
Message msg=new Message();
msg.what=404;
msg.arg1=3;
handler.sendMessage(msg);
} else {
reports = XmlUtil.parseReport(result);
}
result = Service.queryBuyReport(((CeiApplication) (this
.getApplication())).columnEntry.getUserId());
for (int i = 0; i < reports.size(); i++) {
// 判断是不是合法的报告,如果合法的话把本地的目录设置进去。
if (result.contains(reports.get(i).getId())) {
if (dataHelper.getReportListById(
reports.get(i).getName()).size() < 1) {// 判断数据库中是否有记录
Report report = reports.get(i);
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(MyTools.RESOURCE_PATH + "pdf/"
+ fileName);
long retuCoad = dataHelper.saveReport(report);
if (retuCoad != -1) {
report.setIsLoad("yes");
dataHelper.UpdateReportZT(report);
} else {
//Toast.makeText(this, "同步错误", 1).show();
Message msg=new Message();
msg.what=404;
msg.arg1=3;
handler.sendMessage(msg);
}
}
} else {
new File(reports.get(i).getDownpath()).delete();
reports.remove(i);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
return reports;
}
private PopupWindow popWin;
private void alertIsSurePop(OnClickListener clickListener) {
View popView = this.getLayoutInflater().inflate(
R.layout.phone_study_issure, null);
popView.findViewById(R.id.phone_study_issure_sure_btn)
.setOnClickListener(clickListener);
popView.findViewById(R.id.phone_study_issure_cancel_btn)
.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
popWin.dismiss();
}
});
popWin = new PopupWindow(popView, LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT);
popWin.setFocusable(true);
popWin.showAtLocation(this.findViewById(R.id.mainlayout),
Gravity.CENTER, 0, 0);
}
}