package com.hua.goddess.fragment;
import java.util.ArrayList;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;
import android.widget.Toast;
import com.hua.goddess.R;
import com.hua.goddess.activites.BeautyPhotoDetailsActivity;
import com.hua.goddess.adapter.BeautyItemAdapter;
import com.hua.goddess.base.communicate.GetBeautyInterface;
import com.hua.goddess.vo.BeautyMainVo;
import com.hua.goddess.vo.BeautyMainVo.Imgs;
import com.huewu.pla.lib.WaterFallListView;
import com.huewu.pla.lib.WaterFallListView.IXListViewListener;
import com.huewu.pla.lib.internal.PLA_AdapterView;
import com.huewu.pla.lib.internal.PLA_AdapterView.OnItemClickListener;
import com.umeng.analytics.MobclickAgent;
public class BeautyDetailFragment extends Fragment implements
IXListViewListener, OnItemClickListener {
private View currentView;
private String girlTag;
private String BEAUTY_COL = "美女";
private BeautyMainVo beautyVo;
private ArrayList<Imgs> imgs = new ArrayList<BeautyMainVo.Imgs>();
private Handler handler = new Handler();
private LinearLayout viewContainer;
private int pn = 0; // 从那一条数据开始拿
private View listView;
private WaterFallListView myListview;
private BeautyItemAdapter mAdapter;
private int rn = 30;// 拿多少条
private boolean isFresh = false;
private boolean isLoadMore = false;
public int position = 0;
private FragmentActivity activity;
public BeautyDetailFragment() {
}
public BeautyDetailFragment(String girlTag) {
this.girlTag = girlTag;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
activity = getActivity();
if (currentView == null) {
currentView = LayoutInflater.from(activity).inflate(
R.layout.fragment_progress_container, null);
viewContainer = (LinearLayout) currentView
.findViewById(R.id.container);
} else {
ViewGroup parent = (ViewGroup) currentView.getParent();
if (parent != null) {
parent.removeView(currentView);
}
}
getData();
return currentView;
}
private void initView() {
if (listView == null || mAdapter == null) {
listView = LayoutInflater.from(activity).inflate(
R.layout.waterfall_listview, null);
myListview = (WaterFallListView) listView
.findViewById(R.id.myListview);
myListview.setPullLoadEnable(true);
myListview.setPullRefreshEnable(true);
mAdapter = new BeautyItemAdapter(activity, imgs);
myListview.setAdapter(mAdapter);
myListview.setXListViewListener(this);
myListview.setOnItemClickListener(this);
viewContainer.removeAllViews();
viewContainer.addView(listView);
} else {
mAdapter.updateAdapter(imgs);
position = imgs.size();
}
}
private void initNetErro() {
// TODO
final View loadView = LayoutInflater.from(activity).inflate(
R.layout.loading_view, null);
loadView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT));
View netErroView = LayoutInflater.from(activity).inflate(
R.layout.page_store_net_erro, null);
Button reloadBtn = (Button) netErroView.findViewById(R.id.reload_btn);
netErroView.findViewById(R.id.net_erro_img).setVisibility(View.VISIBLE);
reloadBtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if (viewContainer != null) {
viewContainer.removeAllViews();
viewContainer.addView(loadView);
getData();
}
}
});
if (viewContainer != null) {
viewContainer.removeAllViews();
viewContainer.addView(netErroView);
}
}
private void getData() {
new Thread() {
@Override
public void run() {
try {
beautyVo = GetBeautyInterface.getNetData(BEAUTY_COL,
girlTag, pn, rn);
} catch (Exception e1) {
e1.printStackTrace();
}
handler.post(new Runnable() {
@Override
public void run() {
if (beautyVo != null) {
ArrayList<Imgs> img = beautyVo.getImgs();
if (img != null && img.size() > 0) {
img.remove(img.size() - 1);
if (isFresh) {
imgs.clear();
isFresh = false;
myListview.stopRefresh();
}
if (isLoadMore) {
isLoadMore = false;
myListview.stopLoadMore();
}
imgs.addAll(img);
initView();
} else {
initNetErro();
}
} else {
initNetErro();
}
}
});
}
}.start();
}
@Override
public void onItemClick(PLA_AdapterView<?> parent, View view, int position,
long id) {
if(position == 0) return;
Intent intent = new Intent();
intent.setClass(activity, BeautyPhotoDetailsActivity.class);
Bundle bundle = new Bundle();
bundle.putInt("position", position - 1);
bundle.putSerializable("imgs", imgs);
intent.putExtras(bundle);
startActivity(intent);
activity.overridePendingTransition(R.anim.abc_fade_in,
R.anim.abc_fade_out);
}
@Override
public void onRefresh() {
isFresh = true;
pn = 0;
getData();
}
@Override
public void onLoadMore() {
if (beautyVo != null && beautyVo.getTotalNum() > imgs.size()) {
isLoadMore = true;
pn = pn + rn;
getData();
} else {
Toast.makeText(activity, "没有更多妹子啦", Toast.LENGTH_SHORT).show();
}
}
public void onResume() {
super.onResume();
MobclickAgent.onPageStart("BeautyDetailFragment"); // 统计页面
}
public void onPause() {
super.onPause();
MobclickAgent.onPageEnd("BeautyDetailFragment");
}
}