package com.mechinn.android.ouralliance.activity; import android.content.Intent; import android.os.Build; import android.os.Bundle; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.util.Log; import android.view.Menu; import android.view.MenuItem; import android.view.Window; import android.widget.Toast; import com.mechinn.android.ouralliance.*; import com.mechinn.android.ouralliance.event.MultimediaDeletedEvent; import com.mechinn.android.ouralliance.event.SelectTeamEvent; import com.mechinn.android.ouralliance.fragment.MatchTeamListFragment; import com.mechinn.android.ouralliance.fragment.MultimediaContextDialogFragment; import com.mechinn.android.ouralliance.fragment.TeamDetailFragment; import com.mechinn.android.ouralliance.fragment.TeamListFragment; import com.mechinn.android.ouralliance.fragment.frc2014.MatchTeamList2014Fragment; import com.mechinn.android.ouralliance.fragment.frc2014.TeamDetail2014; import com.mechinn.android.ouralliance.fragment.frc2015.MatchTeamList2015Fragment; import com.mechinn.android.ouralliance.fragment.frc2015.TeamDetail2015; import de.greenrobot.event.EventBus; import timber.log.Timber; public class TeamScoutingActivity extends OurAllianceActivity implements FragmentManager.OnBackStackChangedListener { public static final String TAG = "TeamScoutingActivity"; public static final String TEAM_ARG = "team"; public static final String MATCH_ARG = "match"; public static final String MATCHNAME_ARG = "matchname"; public static final int GOOGLE_PLAY_ERROR = 0; private TeamListFragment teamListFrag; private MatchTeamListFragment matchTeamListFrag; private TeamDetailFragment teamDetailFragment; private int listFrag; private int detailFrag; private long loadTeam; private String matchName; @Override protected void onCreate(Bundle savedInstanceState) { requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); super.onCreate(savedInstanceState); this.getSupportActionBar().setTitle(R.string.matches); setContentView(R.layout.activity_team_scouting); this.getSupportFragmentManager().addOnBackStackChangedListener(this); // Add the fragment to the 'fragment_container' FrameLayout if (this.findViewById(R.id.fragment_container) != null) { listFrag = R.id.fragment_container; detailFrag = R.id.fragment_container; } else { listFrag = R.id.list_fragment; detailFrag = R.id.detail_fragment; } if(savedInstanceState == null) { matchName = this.getIntent().getStringExtra(MATCHNAME_ARG); loadTeam = this.getIntent().getLongExtra(TEAM_ARG, 0); if(0!=loadTeam) { Timber.d( "listfrag: "+listFrag+" detailfrag: "+detailFrag); if(listFrag==detailFrag) { selectTeam(loadTeam); } else { 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(); return; } Bundle bundle = new Bundle(); matchTeamListFrag.setArguments(bundle); getSupportFragmentManager().beginTransaction().replace(listFrag, matchTeamListFrag).commit(); selectTeam(loadTeam); } } else { teamListFrag = new TeamListFragment(); teamListFrag.setArguments(getIntent().getExtras()); getSupportFragmentManager().beginTransaction().replace(listFrag, teamListFrag).commit(); } } else if(listFrag==detailFrag) { this.getSupportActionBar().setDisplayHomeAsUpEnabled(true); } } public void onEventMainThread(SelectTeamEvent team) { selectTeam(team.getId()); } public void selectTeam(long team) { Timber.d( "team: "+team); Bundle args = new Bundle(); args.putLong(TeamDetailFragment.TEAM_ARG, team); 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(listFrag==detailFrag) { transaction.addToBackStack(null); this.getSupportActionBar().setDisplayHomeAsUpEnabled(true); } transaction.commit(); } public void onBackStackChanged() { Timber.i("back stack changed " + getSupportFragmentManager().getBackStackEntryCount()); if (getSupportFragmentManager().getBackStackEntryCount() < 1){ if(null!=matchName) { this.getSupportActionBar().setTitle(matchName); } else { this.getSupportActionBar().setTitle(R.string.app_name); this.getSupportActionBar().setDisplayHomeAsUpEnabled(false); this.getSupportActionBar().setHomeButtonEnabled(false); } } } }