package com.hyrt.cei.ui.econdata;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import com.hyrt.cei.R;
import com.hyrt.cei.adapter.EconAdapter;
import com.hyrt.cei.adapter.EconImageAdapter;
import com.hyrt.cei.application.CeiApplication;
import com.hyrt.cei.dzb.ui.HomePageDZB;
import com.hyrt.cei.ui.econdata.view.EconDataView;
import com.hyrt.cei.ui.information.funId;
import com.hyrt.cei.util.AsyncImageLoader;
import com.hyrt.cei.util.MyTools;
import com.hyrt.cei.util.TimeOutHelper;
import com.hyrt.cei.util.WriteOrRead;
import com.hyrt.cei.util.XmlUtil;
import com.hyrt.cei.util.AsyncImageLoader.ImageCallback;
import com.hyrt.cei.vo.ColumnEntry;
import com.hyrt.cei.vo.ImageResourse;
import com.hyrt.cei.vo.New;
import com.hyrt.cei.webservice.service.Service;
import android.app.Activity;
import android.content.Intent;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Gallery;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;
/**
* 经济数据主页
*
* @author heyx
*
*/
public class EconDataMain extends Activity implements OnClickListener {
public static String MODEL_NAME;
// 经济数据的子集业务集合
public static ColumnEntry allColBg;
private TimeOutHelper timeOutHelper;
public static List<View> groupViews = new ArrayList<View>();
public static List<TextView> childViews = new ArrayList<TextView>();
private HashMap<String, Drawable> drawables = new HashMap<String, Drawable>();
private ColumnEntry columnEntry;
private List<New> goodNewsList, newNewsList, zhibiaoList;
private StringBuilder colIDs;
private ImageView imgpoint0, imgpoint1, imgpoint2, imgpoint3, imgpoint4,
zhibiao, shuju;
private ImageView zxImg, szImg, zjImg, fxImg, zbImg, sjImg, homeImg,
backImg, shuax;
private TextView tv_left;
private Gallery goodData;
private ImageView[] imageViews;
private GridView newsData;
private TextView zhibtext, goodReportTitle;
private AsyncImageLoader asyncImageLoader;
private String zhiBid;
private String bgId;
private CeiApplication application;
private int zhibcont;
EconImageAdapter goodAdapter;
private Runnable runnable;
private LinearLayout prolayout;
private Handler handler = new Handler();
private boolean flage;
@Override
protected void onDestroy() {
if (goodAdapter != null)
goodAdapter.clearBitmaps();
if (drawables != null) {
Iterator<String> iterator = drawables.keySet().iterator();
while (iterator.hasNext()) {
String path = iterator.next();
Drawable drawable = drawables.get(path);
if (((BitmapDrawable) drawable) != null)
((BitmapDrawable) drawable).getBitmap().recycle();
drawable = null;
}
}
super.onDestroy();
handler.removeCallbacks(runnable);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.econ_data_main);
MODEL_NAME = ((CeiApplication) getApplication()).nowStart;// 获取当前业务名称。
timeOutHelper = new TimeOutHelper(this);
application = (CeiApplication) getApplication();
columnEntry = ((CeiApplication) getApplication()).columnEntry;
asyncImageLoader = ((CeiApplication) this.getApplication()).asyncImageLoader;
initView();
prolayout.setVisibility(View.VISIBLE);
initData();
}
private void initView() {
// 低栏图标
prolayout = (LinearLayout) findViewById(R.id.econ_data_pro);
goodReportTitle = (TextView) findViewById(R.id.good_report_title);
zxImg = (ImageView) findViewById(R.id.econ_data_zx);
zxImg.setOnClickListener(this);
szImg = (ImageView) findViewById(R.id.econ_data_sz);
szImg.setOnClickListener(this);
zjImg = (ImageView) findViewById(R.id.econ_data_zz);
zjImg.setOnClickListener(this);
fxImg = (ImageView) findViewById(R.id.econ_data_fx);
fxImg.setOnClickListener(this);
zbImg = (ImageView) findViewById(R.id.econ_data_zb);
zbImg.setOnClickListener(this);
sjImg = (ImageView) findViewById(R.id.econ_data_sj);
sjImg.setOnClickListener(this);
homeImg = (ImageView) findViewById(R.id.econ_data_home);
homeImg.setOnClickListener(this);
tv_left = (TextView) findViewById(R.id.tv_left);
tv_left.setText(MODEL_NAME);
//tv_left.setOnClickListener(this);
shuax = (ImageView) findViewById(R.id.econ_data_shuax);
shuax.setOnClickListener(this);
shuju = (ImageView) findViewById(R.id.econ_data_data_img);
shuju.setOnClickListener(this);
zhibiao = (ImageView) findViewById(R.id.econ_data_zhib_img);
zhibtext = (TextView) findViewById(R.id.econ_data_zhib_title);
goodData = (Gallery) findViewById(R.id.econ_data_top);
newsData = (GridView) findViewById(R.id.econ_data_news);
imgpoint0 = (ImageView) findViewById(R.id.econ_data_img_point0);
imgpoint1 = (ImageView) findViewById(R.id.econ_data_img_point1);
imgpoint2 = (ImageView) findViewById(R.id.econ_data_img_point2);
imgpoint3 = (ImageView) findViewById(R.id.econ_data_img_point3);
imgpoint4 = (ImageView) findViewById(R.id.econ_data_img_point4);
imageViews = new ImageView[] { imgpoint0, imgpoint1, imgpoint2,
imgpoint3, imgpoint4 };
}
private void initData() {
goodNewsList = new ArrayList<New>();
newNewsList = new ArrayList<New>();
zhibiaoList = new ArrayList<New>();
// 更据业务ID查询业务里面的数据
allColBg = columnEntry.getColByName(MODEL_NAME);
if (allColBg != null && allColBg.getId() != null
&& !allColBg.getId().equals("")) {
String allBgId = allColBg.getId();
colIDs = new StringBuilder();
List<ColumnEntry> allCol = columnEntry
.getEntryChildsForParent(allBgId);
for (ColumnEntry columnEntry : allCol) {
String forId = columnEntry.getId();
if (this.columnEntry.getEntryChildsForParent(forId).size() != 0
&& this.columnEntry.getEntryChildsForParent(forId) != null) {
List<ColumnEntry> childCols = this.columnEntry
.getEntryChildsForParent(forId);
for (ColumnEntry columnEntry2 : childCols) {
colIDs.append(columnEntry2.getId() + ",");
}
} else {
if (columnEntry.getName().equals("精彩数据")) {
bgId = columnEntry.getId();
}
if (columnEntry.getName().equals("指标查询")) {
zhiBid = columnEntry.getId();
}
colIDs.append(forId + ",");
}
}
}
/*if (allColBg != null && allColBg.getId() != null
&& !allColBg.getId().equals("")) {
String allBgId = allColBg.getId();
colIDs = new StringBuilder();
List<ColumnEntry> allCol = columnEntry
.getEntryChildsForParent(allBgId);
for (ColumnEntry columnEntry : allCol) {
String forId = columnEntry.getId();
if (this.columnEntry.getEntryChildsForParent(forId).size() != 0
&& this.columnEntry.getEntryChildsForParent(forId) != null) {
List<ColumnEntry> childCols = this.columnEntry
.getEntryChildsForParent(forId);
for (ColumnEntry columnEntry2 : childCols) {
colIDs.append(columnEntry2.getId() + ",");
}
} else {
colIDs.append(forId + ",");
}
}
}*/
new Thread() {
@Override
public void run() {
try {
timeOutHelper.installTimerTask();
if (((CeiApplication) EconDataMain.this.getApplication())
.isNet()) {
// 有图片的
if (bgId != null && !bgId.equals("")) {
String news = Service.querydbsImage(bgId);// queryNewsImage(bgId);
goodNewsList = XmlUtil.getNews(news);
if (goodNewsList.isEmpty()
|| goodNewsList.size() < 5) {
goodNewsList.add(new New());
goodNewsList.add(new New());
goodNewsList.add(new New());
goodNewsList.add(new New());
goodNewsList.add(new New());
}
WriteOrRead.write(news, MyTools.nativeData,
"goodEcon.xml");
}
// 所有的
if (colIDs != null && !colIDs.toString().equals("")) {
String newNews = Service.querydbsList(colIDs
.toString());
newNewsList = XmlUtil.getNews(newNews);
WriteOrRead.write(newNews, MyTools.nativeData,
"newsEcon.xml");
}
// 28个queryNewsByFunctionId
if (zhiBid != null && !zhiBid.equals("")) {
String zhib = Service.querydbsByFunctionId(zhiBid,
"28");
zhibiaoList = XmlUtil.getNews(zhib);
WriteOrRead.write(zhib, MyTools.nativeData,
"ZbEcon.xml");
}
String buyEcon = Service.queryBuyDbNews(columnEntry
.getUserId());
WriteOrRead.write(buyEcon, MyTools.nativeData,
"buyEcon.xml");
application.buyEconData.clear();
application.buyEconData.addAll(XmlUtil
.queryBuyNews(buyEcon));
} else {
// 离线
String news = WriteOrRead.read(MyTools.nativeData,
"goodEcon.xml");
if (news != null && !news.equals("")) {
goodNewsList = XmlUtil.getNews(news);
}
if (goodNewsList.isEmpty() || goodNewsList.size() < 5) {
goodNewsList.add(new New());
goodNewsList.add(new New());
goodNewsList.add(new New());
goodNewsList.add(new New());
goodNewsList.add(new New());
}
String newsEcon = WriteOrRead.read(MyTools.nativeData,
"newsEcon.xml");
if (newsEcon != null && !newsEcon.equals("")) {
newNewsList = XmlUtil.getNews(newsEcon);
}
String zBEcon = WriteOrRead.read(MyTools.nativeData,
"ZbEcon.xml");
if (zBEcon != null && !zBEcon.equals("")) {
zhibiaoList = XmlUtil.getNews(zBEcon);
}
String buyEcon = WriteOrRead.read(MyTools.nativeData,
"buyEcon.xml");
if (buyEcon != null && !buyEcon.equals("")) {
application.buyEconData.clear();
application.buyEconData.addAll(XmlUtil
.queryBuyNews(buyEcon));
}
}
timeOutHelper.uninstallTimerTask(TimeOutHelper.ALDATA_FLAG);
if (handler != null) {
runnable = new Runnable() {
@Override
public void run() {
dosomeThing();
zhibcont++;
handler.postDelayed(this, 5000);
flage = true;
}
};
// 1.初回実行
handler.postDelayed(runnable, 1000);
}
} catch (Exception e) {
timeOutHelper.uninstallTimerTask(TimeOutHelper.ALDATA_FLAG);
e.printStackTrace();
}
super.run();
}
}.start();
}
private void chengeImg(int number) {
for (int i = 0; i < imageViews.length; i++) {
if (i == number) {
imageViews[i]
.setBackgroundResource(R.drawable.econ_data_img_point0);
} else {
imageViews[i]
.setBackgroundResource(R.drawable.econ_data_img_point1);
}
}
}
@Override
public void onClick(View v) {
if (v == zxImg) {
return;
} else if (v == szImg) {
Intent intent = new Intent(this, EconDateNumberActivity.class);
startActivity(intent);
// 数字快讯
} else if (v == zjImg) {
// 中经指数
Intent intent = new Intent(this, EconZZDataActivity.class);
startActivity(intent);
} else if (v == fxImg) {
// 分析预测
Intent intent = new Intent(this, EconFXDataActivity.class);
startActivity(intent);
} else if (v == zbImg) {
// 指标查询
Intent intent = new Intent(this, EconZBQueryActivity.class);
startActivity(intent);
} else if (v == sjImg) {
// 数据查询
Intent intent = new Intent(this, EconDataQueryActivity.class);
startActivity(intent);
} else if (v == homeImg) {
// 首页
Intent intent = new Intent(this, HomePageDZB.class);
startActivity(intent);
this.finish();
} else if (v == tv_left) {
return;
} else if (v == shuju) {
// 右侧数据图片
Intent intent = new Intent(this, EconDataQueryActivity.class);
startActivity(intent);
} else if (v == shuax) {
if (flage) {
flage=false;
Intent intent = new Intent(this, EconDataMain.class);
startActivity(intent);
this.finish();
} else {
return;
}
}
}
private boolean isHasfunID(String funid) {
for (funId id : application.buyEconData) {
if (funid.equals(id.getFunid())) {
return true;
}
}
return false;
}
private void dosomeThing() {
if (zhibcont == 0) {
goodAdapter = new EconImageAdapter(EconDataMain.this, goodNewsList,
goodData, imageViews);
goodData.setAdapter(goodAdapter);
goodData.setSelection(Integer.MAX_VALUE / 2 - 3);
imageViews[(Integer.MAX_VALUE / 2 - 3) % 5]
.setBackgroundResource(R.drawable.econ_data_img_point0);
goodData.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
chengeImg(arg2 % 5);
goodReportTitle.setText(goodNewsList.get(arg2 % 5)
.getTitle());
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
}
});
goodData.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
New oneNew = goodNewsList.get(arg2 % 5);
if (oneNew.getId() != null) {
if (isHasfunID(bgId) || oneNew.getIsfree().equals("1")) {
Intent intent = new Intent(EconDataMain.this,
EconGoodDataActivity.class);
if (oneNew != null) {
intent.putExtra("id", oneNew.getId());
}
startActivity(intent);
if (application.activitys
.contains(EconGoodDataActivity.class)) {
application.activitys
.remove(EconGoodDataActivity.class);
application.activitys
.add(EconGoodDataActivity.class);
} else {
application.activitys
.add(EconGoodDataActivity.class);
}
} else {
// 栏目没有购买
MyTools.exitShow(EconDataMain.this, getWindow()
.getDecorView(), "未购买该栏目!");
}
}
}
});
newsData.setAdapter(new EconAdapter(EconDataMain.this, newNewsList));
newsData.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
New oneNew = (New) arg0.getAdapter().getItem(arg2);
Class<?> clas = null;
String otherId = "";
String nowID="";
if (oneNew.getFunname().equals("精彩数据")
|| oneNew.getFunname().equals("指标查询")) {
if (oneNew.getFunname().equals("精彩数据")) {
clas = EconGoodDataActivity.class;
otherId = columnEntry.getColByName("精彩数据").getId();
} else if (oneNew.getFunname().equals("指标查询")) {
clas = EconZBQueryActivity.class;
otherId = columnEntry.getColByName("指标查询").getId();
}
} else {
String parentID = columnEntry.getColByName(
oneNew.getFunname()).getParentId();
nowID=columnEntry.getColByName(
oneNew.getFunname(),columnEntry.getColByName(MODEL_NAME).getId()).getId();
if (columnEntry.getFunNameByID(parentID).equals("分析预测")) {
clas = EconFXDataActivity.class;
otherId = columnEntry.getColByName("分析预测").getId();
} else if (columnEntry.getFunNameByID(parentID).equals(
"数字快讯")) {
clas = EconDateNumberActivity.class;
otherId = columnEntry.getColByName("数字快讯").getId();
} else if (columnEntry.getFunNameByID(parentID).equals(
"中经指数")) {
clas = EconZZDataActivity.class;
otherId = columnEntry.getColByName("中经指数").getId();
} else {
MyTools.exitShow(EconDataMain.this,
findViewById(R.id.econ_data_main_all),
"后台业务名称不匹配!");
return;
}
}
if (isHasfunID(otherId) ||isHasfunID(nowID)|| oneNew.getIsfree().equals("1")) {
if (clas == null) {
MyTools.exitShow(EconDataMain.this, getWindow()
.getDecorView(), "后台业务名称不匹配!");
return;
}
Intent intent = new Intent(EconDataMain.this, clas);
intent.putExtra("id", oneNew.getId());
startActivity(intent);
if (application.activitys.contains(clas)) {
application.activitys.remove(clas);
application.activitys.add(clas);
} else {
application.activitys.add(clas);
}
} else {
// 栏目没有购买
MyTools.exitShow(EconDataMain.this, getWindow()
.getDecorView(), "未购买该栏目!");
}
}
});
prolayout.setVisibility(View.GONE);
}
// 指标数据
if (zhibiaoList.size() > 0) {
final New theNew = zhibiaoList.get(zhibcont % zhibiaoList.size());
zhibtext.setText(theNew.getTitle());
ImageResourse imageResource = new ImageResourse();
imageResource.setIconUrl(theNew.getPpath());
imageResource.setIconId(theNew.getId());
imageResource.setIconTime(theNew.getTime());
if (drawables.containsKey(theNew.getPpath())
&& drawables.get(theNew.getPpath()) != null) {
zhibiao.setImageDrawable(drawables.get(theNew.getPpath()));
Log.i("view", "缓存起作用");
} else {
asyncImageLoader.loadDrawable(imageResource,
new ImageCallback() {
@Override
public void imageLoaded(Drawable imageDrawable,
String imageUrl) {
if (zhibiao != null && imageDrawable != null) {
zhibiao.setImageDrawable(imageDrawable);
drawables.put(theNew.getPpath(),
imageDrawable);
}
}
});
}
zhibiao.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(EconDataMain.this,
EconZBQueryActivity.class);
if (theNew != null) {
intent.putExtra("id", theNew.getId());
}
startActivity(intent);
}
});
}
/*
* if(goodNewsList.size()>0){
* goodData.setSelection(zhibcont%goodNewsList.size()); }
*/
}
}