/* * Copyright (C) 2015 Arles. All rights reserved. * <p/> * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * <p/> * http://www.apache.org/licenses/LICENSE-2.0 * <p/> * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.arles.swissmanager.ui.activity; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.support.v4.app.NavUtils; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.Toolbar; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.TextView; import com.arles.swissmanager.R; import com.arles.swissmanager.tournament.Match; import com.arles.swissmanager.tournament.Points; import com.arles.swissmanager.ui.adapter.MatchesAdapter; import com.arles.swissmanager.ui.presenter.RoundPresenter; import com.arles.swissmanager.ui.presenter.UIModule; import com.arles.swissmanager.utils.DividerBoldItemDecoration; import com.arles.swissmanager.utils.ToastUtil; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; import javax.inject.Inject; import butterknife.InjectView; import jp.wasabeef.recyclerview.animators.adapters.SlideInBottomAnimationAdapter; public class RoundActivity extends BaseActivity implements RoundPresenter.IView { @InjectView(R.id.toolbar) Toolbar mToolbar; @InjectView(R.id.recycler_view_matches) RecyclerView mRecyclerView; @Inject RoundPresenter mPresenter; private MatchesAdapter mAdapter; private Menu mMenu; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_round); injectViews(); mPresenter.getPassedExtrasFrom(getIntent()); mPresenter.setView(this); mPresenter.initializeViewComponent(); } @Override protected void onResume() { super.onResume(); // get matches from algorithm class and set it to adapter mAdapter.setData(mPresenter.getMatchesData()); } @Override protected void onPause() { super.onPause(); // get matches from adapter and set it to tourney } @Override protected List<Object> getModules() { LinkedList<Object> modules = new LinkedList<>(); modules.add(new UIModule()); return modules; } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_round, menu); mMenu = menu; mPresenter.setActionRoundView(mMenu.findItem(R.id.action_start_round), mMenu.findItem(R.id.action_end_round)); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.action_start_round: mPresenter.startRoundAction(item); break; case R.id.action_end_round: mPresenter.endRoundAction(item); break; case android.R.id.home: NavUtils.navigateUpFromSameTask(this); return true; } mPresenter.setActionRoundView(mMenu.findItem(R.id.action_start_round), mMenu.findItem(R.id.action_end_round)); return super.onOptionsItemSelected(item); } @Override public void setViewComponent() { setRecyclerView(); setToolbar(); } @Override public void showReportResultMessage(String msg) { ToastUtil.showShortMessage(msg, this); } @Override public void showRoundMessage(String msg) { ToastUtil.showShortMessage(msg, this); } @Override public void setEnabled(View view, boolean enabled) { view.setEnabled(enabled); } @Override public void setMenuItemOpacity(MenuItem item, int alpha) { Drawable icon = item.getIcon(); icon.setAlpha(alpha); } @Override public void inflateByePlayerView(String name) { TextView view = (TextView) findViewById(R.id.text_view_bye_player_name); view.setText(name); view.setVisibility(View.VISIBLE); view = (TextView) findViewById(R.id.text_view_bye_player_title); view.setVisibility(View.VISIBLE); } private void setRecyclerView() { mRecyclerView.setLayoutManager(new LinearLayoutManager(this)); mRecyclerView.addItemDecoration(new DividerBoldItemDecoration(this)); mRecyclerView.setHasFixedSize(true); mAdapter = new MatchesAdapter(this, new ArrayList<Match>()); mAdapter.setOnItemClickListener(onViewClickListener); mRecyclerView.setAdapter(new SlideInBottomAnimationAdapter(mAdapter)); } private void setToolbar() { String title = getString(R.string.title_activity_round_number, mPresenter.getRoundNumber()); mToolbar.setTitle(title); setSupportActionBar(mToolbar); getSupportActionBar().setDisplayHomeAsUpEnabled(true); } private MatchesAdapter.OnViewClickListener onViewClickListener = new MatchesAdapter.OnViewClickListener() { @Override public void onButtonClicked(View view, Match match, Points resPlayer1, Points resPlayer2) { mPresenter.onMatchClicked(view, match, resPlayer1, resPlayer2); } }; }