package com.mine.project.function.adapter;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.mine.project.R;
import com.mine.project.function.domain.ComplainInfo;
import com.mine.project.network.utils.MyDateUtil;

import java.util.ArrayList;
import java.util.List;

/**
* Created by wy on 2017/7/11.
*/

public class PadComplainAdapter extends RecyclerView.Adapter implements View.OnClickListener{
private List objects = new ArrayList();
private Context context;
private LayoutInflater layoutInflater;
private OnItemClickListener mOnItemClickListener;
public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
mOnItemClickListener = onItemClickListener;
}
public PadComplainAdapter(Context context, List objects) {
super();
this.context = context;
this.layoutInflater = LayoutInflater.from(context);
this.objects = objects;
}

public ComplainInfo getItem(int position) {
return objects.get(position);
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.item_pad_complain, parent, false);
ViewHolder holder = new ViewHolder(view);
return holder;
}

@Override
public void onBindViewHolder(ViewHolder holder, int position) {
initializeViews((ComplainInfo) getItem(position), holder);

}

@Override
public int getItemCount() {
return objects.size();
}


private void initializeViews(ComplainInfo object, ViewHolder holder) {
//TODO implement
holder.mLlComplainItem.setOnClickListener(this);
String mCommentTime= new MyDateUtil().change(object.getComplainTime());
holder.tvPadComplainTime.setText(mCommentTime);
holder.tvComplaintName.setText(object.getComplaintName());
// holder.totalPrice.setText(object.getComplainTime() + "");
holder.tvPadComplainContent.setText(object.getComplaintContent());
holder.mLlComplainItem.setTag(holder);

}

@Override
public void onClick(View v) {
if (mOnItemClickListener == null) {
return;
}
ViewHolder holder=(ViewHolder) v.getTag();
mOnItemClickListener.onClick(holder,v, holder.getLayoutPosition() );
}


public class ViewHolder extends RecyclerView.ViewHolder {
private TextView tvPadComplainTime;
private TextView tvComplaintName;
private TextView totalPrice;
private TextView tvPadComplainContent;
private LinearLayout mLlComplainItem;



public ViewHolder(View view) {
super(view);
tvPadComplainTime = (TextView) view.findViewById(R.id.tv_padComplainTime);
tvComplaintName = (TextView) view.findViewById(R.id.tv_complaintName);
totalPrice = (TextView) view.findViewById(R.id.totalPrice);
tvPadComplainContent = (TextView) view.findViewById(R.id.tv_padComplainContent);
mLlComplainItem = (LinearLayout) view.findViewById(R.id.ll_complain_item);


}
}
public interface OnItemClickListener {
public void onClick(ViewHolder holder,View view, int position);
}

}

package com.mine.project.function.home;


import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import com.mine.project.R;
import com.mine.project.flowlibrary.FlowTagLayout;
import com.mine.project.flowlibrary.OnTagSelectListener;
import com.mine.project.function.adapter.PadComplainAdapter;
import com.mine.project.function.adapter.PadGradeAdpter;
import com.mine.project.function.adapter.TagAdapter;
import com.mine.project.function.domain.CommentInfo;
import com.mine.project.function.domain.ComplainInfo;
import com.mine.project.function.domain.PageInfo;
import com.mine.project.home.ui.BaseFragment;
import com.mine.project.network.control.NetWorkListener;

import java.util.ArrayList;
import java.util.List;


/**
* A simple {@link Fragment} subclass.
*/
public class TabLayoutFragment extends BaseFragment {

public static String TABLAYOUT_FRAGMENT = "tab_fragment";
private TextView mTextView;
private int type;
private ListView mLvShopGrade;
private LinearLayout mLlShapgrade;
private ListView mLvShopgrade;
private RecyclerView mRv;
List mData;
private FlowTagLayout mGradeFlowTagLayout;
private CheckBox mChCommentShopgrade;
private TagAdapter mGradeTagAdapter;
private FragmentManager manager;
private FragmentTransaction transaction;
private String padGradeTime;
private int star1;
private int star2;
private int star3;
private int star4;
private int star5;
private PadComplainAdapter mPadComplainAdapter;


public static TabLayoutFragment newInstance(int type) {
TabLayoutFragment fragment = new TabLayoutFragment();
Bundle bundle = new Bundle();
bundle.putSerializable(TABLAYOUT_FRAGMENT, type);
fragment.setArguments(bundle);

return fragment;
}

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

if (getArguments() != null) {
type = (int) getArguments().getSerializable(TABLAYOUT_FRAGMENT);
}

}


@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_tab_layout, container, false);
initView(view);
initData();
initSizeData();
return view;
}

private void initData() {
mChCommentShopgrade.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked) {
PadGrade(null, true);
Toast.makeText(getActivity(), "只看有内容评论", Toast.LENGTH_SHORT).show();
} else {
PadGrade(null, false);
Toast.makeText(getActivity(), "查看全部评论", Toast.LENGTH_SHORT).show();
}


}
});


}

protected void initView(View view) {
mChCommentShopgrade = (CheckBox) view.findViewById(R.id.ch_comment_shopgrade);
mGradeFlowTagLayout = (FlowTagLayout) view.findViewById(R.id.size_flow_layout);
mRv = (RecyclerView) view.findViewById(R.id.rv);
// mLvShopgrade = (ListView)view.findViewById(R.id.lv_shopgrade);
mLlShapgrade = (LinearLayout) view.findViewById(R.id.ll_shapgrade);

switch (type) {
case 1:
//flase显示所有评论,默认显示所有评论
PadGrade(null, false);
break;
case 2:
netWorkHelper.obtainStoreScoreComplain(mContext, 1, new NetWorkListener.ObtainStoreScoreComplainListener() {
@Override
public void onFinish(ArrayList list, PageInfo pageInfo) {
mRv.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false));
mRv.setItemAnimator(new DefaultItemAnimator());
mPadComplainAdapter= new PadComplainAdapter(mContext, list);
mRv.setAdapter(mPadComplainAdapter);
mPadComplainAdapter.setOnItemClickListener(new PadComplainAdapter.OnItemClickListener() {
@Override
public void onClick(PadComplainAdapter.ViewHolder holder, View view, int position) {
Toast.makeText(mContext, "点到了 " + position , Toast.LENGTH_SHORT).show();
}
});


}

@Override
public void onError(String errorDesc) {
Toast.makeText(mContext, "联网失败", Toast.LENGTH_SHORT).show();
}
});

mLlShapgrade.setVisibility(View.GONE);
break;

}


}


private void initSizeData() {
//评价动态标签流式布局显示
mGradeTagAdapter = new TagAdapter<>(getActivity());
mGradeFlowTagLayout.setTagCheckedMode(FlowTagLayout.FLOW_TAG_CHECKED_SINGLE);
mGradeFlowTagLayout.setAdapter(mGradeTagAdapter);
mGradeFlowTagLayout.setOnTagSelectListener(new OnTagSelectListener() {
@Override
public void onItemSelect(FlowTagLayout parent, List selectedList) {
if (selectedList != null && selectedList.size() > 0) {
StringBuilder sb = new StringBuilder();
for (int i : selectedList) {
PadGrade(i + 1 + "", false);
// sb.append(parent.getAdapter().getItem(i));
// sb.append(":");
}
// Toast.makeText(getActivity(), sb.toString(), Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getActivity(), "没有选择标签", Toast.LENGTH_SHORT).show();
PadGrade(null, false);

}
}
});
netWorkHelper.obtainStoreScoreInfoComment(mContext, new NetWorkListener.ObtainStoreScoreInfoCommentListener() {
@Override
public void onFinish(int score, int pointCount, int starFive, int starFour, int starThree, int starTwo, int starOne) {
star1 = starOne;
star2 = starTwo;
star3 = starThree;
star4 = starFour;
star5 = starFive;
List dataSource1 = new ArrayList<>();
dataSource1.add("1星评价" + "\n" + " " + star1);
dataSource1.add("2星评价" + "\n" + " " + star2);
dataSource1.add("3星评价" + "\n" + " " + star3);
dataSource1.add("4星评价" + "\n" + " " + star4);
dataSource1.add("5星评价" + "\n" + " " + star5);

mGradeTagAdapter.onlyAddAll(dataSource1);
}

@Override
public void onError(String errorDesc) {
Toast.makeText(mContext, "网络错误", Toast.LENGTH_SHORT).show();
}
});
// List dataSource = new ArrayList<>();
// StarEntity mStarEntity1 = new StarEntity("1星评价",1);
// dataSource.add(mStarEntity1);
}

private void PadGrade(String mLevel, boolean isShowNoComment) {
netWorkHelper.obtainStoreScoreComment(mContext, mLevel, 1, isShowNoComment, new NetWorkListener.ObtainStoreScoreCommentListener() {
@Override
public void onFinish(ArrayList list, PageInfo pageInfo) {
// mLvShopgrade.setAdapter(new ItemPadgradeAdapter(mContext,list));
mRv.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false));
mRv.setItemAnimator(new DefaultItemAnimator());
mRv.setAdapter(new PadGradeAdpter(mContext, list));

}

@Override
public void onError(String errorDesc) {
Toast.makeText(mContext, "网络错误", Toast.LENGTH_SHORT).show();
}
});
}
}