package com.koushikdutta.boilerplate.simplelist;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ListView;
import com.koushikdutta.boilerplate.R;
import com.koushikdutta.boilerplate.recyclerview.GridRecyclerView;
/**
* Created by koush on 3/29/15.
*/
public class SimpleListFragment extends Fragment implements AdapterView.OnItemClickListener, AdapterView.OnItemLongClickListener {
SimpleListFragmentAdapter adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
adapter = new SimpleListFragmentAdapter(this);
}
public static GridRecyclerView getGridRecyclerView(View view) {
return (GridRecyclerView)view.findViewById(android.R.id.list);
}
public GridRecyclerView getGridRecyclerView() {
View view = getView();
if (view == null)
return null;
return getGridRecyclerView(view);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
GridRecyclerView lv = getGridRecyclerView(view);
lv.setAdapter(adapter);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.simple_list_fragment, null);
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
ListView lv = (ListView) parent;
if (position < lv.getHeaderViewsCount())
return;
adapter.getItem(position - lv.getHeaderViewsCount()).onClick();
}
@Override
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
ListView lv = (ListView) parent;
if (position < lv.getHeaderViewsCount())
return false;
return adapter.getItem(position - lv.getHeaderViewsCount()).onLongClick();
}
public SimpleListFragmentAdapter getAdapter() {
return adapter;
}
public SimpleListFragment removeItem(SimpleListItem li) {
getAdapter().remove(li);
return this;
}
public SimpleListFragment addItem(SimpleListItem li) {
getAdapter().add(li);
return this;
}
public SimpleListFragment insertItem(int index, SimpleListItem li) {
getAdapter().insert(li, index);
return this;
}
public SimpleListFragment clearItems() {
adapter.clear();
return this;
}
public int getItemCount() {
return adapter.getItemCount();
}
public void setSelectable(boolean selectable) {
adapter.selectable(selectable);
}
}