package com.pps.fragment;
import java.io.File;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import android.app.ProgressDialog;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.pps.activity.R;
import com.pps.adapter.MyDetailGridAdapter;
import com.pps.async.ImageLoader;
import com.pps.custom.MyCustomGridView;
import com.pps.model.Channel;
import com.pps.model.DetailModel;
import com.pps.utils.ArraysUtils;
import com.pps.utils.DownXML;
import com.pps.utils.ZipToFile;
import com.pps.xmlparser.DetailXmLSax;
/**
* 视频详情Fragment显示
*
* @author jiangqingqing
*
*/
public class MyDetailFragment extends Fragment {
private ImageButton btn_ic_title_menu;
private TextView detail_name;
private ImageView detail_img;
private TextView tv_detail_region;
private TextView tv_detail_type;
private Button btn_detail_vm;
private TextView tv_detail_dirt;
private TextView tv_detail_actor;
private Button btn_detail_play;
private Button btn_detail_down;
private TextView tv_detail_story;
private LinearLayout commom_linear; // 普通
private LinearLayout high_linear; // 高清
private LinearLayout advance_linear; // 花絮
private LinearLayout smooth_linear; //流畅
private ImageButton btn_details_left;
private MyCustomGridView gv_detail;
private Button btn_detail_favour;
private Button btn_detail_share;
private Button btn_detail_comment;
private ImageButton btn_details_right;
private Button btn_detail_arrow_commom;
private boolean commom_down = true; // 普通视频默认是正序排列
private Button btn_detail_arrow_high;
private boolean high_down = true; // 高清视频默认是正序排列
private Button btn_detail_arrow_advance;
private boolean advance_down = true; // 花絮视频默认是正序排列
private Button btn_detail_arrow_smooth;
private boolean smooth_down = true; //流畅视频默认为正序排序
private TextView common_tv_up;
private TextView common_tv_down;
private TextView high_tv_up;
private TextView high_tv_down;
private TextView advance_tv_up;
private TextView advance_tv_down;
private TextView smooth_tv_up;
private TextView smooth_tv_down;
private List<DetailModel> mLists;
private List<Channel> channels;
private List<Channel> convert_Channels;
private List<Channel> commom_Channels=new ArrayList<Channel>(); // 普通视频
private List<Channel> high_Channels=new ArrayList<Channel>(); // 高清视频
private List<Channel> feature_Channels=new ArrayList<Channel>(); // 花絮视频
private List<Channel> smooth_Channels=new ArrayList<Channel>(); //流畅视频
private DetailModel detailModel;
private MyDetailGridAdapter mAdapter;
// private SubModel subModel;
private int sub_id; // 用于去请求该节目的详细数据,组合请求的URL
private ImageLoader imageLoader;
private View mView;
private Context mContext;
private ProgressDialog mProgressDialog; // 进度框
public static final int FAIL_DOWN = -1; // 下载列表错误
public static final int FIIL_UNZIP = -2; // 解压错误
public boolean isUseCache = false;// 标志是否使用缓存数据
private static final String TAG = "jiangqq";
private Handler mHandler = new Handler() {
@SuppressWarnings("unchecked")
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what) {
case 0:
break;
case 1:
if (mProgressDialog != null && mProgressDialog.isShowing()) {
mProgressDialog.dismiss();
}
mLists = (List<DetailModel>) msg.obj;
if (mLists != null) {
detailModel = mLists.get(0);
} else {
}
detail_name.setText(detailModel.getName());
// myImageLoader.displayImageView(detailModel.getImg(),
// detail_img);
imageLoader.DisplayImage(detailModel.getImg(), getActivity(),
detail_img);
tv_detail_region.setText(detailModel.getRegion());
tv_detail_type.setText(detailModel.getType());
btn_detail_vm.setText(String.valueOf(detailModel.getVote()));
tv_detail_dirt.setText(detailModel.getDirt());
tv_detail_actor.setText(detailModel.getActor());
tv_detail_story.setText(detailModel.getInton());
channels = detailModel.getChannels();
// 对视频按照普通,高清,花絮进行分类
for (int i = 0; i < channels.size(); i++) {
if ("预告花絮".equals(channels.get(i).getType())) {
// 预告花絮
feature_Channels.add(channels.get(i));
} else if ("普通".equals(channels.get(i).getFotm())) {
//|| "流畅".equals(channels.get(i).getFotm())
// 普通视频
commom_Channels.add(channels.get(i));
} else if ("高清".equals(channels.get(i).getFotm())) {
// 高清视频
high_Channels.add(channels.get(i));
}else if ("流畅".equals(channels.get(i).getFotm())) {
// 流畅视频
smooth_Channels.add(channels.get(i));
}
}
Log.v(TAG,"花絮视频集数:" + feature_Channels.size());
Log.v(TAG,"普通视频集数:" + commom_Channels.size());
Log.v(TAG,"高清视频集数:" + high_Channels.size());
Log.v(TAG,"流畅视频集数:" + smooth_Channels.size());
// 默认刚开始进入的是普通视频列表
// 如果普通视频和高清视频都为空,只有花絮的时候,那就直接显示花絮
if (feature_Channels.size() != 0 && commom_Channels.size() == 0&&smooth_Channels.size()==0&&high_Channels.size()==0) {
// 此刻直接先进入预告花絮栏
mAdapter = new MyDetailGridAdapter(mContext,
feature_Channels, true);
gv_detail.setNumColumns(1);
gv_detail.setAdapter(mAdapter);
advance_tv_up.setTextColor(R.color.detail_tv_color);
advance_tv_down.setTextColor(R.color.detail_tv_color);
} else if(commom_Channels.size()!=0){
mAdapter = new MyDetailGridAdapter(mContext,
commom_Channels, false);
gv_detail.setAdapter(mAdapter);
common_tv_up.setTextColor(R.color.detail_tv_color);
common_tv_down.setTextColor(R.color.detail_tv_color);
}else if (high_Channels.size()!=0) {
mAdapter = new MyDetailGridAdapter(mContext,
high_Channels, false);
gv_detail.setAdapter(mAdapter);
high_tv_up.setTextColor(R.color.detail_tv_color);
high_tv_down.setTextColor(R.color.detail_tv_color);
} else {
mAdapter = new MyDetailGridAdapter(mContext,
smooth_Channels, false);
gv_detail.setAdapter(mAdapter);
smooth_tv_up.setTextColor(R.color.detail_tv_color);
smooth_tv_down.setTextColor(R.color.detail_tv_color);
}
// 进行隐藏相应没有视频的部分
if (commom_Channels.size() == 0) {
commom_linear.setVisibility(View.GONE);
}
if (high_Channels.size() == 0) {
high_linear.setVisibility(View.GONE);
}
if (feature_Channels.size() == 0) {
advance_linear.setVisibility(View.GONE);
}
if (smooth_Channels.size()==0) {
smooth_linear.setVisibility(View.GONE);
}
if (isUseCache) {
// 使用缓存数据,那么进行刷新
refreshData();
Log.v(TAG, "刷新数据...");
} else {
}
break;
case FAIL_DOWN: // 下载列表失败
if (null != mProgressDialog && mProgressDialog.isShowing()) {
mProgressDialog.dismiss();
}
Toast.makeText(mContext, "下载剧情详情失败,请稍后再尝试...",
Toast.LENGTH_SHORT).show();
break;
case FIIL_UNZIP: // 解压失败
if (null != mProgressDialog && mProgressDialog.isShowing()) {
mProgressDialog.dismiss();
}
Toast.makeText(mContext, "解压失败,请稍后再尝试...", Toast.LENGTH_SHORT)
.show();
break;
}
}
};
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if (mView == null) {
mView = inflater
.inflate(R.layout.fragment_detail, container, false);
initView();
initVariable();
mProgressDialog = new ProgressDialog(mContext);
mProgressDialog.setMessage("正在加载请稍后...");
mProgressDialog.show();
Thread thread = new Thread(runnable_id);
thread.start();
bindData();
initListener();
}
return mView;
}
private void initView() {
btn_ic_title_menu = (ImageButton) mView
.findViewById(R.id.btn_ic_title_menu);
btn_ic_title_menu.setBackgroundResource(0);// 去除按钮背景
detail_name = (TextView) mView.findViewById(R.id.detail_name);
detail_img = (ImageView) mView.findViewById(R.id.detail_img);
tv_detail_region = (TextView) mView.findViewById(R.id.tv_detail_region);
tv_detail_type = (TextView) mView.findViewById(R.id.tv_detail_type);
btn_detail_vm = (Button) mView.findViewById(R.id.btn_detail_vm);
tv_detail_dirt = (TextView) mView.findViewById(R.id.tv_detail_dirt);
tv_detail_actor = (TextView) mView.findViewById(R.id.tv_detail_actor);
btn_detail_play = (Button) mView.findViewById(R.id.btn_detail_play);
btn_detail_down = (Button) mView.findViewById(R.id.btn_detail_down);
tv_detail_story = (TextView) mView.findViewById(R.id.tv_detail_story);
btn_details_left = (ImageButton) mView
.findViewById(R.id.btn_details_left);
btn_details_right = (ImageButton) mView
.findViewById(R.id.btn_details_right);
gv_detail = (MyCustomGridView) mView.findViewById(R.id.gv_detail);
btn_detail_favour = (Button) mView.findViewById(R.id.btn_detail_favour);
btn_detail_share = (Button) mView.findViewById(R.id.btn_detail_share);
btn_detail_comment = (Button) mView
.findViewById(R.id.btn_detail_comment);
commom_linear = (LinearLayout) mView.findViewById(R.id.commom_linear);
high_linear = (LinearLayout) mView.findViewById(R.id.high_linear);
advance_linear = (LinearLayout) mView.findViewById(R.id.advance_linear);
smooth_linear=(LinearLayout)mView.findViewById(R.id.smooth_linear);
btn_detail_arrow_commom = (Button) mView
.findViewById(R.id.btn_detail_arrow_commom);
btn_detail_arrow_high = (Button) mView
.findViewById(R.id.btn_detail_arrow_high);
btn_detail_arrow_advance = (Button) mView
.findViewById(R.id.btn_detail_arrow_advance);
btn_detail_arrow_smooth=(Button)mView.findViewById(R.id.btn_detail_arrow_smooth);
common_tv_up = (TextView) mView.findViewById(R.id.common_tv_up);
common_tv_down = (TextView) mView.findViewById(R.id.common_tv_down);
high_tv_up = (TextView) mView.findViewById(R.id.high_tv_up);
high_tv_down = (TextView) mView.findViewById(R.id.high_tv_down);
advance_tv_up = (TextView) mView.findViewById(R.id.advance_tv_up);
advance_tv_down = (TextView) mView.findViewById(R.id.advance_tv_down);
smooth_tv_up=(TextView)mView.findViewById(R.id.smooth_tv_up);
smooth_tv_down=(TextView)mView.findViewById(R.id.smooth_tv_down);
}
private void initVariable() {
mContext = mView.getContext();
commom_Channels = new ArrayList<Channel>();
high_Channels = new ArrayList<Channel>();
feature_Channels = new ArrayList<Channel>();
imageLoader = new ImageLoader(mContext);
btn_details_left.setBackgroundResource(0);
btn_details_right.setBackgroundResource(0);
Bundle bundle = getArguments();
if (bundle != null) {
sub_id = bundle.getInt("sub_id");
}
}
private void bindData() {
}
private void initListener() {
btn_ic_title_menu.setOnClickListener(new MyOnClickListener());
btn_detail_vm.setOnClickListener(new MyOnClickListener());
btn_detail_play.setOnClickListener(new MyOnClickListener());
btn_detail_down.setOnClickListener(new MyOnClickListener());
btn_details_left.setOnClickListener(new MyOnClickListener());
// btn_detail_arrow_up_high.setOnClickListener(new MyOnClickListener());
// btn_detail_arrow_down_high.setOnClickListener(new
// MyOnClickListener());
// btn_detail_arrow_up_advance.setOnClickListener(new
// MyOnClickListener());
// btn_detail_arrow_down_advance.setOnClickListener(new
// MyOnClickListener());
// high_linear_up.setOnClickListener(new MyOnClickListener());
// advance_linear_up.setOnClickListener(new MyOnClickListener());
// high_linear_down.setOnClickListener(new MyOnClickListener());
// advance_linear_down.setOnClickListener(new MyOnClickListener());
btn_details_right.setOnClickListener(new MyOnClickListener());
btn_detail_favour.setOnClickListener(new MyOnClickListener());
btn_detail_share.setOnClickListener(new MyOnClickListener());
btn_detail_comment.setOnClickListener(new MyOnClickListener());
gv_detail.setOnItemClickListener(new MyOnItemClickListener());
btn_detail_arrow_commom.setOnClickListener(new MyOnClickListener());
btn_detail_arrow_high.setOnClickListener(new MyOnClickListener());
btn_detail_arrow_advance.setOnClickListener(new MyOnClickListener());
btn_detail_arrow_smooth.setOnClickListener(new MyOnClickListener());
}
/*
* 表格布局的Item点击监听器
*/
class MyOnItemClickListener implements OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, final int agr2,
long arg3) {
// 进行播放视频
int index = agr2 + 1;
Toast.makeText(mContext, "准备播放第" + index + "集", Toast.LENGTH_SHORT)
.show();
}
}
/*
* 自定义按钮监听器
*/
class MyOnClickListener implements OnClickListener {
@Override
public void onClick(View v) {
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction transaction = fragmentManager
.beginTransaction();
switch (v.getId()) {
case R.id.btn_ic_title_menu:
// 返回列表页
MyListFragment listFragment = new MyListFragment();
transaction.remove(fragmentManager
.findFragmentById(R.id.container_details));
transaction.replace(R.id.container, listFragment);
transaction.commit();
break;
case R.id.btn_detail_vm:
// 进行评分
break;
case R.id.btn_detail_play:
break;
case R.id.btn_detail_down:
break;
case R.id.btn_details_left:
break;
// case R.id.btn_detail_arrow_up_commom:
// //节目按照上升进行布局
// mAdapter = new MyDetailGridAdapter(mContext, commom_Channels,
// false);
// gv_detail.setNumColumns(5);
// gv_detail.setAdapter(mAdapter);
// break;
// case R.id.btn_detail_arrow_down_commom:
// //节目按照下降进行布局
// convert_Channels=ArraysUtils.convertArrays(commom_Channels);
// mAdapter = new MyDetailGridAdapter(mContext,
// convert_Channels,false);
// gv_detail.setNumColumns(5);
// gv_detail.setAdapter(mAdapter);
// // break;
// case R.id.btn_detail_arrow_up_high:
// mAdapter = new MyDetailGridAdapter(mContext,
// high_Channels,false);
// gv_detail.setNumColumns(5);
// gv_detail.setAdapter(mAdapter);
// break;
// case R.id.btn_detail_arrow_down_high:
// convert_Channels=ArraysUtils.convertArrays(high_Channels);
// mAdapter = new MyDetailGridAdapter(mContext,
// convert_Channels,false);
// gv_detail.setNumColumns(5);
// gv_detail.setAdapter(mAdapter);
// break;
// case R.id.btn_detail_arrow_up_advance:
// //预告花絮视频上升排列
// mAdapter = new MyDetailGridAdapter(mContext,
// feature_Channels,true);
// gv_detail.setNumColumns(1);
// gv_detail.setAdapter(mAdapter);
// break;
// case R.id.btn_detail_arrow_down_advance:
// //预告花絮视频下降排列
// convert_Channels=ArraysUtils.convertArrays(feature_Channels);
// mAdapter = new MyDetailGridAdapter(mContext,
// convert_Channels,true);
// gv_detail.setNumColumns(1);
// gv_detail.setAdapter(mAdapter);
// break;
// case R.id.commom_linear_up:
// mAdapter = new MyDetailGridAdapter(mContext,
// commom_Channels,true);
// gv_detail.setNumColumns(5);
// gv_detail.setAdapter(mAdapter);
// break;
// case R.id.high_linear_up:
// mAdapter = new MyDetailGridAdapter(mContext, high_Channels,true);
// gv_detail.setNumColumns(5);
// gv_detail.setAdapter(mAdapter);
// break;
// case R.id.advance_linear_up:
// mAdapter = new MyDetailGridAdapter(mContext,
// feature_Channels,false);
// gv_detail.setNumColumns(1);
// gv_detail.setAdapter(mAdapter);
// break;
// case R.id.commom_linear_down:
// mAdapter = new MyDetailGridAdapter(mContext,
// commom_Channels,false);
// gv_detail.setNumColumns(5);
// gv_detail.setAdapter(mAdapter);
// break;
// case R.id.high_linear_down:
// mAdapter = new MyDetailGridAdapter(mContext,
// high_Channels,false);
// gv_detail.setNumColumns(5);
// gv_detail.setAdapter(mAdapter);
// break;
// case R.id.advance_linear_down:
// mAdapter = new MyDetailGridAdapter(mContext,
// feature_Channels,false);
// gv_detail.setNumColumns(1);
// gv_detail.setAdapter(mAdapter);
// break;
case R.id.btn_details_right:
break;
case R.id.commom_linear:
break;
case R.id.btn_detail_favour:
// 收藏
break;
case R.id.btn_detail_share:
// 分享
break;
case R.id.btn_detail_comment:
// 评论
break;
case R.id.btn_detail_arrow_commom: // 普通视频
if (commom_down) {
// 节目按照下降进行布局
convert_Channels = ArraysUtils
.convertArrays(commom_Channels);
mAdapter = new MyDetailGridAdapter(mContext,
convert_Channels, false);
gv_detail.setNumColumns(5);
gv_detail.setAdapter(mAdapter);
commom_down = false;
btn_detail_arrow_commom
.setBackgroundResource(R.drawable.ic_details_arrow_up);
common_tv_up.setTextColor(R.color.detail_tv_color);
common_tv_down.setTextColor(R.color.detail_tv_color);
high_tv_up.setTextColor(R.color.black);
high_tv_down.setTextColor(R.color.black);
advance_tv_up.setTextColor(R.color.black);
advance_tv_down.setTextColor(R.color.black);
smooth_tv_up.setTextColor(R.color.black);
smooth_tv_down.setTextColor(R.color.black);
} else {
mAdapter = new MyDetailGridAdapter(mContext,
commom_Channels, false);
gv_detail.setNumColumns(5);
gv_detail.setAdapter(mAdapter);
commom_down = true;
btn_detail_arrow_commom
.setBackgroundResource(R.drawable.ic_details_arrow_down);
common_tv_up.setTextColor(R.color.detail_tv_color);
common_tv_down.setTextColor(R.color.detail_tv_color);
high_tv_up.setTextColor(R.color.black);
high_tv_down.setTextColor(R.color.black);
advance_tv_up.setTextColor(R.color.black);
advance_tv_down.setTextColor(R.color.black);
smooth_tv_up.setTextColor(R.color.black);
smooth_tv_down.setTextColor(R.color.black);
}
break;
case R.id.btn_detail_arrow_high: // 高清视频
if (high_down) {
// 节目按照下降进行布局
convert_Channels = ArraysUtils.convertArrays(high_Channels);
mAdapter = new MyDetailGridAdapter(mContext,
convert_Channels, false);
gv_detail.setNumColumns(5);
gv_detail.setAdapter(mAdapter);
high_down = false;
btn_detail_arrow_high
.setBackgroundResource(R.drawable.ic_details_arrow_up);
common_tv_up.setTextColor(R.color.black);
common_tv_down.setTextColor(R.color.black);
high_tv_up.setTextColor(R.color.detail_tv_color);
high_tv_down.setTextColor(R.color.detail_tv_color);
advance_tv_up.setTextColor(R.color.black);
advance_tv_down.setTextColor(R.color.black);
smooth_tv_up.setTextColor(R.color.black);
smooth_tv_down.setTextColor(R.color.black);
} else {
mAdapter = new MyDetailGridAdapter(mContext, high_Channels,
false);
gv_detail.setNumColumns(5);
gv_detail.setAdapter(mAdapter);
high_down = true;
btn_detail_arrow_high
.setBackgroundResource(R.drawable.ic_details_arrow_down);
common_tv_up.setTextColor(R.color.black);
common_tv_down.setTextColor(R.color.black);
high_tv_up.setTextColor(R.color.detail_tv_color);
high_tv_down.setTextColor(R.color.detail_tv_color);
advance_tv_up.setTextColor(R.color.black);
advance_tv_down.setTextColor(R.color.black);
smooth_tv_up.setTextColor(R.color.black);
smooth_tv_down.setTextColor(R.color.black);
}
break;
case R.id.btn_detail_arrow_advance: // 花絮视频
if (advance_down) {
// 节目按照下降进行布局
convert_Channels = ArraysUtils
.convertArrays(feature_Channels);
mAdapter = new MyDetailGridAdapter(mContext,
convert_Channels, true);
gv_detail.setNumColumns(1);
gv_detail.setAdapter(mAdapter);
advance_down = false;
btn_detail_arrow_advance
.setBackgroundResource(R.drawable.ic_details_arrow_up);
common_tv_up.setTextColor(R.color.black);
common_tv_down.setTextColor(R.color.black);
high_tv_up.setTextColor(R.color.black);
high_tv_down.setTextColor(R.color.black);
advance_tv_up.setTextColor(R.color.detail_tv_color);
advance_tv_down.setTextColor(R.color.detail_tv_color);
smooth_tv_up.setTextColor(R.color.black);
smooth_tv_down.setTextColor(R.color.black);
} else {
mAdapter = new MyDetailGridAdapter(mContext,
feature_Channels, true);
gv_detail.setNumColumns(1);
gv_detail.setAdapter(mAdapter);
advance_down = true;
btn_detail_arrow_advance
.setBackgroundResource(R.drawable.ic_details_arrow_down);
common_tv_up.setTextColor(R.color.black);
common_tv_down.setTextColor(R.color.black);
high_tv_up.setTextColor(R.color.black);
high_tv_down.setTextColor(R.color.black);
advance_tv_up.setTextColor(R.color.detail_tv_color);
advance_tv_down.setTextColor(R.color.detail_tv_color);
smooth_tv_up.setTextColor(R.color.black);
smooth_tv_down.setTextColor(R.color.black);
}
break;
case R.id.btn_detail_arrow_smooth: //流畅视频
if(smooth_down)
{
//按照下降排序
convert_Channels = ArraysUtils
.convertArrays(smooth_Channels);
mAdapter = new MyDetailGridAdapter(mContext,
convert_Channels, false);
gv_detail.setNumColumns(5);
gv_detail.setAdapter(mAdapter);
smooth_down = false;
btn_detail_arrow_smooth
.setBackgroundResource(R.drawable.ic_details_arrow_up);
common_tv_up.setTextColor(R.color.black);
common_tv_down.setTextColor(R.color.black);
high_tv_up.setTextColor(R.color.black);
high_tv_down.setTextColor(R.color.black);
advance_tv_up.setTextColor(R.color.black);
advance_tv_down.setTextColor(R.color.black);
smooth_tv_up.setTextColor(R.color.detail_tv_color);
smooth_tv_down.setTextColor(R.color.detail_tv_color);
}else {
mAdapter = new MyDetailGridAdapter(mContext,
smooth_Channels, false);
gv_detail.setNumColumns(5);
gv_detail.setAdapter(mAdapter);
smooth_down = true;
btn_detail_arrow_smooth
.setBackgroundResource(R.drawable.ic_details_arrow_down);
common_tv_up.setTextColor(R.color.black);
common_tv_down.setTextColor(R.color.black);
high_tv_up.setTextColor(R.color.black);
high_tv_down.setTextColor(R.color.black);
advance_tv_up.setTextColor(R.color.black);
advance_tv_down.setTextColor(R.color.black);
smooth_tv_up.setTextColor(R.color.detail_tv_color);
smooth_tv_down.setTextColor(R.color.detail_tv_color);
}
break;
}
}
}
/**
* 刷新数据
*/
private void refreshData() {
Thread thread = new Thread(runnable_refresh);
thread.start();
}
/**
* 根据传来的节目id去后台获取节目的详情
*/
Runnable runnable_id = new Runnable() {
@Override
public void run() {
try {
// 1:如果本地有缓存,直接解析缓存文件显示,然后再去网上上面进行获取数据,进行刷新页面
File cacheFile = new File("/sdcard/pps_download/details/"
+ sub_id + ".xml");
if (cacheFile.exists()) {
Log.v(TAG, "直接解析本地缓存文件...");
isUseCache=true;
// 直接解析
InputStream inputStream = DownXML.getXMLFromFile(new File(
"/sdcard/pps_download/details/" + sub_id + ".xml"));
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser parser = spf.newSAXParser();
DetailXmLSax handler = new DetailXmLSax();
parser.parse(inputStream, handler);
inputStream.close();
mLists = handler.getDetailLists();
mHandler.obtainMessage(1, mLists).sendToTarget();
} else {
Log.v(TAG, "从网络上面下载文件...");
isUseCache=false;
// 2,去网络上面请求数据(根据传来的节目的id)
String url_str = "http://list1.ppstream.com/mobile/newipadc/detail/"
+ sub_id + ".xml.zip";
Log.i(TAG, "请求的URL地址为:" + url_str);
boolean result = false;
result = DownXML.getFileWithDetails(url_str);
if (!result) {
Message msg = mHandler.obtainMessage();
msg.what = FAIL_DOWN;
mHandler.sendMessage(msg);
return;
}
String[] strs = url_str.split("/");
// boolean flag = ZipToFile.unzip("/sdcard/pps_download",
// strs[strs.length-1],
// "/sdcard/pps_download/"+sub_id+".xml");
File pathFile = new File("/sdcard/pps_download/details");
if (!pathFile.exists()) {
pathFile.mkdir();
}
boolean flag = ZipToFile.unzip("/sdcard/pps_download",
strs[strs.length - 1],
"/sdcard/pps_download/details");
if (flag) {
Log.i(TAG, ">>>>>>>解压成功<<<<<<<<");
// 解压成功,并且删除该压缩包,
File file = new File("/sdcard/pps_download/" + sub_id
+ ".xml.zip");
if (file.exists()) {
file.delete();
}
} else {
Message msg = mHandler.obtainMessage();
msg.what = FIIL_UNZIP;
mHandler.sendMessage(msg);
Log.i(TAG, ">>>>>>>解压失败<<<<<<<<");
return;
}
InputStream inputStream = DownXML.getXMLFromFile(new File(
"/sdcard/pps_download/details/" + sub_id + ".xml"));
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser parser = spf.newSAXParser();
DetailXmLSax handler = new DetailXmLSax();
parser.parse(inputStream, handler);
inputStream.close();
mLists = handler.getDetailLists();
mHandler.obtainMessage(1, mLists).sendToTarget();
// 删除解压后的XML文件夹
// FileUtils.deleteAll(new
// File("/sdcard/pps_download/"+sub_id+".xml"));
}
} catch (Exception e) {
e.printStackTrace();
}
}
};
/**
* 后台自动下载新数据进行刷新
*/
Runnable runnable_refresh = new Runnable() {
@Override
public void run() {
try {
isUseCache=false;
String url_str = "http://list1.ppstream.com/mobile/newipadc/detail/"
+ sub_id + ".xml.zip";
boolean result = false;
result = DownXML.getFileWithDetails(url_str);
if (!result) {
Message msg = mHandler.obtainMessage();
msg.what = FAIL_DOWN;
mHandler.sendMessage(msg);
return;
}
String[] strs = url_str.split("/");
Log.i(TAG, "请求的URL地址为:" + url_str);
// boolean flag = ZipToFile.unzip("/sdcard/pps_download",
// strs[strs.length-1], "/sdcard/pps_download/"+sub_id+".xml");
File pathFile = new File("/sdcard/pps_download/details");
if (!pathFile.exists()) {
pathFile.mkdir();
}
boolean flag = ZipToFile.unzip("/sdcard/pps_download",
strs[strs.length - 1], "/sdcard/pps_download/details");
if (flag) {
Log.i(TAG, ">>>>>>>解压成功<<<<<<<<");
// 解压成功,并且删除该压缩包,
File file = new File("/sdcard/pps_download/" + sub_id
+ ".xml.zip");
if (file.exists()) {
file.delete();
}
} else {
Message msg = mHandler.obtainMessage();
msg.what = FIIL_UNZIP;
mHandler.sendMessage(msg);
Log.i(TAG, ">>>>>>>解压失败<<<<<<<<");
return;
}
// InputStream inputStream = DownXML.getXMLFromFile(new File(
// "/sdcard/pps_download/details/" + sub_id + ".xml"));
// SAXParserFactory spf = SAXParserFactory.newInstance();
// SAXParser parser = spf.newSAXParser();
// DetailXmLSax handler = new DetailXmLSax();
// parser.parse(inputStream, handler);
// inputStream.close();
// mLists = handler.getDetailLists();
// mHandler.obtainMessage(1, mLists).sendToTarget();
} catch (Exception e) {
e.printStackTrace();
}
}
};
}