package com.spacemangames.biomatcher;
import java.util.ArrayList;
import java.util.List;
import android.annotation.SuppressLint;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.app.NavUtils;
import android.support.v4.view.ViewPager;
import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.SherlockFragmentActivity;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
import com.google.analytics.tracking.android.EasyTracker;
import com.googlecode.androidannotations.annotations.AfterViews;
import com.googlecode.androidannotations.annotations.EActivity;
import com.googlecode.androidannotations.annotations.ViewById;
import com.spacemangames.biomatcher.controller.MainMenuUtils;
@EActivity(R.layout.activity_bio_match_result)
public class BioMatcherMatchResultActivity extends SherlockFragmentActivity implements ActionBar.TabListener {
ResultSectionsPagerAdapter sectionsPagerAdapter;
@ViewById(R.id.pager)
ViewPager viewPager;
private ActionBar actionBar;
@AfterViews
protected void afterViews() {
sectionsPagerAdapter = new ResultSectionsPagerAdapter(getSupportFragmentManager());
actionBar = getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionBar.setDisplayHomeAsUpEnabled(true);
for (int i = 0; i < sectionsPagerAdapter.getCount(); i++) {
actionBar.addTab(actionBar.newTab().setText(sectionsPagerAdapter.getPageTitle(i)).setTabListener(this));
}
viewPager.setAdapter(sectionsPagerAdapter);
viewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
actionBar.setSelectedNavigationItem(position);
}
});
}
@Override
public void onStart() {
super.onStart();
EasyTracker.getInstance().activityStart(this);
}
@Override
public void onStop() {
super.onStop();
EasyTracker.getInstance().activityStop(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getSupportMenuInflater().inflate(R.menu.main_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (MainMenuUtils.onOptionsItemSelected(this, item)) {
return true;
}
switch (item.getItemId()) {
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
}
@Override
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
}
@Override
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
viewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabReselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) {
}
@SuppressLint("DefaultLocale")
public class ResultSectionsPagerAdapter extends FragmentPagerAdapter {
private final List<String> titles = new ArrayList<String>();
private final List<Fragment> fragments = new ArrayList<Fragment>();
public ResultSectionsPagerAdapter(FragmentManager fm) {
super(fm);
titles.add(0, getString(R.string.title_result_page_overview).toUpperCase());
titles.add(1, getString(R.string.title_result_page_graph).toUpperCase());
fragments.add(0, new BioMatchResultFragment_());
fragments.add(1, new BioMatchResultGraphFragment_());
}
public IBioMatchResultPresenter getBioMatchResultFragment() {
return (IBioMatchResultPresenter) fragments.get(0);
}
@Override
public Fragment getItem(int i) {
return fragments.get(i);
}
@Override
public int getCount() {
return titles.size();
}
@Override
public CharSequence getPageTitle(int position) {
return titles.get(position);
}
}
}