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) { } }