package ua.kpi.ecampus.ui.activity; import android.content.Intent; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.Toolbar; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Spinner; import java.util.ArrayList; import java.util.List; import javax.inject.Inject; import butterknife.Bind; import ua.kpi.ecampus.Config; import ua.kpi.ecampus.R; import ua.kpi.ecampus.di.UIModule; import ua.kpi.ecampus.model.pojo.Item; import ua.kpi.ecampus.model.pojo.VoteTeacher; import ua.kpi.ecampus.ui.adapter.ItemSpinnerAdapter; import ua.kpi.ecampus.ui.adapter.NothingSelectedAdapter; import ua.kpi.ecampus.ui.adapter.VotingAdapter; import ua.kpi.ecampus.ui.presenter.VotingStudentPresenter; import ua.kpi.ecampus.ui.view.DividerItemDecoration; import ua.kpi.ecampus.ui.view.OnItemClickListener; /** * Created by Administrator on 31.05.2016. */ public class VotingStudentActivity extends BaseActivity implements VotingStudentPresenter.IView { @Bind(R.id.toolbar) Toolbar mToolbar; @Bind(R.id.recyclerview_teachers) RecyclerView mRecyclerView; @Bind(R.id.spinner_terms) Spinner mSpinnerTerms; @Inject VotingStudentPresenter mPresenter; private VotingAdapter mAdapter; private OnItemClickListener onItemClickListener = new OnItemClickListener() { @Override public void onItemClicked(View view, int position, Object item) { mPresenter.onItemClick(item); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_voting_student); bindViews(); mPresenter.setView(this); mPresenter.initializeViewComponent(); mPresenter.loadVoting(); } @Override protected List<Object> getModules() { List<Object> modules = new ArrayList<>(); modules.add(new UIModule()); return modules; } @Override public void setViewComponent() { setToolbar(); } @Override public void setVoteInProgressAdapter(List<VoteTeacher> teachers) { setVotingAdapter(teachers); } @Override public void setVoteEndedAdapter(List<VoteTeacher> teachers) { } @Override public void setTermsSpinner(List<Item> list) { ArrayAdapter<Item> adapter = new ItemSpinnerAdapter(this, R.layout.spinner_item, R.layout .spinner_dropdown_item, list); mSpinnerTerms.setAdapter(new NothingSelectedAdapter( adapter, R.layout.spinner_nothing_selected_terms, this)); mSpinnerTerms.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { Item item = (Item) parent.getItemAtPosition(position); if (item != null) { if (mAdapter == null) { (findViewById(R.id.tv_title_teachers)).setVisibility(View.VISIBLE); setRecyclerView(); mPresenter.setSpecificAdapter(); } mAdapter.filterByTerm(item.getId()); } } @Override public void onNothingSelected(AdapterView<?> parent) { // N/A } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK && requestCode == Config.REQUEST_CODE) { VoteTeacher teacher = data.getParcelableExtra(Config.KEY_TEACHER); mAdapter.updateItem(teacher); } } private void setToolbar() { setSupportActionBar(mToolbar); getSupportActionBar().setHomeButtonEnabled(true); getSupportActionBar().setDisplayShowHomeEnabled(true); mToolbar.setNavigationIcon(R.mipmap.ic_action_navigation_arrow_back); getSupportActionBar().setTitle(R.string.activity_name_voting); } private void setRecyclerView() { mRecyclerView.setVisibility(View.VISIBLE); mRecyclerView.setLayoutManager(new LinearLayoutManager(getApplicationContext())); mRecyclerView.addItemDecoration(new DividerItemDecoration(this)); mRecyclerView.setHasFixedSize(true); mRecyclerView.setSaveEnabled(true); } private void setVotingAdapter(List<VoteTeacher> teachers) { mAdapter = new VotingAdapter(); mAdapter.setAllItems(teachers); mAdapter.setHasStableIds(true); mAdapter.setOnItemClickListener(onItemClickListener); mRecyclerView.setAdapter(mAdapter); } }