package com.liucanwen.app.headerfooterrecyclerview.sample;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.StaggeredGridLayoutManager;
import android.support.v7.widget.Toolbar;
import android.view.LayoutInflater;
import android.view.View;

import com.liucanwen.app.headerfooterrecyclerview.ExStaggeredGridLayoutManager;
import com.liucanwen.app.headerfooterrecyclerview.HeaderAndFooterRecyclerViewAdapter;
import com.liucanwen.app.headerfooterrecyclerview.HeaderSpanSizeLookup;
import com.liucanwen.app.headerfooterrecyclerview.RecyclerViewUtils;

public class MainActivity extends AppCompatActivity {

    private RecyclerView recyclerView;

    private CardView linearLayoutBtn, staggeredGridBtn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
        linearLayoutBtn = (CardView) findViewById(R.id.linearLayout_layout);
        staggeredGridBtn = (CardView) findViewById(R.id.staggeredgridlayout_layout);

        linearLayoutBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                refreshRecyclerView(1);
            }
        });

        staggeredGridBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                refreshRecyclerView(3);
            }
        });

        refreshRecyclerView(3);
    }

    private void refreshRecyclerView(int column) {

        MyAdapter myAdapter = new MyAdapter(MainActivity.this);
        HeaderAndFooterRecyclerViewAdapter adapter = new HeaderAndFooterRecyclerViewAdapter(myAdapter);
        recyclerView.setAdapter(adapter);

        ExStaggeredGridLayoutManager staggeredGridLayoutManager = new ExStaggeredGridLayoutManager(column, StaggeredGridLayoutManager.VERTICAL);
        staggeredGridLayoutManager.setSpanSizeLookup(new HeaderSpanSizeLookup((HeaderAndFooterRecyclerViewAdapter) recyclerView.getAdapter(), staggeredGridLayoutManager.getSpanCount()));
        recyclerView.setLayoutManager(staggeredGridLayoutManager);

        View headerView = LayoutInflater.from(MainActivity.this).inflate(R.layout.layout_header, null);
        View footerView = LayoutInflater.from(MainActivity.this).inflate(R.layout.layout_footer, null);

        RecyclerViewUtils.setHeaderView(recyclerView, headerView);
        RecyclerViewUtils.setFooterView(recyclerView, footerView);
    }

}