package com.hyrt.cei.ui.witsea;
import java.util.List;
import com.hyrt.cei.application.CeiApplication;
import com.hyrt.cei.ui.common.LoginActivity;
import com.hyrt.cei.ui.personcenter.PersonCenter;
import com.hyrt.cei.util.AsyncImageLoader.ImageCallback;
import com.hyrt.cei.util.MyTools;
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.webservice.service.Service;
import com.hyrt.ceiphone.ContainerActivity;
import com.hyrt.ceiphone.R;
import com.hyrt.ceiphone.adapter.WitSeaAdapter;
import com.hyrt.ceiphone.common.Announcement;
import com.hyrt.ceiphone.common.HomePageDZB;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.view.Window;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
public class WitSeaActivity extends ContainerActivity implements OnClickListener {
//全局application
private CeiApplication application;
//用户选择的业务
private List<ColumnEntry> selectListColumn;
//智慧海内的业务
private List<ColumnEntry> witSeaData;
//智慧海本地缓存文件
private static final String WITSEA_DATA_FILENAME = "witSea.xml";
//登陆名
private String loginName;
//适配器
private WitSeaAdapter adapter;
//gridView视图
private GridView fullGridView;
Handler operationHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
// 数据发送到服务端 是次业务在服务端的id
int index = msg.what;
String returnCode = (String) msg.obj;
if (returnCode != null && !returnCode.equals("")) {
try {
returnCode = XmlUtil.updateWitSea(returnCode);
if (!returnCode.equals("") && !returnCode.equals("0") && !returnCode.equals("-1")) {
// 下载成功
// 把点击的业务加载到本地保存。
String locStr = WriteOrRead.read(MyTools.nativeData, WITSEA_DATA_FILENAME);
locStr = locStr
.replace(
"<operationimage>"
+ witSeaData.get(index).getOperationImage()
+ "</operationimage><isorder>1</isorder>",
"<operationimage>"
+ witSeaData.get(index).getOperationImage()
+ "</operationimage><isorder>0</isorder>");
WriteOrRead.write(locStr, MyTools.nativeData, WITSEA_DATA_FILENAME);
//将自选业务同步的全局
witSeaData.get(index).setSelected(true);
application.columnEntry.getSelectColumnEntryChilds().add(witSeaData.get(index));
adapter.notifyDataSetChanged();
} else {
MyTools.exitShow(WitSeaActivity.this, ((Activity)WitSeaActivity.this).getWindow().getDecorView(), "应用失败,请检查网络!");
}
} catch (Exception e1) {
e1.printStackTrace();
}
} else {
// 删除
ColumnEntry item = witSeaData.get(index);
List<ColumnEntry> selectColumns = application.columnEntry.getSelectColumnEntryChilds();
for (ColumnEntry columnEntry : selectColumns) {
if (columnEntry.getId() != null && columnEntry.getId().equals(item.getId())) {
item.setUserId( application.columnEntry.getUserId());
String deleteCode = Service.deleteWitSea(item);
// 通知服务端删除
if (deleteCode.equals("<?xml version='1.0' encoding='utf-8'?><ROOT><RETURNCODE>1</RETURNCODE></ROOT>")) {
//更新视图
witSeaData.get(index).setSelected(false);
adapter.notifyDataSetChanged();
// 修改本地xml数据或数据库文件
String locStr = WriteOrRead.read(MyTools.nativeData, WITSEA_DATA_FILENAME);
locStr = locStr
.replace(
"<operationimage>"
+ witSeaData.get(index).getOperationImage() + "</operationimage><isorder>0</isorder>",
"<operationimage>"
+ witSeaData.get(index).getOperationImage() + "</operationimage><isorder>1</isorder>");
WriteOrRead.write(locStr, MyTools.nativeData, WITSEA_DATA_FILENAME);
selectColumns.remove(columnEntry);
} else {
MyTools.exitShow(WitSeaActivity.this, ((Activity)WitSeaActivity.this).getWindow().getDecorView(), "删除失败,请检查网络!");
}
}
break;
}
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.service_collect);
overridePendingTransition(R.anim.push_in, R.anim.push_out);
LinearLayout bottomsLl = (LinearLayout) findViewById(R.id.bottoms_Ll);
for (int i = 0; i < bottomsLl.getChildCount(); i++) {
((RelativeLayout) (bottomsLl.getChildAt(i))).getChildAt(0).setOnClickListener(this);
}
SharedPreferences settings = getSharedPreferences("loginInfo",Activity.MODE_PRIVATE);
loginName = settings.getString("LOGINNAME", "");
application = (CeiApplication) this.getApplication();
dataInit();
}
public void dataInit() {
fullGridView = (GridView) findViewById(R.id.main_service_gridview);
selectListColumn = application.columnEntry.getSelectColumnEntryChilds();
witSeaData = application.columnEntry.getWitSeaColumns();
if (selectListColumn != null && selectListColumn.size() > 0) {
for (ColumnEntry columnEntry : selectListColumn) {
for (ColumnEntry witSea : witSeaData) {
if (columnEntry.getId() != null && columnEntry.getId().equals(witSea.getId())) {
witSea.setSelected(true);
}
}
}
}
WriteOrRead.write(dataToXml(witSeaData), MyTools.nativeData,WITSEA_DATA_FILENAME);
loadImage();
}
public String dataToXml(List<ColumnEntry> data) {
StringBuffer xml = new StringBuffer(
"<?xml version='1.0' encoding='UTF-8'?><ROOT><brightness>");
for (ColumnEntry witSea : data) {
xml.append("<bright><funid>" + witSea.getId() + "</funid>"
+ "<name>" + witSea.getName() + "</name>" + "<issuetime>"
+ witSea.getIssueTime() + "</issuetime>"
+ "<operationimage>" + witSea.getOperationImage()
+ "</operationimage>" + "<isorder>" + (witSea.isSelected()==true?"0":"1")
+ "</isorder></bright>");
}
xml.append("</brightness></ROOT>");
return xml.toString();
}
private void loadImage() {
adapter = new WitSeaAdapter(WitSeaActivity.this,
application,fullGridView, witSeaData, operationHandler);
fullGridView.setAdapter(adapter);
}
//弹出popWindow
private PopupWindow popWindow;
/**
* 弹出业务简介
*/
public void alertBusinessIntro(ColumnEntry columnEntry){
final View popView = this.getLayoutInflater().inflate(R.layout.witsea_pop, null);
popView.findViewById(R.id.close_icon).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
popWindow.dismiss();
}
});
popWindow = new PopupWindow(popView, LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT);
popWindow.setFocusable(true);
popWindow.showAtLocation(findViewById(R.id.full_view), Gravity.CENTER,0, 0);
TextView introTv = (TextView) popView.findViewById(R.id.business_intro);
TextView titleTv = (TextView) popView.findViewById(R.id.business_name);
introTv.setText("介绍 :"+ "\n"+ columnEntry.getDescription()==null?"暂无介绍。": columnEntry.getDescription());
titleTv.setText(columnEntry.getName());
ImageResourse imageResource = new ImageResourse();
imageResource.setIconUrl(columnEntry.getOperationImage());
imageResource.setIconId(columnEntry.getId());
imageResource.setIconTime(columnEntry.getIssueTime());
((CeiApplication) WitSeaActivity.this.getApplication()).asyncImageLoader
.loadDrawable(imageResource, new ImageCallback() {
@Override
public void imageLoaded(Drawable imageDrawable,
String imageUrl) {
ImageView imageView = (ImageView) popView.findViewById(R.id.business_icon);
if (imageView != null && imageDrawable != null) {
imageView.setImageDrawable(imageDrawable);
}
}
});
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK){
this.finish();
Intent intent = new Intent(this,HomePageDZB.class);
startActivity(intent);
}
return true;
}
@Override
public void onClick(View v) {
Intent intent = null;
switch (v.getId()) {
case R.id.main_rl:
intent = new Intent(this,HomePageDZB.class);
startActivity(intent);
break;
case R.id.notice_rl:
intent = new Intent(this, Announcement.class);
if (!loginName.equals("")) {
startActivity(intent);
} else {
MyTools.exitShow(WitSeaActivity.this, ((Activity)WitSeaActivity.this).getWindow().getDecorView(), "请登录后查看!");
}
// 跳转到通知公告页
break;
case R.id.psc_rl:
intent = new Intent(this, PersonCenter.class);
if (!loginName.equals("")) {
startActivity(intent);
} else {
MyTools.exitShow(WitSeaActivity.this, ((Activity)WitSeaActivity.this).getWindow().getDecorView(), "请登录后查看!");
}
// 跳转到个人中心页
break;
}
}
}