package com.ttj.fragment;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import lib.view.ViewUtils;
import lib.view.annotation.ViewInject;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.ProgressDialog;
import android.content.Intent;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import com.ttj.NetFragment;
import com.ttj.R;
import com.ttj.activity.Area_AddAty;
import com.ttj.adapter.Sort_ListAdapter;
import com.ttj.bean.AryNetResultBean;
import com.ttj.bean.ObjNetResultBean;
import com.ttj.bean.SortBaseBean;
import com.ttj.cache.CacheManager;
import com.ttj.constants.ResultCode;
import com.ttj.constants.Url;
import com.ttj.dao.Dao;
import com.ttj.dao.DbOpenHelper;
import com.ttj.utils.JsonUtils;
import com.ttj.utils.MD5;
import com.ttj.utils.SPUtils;
import com.ttj.utils.TextUtils;
import com.ttj.utils.ToastUtil;
/**
* 分类界面
*
* @author Admin
*
*/
public class Sort_HomeFrag extends NetFragment {
@ViewInject(R.id.p1_list_sort)
private ListView listView;
@ViewInject(R.id.p1_iv_sort_back)
private ImageView iv_Back;
@ViewInject(R.id.p1_text_sort_title)
private TextView tv_SortTitle;
private ArrayList<SortBaseBean> mList;
private Sort_ListAdapter adapter;
private ProgressDialog dialog;
private String verson, agentId;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.p1_main_sort_layout, null);
ViewUtils.inject(this, v);
dialog = new ProgressDialog(getActivity());
dialog.setMessage("正在初始化分类数据...");
dialog.setCancelable(false);
mList = new ArrayList<SortBaseBean>();
adapter = new Sort_ListAdapter(getActivity(), mList, tv_SortTitle);
listView.setAdapter(adapter);
agentId = SPUtils.getAgentID(getActivity());
if (TextUtils.isBlank(agentId)) {
Intent intent = new Intent();
intent.setClass(getActivity(), Area_AddAty.class);
startActivityForResult(intent, ResultCode.Area_ReqCode);
} else {
getVerson();
}
return v;
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == ResultCode.Area_ResCode) {
agentId = data.getStringExtra("TAgentID");
SPUtils.saveAgentID(getActivity(), agentId);
getVerson();
}
}
private void getVerson() {
if (CacheManager.isExistDataCache(getActivity(), "_sortverson")
&& !CacheManager.isCacheDataFailure(getActivity(),
"_sortverson") && !SPUtils.getUpdate(getActivity())) {
String result = (String) CacheManager.readObject(getActivity(),
"_sortverson");
success(result, 1);
} else {
HashMap<String, String> parame = new HashMap<String, String>();
parame.put("TAgentID", agentId);
// parames.put("parent_id", "0");
parame.put("port_password", MD5.getMD5ofStr(Url.KET + agentId));
asynNet(Url.Sort_Data_Verson, parame, 1);
}
}
private void updateDB(String result) {
AryNetResultBean netBean = JsonUtils.parseAryNetResult(result);
if (netBean.getStatus().getCode() != 200) {
ToastUtil
.show(getActivity(), netBean.getStatus().getMessage(), 500);
}
DbOpenHelper helper = new DbOpenHelper(getActivity());
SQLiteDatabase db = helper.getWritableDatabase();
List<SortBaseBean> list = JsonUtils.parseSortList(netBean.getBackinfo()
.toString());
db.execSQL("DELETE FROM sort");
for (SortBaseBean sortBaseBean : list) {
String sql = "insert into sort values ('"
+ sortBaseBean.getG_sortid() + "', '"
+ sortBaseBean.getG_sortname() + "', '"
+ sortBaseBean.getG_parentid() + "')";
try {
db.execSQL(sql);
} catch (Exception e) {
}
}
db.close();
SPUtils.saveVerson(getActivity(), verson);
SPUtils.saveUpdate(getActivity(), false);
adapter.clearData();
adapter.addData(Dao.getList(getActivity(), "0"));
adapter.notifyDataSetChanged();
}
@Override
public void success(String result, int tag) {
if (tag == 0) {
updateDB(result);
} else if (tag == 1) {
ObjNetResultBean bean = JsonUtils.parseNetResult(result);
try {
JSONObject obj = new JSONObject(bean.getBackinfo().toString());
verson = obj.getString("Version");
CacheManager.saveObject(getActivity(), result, "_sortverson");
if (!verson.equals(SPUtils.getVerson(getActivity()))) {
dialog.setMessage("正在请求分类数据,请耐心等候...");
HashMap<String, String> parame = new HashMap<String, String>();
parame.put("agent_id", agentId);
// parames.put("parent_id", "0");
parame.put("port_password",
MD5.getMD5ofStr(Url.KET + agentId));
asynNet(Url.Sort_Data, parame, 0);
} else {
adapter.clearData();
adapter.addData(Dao.getList(getActivity(), "0"));
adapter.notifyDataSetChanged();
dialog.dismiss();
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}
@Override
public void onclick(View v) {
}
}