package in.srain.cube.mints.base;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.hoollyzhang.hlib.R;
import in.srain.cube.util.LocalDisplay;
import in.srain.cube.views.block.BlockListAdapter;
import in.srain.cube.views.block.BlockListView;
import in.srain.cube.views.block.BlockListView.OnItemClickListener;
public abstract class BlockMenuFragment extends MenuItemFragment {
private BlockListView mBlockListView;
private int mSize = 0;
@Override
protected int getLayoutId() {
return R.layout.cube_mints_base_fragment_block_menu;
}
@Override
protected void setupViews(View view) {
mBlockListView = (BlockListView) view.findViewById(R.id.fragment_block_menu_block_list);
setupList();
}
private BlockListAdapter<MenuItemInfo> mBlockListAdapter = new BlockListAdapter<MenuItemInfo>() {
@Override
public View getView(LayoutInflater layoutInflater, int position) {
return getViewForBlock(layoutInflater, position);
}
};
protected View getViewForBlock(LayoutInflater layoutInflater, int position) {
MenuItemInfo itemInfo = mBlockListAdapter.getItem(position);
ViewGroup view = (ViewGroup) layoutInflater.inflate(R.layout.cube_mints_base_block_menu_item, null);
if (itemInfo != null) {
TextView textView = ((TextView) view.findViewById(R.id.cube_mints_base_block_menu_item_title));
textView.setText(itemInfo.getTitle());
view.setBackgroundColor(itemInfo.getColor());
}
return view;
}
protected void setupList() {
mSize = (LocalDisplay.SCREEN_WIDTH_PIXELS - LocalDisplay.dp2px(25 + 5 + 5)) / 3;
int horizontalSpacing = LocalDisplay.dp2px(5);
int verticalSpacing = LocalDisplay.dp2px(10.5f);
mBlockListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(View v, int position) {
MenuItemInfo itemInfo = mBlockListAdapter.getItem(position);
if (itemInfo != null) {
itemInfo.onClick(v);
}
}
});
mBlockListAdapter.setSpace(horizontalSpacing, verticalSpacing);
mBlockListAdapter.setBlockSize(mSize, mSize);
mBlockListAdapter.setColumnNum(3);
mBlockListView.setAdapter(mBlockListAdapter);
mBlockListAdapter.displayBlocks(mItemInfos);
}
@Override
protected boolean enableDefaultBack() {
return false;
}
}