package com.esoxjem.movieguide.listing; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.Menu; import com.esoxjem.movieguide.R; import com.esoxjem.movieguide.Constants; import com.esoxjem.movieguide.details.MovieDetailsActivity; import com.esoxjem.movieguide.details.MovieDetailsFragment; import com.esoxjem.movieguide.Movie; public class MoviesListingActivity extends AppCompatActivity implements MoviesListingFragment.Callback { public static final String DETAILS_FRAGMENT = "DetailsFragment"; private boolean twoPaneMode; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); setToolbar(); if (findViewById(R.id.movie_details_container) != null) { twoPaneMode = true; if (savedInstanceState == null) { getSupportFragmentManager().beginTransaction() .replace(R.id.movie_details_container, new MovieDetailsFragment()) .commit(); } } else { twoPaneMode = false; } } private void setToolbar() { Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); if (getSupportActionBar() != null) { getSupportActionBar().setTitle(R.string.movie_guide); getSupportActionBar().setDisplayShowTitleEnabled(true); } } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public void onMoviesLoaded(Movie movie) { if(twoPaneMode) { loadMovieFragment(movie); } else { // Do not load in single pane view } } @Override public void onMovieClicked(Movie movie) { if (twoPaneMode) { loadMovieFragment(movie); } else { startMovieActivity(movie); } } private void startMovieActivity(Movie movie) { Intent intent = new Intent(this, MovieDetailsActivity.class); Bundle extras = new Bundle(); extras.putParcelable(Constants.MOVIE, movie); intent.putExtras(extras); startActivity(intent); } private void loadMovieFragment(Movie movie) { MovieDetailsFragment movieDetailsFragment = MovieDetailsFragment.getInstance(movie); getSupportFragmentManager().beginTransaction() .replace(R.id.movie_details_container, movieDetailsFragment, DETAILS_FRAGMENT) .commit(); } }