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 android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.ScrollView;
import android.widget.TextView;
import android.widget.RelativeLayout.LayoutParams;
import com.barcode.CaptureAty;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshBase.OnRefreshListener;
import com.handmark.pulltorefresh.library.PullToRefreshScrollView;
import com.ttj.MyApplication;
import com.ttj.NetFragment;
import com.ttj.R;
import com.ttj.activity.Area_AddAty;
import com.ttj.activity.Goods_SearchAty;
import com.ttj.activity.My_CollectListAty;
import com.ttj.activity.My_OrderListAty;
import com.ttj.activity.User_LoginAty;
import com.ttj.adapter.Home_ListAdapter;
import com.ttj.adapter.ImagePagerAdapter;
import com.ttj.bean.AryNetResultBean;
import com.ttj.bean.HomeGoodsListBean;
import com.ttj.cache.CacheManager;
import com.ttj.constants.ResultCode;
import com.ttj.constants.Url;
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;
import com.ttj.view.AutoScrollViewPager;
/**
* 主界面
*
* @author Admin
*
*/
public class Main_HomeFrag extends NetFragment {
@ViewInject(R.id.p1_text_press_search)
private TextView btnSearch;
@ViewInject(R.id.p1_fresh_main_home)
private PullToRefreshScrollView ptrScroll;
@ViewInject(R.id.p1_line_my_hot)
private LinearLayout llHot;
@ViewInject(R.id.view_pager)
private AutoScrollViewPager viewPager;
@ViewInject(R.id.viewGroup)
private LinearLayout linearLayout;
private ImageView[] tips;
@ViewInject(R.id.p1_line_my_oftenbuy)
private LinearLayout llOftenBuy;
@ViewInject(R.id.p1_line_my_order)
private LinearLayout llMyOrder;
@ViewInject(R.id.p1_line_my_collect)
private LinearLayout llMyCollect;
@ViewInject(R.id.p1_img_press_scan)
private ImageView imgScan;
@ViewInject(R.id.p1_lv_goods_list)
private ListView lv_Goods;
private List<HomeGoodsListBean> list;
private Home_ListAdapter adapter;
private String agentId;
private List<Integer> imageIdList;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.p1_main_home_layout, null);
ViewUtils.inject(this, v);
agentId = SPUtils.getAgentID(getActivity());
list = new ArrayList<HomeGoodsListBean>();
adapter = new Home_ListAdapter(getActivity(), list);
lv_Goods.setAdapter(adapter);
ptrScroll.setOnRefreshListener(new OnRefreshListener<ScrollView>() {
@Override
public void onRefresh(PullToRefreshBase<ScrollView> refreshView) {
ptrScroll.postDelayed(new Runnable() {
@Override
public void run() {
ptrScroll.onRefreshComplete();
initNet(0);
}
}, 10);
}
});
imageIdList = new ArrayList<Integer>();
imageIdList.add(R.drawable.banner1);
imageIdList.add(R.drawable.banner2);
imageIdList.add(R.drawable.banner3);
imageIdList.add(R.drawable.banner4);
viewPager.setAdapter(new ImagePagerAdapter(getActivity(), imageIdList)
.setInfiniteLoop(true));
tips = new ImageView[imageIdList.size()];
for (int i = 0; i < imageIdList.size(); i++) {
ImageView mImageView = new ImageView(getActivity());
tips[i] = mImageView;
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
new ViewGroup.LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));
layoutParams.rightMargin = 3;
layoutParams.leftMargin = 3;
mImageView.setBackgroundResource(R.drawable.normal);
linearLayout.addView(mImageView, layoutParams);
}
setImageBackground(0);
viewPager.setOnPageChangeListener(new MyOnPageChangeListener());
viewPager.setInterval(2000);
viewPager.startAutoScroll();
viewPager.setCurrentItem(Integer.MAX_VALUE / 2 - Integer.MAX_VALUE / 2
% imageIdList.size());
checkAgentID();
btnSearch.setOnClickListener(this);
imgScan.setOnClickListener(this);
llHot.setOnClickListener(this);
llOftenBuy.setOnClickListener(this);
llMyOrder.setOnClickListener(this);
llMyCollect.setOnClickListener(this);
return v;
}
private void setImageBackground(int selectItems) {
for (int i = 0; i < tips.length; i++) {
if (i == selectItems) {
tips[i].setBackgroundResource(R.drawable.focused);
} else {
tips[i].setBackgroundResource(R.drawable.normal);
}
}
}
public class MyOnPageChangeListener implements OnPageChangeListener {
@Override
public void onPageSelected(int position) {
setImageBackground((position) % imageIdList.size());
}
@Override
public void onPageScrolled(int position, float positionOffset,
int positionOffsetPixels) {
}
@Override
public void onPageScrollStateChanged(int arg0) {
}
}
private void checkAgentID() {
if (agentId.equals("")) {
Intent intent = new Intent();
intent.setClass(getActivity(), Area_AddAty.class);
startActivityForResult(intent, ResultCode.Area_ReqCode);
} else {
initNet(1);
}
}
@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);
SPUtils.saveUpdate(getActivity(), true);
ToastUtil.show(getActivity(), "地区选择成功", 600);
initNet(1);
} else {
AlertDialog.Builder dialog = new Builder(getActivity());
dialog.setTitle("提醒");
dialog.setMessage("使用前请选择区域");
dialog.setCancelable(false);
dialog.setNegativeButton("去选择", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
checkAgentID();
}
});
dialog.setPositiveButton("退出", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
MyApplication.getInstance().finishAllActivity();
}
});
dialog.show();
}
}
private void initNet(int tt) {
if (tt == 1
&& CacheManager.isExistDataCache(getActivity(), "_homelist")
&& !CacheManager.isCacheDataFailure(getActivity(), "_homelist")
&& !SPUtils.getUpdate(getActivity())) {
String result = (String) CacheManager.readObject(getActivity(),
"_homelist");
success(result, 0);
} else {
if (TextUtils.isBlank(agentId)) {
Intent intent = new Intent();
intent.setClass(getActivity(), Area_AddAty.class);
startActivityForResult(intent, ResultCode.Area_ReqCode);
} else {
HashMap<String, String> params = new HashMap<String, String>();
params.put("top", 2 + "");
params.put("agent_id", agentId);
params.put("port_password", MD5.getMD5ofStr(Url.KET + agentId));
asynNet(Url.Home_GoodsList, params, 0);
}
}
}
@Override
public void onclick(View v) {
if (v == btnSearch) {
Intent intent = new Intent(getActivity(), Goods_SearchAty.class);
startActivity(intent);
} else if (v == llMyOrder) {
if (TextUtils.isBlank(SPUtils.getUid(getActivity()))) {
ToastUtil.show(getActivity(), "抱歉,您还未登录,请登录", 500);
Intent intent = new Intent(getActivity(), User_LoginAty.class);
startActivity(intent);
return;
}
Intent intent = new Intent(getActivity(), My_OrderListAty.class);
startActivity(intent);
} else if (v == llHot || v == llOftenBuy) {
ToastUtil.show(getActivity(), "功能尚未开放", 500);
} else if (v == llMyCollect) {
if (TextUtils.isBlank(SPUtils.getUid(getActivity()))) {
ToastUtil.show(getActivity(), "抱歉,您还未登录,请登录", 500);
Intent intent = new Intent(getActivity(), User_LoginAty.class);
startActivity(intent);
return;
}
Intent intent = new Intent(getActivity(), My_CollectListAty.class);
startActivity(intent);
} else if (v == imgScan) {
if (TextUtils.isBlank(SPUtils.getUid(getActivity()))) {
ToastUtil.show(getActivity(), "抱歉,您还未登录,请登录", 500);
Intent intent = new Intent(getActivity(), User_LoginAty.class);
startActivity(intent);
return;
}
Intent intent = new Intent(getActivity(), CaptureAty.class);
startActivity(intent);
}
}
@Override
public void success(String result, int tag) {
AryNetResultBean netBean = JsonUtils.parseAryNetResult(result);
if (netBean.getStatus().getCode() == 200) {
if (tag == 0) {
List<HomeGoodsListBean> lists = JsonUtils
.parseHomeGoodsList(netBean.getBackinfo().toString());
/**
* 遍历去掉没有商品的HomeGoodsListBean
*/
List<HomeGoodsListBean> list2 = new ArrayList<HomeGoodsListBean>();
for (HomeGoodsListBean homeGoodsListBean : lists) {
if (homeGoodsListBean.getGoodsList().size() != 0) {
list2.add(homeGoodsListBean);
}
}
adapter.clearData();
adapter.addData(list2);
adapter.notifyDataSetChanged();
if (list2.size() != 0) {
CacheManager.saveObject(getActivity(), result, "_homelist");
}
}
} else {
ToastUtil
.show(getActivity(), netBean.getStatus().getMessage(), 500);
}
}
}