package com.marshalchen.ultimaterecyclerview.demo.griddemo;
import android.os.Bundle;
import android.os.Handler;
import android.support.annotation.LayoutRes;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.Toolbar;
import android.support.v7.widget.helper.ItemTouchHelper;
import android.util.DisplayMetrics;
import android.view.ActionMode;
import android.view.Display;
import android.view.LayoutInflater;
import android.view.View;
import com.marshalchen.ultimaterecyclerview.UltimateRecyclerView;
import com.marshalchen.ultimaterecyclerview.demo.R;
import com.marshalchen.ultimaterecyclerview.demo.modules.JRitem;
import com.marshalchen.ultimaterecyclerview.demo.modules.SampleDataboxset;
import com.marshalchen.ultimaterecyclerview.grid.BasicGridLayoutManager;
import java.util.ArrayList;
import java.util.List;
/**
* Created by hesk on 24/8/15.
*/
public class GridLayoutRVTest extends AppCompatActivity {
protected UltimateRecyclerView listuv;
protected GridJRAdapter mGridAdapter = null;
private BasicGridLayoutManager mGridLayoutManager;
private int moreNum = 2, columns = 2;
private ActionMode actionMode;
private Toolbar mToolbar;
boolean isDrag = true;
private ItemTouchHelper mItemTouchHelper;
public static final String TAG = "GLV";
@LayoutRes
protected int getMainLayout() {
return R.layout.floatingbutton_grid_layout;
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(getMainLayout());
mToolbar = (Toolbar) findViewById(R.id.tool_bar);
setSupportActionBar(mToolbar);
getSupportActionBar().setDisplayShowTitleEnabled(true);
listuv = (UltimateRecyclerView) findViewById(R.id.ultimate_recycler_view);
mGridAdapter = new GridJRAdapter(getJRList());
mGridAdapter.setSpanColumns(columns);
mGridLayoutManager = new BasicGridLayoutManager(this, columns, mGridAdapter);
listuv.setLayoutManager(mGridLayoutManager);
listuv.setHasFixedSize(true);
listuv.setSaveEnabled(true);
listuv.setClipToPadding(false);
// mGridAdapter.setCustomLoadMoreView(LayoutInflater.from(this).inflate(R.layout.custom_bottom_progressbar, null));
listuv.setNormalHeader(setupHeaderView());
final Handler f = new Handler();
listuv.setOnLoadMoreListener(new UltimateRecyclerView.OnLoadMoreListener() {
@Override
public void loadMore(int itemsCount, int maxLastVisiblePosition) {
// Log.d(TAG, itemsCount + " :: " + itemsCount);
f.postDelayed(new Runnable() {
@Override
public void run() {
mGridAdapter.insert(SampleDataboxset.genJRList(5));
afterAdd();
}
}, 2000);
}
});
// listuv.enableLoadmore();
// listuv.disableLoadmore();
listuv.setLoadMoreView(R.layout.custom_bottom_progressbar);
listuv.setAdapter(mGridAdapter);
listuv.setItemAnimator(new DefaultItemAnimator());
harness_control();
}
protected void afterAdd() {
}
private List<JRitem> getJRList() {
List<JRitem> team = new ArrayList<>();
//you can make your own test for starting-zero-data
// team = SampleDataboxset.genJRList(2);
return team;
}
private void dimension_columns() {
Display display = getWindowManager().getDefaultDisplay();
DisplayMetrics outMetrics = new DisplayMetrics();
display.getMetrics(outMetrics);
float density = getResources().getDisplayMetrics().density;
float dpWidth = outMetrics.widthPixels / density;
columns = Math.round(dpWidth / 300);
}
private View setupHeaderView() {
View custom_header = LayoutInflater.from(this).inflate(R.layout.header_love, null, false);
return custom_header;
}
private void harness_control() {
findViewById(R.id.add).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mGridAdapter.insert(SampleDataboxset.genJRList(4));
}
});
findViewById(R.id.del).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mGridAdapter.removeLast();
}
});
findViewById(R.id.delall).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mGridAdapter.removeAll();
}
});
findViewById(R.id.add_one).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mGridAdapter.insertFirst(SampleDataboxset.genJRSingle());
}
});
findViewById(R.id.refresh).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
listuv.reenableLoadmore();
}
});
}
}