package com.hyrt.cei.ui.information;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import android.app.Activity;
import android.content.ContentResolver;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Gravity;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Gallery;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.hyrt.cei.R;
import com.hyrt.cei.adapter.CommonPopAdapter;
import com.hyrt.cei.adapter.InfAdapter;
import com.hyrt.cei.adapter.InfomationImageAdapter;
import com.hyrt.cei.adapter.WeatherPopAdapter;
import com.hyrt.cei.application.CeiApplication;
import com.hyrt.cei.util.AsyncImageLoader;
import com.hyrt.cei.util.MyTools;
import com.hyrt.cei.util.TimeOutHelper;
import com.hyrt.cei.util.WeatherUtil;
import com.hyrt.cei.util.WriteOrRead;
import com.hyrt.cei.util.XmlUtil;
import com.hyrt.cei.vo.ColumnEntry;
import com.hyrt.cei.vo.ImageResourse;
import com.hyrt.cei.vo.InfoNew;
import com.hyrt.cei.vo.WeatherInfo;
import com.hyrt.cei.webservice.service.Service;
public class InformationMainActivity extends Activity implements
OnClickListener, OnItemClickListener {
private TimeOutHelper timeOutHelper;
private String loginName;
private boolean isGoUnline;
private ImageView imgpoint0, imgpoint1, imgpoint2, imgpoint3, imgpoint4;
private Button top1, top2, top3, top4, botton, botton1, botton2, botton3,
botton4, botton5, botton6, moreBurron;
private String strId;
private TextView infoTitle;
private LinearLayout prolayout;
public static String MODEL_NAME;
private static final int LEFTTOP_READY = 1;
private static final int LEFTBOTTOM_READY = 2;
private static final int RIGHTTOP_READY = 3;
private static final int RIGHTBOTTOM_READY = 4;
private static final int SHOUCANG = 7;
private static final int LEFTBOTTON_FIRST = 5;
private static final int ALREADY_BUY = 6;
private GridView gridview;
private PopupWindow popWin;
private List<String> nameList;
private String intentId, jingcaiStrId;
private Intent intent;
private List<funId> funIds;
private boolean alreadyBuy;
private boolean isFirst;
private boolean canRead;
private List<ColumnEntry> columnEntries;
private Gallery goodData;
private ImageView[] imageViews;
private InfomationImageAdapter goodAdapter;
private boolean flage;
// 弹出框信息列表
private List<InfoNew> infoNews = new ArrayList<InfoNew>();
private SharedPreferences settings;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
MODEL_NAME=((CeiApplication)getApplication()).nowStart;//获取当前业务名称。
setContentView(R.layout.informationmain);
timeOutHelper = new TimeOutHelper(this);
findViewById(R.id.econ_data_pro).setOnTouchListener(
new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
return true;
}
});
settings = getSharedPreferences("cityCode", Activity.MODE_PRIVATE);
final String cityCode = settings.getString("cityCode", "");
TextView tv = (TextView) findViewById(R.id.imageView1);
tv.setText(MODEL_NAME);
try {
// 初始化公用的数据
initCommonData();
// 初始化其他的部分的数据
initOtherData();
// 初始化左上部的数据
initLeftTopData();
prolayout.setVisibility(View.GONE);
if (!cityCode.equals("")) {
new Thread(new Runnable() {
@Override
public void run() {
weatherInfo = XmlUtil.parseWeatherInfo(WeatherUtil
.getWeather(cityCode));
dataHandler.post(new Runnable() {
@Override
public void run() {
try {
ContentResolver cv = InformationMainActivity.this
.getContentResolver();
String strTimeFormat = android.provider.Settings.System
.getString(
cv,
android.provider.Settings.System.DATE_FORMAT);
SimpleDateFormat bartDateFormat = null;
try {
bartDateFormat = new SimpleDateFormat(
strTimeFormat);
} catch (Exception e) {
bartDateFormat = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
}
Date date = new Date(weatherInfo.getTime());
((TextView) findViewById(R.id.weather_tv))
.setText(weatherInfo.getProvince() + " "
+ weatherInfo.getCity() + " "
+ bartDateFormat.format(date)
+ "\n" + " "
+ weatherInfo.getScene());
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
}).start();
}
} catch (Exception e) {
}
}
private void initCommonData() {
SharedPreferences settings = getSharedPreferences("loginInfo",
Activity.MODE_PRIVATE);
loginName = settings.getString("LOGINNAME", "");
prolayout = (LinearLayout) findViewById(R.id.econ_data_pro);
prolayout.setVisibility(View.VISIBLE);
infoTitle = (TextView) findViewById(R.id.good_report_title);
goodData = (Gallery) findViewById(R.id.econ_data_top);
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 };
alreadyBuy = false;
isFirst = true;
canRead = false;
isGoUnline = true;
flage = true;
jingcaiStrId = "";
columnEntry = ((CeiApplication) getApplication()).columnEntry;
refreshListData(columnEntry.getUserId(), ALREADY_BUY);
columnEntries = columnEntry.getEntryChildsForParent(columnEntry
.getColByName(InformationMainActivity.MODEL_NAME).getId());
asyncImageLoader = ((CeiApplication) (this.getApplication())).asyncImageLoader;
list = columnEntry.getEntryChildsForParent(columnEntry.getColByName(
MODEL_NAME).getId());
strId = "";
nameList = new ArrayList<String>();
for (int i = 0; i < list.size(); i++) {
if (i + 1 == list.size()) {
if (list.get(i).getName().endsWith("精彩推荐")) {
jingcaiStrId = list.get(i).getId();
}
nameList.add(list.get(i).getName());
strId += list.get(i).getId();
} else {
if (list.get(i).getName().endsWith("精彩推荐")) {
jingcaiStrId = list.get(i).getId();
}
nameList.add(list.get(i).getName());
strId += list.get(i).getId() + ",";
}
}
}
// 经济资讯的子集业务集合
private List<ColumnEntry> list;
// 所有业务数据
private ColumnEntry columnEntry;
// 左上部数据的集合
List<InfoNew> leftTopNews = new ArrayList<InfoNew>();
// 左下部数据的集合
List<InfoNew> leftBottomNews = new ArrayList<InfoNew>();
// 右上部数据的集合
List<InfoNew> rightTopNews = new ArrayList<InfoNew>();
// 右下部数据的集合
List<InfoNew> rightBottomNews = new ArrayList<InfoNew>();
// 加载图片的类
private AsyncImageLoader asyncImageLoader;
// 上下业务按钮的集合
private List<Button> buttons = new ArrayList<Button>();
// 左下部的listview
private ListView leftListview;
// 右上部的listview
private ListView rightListview;
// 右下部的父级元素
private LinearLayout rightBottomParent;
protected CommonPopAdapter adapter1;
private void initLeftTopData() {
new Thread() {
@Override
public void run() {
try {
if (((CeiApplication) InformationMainActivity.this
.getApplication()).isNet()) {
// 有图片的
String leftTopResult = Service.queryNewsByFunctionId(
jingcaiStrId, "40", columnEntry.getUserId());
XmlUtil.getNewsList(leftTopResult, leftTopNews);
if (leftTopNews.size() < 5) {
leftTopNews.add(new InfoNew());
leftTopNews.add(new InfoNew());
leftTopNews.add(new InfoNew());
leftTopNews.add(new InfoNew());
leftTopNews.add(new InfoNew());
}
WriteOrRead.write(leftTopResult, MyTools.nativeData,
"leftTopResult.xml");
} else {
String leftTopResult = WriteOrRead.read(
MyTools.nativeData, "leftTopResult.xml");
if (leftTopResult != null && !leftTopResult.equals("")) {
XmlUtil.getNewsList(leftTopResult, leftTopNews);
}
if (leftTopNews.size() == 0) {
leftTopNews.add(new InfoNew());
leftTopNews.add(new InfoNew());
leftTopNews.add(new InfoNew());
leftTopNews.add(new InfoNew());
leftTopNews.add(new InfoNew());
}
}
Message message = dataHandler.obtainMessage();
message.arg1 = LEFTTOP_READY;
dataHandler.sendMessage(message);
} catch (Exception e) {
e.printStackTrace();
}
super.run();
}
}.start();
}
public void initOtherData() {
findViewById(R.id.home).setOnClickListener(this);
findViewById(R.id.zjzx_shoucang).setOnClickListener(this);
findViewById(R.id.zjzx_shuaxin).setOnClickListener(this);
findViewById(R.id.zjzx_sousuo).setOnClickListener(this);
leftListview = (ListView) findViewById(R.id.info_left_botton_listview);
rightListview = (ListView) findViewById(R.id.info_right_top_list);
leftListview.setOnItemClickListener(this);
rightListview.setOnItemClickListener(this);
findViewById(R.id.weather_Ll).setOnClickListener(this);
rightBottomParent = (LinearLayout) findViewById(R.id.right_bottom_parent);
botton = (Button) findViewById(R.id.info_left_botton_button1);
botton1 = (Button) findViewById(R.id.info_left_botton_button2);
botton1.setVisibility(View.GONE);
if (list.size() > 0) {
buttons.add(botton1);
botton1.setText(list.get(0).getName());
botton1.setVisibility(View.VISIBLE);
}
botton2 = (Button) findViewById(R.id.info_left_botton_button3);
botton2.setVisibility(View.GONE);
if (list.size() > 1) {
botton2.setText(list.get(1).getName());
buttons.add(botton2);
}
botton3 = (Button) findViewById(R.id.info_left_botton_button4);
botton3.setVisibility(View.GONE);
if (list.size() > 2) {
botton3.setText(list.get(2).getName());
buttons.add(botton3);
}
botton4 = (Button) findViewById(R.id.info_left_botton_button5);
botton4.setVisibility(View.GONE);
if (list.size() > 3) {
botton4.setText(list.get(3).getName());
buttons.add(botton4);
}
top1 = (Button) findViewById(R.id.info_right_top_botton1);
top1.setVisibility(View.GONE);
if (list.size() > 4) {
top1.setText(list.get(4).getName());
buttons.add(top1);
}
top2 = (Button) findViewById(R.id.info_right_top_botton2);
top2.setVisibility(View.GONE);
if (list.size() > 5) {
top2.setText(list.get(5).getName());
buttons.add(top2);
}
top3 = (Button) findViewById(R.id.info_right_top_botton3);
top3.setVisibility(View.GONE);
if (list.size() > 6) {
top3.setText(list.get(6).getName());
buttons.add(top3);
}
top4 = (Button) findViewById(R.id.info_right_top_botton4);
top4.setVisibility(View.GONE);
if (list.size() > 7) {
top4.setText(list.get(7).getName());
buttons.add(top4);
}
botton5 = (Button) findViewById(R.id.info_right_botton_button1);
botton5.setVisibility(View.GONE);
if (list.size() > 8) {
botton5.setText(list.get(8).getName());
buttons.add(botton5);
}
botton6 = (Button) findViewById(R.id.info_right_botton_button2);
botton6.setVisibility(View.GONE);
if (list.size() > 9) {
buttons.add(botton6);
botton6.setText(list.get(9).getName());
}
// 显示菜单按钮
for (int i = 0; i < buttons.size(); i++) {
buttons.get(i).setVisibility(View.VISIBLE);
}
// 为业务按钮注册事件
botton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
prolayout.setVisibility(View.VISIBLE);
moreBurron
.setBackgroundResource(R.drawable.zjzx_left_botton_button);
refreshListData(strId, LEFTBOTTON_FIRST);
for (int i = 0; i < 4; i++) {
if (list.size() > i)
buttons.get(i).setBackgroundResource(
R.drawable.zjzx_left_botton_button);
}
botton.setBackgroundResource(R.drawable.zjzx_left_botton_button_selected);
}
});
for (int i = 0; i < buttons.size(); i++) {
final int j = i;
buttons.get(i).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
prolayout.setVisibility(View.VISIBLE);
moreBurron
.setBackgroundResource(R.drawable.zjzx_left_botton_button);
// 获取该业务下的列表
if (j < 4) {
refreshListData(list.get(j).getId(), LEFTBOTTOM_READY);
for (int i = 0; i < 4; i++) {
if (list.size() > i) {
if (i == j)
buttons.get(i)
.setBackgroundResource(
R.drawable.zjzx_left_botton_button_selected);
else
buttons.get(i).setBackgroundResource(
R.drawable.zjzx_left_botton_button);
}
}
botton.setBackgroundResource(R.drawable.zjzx_left_botton_button);
} else if (j >= 4 && j < 8) {
refreshListData(list.get(j).getId(), RIGHTTOP_READY);
for (int i = 4; i < 8; i++) {
if (list.size() > i) {
if (i == j)
buttons.get(i)
.setBackgroundResource(
R.drawable.zjzx_right_top_button_selected);
else
buttons.get(i).setBackgroundResource(
R.drawable.zjzx_right_top_button);
}
}
} else {
refreshListData(list.get(j).getId(), RIGHTBOTTOM_READY);
for (int i = 8; i < 10; i++) {
if (list.size() > i) {
if (i == j)
buttons.get(i)
.setBackgroundResource(
R.drawable.zjzx_left_botton_button_selected);
else
buttons.get(i).setBackgroundResource(
R.drawable.zjzx_left_botton_button);
}
}
}
}
});
}
moreBurron = (Button) findViewById(R.id.info_left_botton_button6);
moreBurron.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
moreBurron
.setBackgroundResource(R.drawable.zjzx_left_botton_button_selected);
alertCommonListPop();
}
});
if (list.size() > 0)
refreshListData(strId, LEFTBOTTON_FIRST);
if (list.size() > 4)
refreshListData(list.get(4).getId(), RIGHTTOP_READY);
if (list.size() > 8)
refreshListData(list.get(8).getId(), RIGHTBOTTOM_READY);
}
Handler dataHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
switch (msg.arg1) {
case LEFTBOTTON_FIRST:
// 为左下部视图首个按钮附件数据并设置事件
triggerLeftBottomView();
break;
case LEFTTOP_READY:
// 为左上部视图附件数据并设置事件
triggerLeftTopView();
break;
case LEFTBOTTOM_READY:
// 为左下部视图附件数据并设置事件
triggerLeftBottomView();
break;
case RIGHTTOP_READY:
// 为右上部视图附件数据并设置事件
triggerRightTopView();
break;
case RIGHTBOTTOM_READY:
// 为右下部视图附件数据并设置事件
triggerRightBottomView();
break;
case SHOUCANG:
InformationMainActivity.this.adapter1 = new CommonPopAdapter(
InformationMainActivity.this,
R.layout.common_listpop_listview_item, infoNews);
listView1.setAdapter(InformationMainActivity.this.adapter1);
prolayout.setVisibility(View.GONE);
break;
}
}
};
protected void triggerRightBottomView() {
if (rightBottomNews.size() == 2) {
for (int i = 0; i < rightBottomParent.getChildCount(); i++) {
RelativeLayout rl = (RelativeLayout) rightBottomParent
.getChildAt(i);
final InfoNew infoNew = rightBottomNews.get(i);
TextView tv = (TextView) rl.getChildAt(0);
tv.setText(infoNew.getTitle());
ImageView iv = (ImageView) rl.getChildAt(1);
iv.setTag(infoNew);
iv.setOnClickListener(this);
// 加载图片
ImageResourse imageResource = new ImageResourse();
imageResource.setIconUrl(rightBottomNews.get(i).getImagepath());
imageResource.setIconId(rightBottomNews.get(i).getId());
imageResource.setIconTime(rightBottomNews.get(i).getTime());
asyncImageLoader.loadDrawable(imageResource,
new AsyncImageLoader.ImageCallback() {
@Override
public void imageLoaded(Drawable drawable,
String path) {
ImageView imageView = (ImageView) rightBottomParent
.findViewWithTag(infoNew);
if (imageView != null && drawable != null) {
imageView.setBackgroundDrawable(drawable);
}
}
});
}
}
prolayout.setVisibility(View.GONE);
}
protected void triggerRightTopView() {
InfAdapter adapter = new InfAdapter(this, R.layout.inf_list_item_2,
rightTopNews);
rightListview.setAdapter(adapter);
prolayout.setVisibility(View.GONE);
}
private InfAdapter infoAdapter;
protected void triggerLeftBottomView() {
if (infoAdapter == null) {
infoAdapter = new InfAdapter(this, R.layout.inf_list_item,
leftBottomNews);
leftListview.setAdapter(infoAdapter);
} else {
infoAdapter.notifyDataSetChanged();
}
prolayout.setVisibility(View.GONE);
}
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);
}
}
}
protected void triggerLeftTopView() {
if (leftTopNews.size() >= 5) {
goodAdapter = new InfomationImageAdapter(
InformationMainActivity.this, leftTopNews, 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);
prolayout.setVisibility(View.GONE);
}
goodData.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
chengeImg(arg2 % 5);
infoTitle.setText(leftTopNews.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) {
if (((CeiApplication) getApplication()).isNet() && isGoUnline) {
InfoNew newTop = leftTopNews.get(arg2 % 5);
intentId = newTop.getId();
intent = new Intent();
intent.putExtra("extra", intentId);
for (int i = 0; i < columnEntries.size(); i++) {
if (columnEntries.get(i).getId().equals(jingcaiStrId)) {
intent.putExtra("topNum", i + "");
}
}
intent.putExtra("functionId", jingcaiStrId);
intent.setClass(InformationMainActivity.this,
Information.class);
if (newTop.getId() != null) {
if (newTop.getIsfree().endsWith("1")) {
InformationMainActivity.this.startActivity(intent);
} else {
for (int i = 0; i < funIds.size(); i++) {
if (funIds.get(i).getFunid()
.endsWith(jingcaiStrId)) {
canRead = true;
break;
} else {
canRead = false;
}
}
if (canRead) {
InformationMainActivity.this
.startActivity(intent);
} else {
MyTools.exitShow(InformationMainActivity.this,
getWindow().getDecorView(), "未购买该栏目!");
}
}
}
}
}
});
}
private void refreshListData(final String functionId, final int operationId) {
final Handler selfHandler = new Handler() {
@Override
public void dispatchMessage(Message msg) {
switch (operationId) {
case LEFTBOTTON_FIRST:
leftBottomNews.clear();
try {
XmlUtil.getNewsList(msg.obj.toString(), leftBottomNews);
} catch (Exception e) {
e.printStackTrace();
}
WriteOrRead.write(msg.obj.toString(), MyTools.nativeData,
"leftBottonFirst.xml");
break;
case LEFTBOTTOM_READY:
leftBottomNews.clear();
try {
XmlUtil.getNewsList(msg.obj.toString(), leftBottomNews);
} catch (Exception e) {
e.printStackTrace();
}
for (int i = 0; i < funIds.size(); i++) {
if (funIds.get(i).getFunid().endsWith(functionId)) {
alreadyBuy = true;
break;
} else {
alreadyBuy = false;
}
}
if (alreadyBuy) {
for (int j = 0; j < leftBottomNews.size(); j++) {
leftBottomNews.get(j).setIsfree("1");
}
}
break;
case RIGHTTOP_READY:
rightTopNews.clear();
XmlUtil.getNewsList(msg.obj.toString(), rightTopNews);
WriteOrRead.write(msg.obj.toString(), MyTools.nativeData,
"rightTopResult.xml");
for (int i = 0; i < funIds.size(); i++) {
if (funIds.get(i).getFunid().endsWith(functionId)) {
alreadyBuy = true;
break;
} else {
alreadyBuy = false;
}
}
if (alreadyBuy) {
for (int j = 0; j < leftBottomNews.size(); j++) {
rightTopNews.get(j).setIsfree("1");
}
}
break;
case RIGHTBOTTOM_READY:
rightBottomNews.clear();
XmlUtil.getNewsList(msg.obj.toString(), rightBottomNews);
WriteOrRead.write(msg.obj.toString(), MyTools.nativeData,
"rightBottonResult.xml");
for (int i = 0; i < funIds.size(); i++) {
if (funIds.get(i).getFunid().endsWith(functionId)) {
alreadyBuy = true;
break;
} else {
alreadyBuy = false;
}
}
if (alreadyBuy) {
for (int j = 0; j < rightBottomNews.size(); j++) {
rightBottomNews.get(j).setIsfree("1");
}
}
break;
case ALREADY_BUY:
String result = Service.queryBuyNews(columnEntry.getUserId());
try {
funIds = XmlUtil.queryBuyNews(result);
} catch (Exception e) {
e.printStackTrace();
}
break;
}
Message message = dataHandler.obtainMessage();
message.arg1 = operationId;
dataHandler.sendMessage(message);
super.dispatchMessage(msg);
}
};
new Thread(new Runnable() {
@Override
public void run() {
timeOutHelper.installTimerTask();
String result = "";
switch (operationId) {
case LEFTBOTTON_FIRST:
isFirst = true;
alreadyBuy = false;
if (((CeiApplication) InformationMainActivity.this
.getApplication()).isNet()) {
String leftBottonFirst = Service.queryNewsList(strId);
Message message = selfHandler.obtainMessage();
message.obj = leftBottonFirst;
selfHandler.sendMessage(message);
} else {
String leftBottonFirst = WriteOrRead.read(
MyTools.nativeData, "leftBottonFirst.xml");
leftBottomNews.clear();
try {
XmlUtil.getNewsList(leftBottonFirst, leftBottomNews);
} catch (Exception e) {
e.printStackTrace();
}
Message message = dataHandler.obtainMessage();
message.arg1 = operationId;
dataHandler.sendMessage(message);
}
break;
case LEFTBOTTOM_READY:
isFirst = false;
result = Service.queryNewsByFunctionId(functionId, "15",
columnEntry.getUserId());
Message message = selfHandler.obtainMessage();
message.obj = result;
selfHandler.sendMessage(message);
break;
case RIGHTTOP_READY:
if (((CeiApplication) InformationMainActivity.this
.getApplication()).isNet()) {
String rightTopResult = Service.queryNewsByFunctionId(
functionId, "15", columnEntry.getUserId());
Message message1 = selfHandler.obtainMessage();
message1.obj = rightTopResult;
selfHandler.sendMessage(message1);
} else {
String rightTopResult = WriteOrRead.read(
MyTools.nativeData, "rightTopResult.xml");
rightTopNews.clear();
XmlUtil.getNewsList(rightTopResult, rightTopNews);
Message message2 = dataHandler.obtainMessage();
message2.arg1 = operationId;
dataHandler.sendMessage(message2);
for (int i = 0; i < funIds.size(); i++) {
if (funIds.get(i).getFunid().endsWith(functionId)) {
alreadyBuy = true;
break;
} else {
alreadyBuy = false;
}
}
if (alreadyBuy) {
for (int j = 0; j < leftBottomNews.size(); j++) {
rightTopNews.get(j).setIsfree("1");
}
}
}
break;
case RIGHTBOTTOM_READY:
if (((CeiApplication) InformationMainActivity.this
.getApplication()).isNet()) {
String rightBottonResult = Service
.queryNewsByFunctionId(functionId, "2",
columnEntry.getUserId());
Message message3 = selfHandler.obtainMessage();
message3.obj = rightBottonResult;
selfHandler.sendMessage(message3);
} else {
String rightBottonResult = WriteOrRead.read(
MyTools.nativeData, "rightTopResult.xml");
rightBottomNews.clear();
XmlUtil.getNewsList(rightBottonResult, rightBottomNews);
for (int i = 0; i < funIds.size(); i++) {
if (funIds.get(i).getFunid().endsWith(functionId)) {
alreadyBuy = true;
break;
} else {
alreadyBuy = false;
}
}
if (alreadyBuy) {
for (int j = 0; j < rightBottomNews.size(); j++) {
rightBottomNews.get(j).setIsfree("1");
}
}
Message message2 = dataHandler.obtainMessage();
message2.arg1 = operationId;
dataHandler.sendMessage(message2);
}
break;
case ALREADY_BUY:
funIds = new ArrayList<funId>();
result = Service.queryBuyNews(functionId);
Message message3 = selfHandler.obtainMessage();
message3.obj = result;
selfHandler.sendMessage(message3);
break;
}
timeOutHelper.uninstallTimerTask(TimeOutHelper.ALDATA_FLAG);
Message message = dataHandler.obtainMessage();
message.arg1 = operationId;
dataHandler.sendMessage(message);
}
}).start();
}
@Override
public void onItemClick(AdapterView<?> parent, View view,
final int position, long id) {
switch (parent.getId()) {
case R.id.common_listpop_listview:
InfoNew newsss = infoNews.get(position);
String intentId = newsss.getId();
// 跳转到详细页
intent = new Intent();
intent.putExtra("extra", intentId);
for (int i = 0; i < columnEntries.size(); i++) {
if (columnEntries.get(i).getId().equals(newsss.getFunctionId())) {
intent.putExtra("topNum", i + "");
}
}
intent.putExtra("functionId", newsss.getFunctionId());
intent.setClass(InformationMainActivity.this, Information.class);
if (infoNews.get(position).getIsfree().endsWith("1")) {
InformationMainActivity.this.finish();
InformationMainActivity.this.startActivity(intent);
} else {
for (int i = 0; i < funIds.size(); i++) {
if (funIds.get(i).getFunid()
.endsWith(infoNews.get(position).getFunctionId())) {
canRead = true;
break;
} else {
canRead = false;
}
}
if (canRead) {
InformationMainActivity.this.finish();
InformationMainActivity.this.startActivity(intent);
} else {
MyTools.exitShow(InformationMainActivity.this, getWindow()
.getDecorView(), "未购买该栏目!");
}
}
break;
case R.id.info_left_botton_listview:
InfoNew new2 = leftBottomNews.get(position);
intentId = new2.getId();
// 跳转到详细页
intent = new Intent();
intent.putExtra("extra", intentId);
for (int i = 0; i < columnEntries.size(); i++) {
if (columnEntries.get(i).getId().equals(new2.getFunctionId())) {
intent.putExtra("topNum", i + "");
}
}
// intent.putExtra("isMenu", false);
intent.putExtra("functionId", new2.getFunctionId());
intent.setClass(InformationMainActivity.this, Information.class);
if (isFirst) {
if (new2.getIsfree().endsWith("1")) {
InformationMainActivity.this.startActivity(intent);
} else {
for (int i = 0; i < funIds.size(); i++) {
if (funIds.get(i).getFunid()
.endsWith(new2.getFunctionId())) {
canRead = true;
break;
} else {
canRead = false;
}
}
if (canRead) {
InformationMainActivity.this.startActivity(intent);
} else {
MyTools.exitShow(InformationMainActivity.this,
getWindow().getDecorView(), "未购买该栏目!");
}
}
} else {
if (new2.getIsfree().equals("1")) {
InformationMainActivity.this.startActivity(intent);
} else {
MyTools.exitShow(InformationMainActivity.this, getWindow()
.getDecorView(), "未购买该栏目!");
}
}
break;
case R.id.info_right_top_list:
InfoNew new1 = rightTopNews.get(position);
intentId = new1.getId();
// 跳转到详细页
intent = new Intent();
for (int i = 0; i < columnEntries.size(); i++) {
if (columnEntries.get(i).getId().equals(new1.getFunctionId())) {
intent.putExtra("topNum", i + "");
}
}
intent.putExtra("extra", intentId);
// intent.putExtra("isMenu", false);
intent.putExtra("functionId", new1.getFunctionId());
intent.setClass(InformationMainActivity.this, Information.class);
if (new1.getIsfree().equals("1")) {
InformationMainActivity.this.startActivity(intent);
} else {
MyTools.exitShow(InformationMainActivity.this, getWindow()
.getDecorView(), "未购买该栏目!");
}
break;
case R.id.weather_list_listview:
if (key == 1) {
new Thread(new Runnable() {
@Override
public void run() {
String provinceCode = areas.get(position)[1];
areas.clear();
areas.addAll(XmlUtil.parsePCCodes(WeatherUtil
.getCityCodes(provinceCode)));
Message message = handler.obtainMessage();
message.arg1 = GET_CITY;
handler.sendMessage(message);
}
}).start();
} else if (key == 2) {
String cityCode = areas.get(position)[1];
Editor editor = settings.edit();
editor.putString("cityCode", cityCode);
editor.commit();
weatherInfo = XmlUtil.parseWeatherInfo(WeatherUtil
.getWeather(cityCode));
Message message = handler.obtainMessage();
message.arg1 = GET_WEATHER;
handler.sendMessage(message);
}
break;
}
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.weather_Ll:
if (((CeiApplication) getApplication()).isNet() && isGoUnline) {
alertWeatherPop();
}
break;
case R.id.zjzx_sousuo:
intent = new Intent(InformationMainActivity.this,
InfoSearchActivity.class);
startActivity(intent);
break;
case R.id.zjzx_shoucang:
if (!loginName.equals("")) {
alertShoucangListPop();
} else {
Toast.makeText(InformationMainActivity.this, "请登陆后查看!",
Toast.LENGTH_SHORT).show();
}
break;
case R.id.zjzx_shuaxin:
if (flage) {
InformationMainActivity.this.finish();
Intent intent = new Intent(this, InformationMainActivity.class);
startActivity(intent);
flage = false;
} else {
return;
}
break;
case R.id.common_listpop_edit:
for (int i = 0; i < infoNews.size(); i++) {
infoNews.get(i).setIsCollect("0");
}
adapter1.notifyDataSetChanged();
break;
case R.id.common_listpop_clear:
new Thread(new Runnable() {
@Override
public void run() {
Service.clearCollect(((CeiApplication) InformationMainActivity.this
.getApplication()).columnEntry.getUserId());
}
}).start();
infoNews.clear();
adapter1.notifyDataSetChanged();
break;
case R.id.home:
InformationMainActivity.this.finish();
break;
default:
InfoNew infoNew = (InfoNew) v.getTag();
if (infoNew.getIsfree().equals("0"))
return;
intent = new Intent();
intent.setClass(InformationMainActivity.this, Information.class);
intent.putExtra("extra", infoNew.getId());
for (int i = 0; i < columnEntries.size(); i++) {
if (columnEntries.get(i).getId()
.equals(infoNew.getFunctionId())) {
intent.putExtra("topNum", i + "");
}
}
// intent.putExtra("isMenu", false);
intent.putExtra("functionId", infoNew.getFunctionId());
if (infoNew.getIsfree().equals("1")) {
InformationMainActivity.this.startActivity(intent);
} else {
MyTools.exitShow(InformationMainActivity.this, getWindow()
.getDecorView(), "未购买该栏目!");
}
break;
}
}
// 气温所在地区弹出框
private PopupWindow popWindow;
// 气温所在地区listview
private ListView listView;
// 收藏列表listview
private ListView listView1;
// 弹出框信息列表
private List<String[]> areas;
// 气温所在地区列表适配器
private WeatherPopAdapter adapter;
// 是否是省份列表
private int key;
private Handler handler;
private static final int GET_CITY = 1;
private static final int GET_WEATHER = 2;
private WeatherInfo weatherInfo;
private void alertWeatherPop() {
prolayout.setVisibility(View.VISIBLE);
key = 0;
handler = new Handler() {
@Override
public void dispatchMessage(Message msg) {
switch (msg.arg1) {
case GET_CITY:
key = 2;
adapter.notifyDataSetChanged();
prolayout.setVisibility(View.GONE);
break;
case GET_WEATHER:
popWindow.dismiss();
ContentResolver cv = InformationMainActivity.this
.getContentResolver();
String strTimeFormat = android.provider.Settings.System
.getString(
cv,
android.provider.Settings.System.DATE_FORMAT);
SimpleDateFormat bartDateFormat = null;
try {
bartDateFormat = new SimpleDateFormat(strTimeFormat);
} catch (Exception e) {
bartDateFormat = new SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss");
}
Date date = new Date(weatherInfo.getTime());
((TextView) findViewById(R.id.weather_tv))
.setText(weatherInfo.getProvince() + " "
+ weatherInfo.getCity() + " "
+ bartDateFormat.format(date) + "\n"
+ " " + weatherInfo.getScene());
break;
default:
key = 1;
adapter = new WeatherPopAdapter(
InformationMainActivity.this,
R.layout.weatherpop_listview_item, areas);
listView.setAdapter(adapter);
prolayout.setVisibility(View.GONE);
listView.setOnItemClickListener(InformationMainActivity.this);
break;
}
}
};
View popView = this.getLayoutInflater().inflate(
R.layout.weather_list_pop, null);
new Thread(new Runnable() {
@Override
public void run() {
areas = XmlUtil.parsePCCodes(WeatherUtil.getProvinceCodes());
handler.sendMessage(handler.obtainMessage());
}
}).start();
listView = (ListView) popView.findViewById(R.id.weather_list_listview);
popView.findViewById(R.id.weather_province).setOnClickListener(this);
popView.findViewById(R.id.weather_sure).setOnClickListener(this);
popView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
popWindow.dismiss();
return false;
}
});
popWindow = new PopupWindow(popView, LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT);
popWindow.setFocusable(true);
popWindow.showAtLocation(findViewById(R.id.full_view), Gravity.CENTER,
0, 0);
}
private void alertCommonListPop() {
prolayout.setVisibility(View.VISIBLE);
View popView = this.getLayoutInflater().inflate(
R.layout.informationmain_pop, null);
gridview = (GridView) popView.findViewById(R.id.info_main_gridview);
ArrayAdapter<String> aa = new ArrayAdapter<String>(
InformationMainActivity.this, R.layout.info_main_grid_item,
R.id.info_main_grid_text, nameList);
gridview.setAdapter(aa);
prolayout.setVisibility(View.GONE);
gridview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
intent = new Intent();
intent.setClass(InformationMainActivity.this, Information.class);
intent.putExtra("extra", "more");
intent.putExtra("topNum", arg2 + "");
intent.putExtra("functionId", columnEntries.get(arg2).getId());
startActivity(intent);
popWin.dismiss();
moreBurron
.setBackgroundResource(R.drawable.zjzx_left_botton_button);
}
});
popView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
popWin.dismiss();
moreBurron
.setBackgroundResource(R.drawable.zjzx_left_botton_button);
return false;
}
});
popWin = new PopupWindow(popView, LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT);
popWin.setFocusable(true);
popWin.showAtLocation(findViewById(R.id.info_left_botton_listview),
Gravity.CENTER, 0, 0);
}
private void alertShoucangListPop() {
prolayout.setVisibility(View.VISIBLE);
View popView = this.getLayoutInflater().inflate(
R.layout.common_list_pop, null);
listView1 = (ListView) popView
.findViewById(R.id.common_listpop_listview);
listView1.setOnItemClickListener(this);
final Handler selfHandler = new Handler() {
@Override
public void dispatchMessage(Message msg) {
infoNews.clear();
XmlUtil.getNewsList(msg.obj.toString(), infoNews);
for (int i = 0; i < infoNews.size(); i++) {
infoNews.get(i).setIsCollect("1");
}
Message message = dataHandler.obtainMessage();
message.arg1 = SHOUCANG;
dataHandler.sendMessage(message);
super.dispatchMessage(msg);
}
};
new Thread(new Runnable() {
@Override
public void run() {
String result = Service
.queryCollect(((CeiApplication) InformationMainActivity.this
.getApplication()).columnEntry.getUserId());
Message messsage = selfHandler.obtainMessage();
messsage.obj = result;
selfHandler.sendMessage(messsage);
}
}).start();
popView.findViewById(R.id.common_listpop_edit).setOnClickListener(this);
popView.findViewById(R.id.common_listpop_clear)
.setOnClickListener(this);
popView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
popWin.dismiss();
return false;
}
});
popWin = new PopupWindow(popView, LayoutParams.FILL_PARENT,
LayoutParams.FILL_PARENT);
popWin.setFocusable(true);
popWin.showAtLocation(findViewById(R.id.full_view), Gravity.CENTER, 0,
0);
}
@Override
protected void onDestroy() {
if(goodAdapter != null)
goodAdapter.clearBitmaps();
super.onDestroy();
}
}