/*
* 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.app.AlertDialog;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import com.arles.swissmanager.R;
import com.arles.swissmanager.SwissManagerApplication;
import com.arles.swissmanager.tournament.Tournament;
import com.arles.swissmanager.ui.adapter.ViewPagerAdapter;
import com.arles.swissmanager.ui.fragment.FragmentParentClickListener;
import com.arles.swissmanager.ui.presenter.TourneyPresenter;
import com.arles.swissmanager.ui.presenter.UIModule;
import com.arles.swissmanager.ui.tab.SlidingTabLayout;
import com.arles.swissmanager.utils.ToastUtil;
import java.util.LinkedList;
import java.util.List;
import javax.inject.Inject;
import butterknife.InjectView;
/**
* Main activity for application.
* Created by Admin on 02.07.2015.
*/
public class TourneyActivity extends BaseActivity implements TourneyPresenter.IView {
@InjectView(R.id.toolbar)
Toolbar mToolbar;
@InjectView(R.id.view_pager)
ViewPager mPager;
@InjectView(R.id.tabs)
SlidingTabLayout mTabLayout;
@Inject
TourneyPresenter mPresenter;
ViewPagerAdapter mPagerAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_tourney);
injectViews();
mPresenter.setView(this);
mPresenter.initializeViewComponent();
mPresenter.setTourneySettingsFromPrefs();
Tournament tour = Tournament.getInstance();
tour.setPlayerCollection(SwissManagerApplication.getTestPlayersData());
}
@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_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.action_create_new_round:
mPresenter.createNewRoundAction();
break;
case R.id.action_settings:
mPresenter.openPreferences();
break;
case R.id.action_total_round_number:
mPresenter.getTotalRoundNumber();
break;
case R.id.action_sort_by_prestige:
mPresenter.sortByPrestige();
break;
}
return super.onOptionsItemSelected(item);
}
@Override
public void setViewComponent() {
setToolbar();
setSlidingTabLayout();
}
@Override
public void showRoundMessage(String result) {
ToastUtil.showShortMessage(result, this);
}
@Override
public void showDialog(CharSequence content) {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(content);
AlertDialog dialog = builder.create();
dialog.show();
}
@Override
public void refreshFragmentData(int position) {
FragmentParentClickListener fragment = (FragmentParentClickListener) mPagerAdapter.getItem(position);
if (fragment != null) {
fragment.onRefresh();
}
}
@Override
public int getPagerAdapterPlayerTabPosition() {
return ViewPagerAdapter.PLAYER_TAB_POSITION;
}
@Override
public int getPagerAdapterRoundTabPosition() {
return ViewPagerAdapter.ROUND_TAB_POSITION;
}
private void setSlidingTabLayout() {
CharSequence[] titles = getResources().getStringArray(R.array.tabs);
mPagerAdapter = new ViewPagerAdapter(getSupportFragmentManager(), titles, titles.length);
mPager.setAdapter(mPagerAdapter);
mTabLayout.setDistributeEvenly(true);
// Setting Custom Color for the Scroll bar indicator of the Tab View
mTabLayout.setCustomTabColorizer(new SlidingTabLayout.TabColorizer() {
@Override
public int getIndicatorColor(int position) {
return getResources().getColor(R.color.secondaryAccentColor);
}
});
// Setting the ViewPager For the SlidingTabsLayout
mTabLayout.setViewPager(mPager);
}
private void setToolbar() {
// found without this function toolbar doesn't show action items
setSupportActionBar(mToolbar);
//getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
}