package com.forcelain.awesomelayoutmanager.sample;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.RecyclerView;
import android.view.Menu;
import android.view.MenuItem;
import com.forcelain.awesomelayoutmanager.AwesomeLayoutManager;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private DataProvider dataProvider;
private AwesomeLayoutManager layoutManager;
private ArticleAdapter adapter;
private RecyclerView recyclerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
recyclerView = (RecyclerView) findViewById(R.id.recycler_view);
layoutManager = new AwesomeLayoutManager();
layoutManager.setScaleFactor(0.5f);
layoutManager.setPagination(true);
layoutManager.setPageHeightFactor(.7f);
layoutManager.setTransitionDuration(450);
recyclerView.setLayoutManager(layoutManager);
adapter = new ArticleAdapter();
recyclerView.setAdapter(adapter);
dataProvider = new FakeDataProvider(this);
List<Article> articles = dataProvider.getArticles(0);
adapter.setArticles(articles);
adapter.setItemClickListener(new ArticleAdapter.OnItemClickListener() {
@Override
public void onItemClicked(int pos) {
layoutManager.openItem(pos);
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_item_one:
adapter.setArticles(dataProvider.getArticles(1));
return true;
case R.id.menu_item_two:
adapter.setArticles(dataProvider.getArticles(2));
return true;
case R.id.menu_item_many:
adapter.setArticles(dataProvider.getArticles(0));
return true;
case R.id.menu_goto_first:
recyclerView.scrollToPosition(0);
return true;
case R.id.menu_goto_last:
recyclerView.scrollToPosition(adapter.getItemCount() - 1);
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
protected void onDestroy() {
dataProvider = null;
super.onDestroy();
}
@Override
public void onBackPressed() {
if (layoutManager.getOrientation() == AwesomeLayoutManager.Orientation.HORIZONTAL) {
layoutManager.close();
} else {
super.onBackPressed();
}
}
}