package com.mechinn.android.ouralliance.activity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.Window;
import com.mechinn.android.ouralliance.Prefs;
import com.mechinn.android.ouralliance.R;
import com.mechinn.android.ouralliance.event.SelectMatchEvent;
import com.mechinn.android.ouralliance.event.SelectMatchTeamEvent;
import com.mechinn.android.ouralliance.event.SelectTeamEvent;
import com.mechinn.android.ouralliance.fragment.MatchDetailFragment;
import com.mechinn.android.ouralliance.fragment.MatchListFragment;
import com.mechinn.android.ouralliance.fragment.MatchTeamListFragment;
import com.mechinn.android.ouralliance.fragment.TeamDetailFragment;
import com.mechinn.android.ouralliance.fragment.frc2014.MatchDetail2014;
import com.mechinn.android.ouralliance.fragment.frc2014.MatchTeamList2014Fragment;
import com.mechinn.android.ouralliance.fragment.frc2014.TeamDetail2014;
import com.mechinn.android.ouralliance.fragment.frc2015.MatchDetail2015;
import com.mechinn.android.ouralliance.fragment.frc2015.MatchTeamList2015Fragment;
import com.mechinn.android.ouralliance.fragment.frc2015.TeamDetail2015;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
import de.greenrobot.event.EventBus;
import timber.log.Timber;
public class MatchScoutingActivity extends OurAllianceActivity implements FragmentManager.OnBackStackChangedListener {
public static final String TAG = "MatchScoutingActivity";
private MatchListFragment matchListFrag;
private MatchTeamListFragment matchTeamListFrag;
private MatchDetailFragment matchDetailFragment;
private TeamDetailFragment teamDetailFragment;
private int matchFrag;
private int teamFrag;
private int detailFrag;
@Override
protected void onCreate(Bundle savedInstanceState) {
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_match_scouting);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
this.getSupportFragmentManager().addOnBackStackChangedListener(this);
// Add the fragment to the 'fragment_container' FrameLayout
if (this.findViewById(R.id.fragment_container) != null) {
matchFrag = R.id.fragment_container;
teamFrag = R.id.fragment_container;
detailFrag = R.id.fragment_container;
} else {
matchFrag = R.id.list_fragment;
teamFrag = R.id.team_fragment;
detailFrag = R.id.detail_fragment;
}
if(savedInstanceState == null) {
matchListFrag = new MatchListFragment();
getSupportFragmentManager().beginTransaction().replace(matchFrag, matchListFrag).commitAllowingStateLoss();
}
}
@Override
protected void onResume() {
super.onResume();
if(getPrefs().getComp()<1) {
this.finish();
}
}
public void onEventMainThread(SelectMatchEvent match) {
long matchId = match.getId();
Timber.d( "match: "+matchId);
Bundle bundle = new Bundle();
bundle.putLong(MatchTeamListFragment.MATCH_ARG, matchId);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
switch(getPrefs().getYear()) {
case 2014:
matchTeamListFrag = new MatchTeamList2014Fragment();
break;
case 2015:
matchTeamListFrag = new MatchTeamList2015Fragment();
break;
default:
Toast.makeText(this, "Error could not find year", Toast.LENGTH_LONG).show();
transaction.commit();
return;
}
matchTeamListFrag.setArguments(bundle);
transaction.replace(teamFrag, matchTeamListFrag);
if(matchFrag==teamFrag) {
transaction.addToBackStack(null);
}
transaction.commit();
}
public void onEventMainThread(SelectMatchTeamEvent scouting) {
long scoutingId = scouting.getId();
Timber.d( "team: "+scoutingId);
Bundle args = new Bundle();
args.putLong(MatchDetailFragment.SCOUTING_ARG, scoutingId);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
switch(getPrefs().getYear()) {
case 2014:
matchDetailFragment = new MatchDetail2014();
break;
case 2015:
matchDetailFragment = new MatchDetail2015();
break;
default:
Toast.makeText(this, "Error could not find year", Toast.LENGTH_LONG).show();
transaction.commit();
return;
}
matchDetailFragment.setArguments(args);
transaction.replace(detailFrag, matchDetailFragment);
if(teamFrag==detailFrag) {
transaction.addToBackStack(null);
}
transaction.commit();
}
public void onEventMainThread(SelectTeamEvent team) {
long teamId = team.getId();
Timber.d( "team: "+teamId);
Bundle args = new Bundle();
args.putLong(TeamDetailFragment.TEAM_ARG, teamId);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
switch(getPrefs().getYear()) {
case 2014:
teamDetailFragment = new TeamDetail2014();
break;
case 2015:
teamDetailFragment = new TeamDetail2015();
break;
default:
Toast.makeText(this, "Error could not find year", Toast.LENGTH_LONG).show();
transaction.commit();
return;
}
teamDetailFragment.setArguments(args);
transaction.replace(detailFrag, teamDetailFragment);
if(teamFrag==detailFrag) {
transaction.addToBackStack(null);
}
transaction.commit();
}
public void onBackStackChanged() {
Timber.i("back stack changed " + getSupportFragmentManager().getBackStackEntryCount());
if (getSupportFragmentManager().getBackStackEntryCount() < 1){
this.getSupportActionBar().setTitle(R.string.matches);
}
}
public void onEventMainThread(Prefs prefsChanged) {
String key = prefsChanged.getKeyChanged();
Timber.d( key);
if(key.equals(this.getString(R.string.pref_practice))) {
this.recreate();
}
}
}