package com.mingle.viewhandler;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import com.mingle.adapter.MenuRVAdapter;
import com.mingle.entity.MenuEntity;
import com.mingle.sweetsheet.R;
import com.mingle.sweetpick.SweetSheet;
import java.util.List;
/**
* @author zzz40500
* @version 1.0
* @date 2015/8/5.
* @github: https://github.com/zzz40500
*/
public class MenuListViewHandler {
private List<MenuEntity> mMenuEntities;
private int mIndex;
private int mRvVisibility = View.VISIBLE;
private OnFragmentInteractionListener mOnFragmentInteractionListener;
private RecyclerView mRV;
private MenuRVAdapter mMenuRVAdapter;
private View mView;
private int mNumColumns;
public static MenuListViewHandler getInstant(int index,int numColums, List<MenuEntity> menuEntities) {
MenuListViewHandler menuListViewHandler = new MenuListViewHandler();
menuListViewHandler.mMenuEntities=menuEntities;
menuListViewHandler.mIndex=index;
menuListViewHandler.mNumColumns=numColums;
return menuListViewHandler;
}
public void setOnMenuItemClickListener(OnFragmentInteractionListener onFragmentInteractionListener) {
mOnFragmentInteractionListener = onFragmentInteractionListener;
}
public View onCreateView(ViewGroup container) {
if(mView == null){
mView =LayoutInflater.from(container.getContext()).inflate(R.layout.layout_grid_menu,container,false);
onViewCreated(mView);
}
return mView;
}
public void onViewCreated(View view) {
if(mMenuEntities == null || mMenuEntities.size()==0){
return;
}
mRV = (RecyclerView) view.findViewById(R.id.rv);
mRV.setLayoutManager(new GridLayoutManager(view.getContext(), mNumColumns));
mRV.setHasFixedSize(true);
mMenuRVAdapter = new MenuRVAdapter(mMenuEntities, SweetSheet.Type.Viewpager);
mMenuRVAdapter.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
if (mOnFragmentInteractionListener != null) {
mOnFragmentInteractionListener.onFragmentInteraction(mIndex * 6 + position);
}
}
});
mRV.setAdapter(mMenuRVAdapter);
mRV.setVisibility(mRvVisibility);
}
public void animationOnStart() {
if (mRV != null) {
mRV.setVisibility(View.GONE);
} else {
mRvVisibility = View.GONE;
}
}
public void notifyAnimation() {
if (mRV != null) {
mRV.setVisibility(View.VISIBLE);
mRvVisibility = View.VISIBLE;
mMenuRVAdapter.notifyAnimation();
} else {
mRvVisibility = View.VISIBLE;
}
}
public interface OnFragmentInteractionListener {
void onFragmentInteraction(int index);
}
}